ブログ

量子プログラミング2.0:ゲートではなく、意図に注目する

20
5月
,
2021
Yuval Boger

子供の頃、「DWIM」と書かれた大きな緑色のボタンがひとつだけあるコンピュータを想像していた。この "Do What I Mean "ボタンを押すと、コンピューターはまさにその通りになる。私たちはまだそこに到達していないが、低レベルの量子プログラミングから、より高度な意図を表現する方法への急速な移行が起こっている。

私たちは、このプロセスが電子回路設計で展開されるのを見てきた。簡単な電子回路を考えてみよう:4ビット・バイナリ・カウンタ。あなたはどのように設計したいだろうか?オプション1(下図参照)は、このカウンターをディスクリートゲートで実装したものです。オプション2は、VHDL(高水準設計言語)を使って、あらかじめ書かれたビルディング・ブロックを使って、このカウンターを実装したものです。

もし、4ビット・カウンターの代わりに32ビット・バージョンを設計する必要があるとしたら?オプション1はかなり大きくなるが、オプション2は変わらない。この回路を誰かから受け取り、それを説明する必要があるとしたら?ほとんどの人にとって、選択肢2の方がずっと読みやすく、説明しやすいだろう。回路が複雑になるにつれて、ゼロから回路を設計するよりも、意図(「8ビットのUARTが欲しい」)を表現する方が魅力的です。

オプション1:よりHaghparast, Majid & Samadi Gharajeh, Mohammad.(2011).並列負荷によるナノメトリック可逆4ビットバイナリカウンタの設計。Australian Journal of Basic and Applied Sciences.5.63-71.
オプション 2: ザイリンクス 7 シリーズ FPGA ライブラリ ガイド HDL デザイン用 UG768 2012 年 4 月 24 日より引用

高速回路設計で大成功を収めたのと同じコンセプトが、量子コンピューティングでも利用できるようになった。少数の量子ビットとパラメトリックなビルディング・ブロックを使って簡単な量子回路を作るのは楽しいし、勉強になる。しかし、何十、何百もの量子ビットを使って現実の問題を解決するには、より少ないゲートレベルのコーディングと、より効率的なアルゴリズム設計が必要になる。

例えば、量子アルゴリズムでよく必要とされるのは、初期化と状態の準備である。もし4つの量子ビットの状態を準備するのが、次のように単純だったらどうだろう:

この高レベルのコードは、数秒以内に自動的に量子回路に変換される:

VHDLが論理プログラミングを単純化したのと同様に、このアプローチは量子プログラミングを劇的に単純化する。これにはいくつかの重要な利点がある:

  • 複雑なアルゴリズムを比較的簡単に作成できる。ゲートベースのプログラミングはスケーラブルではない。今日の量子チームは、新しいアルゴリズムの設計に大きな困難に直面している。動作する量子回路に自動的に合成される高水準の表現言語は、斬新な開発を可能にする上で大いに役立つだろう。
  • より速く、より少ないエラーで設計。低レベルのプログラミングではなく、意図に集中することで、設計者はより速く結果を出すことができる。主要なアルゴリズム・ブロック(状態の準備など)は、専門家が事前に作成し最適化しているため、プログラミング・エラーが発生しにくい。
  • コードの再利用。VHDLと同じように、ベンダーやユーザーは、巡回販売員からグルーバーのアルゴリズムまで、共通の機能を実行するための再利用可能なビルディング・ブロックを作成できる。
  • デバッグのしやすさ、説明のしやすさ。高レベルのブロックから構成されるアルゴリズムは、理解しやすく、デバッグしやすい。
  • ハードウェアにとらわれない。インテントからゲートへの変換は、量子ビットの接続性や利用可能な演算子など、各ハードウェア・プラットフォーム固有の制限を考慮に入れて行われるため、あるプラットフォームから別のプラットフォームへの移行が迅速に行える。

DYIM」ボタンはまだ先ですが、Classiqのようなインテント・ベースのプログラミングは、高レベルのモデリングを使用し、量子回路の効率的な生成、解析、デバッグにつながります。このエキサイティングな旅にぜひご参加ください。

子供の頃、「DWIM」と書かれた大きな緑色のボタンがひとつだけあるコンピュータを想像していた。この "Do What I Mean "ボタンを押すと、コンピューターはまさにその通りになる。私たちはまだそこに到達していないが、低レベルの量子プログラミングから、より高度な意図を表現する方法への急速な移行が起こっている。

