現在、ゲート型量子コンピュータをプログラミングするほとんどの人は、X、Y、Z、CNOT、Hadamard などの標準ゲートを使用してプログラミングしている。しかし量子プロセッサは、量子ビットをより正確に制御するためにパルスレベルでのプログラミングが可能だ。パルスとは、特定の持続時間、周波数、振幅、および位相のマイクロ波パルスであり、それらの制御により、量子ビットは目的の機能を実装することができる。つまりユーザーは、ノイズの軽減、独自のカスタムゲートの作成、アナログ量子アルゴリズムの設計をより柔軟に行うことが可能になる。IBMは以前、OpenPulse というソフトウェアでこの機能を利用可能にしており、Rigetti も Quilt というソフトウェアでこの機能を提供している。Amazonは今回、Amazon Braketに接続されているプロセッサのうち、Rigetti の Aspen-M-2 と、OQCの Lucy で、パルスプログラミング機能を利用できるようにした。同社は、この新機能をプログラミング例と共にブログで紹介 している。
量子コンピューティングにおけるもう1つの課題は、相互運用性を向上させて、1つのターゲット量子プロセッサ用に作成されたプログラムを容易に変更し、再コンパイルして別の量子プロセッサで実行できるようにすることである。これにより、エンドユーザーにとって、2つの異なるプロセッサの結果を比較したり、以前に何らかの新しいアプリケーション用に作成されたコードの再利用も可能となり、これらは大きなメリットだろう。これを容易にするための取り組みは幾つか進行中であるが、その一つが OpenQASM 3 と呼ばれる中間プログラミング表現の仕様だ。このアイデアは、異なるフロントエンドの量子プログラミング言語を書いて、まず共通の中間表現に変換し、次に異なるバックエンドコンパイラを記述して、共通の中間表現から、異なるターゲット量子プロセッサに固有で最適化された低レベルの命令にコンパイルできるというものである。この概念は新しいものではなく、LLVMと呼ばれる古典的コンピューティング向けの実装が約20年前に作成された。
IBMは、古典/量子ハイブリッドアルゴリズムを指定するための構造提供を目的として、OpenQASM 3 を開始したが、その後オープンスタンダードとして開発を継続するために、Amazon、Microsoft、その他の関係者を含む運営委員会を設立した。Amazonは、今年の初めに OpenQASM3 を主要な中間表現として使うように移行したが、今回 OpenQASM3 の取り組みに大きく貢献し、Pythonで OpenQASM 3 プログラムを簡単に生成できるように設計されたオープンソースのライブラリ、OQpy と呼ばれるプログラムをリリースした。Braket Pulse機能も OQpy の上に構築され、Braket SDKの中に統合されている。OQpy の詳細は、Amazonサイトのブログ記事で読むことができ、GitHubの OQpy ライブラリのコードとドキュメントもここからアクセス できる。
Comments