私たちは、このプロセスが電子回路設計で展開されるのを見てきた。簡単な電子回路を考えてみよう:4ビット・バイナリ・カウンタ。あなたはどのように設計したいだろうか?オプション1(下図参照)は、このカウンターをディスクリートゲートで実装したものです。オプション2は、VHDL(高水準設計言語)を使って、あらかじめ書かれたビルディング・ブロックを使って、このカウンターを実装したものです。

もし、4ビット・カウンターの代わりに32ビット・バージョンを設計する必要があるとしたら?オプション1はかなり大きくなるが、オプション2は変わらない。この回路を誰かから受け取り、それを説明する必要があるとしたら?ほとんどの人にとって、選択肢2の方がずっと読みやすく、説明しやすいだろう。回路が複雑になるにつれて、ゼロから回路を設計するよりも、意図(「8ビットのUARTが欲しい」)を表現する方が魅力的です。

オプション1:よりHaghparast, Majid & Samadi Gharajeh, Mohammad.(2011).並列負荷によるナノメトリック可逆4ビットバイナリカウンタの設計。Australian Journal of Basic and Applied Sciences.5.63-71.
オプション 2: ザイリンクス 7 シリーズ FPGA ライブラリ ガイド HDL デザイン用 UG768 2012 年 4 月 24 日より引用

高速回路設計で大成功を収めたのと同じコンセプトが、量子コンピューティングでも利用できるようになった。少数の量子ビットとパラメトリックなビルディング・ブロックを使って簡単な量子回路を作るのは楽しいし、勉強になる。しかし、何十、何百もの量子ビットを使って現実の問題を解決するには、より少ないゲートレベルのコーディングと、より効率的なアルゴリズム設計が必要になる。

例えば、量子アルゴリズムでよく必要とされるのは、初期化と状態の準備である。もし4つの量子ビットの状態を準備するのが、次のように単純だったらどうだろう:

この高レベルのコードは、数秒以内に自動的に量子回路に変換される:

VHDLが論理プログラミングを単純化したのと同様に、このアプローチは量子プログラミングを劇的に単純化する。これにはいくつかの重要な利点がある:

  • 複雑なアルゴリズムを比較的簡単に作成できる。ゲートベースのプログラミングはスケーラブルではない。今日の量子チームは、新しいアルゴリズムの設計に大きな困難に直面している。動作する量子回路に自動的に合成される高水準の表現言語は、斬新な開発を可能にする上で大いに役立つだろう。
  • より速く、より少ないエラーで設計。低レベルのプログラミングではなく、意図に集中することで、設計者はより速く結果を出すことができる。主要なアルゴリズム・ブロック(状態の準備など)は、専門家が事前に作成し最適化しているため、プログラミング・エラーが発生しにくい。
  • コードの再利用。VHDLと同じように、ベンダーやユーザーは、巡回販売員からグルーバーのアルゴリズムまで、共通の機能を実行するための再利用可能なビルディング・ブロックを作成できる。
  • デバッグのしやすさ、説明のしやすさ。高レベルのブロックから構成されるアルゴリズムは、理解しやすく、デバッグしやすい。
  • ハードウェアにとらわれない。インテントからゲートへの変換は、量子ビットの接続性や利用可能な演算子など、各ハードウェア・プラットフォーム固有の制限を考慮に入れて行われるため、あるプラットフォームから別のプラットフォームへの移行が迅速に行える。

DYIM」ボタンはまだ先ですが、Classiqのようなインテント・ベースのプログラミングは、高レベルのモデリングを使用し、量子回路の効率的な生成、解析、デバッグにつながります。このエキサイティングな旅にぜひご参加ください。

"キュービット・ガイのポッドキャスト "について

The Qubit Guy(弊社最高マーケティング責任者ユヴァル・ボーガー)がホストを務めるこのポッドキャストは、量子コンピューティングのオピニオンリーダーをゲストに迎え、量子コンピューティングエコシステムに影響を与えるビジネスや技術的な疑問について議論します。ゲストは、量子コンピュータのソフトウェアやアルゴリズム、量子コンピュータのハードウェア、量子コンピューティングの主要なアプリケーション、量子産業の市場調査などについて興味深い見解を提供します。

ポッドキャストへのゲスト推薦をご希望の方は、こちらまでご連絡ください。

こちらも参照

該当する項目はありません。

量子ソフトウェア開発を開始

お問い合わせ