JP2023523143A - 量子回路のための効率的な量子アダプティブ実行方法 - Google Patents

量子回路のための効率的な量子アダプティブ実行方法 Download PDF

Info

Publication number
JP2023523143A
JP2023523143A JP2022559732A JP2022559732A JP2023523143A JP 2023523143 A JP2023523143 A JP 2023523143A JP 2022559732 A JP2022559732 A JP 2022559732A JP 2022559732 A JP2022559732 A JP 2022559732A JP 2023523143 A JP2023523143 A JP 2023523143A
Authority
JP
Japan
Prior art keywords
program
quantum
computer
processor
executing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022559732A
Other languages
English (en)
Inventor
ガンベッタ、ジェイ
サーテイジ、イスマエル ファロ
フェルナンデス、フランシスコ マーティン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2023523143A publication Critical patent/JP2023523143A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/20Models of quantum computing, e.g. quantum circuits or universal quantum computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B82NANOTECHNOLOGY
    • B82YSPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
    • B82Y10/00Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Devices For Executing Special Programs (AREA)
  • Semiconductor Lasers (AREA)

Abstract

先行量子回路および中間結果に基づいて量子アダプティブ実行方法を容易にすることができるシステム等が開示される。これは、特定のバックエンドおよび先行量子回路依存物に最適化されたアダプティブ・コンパイルの方法論を生成し、ジョブ・ディスパッチャによって正しい量子バックエンドにリダイレクトすることができる。量子回路の一部は、先行回路によって作り出される中間結果に基づいて、他の量子回路に依存しうる。システムは、回路の最適化を、その依存性に基づいて、および先行量子回路によって生成された結果によって、管理できる。このようにして、システムは、量子回路に最適な結果を得、その結果をコンパイラ・ユニットに投入してアダプティブ・コンパイル結果を生成できる。得られる後処理ユニットは、このロジックを適用し、コンパイラ・ユニットとジョブ・ディスパッチャにロジックをプッシュするデータの入力/出力を管理するユニットである。

Description

主題となる開示は、先行量子回路により生成される量子回路依存性および中間結果に基づく量子アダプティブ実行方法に関する。最適化されたアダプティブ・コンパイルの方法論は、特定のバックエンド量子回路および先行する依存的な量子回路のために利用され、そのことにより回路をジョブ・ディスパッチャによって量子回路を実行する量子バックエンドにリダイレクトする。
量子プログラミングは、量子プログラムと呼ばれる一連の命令を組み上げるプロセスである。量子プログラムは、量子コンピュータ上で実行可能なジョブとしても知られる。量子プログラムは、量子回路の集合を有することが可能である。ジョブ中の量子回路は、依存性を有する可能性があり、先行量子回路の結果は、次の量子回路を実行するために使用される可能性がある。量子回路が実行されると、量子コンピュータによって結果が作り出され、これらの量子回路の結果の一部は、先行量子回路によって作り出された中間結果に依存性がある。多くの従来型の量子回路最適化技術は、量子回路を強化して最適な結果を与えることに焦点を当てたものであり、そのためユーザは、1つの量子コンピュータ内で1つの量子プログラムしか実行できない。すべてのジョブ(回路のリスト)を連続的な様式で送信し、個々のジョブを順序通りに実行する従来型の技術は、後続の実行される回路へと(例えば、環境にあるケーブル、他のハードウェアにより生じる)誤りまたはノイズを伝播させることにつながり、そのため望ましくない量子プログラムの実行に至る可能性がある。
本発明の1つまたは複数の実施形態の基本的な理解を与えるための概要を以下に提示する。この概要は、主要または重要な要素を特定すること、特定の実施形態の範囲または特許請求の範囲を詳述することを意図されていない。その唯一の目的は、後に提示されるより詳細な説明への導入部として簡素化された形式での概念を提示することである。本明細書において説明される1つまたは複数の実施形態では、システム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組合せは、先行量子回路およびその中間結果に基づいて量子アダプティブ実行方法の生成を容易にする。
実施形態によると、システムは、メモリに動作可能に結合されたプロセッサを備え、プロセッサは、以下のコンピュータ実行可能コンポーネントを実行する:量子タスクを実行するための量子プログラムを受信する受信コンポーネントであり、量子プログラムが第1のプログラムおよび第2のプログラムを含む、受信コンポーネント;第1のプログラムをコンパイルするアダプティブ・コンパイル・コンポーネント;コンパイルされた第1のプログラムを実行する実行コンポーネント;コンパイルされた第1のプログラムを実行することに基づいて出力を受信する第2の受信コンポーネント;第1のプログラムを実行することから受信した出力に基づいて第2のプログラムをコンパイルする第2のアダプティブ・コンパイル・コンポーネント;コンパイルされた第2のプログラムを実行する第2の実行コンポーネント。
任意選択の態様では、判定コンポーネントは、1つまたは複数の回路入力に印加される1つまたは複数の回路出力を利用する。
任意選択の態様では、第1のプログラムは、第1のプログラムからの以前に生成された1つまたは複数の出力に基づいて定められる。
さらに別の任意選択の態様では、第2のプログラムは、第2のプログラムからの以前に受信した1つまたは複数の出力に基づいて定められる。
実施形態によると、コンピュータ実装方法は、メモリに動作可能に結合されたプロセッサを使用して、コンピュータ実行可能コンポーネントを実行することを含み、以下の機能を実施する:プロセッサを使用して量子タスクを実行するための量子プログラムを受信することであって、量子プログラムは第1のプログラムおよび第2のプログラムを含む、受信すること。アダプティブ・コンパイル・コンポーネントは、第1のプログラムをコンパイルし、実行コンポーネントは、コンパイルされた第1のプログラムを実行する。第2の受信コンポーネントは、コンパイルされた第1のプログラムを実行することに基づいて出力を受信する。第2のアダプティブ・コンパイル・コンポーネントは、第1のプログラムを実行することから受信した出力に基づいて第2のプログラムをコンパイルする。次いで、第2の実行コンポーネントは、コンパイルされた第2のプログラムを実行する。
任意選択の態様では、コンピュータ実装方法は、システムによって、1つまたは複数の回路入力に印加される1つまたは複数の回路出力を判定することをさらに含む。
別の任意選択の態様では、コンピュータ実装方法は、システムによって、第1のプログラムからの以前に生成された1つまたは複数の出力に基づいて定められる第1のプログラムを利用することをさらに含む。
さらに別の任意選択の態様では、コンピュータ実装方法は、システムによって、第2のプログラムからの以前に受信した1つまたは複数の出力に基づいて定められる第2のプログラムを利用することをさらに含む。
実施形態によると、コンピュータ実装方法は、メモリに動作可能に結合されたプロセッサを使用して、コンピュータ実行可能コンポーネントを実行することを含み、以下の機能を実施する:プロセッサを使用して1つまたは複数の回路入力に印加される1つまたは複数の回路出力を判定すること。第1のプログラムは、第1のプログラムからの以前に生成された1つまたは複数の出力に基づいて定められる。第2のプログラムは、第2のプログラムからの以前に受信した1つまたは複数の出力に基づいて定められる。受信コンポーネントは、コンパイルされた第1のプログラムを、第1の量子ハードウェア・デバイスで実行するように適応された第1の再コンパイルされたプログラムへと再コンパイルする。第1の出力を受信することは、再コンパイルされた第1のプログラムを実行することに基づく。次いで、コンパイルされた第1のプログラムは、コンパイルされた第1のプログラムを、第2の量子ハードウェア・デバイスで実行するように適応された第2の再コンパイルされたプログラムへと再コンパイルされる。第2の出力は、再コンパイルされた第2のプログラムを実行することに基づいて受信される。第2のプログラムは、受信された第1の出力または受信された第2の出力のいずれかを選択することに基づいてコンパイルされる。
先行量子回路および中間結果に基づいて、量子回路の量子アダプティブ実行を容易にして、アダプティブ・コンパイルを生成する、例示的なシステム実装形態のブロック図である。 先行量子回路および中間結果に基づいて、量子回路の量子アダプティブ実行を容易にして、アダプティブ・コンパイルを生成する、例示的なシステム実装形態のブロック図である。 量子回路を生成することが可能な回路コンポーザの例の図である。 量子回路生成器の例示的で詳細なフローチャートである。 量子回路の効率的な量子アダプティブ実行方法の例示的なフローチャートである。 変分量子固有値ソルバ(VQE)アルゴリズムのための例示的な量子回路の図である。 VQE量子古典的アルゴリズムの例示的なフローチャートである。 本明細書において説明される1つまたは複数の実施形態による、量子コンピューティング・ジョブのアダプティブ・コンパイルを容易にすることが可能な、例示の、非限定的なシステムの図である。 本明細書において説明される1つまたは複数の実施形態を容易にすることが可能な、例示の、非限定的な動作環境のブロック図である。 主題となる開示の1つまたは複数の実施形態による、例示の、非限定的なクラウド・コンピューティング環境のブロック図である。 主題となる開示の1つまたは複数の実施形態による、例示の、非限定的な抽象モデル・レイヤのブロック図である。
以下の詳細な説明は例示に過ぎず、実施形態、または実施形態の適用もしくは使用、あるいはその両方を限定するよう意図されていない。さらには、先の「発明の概要」セクション、または「発明を実施するための形態」セクションにおいて提示される、いかなる明記されたまたは示唆された情報によっても拘束されるような意図もない。次に1つまたは複数の実施形態を、図面を参照して説明するが、一貫して同一の参照符号は同一の要素を参照するために使用される。以下の説明では、説明目的のため、1つまたは複数の実施形態の徹底した理解を与えるために、多くの具体的な詳細が説明される。しかしながら、様々な場合において、1つまたは複数の実施形態はこれらの具体的な詳細無しに実践され得ることが明白である。
主題となる開示は、一般的に、先行量子回路およびその中間的な出力に基づいて量子回路向けの量子アダプティブ実行方法を使用するシステムおよび方法に関する。これは、特定のバックエンドおよび先行量子回路依存物(dependent)に最適化されたアダプティブ・コンパイル結果を生成し、故に、ジョブ・ディスパッチャによって正しい量子バックエンドにリダイレクトすることが可能である。本明細書で開示される実施形態は、生成される誤りの数を低減し、システム効率を改善し、量子コンピュータにおける条件付きロジックの強化が達成され得るように、先行回路の結果を用いて組合せの様式で、次の量子回路を改善することが可能である。実施形態は、第1の回路またはプログラムを利用して、プログラムを分析し、それをコンパイルすることができる。次いで、次のシーケンスまたは第2のプログラムは、先行シーケンスの出力およびその内部コードに基づいて、コンパイルされる。量子コンピュータ上には、実行される量子シーケンスに基づいて変化し得るパラメータがいくつか存在する。そのようなコンパイルを通じて得られる結果を使用して、量子積を改変することが可能であり、誤り率が低減された最適な結果が得られるよう、ゲート/パラメータは再コンパイル用に変更することが可能である。故に、実施形態は利用可能な量子コンピュータ・バックエンドを使用して、量子プログラムを多くの可能なバックエンドに分散し、1つの量子コンピュータ内で実行される1つの量子プログラムに関連付けられる制約を取り除く。
現在のデジタルな世界では、データは多くの用途で主要なファクタである。アクションを起こすと、デジタル・フットプリントを、衛星画像、バイオメディカル分野、スマートフォン、ソーシャル・メディア、および他の用途を通じて残す可能性が高い。急激に成長する技術は、機械生成データを指数関数的に増加させている。ビッグ・データは、量、多様性、および速度において高度なデータを含むべく、データ探索および利用における新しい時代を表現している。現代のソフトウェア・エンジニアリングにおける進歩は、software as service(例えば、SaaS)を展開することにつながり、このようなSaaSは組織が、コンピュータ・インフラストラクチャでのリソースの拡大および維持の代わりにコア・ビジネスに集中するために顕著な利点を与える。例えば、データ・インスタンスのセットを入力として利用する「ビッグ・データ」クラスタ化software as a serviceは、データのクラスタ化のための計算を実施し、分割したデータをクライアントに出力として返すことが可能である。ビッグ・データは、例えばソーシャル・メディアで生成されたコンテンツを追跡すること、ウェブからのウェブ・ページ画像および国勢調査データを分析すること、必要とされるデータをモノのインターネット(IoT)センサから取得すること、ならびにサイバーセキュリティのためのスマートフォンおよびネットワーク・トラフィック・データからのアクティビティ追跡のなど、データマイニングのために多くのシナリオで使用することが可能である。ビッグ・データがデータ分析において普遍的になるにつれ、データ・サンプリングの需要およびデータ次元特徴は急激に大きくなった。故に、本質的にプリミティブなものとして、量子コンピューティングはさらに注目を集めている。
量子コンピューティングは、一般的には量子力学的な現象を利用して、計算および情報処理機能を実行することである。量子コンピューティングは、一般的にトランジスタを用いてバイナリ値を演算する古典的なコンピューティングとは対照的であると考えることができる。つまり、古典的なコンピュータは0か1かのビット値を演算することができるが、量子コンピュータは0と1両方の重ね合わせから成る量子ビットを演算し、複数の量子ビットをもつれさせ、干渉を利用することが可能である。超伝導量子ビットは、巨視的なレベルで(例えば、既存の集積回路技術によって設計および製作される)量子力学的な挙動を見せる可能性があるため(量子情報処理に使用できるようにする)、フル稼働の量子コンピュータを構築するために有望な道筋を与えるものである。量子計算は、その本質的な単位として、古典的な計算用ビットの代わりに量子ビットを用いる。量子ビット(例えば、量子二進数)は、古典的なビットの量子力学的アナログである。古典的なビットは2つの基底状態のうちの1つのみ(例えば、0または1)を利用することができるが、量子ビットはこのような基底状態の重ね合わせを利用することができ(例えば、α|0〉+β|1〉、ここでαとβは|α|+|β|=1となるような複素スカラ量である)、それにより理論的には、ある数の量子ビットが、同じ数の古典的なビットよりも指数関数的に多くの情報を保持することを可能にしている。故に、量子コンピュータ(例えば、単に古典的なビットの代わりに量子ビットを利用するコンピュータ)は、理論としては、古典的なコンピュータでは極めて困難となり得る問題を素早く解決することが可能である。古典的なコンピュータのビットは単純に、0または1のいずれかの値を持つ二進数である。2つの別個の状態を有するほぼすべてのデバイスは、古典的なビットを表現するように機能することが可能である:スイッチ、バルブ、磁石、コインなど。量子の神秘の性質を帯びる量子ビットは、0状態と1状態の重ね合わせを占有することが可能である。これは、量子ビットが0.63のような中間的な値を取ることができるという意味ではない。量子ビットの状態が測定されると、その結果は0か1である。しかし、計算の過程で、量子ビットは、例えば0が63パーセント、1が37パーセントのように、状態の混合であるかのように振る舞う可能性がある。
量子コンピューティングは、一般的には量子力学的な現象を利用して、計算および情報処理機能を実行することである。量子コンピューティングは、一般的にトランジスタを用いてバイナリ値を演算する古典的なコンピューティングとは対照的であると考えることができる。つまり、古典的なコンピュータは0か1かのビット値を演算することができるが、量子コンピュータは0と1両方の重ね合わせから成る量子ビット(キュビット)を演算し、複数の量子ビットをもつれさせ、干渉を利用することが可能である。量子コンピューティングには、その計算科学的な複雑性により、多くの実用的な目的で古典的なコンピュータでは解決することができない問題を解決する可能性がある。しかしながら、量子コンピューティングは、例えば振幅推定を行うための確率分布の量子状態を準備するためなどに、非常に専門的な技能を必要とする。量子プログラミングは、量子プログラムと呼ばれる命令のシーケンスを組み立てるプロセスであり、量子プログラムは量子コンピュータ上で実行することができる。
量子プログラムは、量子回路の集合を有することが可能である。量子回路が実行されると、結果は量子コンピュータによって作り出される。このような回路の一部は、先行回路によって作り出される中間結果に基づいて、他の回路に依存する可能性がある。問題の特性は、量子回路がいつ、その実行中に依存性を有するかである。したがって、このような実施形態は、量子回路の最適化を、先行量子回路によって生成される依存性と結果に基づいて管理することができるシステムおよび方法を提案する。このことは、1つの量子プログラムは1つの量子コンピュータで実行されるということに関連する制約の軽減を容易にすることができる。本明細書における実施形態は、様々な特徴とノイズ品質を伴ういくつかの量子コンピュータで実行するよう、反復アルゴリズムを最適化する。そのような実施形態の利点は、量子プログラムを一組の量子コンピュータに適応して、それを異なる量子バックエンドで実行するよう分割することであり得る。これは、実行時間をスピード・アップすることが可能であり、故に量子回路を実行する量子バックエンドにおいて効果的な量子回路を作り出す。
主題のコンピュータ処理システム、方法装置、またはコンピュータ・プログラム製品、あるいはその組合せは、技術、コンピュータ・ネットワーク、インターネットなどの進歩により生じる新しい問題を解決するために利用することが可能である。
図1は、本明細書において説明される1つまたは複数の実施形態により描かれる可変な計算コンポーネントを使用して、データにアクセスし、そのデータを処理することが可能な例示的なシステム100のブロック図を示す。システム100は、機械学習を使用して、大量で多様な形態のデータを精査して識別するプロセス、およびニューラル・ネットワークまたは他のタイプのモデルを訓練するプロセスを容易にすることが可能である。システム100はまた、本明細書において説明される1つまたは複数の実施形態によるコンテキストで個々のレベルまでの予測的なレコメンデーションを生成することが可能である。本開示で説明されるシステム(例えば、システム100など)、装置、またはプロセスの態様は、機械内で具体化される機械実行可能コンポーネントを構成することができ、例えば、1つまたは複数の機械に関連付けられる1つまたは複数のコンピュータ可読媒体に具体化される。そのようなコンポーネントは、1つまたは複数の機械、例えばコンピュータ、コンピューティング・デバイス、仮想機械などによって実行されると、機械に本明細書で説明される動作を実施させることができる。本明細書において説明される1つまたは複数の実施形態において採用される類似の要素の繰り返しの説明は簡略化のために省略する。
システム100は、先行量子回路および中間結果に基づいて、量子回路の量子アダプティブ実行を容易にして、特定のバックエンドおよび先行量子回路依存物に最適化されたアダプティブ・コンパイルを生成し、ジョブ・ディスパッチャ114によって、量子回路を実行することおよび結果を返すことに基づいて適当な量子バックエンド116にリダイレクトする。
システム100は、大量で多様な形態のデータを精査して識別するプロセスを容易にすることが可能である。システム100はまた、本明細書において説明される1つまたは複数の実施形態によるコンテキストをもたらす個々のレベルまでの予測的なレコメンデーションを生成することが可能である。本開示で説明されるシステム(例えば、システム100など)、装置、またはプロセスの態様は、機械内で具体化される機械実行可能コンポーネントを構成することができ、例えば、1つまたは複数の機械に関連付けられる1つまたは複数のコンピュータ可読媒体に具体化される。そのようなコンポーネントは、1つまたは複数の機械、例えばコンピュータ、コンピューティング・デバイス、仮想機械などによって実行されると、説明される動作を機械に実施させることができる。本明細書において説明される1つまたは複数の実施形態において採用される類似の要素の繰り返しの説明は簡略化のために省略する。
システム100は、任意選択で、サーバ・デバイス、1つまたは複数のネットワーク、および1つまたは複数のデバイス(図示せず)を含むことが可能である。システム100はまた、メモリ104に動作可能に連結され、コンピュータ実行可能コンポーネントを実行する、少なくとも1つのプロセッサ102を含むか、それに関連付けられることもできる。システム100は、限定はしないが、量子タスクを実行するための量子プログラムを受信する受信コンポーネント108を含む、様々なコンポーネントを動作可能に連結することができるシステム・バス106をさらに含むことが可能であり、量子プログラムは第1のプログラムを含む。アダプティブ・コンパイル・コンポーネント110は、第1のプログラムをコンパイルし、実行コンポーネント112は、コンパイルされた第1のプログラムを実行する。そのようなシステム100の利点は、誤りを識別することを含み、効率を改善する実行方法を強化し、そして元々のコードを改変することによって、最適な結果を与えるパラメータを変更する。
実装形態では、受信コンポーネント108は、量子タスクを実行するための量子プログラムを受信し、量子プログラムは第1のプログラムを含む。第1のプログラムは、第1のプログラムからの以前に生成された1つまたは複数の出力に基づいて定められる。第2のプログラムは、第2のプログラムからの以前に受信した1つまたは複数の出力に基づいて定められる。受信コンポーネントは、コンパイルされた第1のプログラムを、第1の量子ハードウェア・デバイスで実行するように適応された第1の再コンパイルされたプログラムへと再コンパイルする。アダプティブ・コンパイル・コンポーネント110は、第1のプログラムをコンパイルし、実行コンポーネント112は、コンパイルされた第1のプログラムを実行する。そのような実施形態の利点は、1つまたは複数の回路出力が1つまたは複数の回路入力に印加されて、先行出力に基づいた最適な結果を提供することである。第1のプログラムは、第1のプログラムからの以前に生成された1つまたは複数の出力に基づいて定められる。受信コンポーネント108は、コンパイルされた第1のプログラムを、第1の量子ハードウェア・デバイスで実行するように適応された第1の再コンパイルされたプログラムへと再コンパイルする。
量子回路は、回路コンポーザを使用して生成することが可能である。これにより量子回路をどのように作成するかを視覚的に学習できるようにし、プログラムの実行中に量子ビットに何が起こるかを描写する。回路の入力状態を操作するために、量子コンピューティングの基本的な演算が適用される必要がある。ゲートの使用により、量子ロジックをまとめ、それにより量子回路を作り出すことができる。個々のバックエンド・システムは、この回路をコンパイルするために使用される。前段落で述べたように、このような実施形態は、量子回路の効率的な量子アダプティブ実行方法を提案する。量子回路は、量子コンピュータ(バックエンド)で実行される量子ゲートの順序付けられたリストである。ジョブ中の量子回路は、依存性を有する可能性があり、先行量子回路の結果は、次の量子回路を実行するために必要である。故に、このような実施形態は、様々な特徴およびノイズ品質を伴ういくつかの量子コンピュータのために反復アルゴリズムを最適化することに焦点を当てる。量子プログラムが受信されると、第1のプログラムがコンパイルされて実行される。第1のコンパイルされたプログラムの出力は受信され、第2のプログラムがコンパイルされて実行される。この技術を通じて、異なるバックエンドで実行するようプログラムを分割し、それによりバックエンドでの効果的なる量子回路を作り出すことによって実行時間が改善される(例えば、従来型の技術を通じるよりも高速)。
システム100は、あらゆる好適なコンピューティング・デバイスまたはデバイスに通信可能に結合可能なコンピューティング・デバイスのセットであってもよく、これらの非限定的な例としては、限定はしないが、サーバ・コンピュータ、コンピュータ、モバイル・コンピュータ、メインフレーム・コンピュータ、自動試験システム、ネットワーク・ストレージ・デバイス、通信デバイス、ウェブ・サーバ・デバイス、ネットワーク・スイッチング・デバイス、ネットワーク・ルーティング・デバイス、ゲートウェイ・デバイス、ネットワーク・ハブ・デバイス、ネットワーク・ブリッジ・デバイス、制御システム、またはあらゆる他の好適なコンピューティング・デバイスを挙げることができる。デバイスは、システム100、またはシステム100によって与えられる情報を利用可能なあらゆる他の好適なデバイス、あるいはその組合せと情報を通信することが可能な、あらゆるデバイスであってもよい。システム100、コンポーネント、モデルまたはデバイスには、システム、コンポーネント、モデル、デバイスなどの間で、1つまたは複数のネットワーク上での通信を可能にする通信コンポーネント(図示せず)が備えられる可能性があることを諒解されたい。
システム100の様々なコンポーネントは、直接的に、または1つもしくは複数のネットワークを介して接続することが可能である。そのようなネットワークとしては、限定はしないが、セルラ・ネットワーク、ワイド・エリア・ネットワーク(WAN)(例えば、インターネット)、またはローカル・エリア・ネットワーク(LAN)を含む有線および無線ネットワークを挙げることができ、これらの非限定的な例としては、セルラ、WAN、ワイヤレス・フィディリティ(Wi-Fi)、Wi-Max、WLAN、無線通信、マイクロ波通信、衛星通信、光通信、音波通信、またはあらゆる他の好適な通信技術が挙げられる。その上、上述のシステムまたはデバイスあるいはその両方は、いくつかのコンポーネント間のインタラクションに関して説明してきた。そのようなシステムおよびコンポーネントは、そこで指定されるこのようなコンポーネントもしくはサブコンポーネント、指定されるコンポーネントもしくはサブコンポーネントの一部、または追加的なコンポーネント、あるいはその組合せを含むことが可能であることが諒解されよう。サブコンポーネントはまた、親コンポーネント内に含まれるのではなく、他のコンポーネントに通信可能に結合されるコンポーネントとして実装されてもよい。さらになお、1つまたは複数のコンポーネント、またはサブコンポーネント、あるいはその両方は、単一のコンポーネントと組み合わせて集約された機能性を実現することが可能である。コンポーネントはまた、簡潔にするために本明細書で具体的に説明されないが当業者には既知である、1つまたは複数の他のコンポーネントと対話することも可能である。
図2は、本明細書において説明される1つまたは複数の実施形態により描かれる可変な計算コンポーネントを使用して、データにアクセスし、そのデータを処理することが可能なシステム100(図1)の別の実施形態のブロック図を示す。本明細書において説明される1つまたは複数の実施形態において採用される類似の要素の繰り返しの説明は簡略化のために省略する。
システム100は、コンパイルされた第1のプログラムを実行することに基づいて出力を受信する第2の受信コンポーネント214をさらに含むことが可能である。第2のアダプティブ・コンパイル・コンポーネント216は、第1のプログラムを実行することから受信した出力に基づいて第2のプログラムをコンパイルする。第2の実行コンポーネント218は、コンパイルされた第2のプログラムを実行する。実装形態では、第2の受信コンポーネント214は、コンパイルされた第1のプログラムを実行することに基づいて出力を受信する。第2のアダプティブ・コンパイル・コンポーネント216は、第1のプログラムを実行することから受信した出力に基づいて第2のプログラムをコンパイルし、第2の実行コンポーネント218は、コンパイルされた第2のプログラムを実行する。コンパイルされた第1のプログラムは、コンパイルされた第1のプログラムを、第2の量子ハードウェア・デバイスで実行するように適応された第2の再コンパイルされたプログラムへと再コンパイルされる。第2の出力は、再コンパイルされた第2のプログラムを実行することに基づいて受信される。第2のプログラムは、受信された第1の出力または受信された第2の出力のいずれかを選択することに基づいてコンパイルされる。先行量子回路依存物は、ジョブ・ディスパッチャ220によって、好適または最適な量子バックエンド222にリダイレクトするために使用することができる。そのような方法の利点は、第1のプログラムの出力を利用すること、および量子積を変更することによって量子回路の次のセットを改善することであり得る。
量子プログラムは、量子回路の集合を有することが可能である。量子回路が実行されると、結果は量子コンピュータによって作り出される。このような回路の一部は、先行回路によって作り出される中間結果に基づいて、他の回路に依存する可能性がある。したがって、システム100がその依存性に基づいて回路の最適化を管理することが必要である。システム100は、先行量子回路および中間結果に基づいて量子回路をコンパイルする。そのようなシステム100の利点は、量子回路のための量子結果を強化すること、およびこれらの結果をコンパイラ・ユニットで使用して、特定のバックエンド向けの最適化された出力を作り出すアダプティブ・コンパイルの方法論を生成することである。また、先行量子回路依存物は、ジョブ・ディスパッチャ220によって、好適または最適な量子バックエンド222にリダイレクトするために使用することができる。結果としての後処理ユニット(post processing-unit)は、そのようなロジックを適用し、コンパイラ・ユニットおよびジョブ・ディスパッチャ220用のデータの入力/出力を管理する。
図3は、量子回路を生成することが可能な回路コンポーザ300の例を示す。図面に示されるように、量子回路は、量子回路をどのように作成するかを視覚的に学習できるようにする、回路コンポーザ300を使用して構築される。回路コンポーザ300は、ブロック302によって示されるようなゲートを含む。このゲートは、プログラムの実行中に、例えば左から右へなど、量子ビットに何が起こるかを描写する。図3は、ツールにより量子演算を回路にドラッグ・アンド・ドロップすることができる回路コンポーザ300を示す。量子論理ゲートは、少数の量子ビットに演算を行う基礎的な量子回路であり、コンピューティングの基本演算は、ゲートとして知られる。回路の入力状態を操作するために、量子コンピューティングの基本的な演算が適用され、これらは量子ゲートとして知られる。量子回路の基本的なゲートおよびトポロジは、量子プロセッサの性質を参照する。基本的なゲートは、物理的なハードウェアによってネイティブにサポートされる。ブロック302に示されるように、量子回路には特定目的のゲートを有する様々なゲートがある。これらのゲートの使用により、量子ロジックをまとめることができ、ブロック304によって示されるような量子回路となる。この回路では、4つの量子ビットがセットアップされ、0~3の数字がつけられている。次いで測定動作が直ちに量子回路に適用され、これは0または1の出力を取り出す。ゲートは、q[0]およびq[1]とラベル付けされたブロック306および308がパウリのXゲートを有するように、回路に配置される。ブロック310は、q[0]からq[1]、およびq[1]からq[2]にトグルするCXゲートを示す。同様に、CXゲートはブロック312に追加され、q[0]からq[3]にトグルする。計算の結果を読み出すために、量子ビットは、ブロック314によって示されるようにq[2]およびq[3]までの両方が測定される。個々のバックエンド・システムは、この回路をコンパイルするために使用される。回路がハードウェアに嵌るように、q[3]ゲートなどのゲートの一部を用いて回路をアンパックしてもよい。
このような実施形態は、量子回路のためにプログラムの効率的な量子アダプティブ実行方法を提供する方法およびシステムを提案する。このワークフローでは、1つの量子回路を量子コンピュータ(バックエンド)で実行するために、1つのジョブの一部である回路は、最適化され、特定のハードウェアに適合するようにコンパイルすることができる。パラメータは、コンパイル・レイヤが最適なやり方で回路をコンパイルできるように調節される。この時点で、あるジョブ中の1つの特定の回路は、他の回路から生成された中間結果の依存性を有する可能性がある。この場合、ジョブ・ディスパッチャと組み合わせたコンパイラのインフラストラクチャは、量子回路を再構成し、先行回路の実行によって生成された結果を含むことが可能である。第2の最適化は実行時であり、コンパイラ・ユニットは、1つまたは複数の量子バックエンドで先行回路の実行によって生成される特定の結果を待機することが可能である。
図4は、量子回路生成器の例示的で詳細なフローチャートを示し、量子回路を作成し、回路を実行し、それに応じて結果を解釈するための回路コンポーザを使用するプロセスを示す。プロセスは、ブロック404によって示されるようにグラフィカル・ユーザ・インターフェースを使用して量子回路がシミュレートされるところで開始する。ブロック406によって示されるような可視化ツールを開くと、ブロック408によって示されるように予め定められたリストからデバイスが選択される。いったんデバイスが選択されると、ブロック410によって示されるように、ゲートがトポロジにマッピングされる。罫線入りの紙に似た水平の線のセットが現れ、左から右へのこのようなラインを、量子ワイヤと呼ぶ。量子ワイヤは、単一の量子ビットを表現する。ワイヤの左の表記法は、ワイヤが表現しているのがどの量子ビットかを示し、また各量子ビットが最初は|0〉状態であることを示す。この出力を量子コンピュータから取り出すため、量子ビットは測定されなければならず、ブロック412によって示されるように追加することが可能である。測定は、量子ビットに対して劇的な効果があり、そのためそれ自身が演算と考えられ、測定命令を用いて表現される。測定結果は、古典的なビットとして記録され、量子ワイヤと同じ様式で古典的なワイヤとして描かれる。量子ワイヤおよび古典的なワイヤは、ワイヤの左側の注釈によって区別される。ここで、量子ワイヤは、q[0]、q[1]などとして印がつけられ、古典的なワイヤはc1、c2などとして印がつけられる。測定命令から延びる垂直なワイヤは、量子ワイヤから古典的なワイヤへと流れる情報を描く。量子回路は、ブロック414によって示されるように完成し、ブロック416によって示されるように回路を実行する。バックエンドは、ブロック418によって示されるように選択され、バックエンドとは、量子コンピュータの古典的なシミュレータまたは現実の量子コンピュータのいずれかを指す用語であり、量子システムとも称される。いくつかのショット(例えば、量子回路が実行される回数)は、ブロック420によって示されるように選択される。いったん回路がブロック422によって示されるように実行されると、ブロック424によって示されるように選択されたショットの回数に基づいて、システムは反復を実行する。反復が、もうない場合、ブロック426において実行は完了し、それとともに結果レポートが作り出される。このプロセスを通じて、量子回路は選ばれたゲート/パラメータに従って構築され、実行される。
図5は、量子回路の効率的な量子アダプティブ実行方法の例示的なフローチャートを示す。量子プログラムはジョブと呼ばれ、量子回路のリストから成る。量子回路は、量子コンピュータ(バックエンド)で実行される量子ゲートの順序付けられたリストである。ジョブ中の量子回路は、依存性を有する可能性があり、先行量子回路の結果は、次の量子回路を実行するために利用される。故に、このような実施形態は、様々な特徴およびノイズ品質を伴ういくつかの量子コンピュータのために反復アルゴリズムを最適化する。現況技術では、ユーザは通常、1つの量子コンピュータ内で1つの量子プログラムを実行する。本明細書で開示される実施形態は、多くの可能なバックエンドで(回路に分割された)量子プログラムを分散するために利用可能な量子コンピュータ・バックエンドの使用を容易にする。これは、単一の量子コンピュータで実行される単一の量子プログラムに関連付けられる制約を取り除く。プロセスはブロック502によって示されるように、量子タスクを実行するための量子プログラムを受信する受信コンポーネントで始まり、量子プログラムは第1のプログラムおよび第2のプログラムを含む。ブロック504によって示されるようなアダプティブ・コンパイル・コンポーネントは、第1のプログラムをコンパイルする。ブロック506によって示されるような実行コンポーネントは、コンパイルされた第1のプログラムを実行する。これらの方法は、1つまたは複数の回路入力に印加される1つまたは複数の回路出力を利用する。第1のプログラムは、第1のプログラムからの以前に生成された1つまたは複数の出力に基づいて定められる。第2のプログラムは、第2のプログラムからの以前に受信した1つまたは複数の出力に基づいて定められる。受信コンポーネントは、コンパイルされた第1のプログラムを、第1の量子ハードウェア・デバイスで実行するように適応された第1の再コンパイルされたプログラムへと再コンパイルする。このステップを経て、コンパイルされた第1のプログラムを、第2の再コンパイルされたプログラムへと再コンパイルすることが、第2の量子ハードウェア・デバイスで実行するように適応される。ブロック508によって示されるような第2の受信コンポーネントは、コンパイルされた第1のプログラムを実行することに基づいて出力を受信する。ブロック510によって示されるような第2のアダプティブ・コンパイル・コンポーネントは、第1のプログラムを実行することから受信した出力に基づいて第2のプログラムをコンパイルする。ブロック512によって示されるような第2の実行コンポーネントは、コンパイルされた第2のプログラムを実行する。第2の出力を受信することは、再コンパイルされた第2のプログラムを実行することに基づいており、第2のプログラムをコンパイルすることは、受信した第1の出力または受信した第2の出力のいずれかを選択することに基づいている。この方法を通じて、これらの実施形態は、多くの量子コンピュータを利用して量子プログラムを適応し、異なるバックエンドで実行するプログラムを分割することによって実行時間をスピード・アップし、バックエンドにおける量子回路を作り出す。そのような方法の利点は、実行時間を最適化し、ユーザ/サービスと量子バックエンドとの間のデータの行き来(例えば、ジョブおよび回路)をなくすことができることである。したがって、依存性のあるジョブまたは回路当たりの平均実行時間が低減される。
量子コンピュータの最適化問題を解決するために、VQEまたはQAOAなどの様々なアルゴリズムを使用することができる。VQEアルゴリズムは、大きな行列の固有値を求めるために使用することができる量子/古典ハイブリッドなアルゴリズムである。固有値は、ある条件下で微分方程式が非ゼロの解(固有関数)を持つパラメータの一組の値である。このアルゴリズムは、量子系をシミュレーションするためのハイブリッドな量子-古典的アルゴリズムとして導入されてきた。VQEを使用する量子シミュレーションのいくつかの例として、分子や電子のシュレーディンガー方程式および物性物理学におけるモデル系を解くことが挙げられる。
図6は、変分量子固有値ソルバ(VQE)アルゴリズムのための例示的な量子回路を示す。ヒューリスティックなトレイル状態の準備には、2つのタイプの量子ゲート、つまり回転角θによって定められる604によって示される単一の量子ビットのゲートU(θ)、および量子ビット対に作用する606によって示されるもつれドリフト演算Uentが含まれる。606のブロックは、探索がより大きな空間に達することができるように、ブロック602によって示されるような異なるN個の量子ビットにもつれる。このアルゴリズムはD回繰り返され、より長いプロセスが実行され、システムが最適化するよう学習するパラメータがより多くなる。プロセスの最後に、量子ビットが測定され、0または1を返す。個々の測定は、可能性のある答えを最適化問題に与える。このアルゴリズムが608のθのような固定パラメータでD回実行されてしまうと、最適化は最適な結果を取得するように実行することが可能である。この技術を通じて、アルゴリズムは、二値最適化問題を実行して、連続的な最適化問題にする。QAOAアルゴリズムは、組合せ最適化問題に取り組むよう設計された別のハイブリッドな量子-古典的変分アルゴリズムである。このアルゴリズムは正の整数pに依存し、pが大きくなると近似品質が上がる。このアルゴリズムを実装する量子回路は、ユニタリ・ゲートを有し、回路の深さは制約の数にpを掛けたものに線形に大きくなる。pが固定値で入力サイズとは無関係である場合、アルゴリズムは古典的前処理と呼ばれる効率的な方法を使用する。pが入力サイズとともに大きくなる場合、違う作戦が提案される。これらの実施形態は、VQEまたはQAOAアルゴリズムに限定されず、所与の問題に応じて量子最適化にはあらゆる好適なアルゴリズムを使用することができる。
VQEアルゴリズムでは、1つの量子回路の出力は、別の量子回路の入力の一部であることが可能である。一般には、VQEアルゴリズムは同じバックエンドで実行し、結果を得ることができる。しかしながら、VQEアルゴリズムが分割され、量子回路が異なるバックエンドで実行される場合、最適な結果を取得することが可能である。VQEアルゴリズムは、あらゆるタイプのゲートまたはバックエンドを使用することによって、多様な設定の(異なるエラー・ゲート)異なるバックエンドで実行することが可能である。量子回路は様々な量子ゲートを使用し、エラー・ゲートは利用可能なバックエンドに基づいて変わり得るため、このことは、最終的な結果のパフォーマンスに影響を及ぼす。ユーザによって用意されたコンパイルされた量子回路は、バックエンドの性質、量子ビット(T1、T2、読み出しエラー、周波数など)、および先行技術で定められる他の一般的な性質(冷蔵庫温度、パルスのデフォルト・パラメータなど)を用いて使用することができる(ユーザ入力)。上述のVQEアルゴリズムの例は、ユーザによって書かれた元々の量子回路とともに、そのバックエンド性質を用いて回路をコンパイルするために使用することが可能である。バックエンドの設定は、回路を先行回路の結果とともに実行することが可能である。同一バックエンド内でVQEアルゴリズム(量子プログラム)の多くを実行する代わりに、バックエンドとして使用可能な量子回路へと分割することが可能である(元々の量子プログラムをチェックする)。バックエンドの性質および設定ならびに1つの量子回路の先行する結果は、次のコンパイルに依存性がある。それとともに、システムは、量子回路のためのバックエンド実行を選ぶこと、および全体の実行時間をスピード・アップするために量子プログラムを同時に並列化することが可能である。
図7は、VQE量子古典的アルゴリズムの例示的なフローチャートを示す。上段落で言及したように、VQEアルゴリズムは大きな行列Hの固有値を見つけるために使用することができる量子/古典ハイブリッドなアルゴリズムである。VQEは、所与のハミルトニアンの最小固有値の上限を見つけられるようにする。VQEは、ハイブリッドな量子-古典的アルゴリズムであるため、すべての計算を量子コンピュータと古典的なコンピュータで実行する。計算は、702で示されるような量子処理ユニット(Quantum Processing Unit)で所与のパラメータのセットについての期待値またはエネルギーレベルを計算することによって開始される。パラメータのセットが与えられると、量子状態はブロック704によって示されるように準備される。ブロック706によって示されるような測定項に基づいて、Hの期待値は708によって示されるように計算される。量子プロセッサでこの値を取得すると、ブロック710によって示されるように、古典的なプロセッサで他の最適化が実行される。最も正確な結果を見つけるためにブロック712によって示されるような期待値に対して、平均が計算される。ブロック714によって示されるような最適化手順が実施され、ブロック716によって示されるように、新しいパラメータのセットを見つける。ブロック718によって示されるように、さらなる反復がある場合、プロセスはブロック702から繰り返される。実行すべき反復が、もうない場合、ansatzパラメータの古典的な最適化が、ブロック720によって示されるように作り出される。ansatzは、多くの状態をカバーできるようなものであり、制御と最適化が簡単になるように、有するパラメータの数は、より少ない。この方法論は、反復的な量子位相推定および量子位相推定アルゴリズムに大きな利点を有する。
図8は、本明細書において説明される1つまたは複数の実施形態による、量子コンピューティング・ジョブのアダプティブ・コンパイルを容易にすることが可能な、例示の、非限定的なシステム800の図を示す。本明細書において説明される様々な実施形態において採用される類似の要素またはプロセスあるいはその両方の繰り返しの説明は、簡略化のために省略する。複数の実施形態によると、システムは図8の、例示的で非限定的な代替的実施形態を含むことが可能である。いくつかの実施形態では、このシステム800は、あるエンティティ(例えば、プログラマ、デバイス、コンピュータ、ロボット、機械、人工知能駆動のモジュール、人間など)から量子プログラムを受信することができるインターフェース・コンポーネントJoB System802を含むことが可能である。いくつかの実施形態では、インターフェース・コンポーネント802は、そのような量子プログラムをアダプティブ・コンパイル・コンポーネント806に送信して、図1を参照して上述したような改変された量子プログラム・コンパイルを生成することが可能である。いくつかの実施形態では、量子デバイスは、図1を参照して上述した1つまたは複数の実行基準に基づいて、ブロック808によって示されるような量子ユニットから選択することができる。いくつかの実施形態では、アダプティブ・コンパイル・コンポーネント806は、改変された量子プログラム・コンパイルを、実行順序位置が判定可能なキューにおける改変された量子プログラム・コンパイルの実行順序位置に基づいて、改変された量子プログラム・コンパイルを実行するように選択される量子ユニット808のキューに向けてディスパッチすることが可能である。いくつかの実施形態では、選択コンポーネントによって選択された量子デバイスは、アダプティブ・コンパイル・コンポーネント806によって生成された改変された量子プログラム・コンパイルを実行することが可能であり、インターフェース・コンポーネント802は、そのような実行の結果を管理することができる。例えば、インターフェース・コンポーネント802は、量子プログラムをインターフェース・コンポーネント802にサブミットしたエンティティに結果を返すこと、またはそのような結果を、結果後処理を通じて、例えばメモリ804などのメモリ・デバイスに記憶すること、あるいはその両方を行うことができる。後処理ユニットは、先行回路から取得した結果を分析すること、および次のコンパイルに使用するデータを、第2のプログラム・パラメータとともに記憶することが可能である。結果後処理ユニットは、このロジックを適用して、コンパイラ・ユニットとジョブ・ディスパッチャにプッシュするデータの入力/出力を管理する担当となるユニットである。
いくつかの実施形態では、量子アダプティブ実行システムは、様々な技術と関連付けられる可能性がある。例えば、量子アダプティブ・コンパイル・システムは、古典的なコンパイラ技術、量子ベースのコンパイラ技術、古典的なコンピュータ・ワークロード・スケジューリング技術、量子コンピュータ・ワークロード・スケジューリング技術、量子力学的な技術、量子計算技術、量子コンピュータ技術、量子ハードウェアもしくはソフトウェアまたはその両方の技術、量子シミュレータ技術、古典ドメインもしくは量子ドメインまたはその両方のデータ処理技術、機械学習技術、人工知能技術、または他の技術、あるいはその組合せと関連付けられてもよい。
いくつかの実施形態では、量子アダプティブ実行システムは、技術的改善をシステム、デバイス、コンポーネント、動作ステップ、または上で特定した様々な技術に関連付けられる処理ステップあるいはその組合せに提供することが可能である。例えば、量子アダプティブ・コンパイル・システムは、1つまたは複数の量子デバイス(例えば、量子デバイスの1つまたは複数の属性、例えば、設定、性質、利用可能性などを分析することができる)、ならびに1つまたは複数の量子プログラム(例えば、そのような量子デバイスで実行されるのを待機している次の量子プログラム)を分析することができ、特定の量子プログラムの1つまたは複数の要素(例えば、量子回路、パルス・スケジュールなど)をさらに改変して、特定の瞬間に特定の量子デバイス(例えば、次に利用可能な量子デバイス、他の量子デバイスに対して相対的に最高レベルの信頼性を有する量子デバイスなど)上で、そのような量子プログラムの実行を可能にすることができる。この例では、量子アダプティブ・コンパイル・システムは、次のようなことができる:a)量子プログラムを受信すること(例えば、インターフェース・コンポーネント802を介して)、b)実行すべき回路と利用可能なバックエンド(例えば、量子デバイス)を分析すること、またはc)(例えば、受信した量子プログラムの1つまたは複数の要素を改変することによって)改変された、利用可能なバックエンドの次の反復で実行する準備ができる量子プログラム・コンパイルを生成すること、あるいはその組合せ。したがって、この例では、量子アダプティブ・コンパイル・システムは、量子アダプティブ・コンパイル・システムにサブミットされた特定の量子プログラムの実行時間の低減を容易にすること、または量子アダプティブ・コンパイル・システムにサブミットされた量子プログラムの機能で、量子デバイスのワークロードのバランスをとって(例えば、量子デバイスのレイテンシを低減する)それぞれのデバイスの使用を安定化できるようにする、あるいはその両方を可能にする。
いくつかの実施形態では、量子アダプティブ実行システムは、技術的改善を、古典的なコンピューティング・デバイスまたは量子コンピューティング・デバイス(例えば、量子プロセッサ、量子ハードウェア、超伝導回路など)あるいはその両方に関連付けられる処理ユニット(例えば、プロセッサ)に提供する。例えば、特定の時間に特定の量子デバイスによって実行することが可能な改変された量子プログラム・コンパイルを生成するために、受信した量子プログラム(例えば、量子回路、パルス・スケジュールなど)の1つまたは複数の要素のコンパイル(例えば、プログラミング言語変換)または改変あるいはその両方を実行することによって、量子アダプティブ・コンパイル・システムは、量子アダプティブ・コンパイル・システムにサブミットされた特定の量子プログラムの実行時間の低減、または量子デバイスのレイテンシの低減あるいはその両方を容易にし、それによってそのような量子デバイスに関連付けられる処理ユニット(例えば、プロセッサ)の効率またはパフォーマンスあるいはその両方を改善することができる。
いくつかの実施形態では、性質として高度に技術的であり、抽象的ではなく、また人間による精神的活動のセットとして実施することができない問題を解決するために、量子アダプティブ実行システムは、ハードウェアまたはソフトウェアを採用することができる。いくつかの実施形態では、本明細書で説明されるプロセスのうちの1つまたは複数は、上で特定した様々な技術に関連して定められたタスクを実行するように、1つまたは複数の特殊化されたコンピュータ(例えば、特殊化された処理ユニット、特殊化された古典的なコンピュータ、特殊化された量子コンピュータなど)によって実行することが可能である。いくつかの実施形態では、量子アダプティブ・コンパイル・システム、またはそのコンポーネントあるいはその両方は、上述の技術の進歩、量子コンピューティング・システム、クラウド・コンピューティング・システム、コンピュータ・アーキテクチャ、または別の技術あるいはその組合せの利用により生じる新しい問題を解決するために利用することが可能である。
本明細書で説明されるような量子アダプティブ・コンパイル・システムまたはそのコンポーネントあるいはその組合せによって実行可能な様々な演算は、人間の頭の能力よりも規模の大きい演算であるため、量子アダプティブ・コンパイル・システムは、電気的コンポーネント、機械的コンポーネント、および人間の頭の中で再現できないか人間によって実行することができない回路の様々な組合せを利用することが可能であることを諒解されたい。例えば、特定の期間に、処理されるデータ量、そのようなデータを処理する速度、または量子アダプティブ・コンパイル・システムによって処理されるデータのタイプは、その同じ期間に人間の頭によって処理することができる量、速度、またはデータ・タイプよりも、大きく、高速で様々であることができる。
いくつかの実施形態によると、量子アダプティブ・コンパイル・システムは、本明細書で説明される様々な動作も実行しつつ、1つまたは複数の他の機能を実行するために、フル稼働であることもできる(例えば、常に電源オンにする、常に実行する、など)。そのような同時的でマルチ動作の実行は、人間の頭の能力を超えたものであると諒解すべきである。量子アダプティブ・コンパイル・システムは、人間のユーザなどのエンティティによって手作業で取得することが不可能な情報を含むことが可能であることも諒解されたい。例えば、量子アダプティブ・コンパイル・システム、受信コンポーネント108、アダプティブ・コンパイル・コンポーネント110、実行コンポーネント112、第2の受信コンポーネント214、第2のアダプティブ・コンパイル・コンポーネント216、第2の実行コンポーネント218、または量子デバイス、あるいはその組合せに含まれる情報のタイプ、量、または多様性、あるいはその組合せは、人間のユーザなどのエンティティによって手作業で取得される情報よりも複雑であることが可能である。
開示される主題の様々な態様についてのコンテキストを与えるために、図9ならびに以下の議論は、開示される主題の様々な態様が実装され得る好適な環境の一般的な説明を与えるよう意図されている。図9は、本明細書において説明される1つまたは複数の実施形態が容易にされ得る、例示の、非限定的な動作環境のブロック図を示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡略化のために省略する。
図9を参照すると、本開示の様々な態様を実装するための好適な動作環境900はまたコンピュータ912を含むことができる。コンピュータ912はまた処理ユニット914、システム・メモリ916、およびシステム・バス918を含むことができる。システム・バス918は、システム・メモリ916を含むがそれに限定されないシステム・コンポーネントを処理ユニット914に結合する。処理ユニット914は様々な利用可能なプロセッサのうちの任意のものであることができる。デュアル・マイクロプロセッサおよび他のマルチプロセッサ・アーキテクチャが、やはり処理ユニット914として採用され得る。システム・バス918は、メモリ・バスもしくはメモリ・コントローラ、周辺バスもしくは外部バスを含むいくつかのタイプのバス構造、またはインダストリアル・スタンダード・アーキテクチャ(ISA)、マイクロチャネル・アーキテクチャ(MSA)、拡張ISA(EISA)、Intelligent Drive Electronics(IDE)、VESAローカル・バス(VLB)、Peripheral Component Interconnect(PCI)、カード・バス、ユニバーサル・シリアル・バス(USB)、Advanced Graphics Port(AGP)、ファイヤワイヤ(IEEE1394)、およびSmall Computer Systems Interface(SCSI)を含むがそれに限定されないあらゆる多様な利用可能なバス・アーキテクチャを使用するローカル・バス、あるいはその組合せのうちの任意のものであることができる。
システム・メモリ916はまた揮発性メモリ920および非揮発性メモリ922を含むことができる。スタートアップの間など、コンピュータ912内の要素間で情報を伝送するための基本的なルーチンを含んでいるBasic Input/Output System(BIOS)は、非揮発性メモリ922に記憶される。コンピュータ912はまたリムーバブル/非リムーバブルの、揮発性/非揮発性のコンピュータ記憶媒体を含むことができる。例えば、図9はディスク・ストレージ924を図示している。ディスク・ストレージ924はまた、磁気ディスク・ドライブ、フロッピー(R)・ディスク・ドライブ、テープ・ドライブ、Jazドライブ、Zipドライブ、LS-100ドライブ、フラッシュ・メモリ・カード、またはメモリ・スティックのようなデバイスを含むことができるがそれに限定されない。ディスク・ストレージ924はまた、記憶メディアを、別個に、または他の記憶メディアと組み合わせて含むことが可能である。システム・バス918へのディスク・ストレージ924の接続を容易にするために、典型的にはインターフェース926などのリムーバブルまたは非リムーバブルのインターフェースが使用される。図9はまたユーザと好適な動作環境900内で説明される基本的なコンピュータ・リソースとの間で中間的なものとして機能するソフトウェアを描写している。そのようなソフトウェアはまた、例えばオペレーティング・システム928を含むことができる。ディスク・ストレージ924に記憶することができるオペレーティング・システム928は、コンピュータ912のリソースを制御して割り当てるよう作用する。
システム・アプリケーション930は、例えばシステム・メモリ916またはディスク・ストレージ924のいずれかに記憶されるプログラム・モジュール932およびプログラム・データ934を通じて、オペレーティング・システム928によるリソースの管理を活用する。本開示は様々なオペレーティング・システムまたはオペレーティング・システムの組合せにより実装することができることを諒解されたい。ユーザはコマンドまたは情報を、入力デバイス936を通じてコンピュータ912に入力する。入力デバイス936としては、マウスなどのポインティング・デバイス、トラックボール、スタイラス、タッチ・パッド、キーボード、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星放送受信アンテナ、スキャナ、TVチューナ・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、ウェブ・カメラなどが挙げられるが、それに限定しない。これらのデバイス、および他の入力デバイスは、インターフェース・ポート938を介してシステム・バス918を通じて処理ユニット914に接続する。インターフェース・ポート938は、例えばシリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス(USB)を含む。出力デバイス940は、入力デバイス936と同一のタイプのポートのうちいくつかを使用する。したがって、例えばUSBポートはコンピュータ912に入力を与えるため、およびコンピュータ912から出力デバイス940に情報を出力するために、使用することができる。出力アダプタ942は、他の出力デバイス940の中でもとりわけ特別なアダプタを必要とする、モニタ、スピーカ、およびプリンタなどのいくつかの出力デバイス940があることを示すために与えられる。出力アダプタ942は、例示として、限定ではなく、出力デバイス940とシステム・バス918との間の接続の手段を提供するビデオ・カードおよびサウンド・カードを含む。リモート・コンピュータ944など、他のデバイスまたはデバイスのシステムあるいはその両方は、入力機能および出力機能の両方を提供することに留意すべきである。
コンピュータ912は、リモート・コンピュータ944などの1つまたは複数のリモート・コンピュータへの論理接続を使用してネットワーク化された環境で動作することができる。リモート・コンピュータ944は、コンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサ・ベースの電化製品、ピア・デバイス、または他の共通のネットワーク・ノードなどであってもよく、また典型的にはコンピュータ912に対して説明される要素の多くまたはすべてを含むこともできる。簡略化のため、メモリ・ストレージ・デバイス946のみをリモート・コンピュータ944とともに図示する。リモート・コンピュータ944は、ネットワーク・インターフェース948を通じてコンピュータ912に論理的に接続しており、次に通信接続950を介して物理的に接続されている。ネットワーク・インターフェース948は、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、セルラ・ネットワークなど有線または無線あるいはその両方の通信ネットワークを包含している。LAN技術としては、Fiber Distributed Data Interface(FDDI)、Copper Distributed Data Interface(CDDI)、イーサネット(R)、トークン・リング、などが挙げられる。WAN技術としては、ポイントツーポイント・リンク、サービス総合デジタル網(ISDN)などの回路交換ネットワークおよびそれらのバリエーション、パケット交換ネットワーク、ならびにデジタル加入者線(DSL)が挙げられるが、それに限定しない。通信接続950とは、ネットワーク・インターフェース948をシステム・バス918に接続するために採用されるハードウェア/ソフトウェアを称する。通信接続950は、明瞭に図示するためにコンピュータ912の内部に示してあるが、コンピュータ912の外部にあってもよい。ネットワーク・インターフェース948への接続のためのハードウェア/ソフトウェアとしてはまた、単なる例示目的で、一般電話機グレード・モデムを含むモデム、ケーブル・モデムおよびDSLモデム、ISDNアダプタ、ならびにイーサネット(R)・カードなどの内部的技術および外部的技術を挙げることができる。
次に図10を参照すると、例示的なクラウド・コンピューティング環境1050が描写されている。示されるように、クラウド・コンピューティング環境1050は、例えば、携帯情報端末(PDA)または携帯電話1054A、デスクトップ・コンピュータ1054B、ラップトップ・コンピュータ1054C、または自動車コンピュータ・システム1054Nあるいはその組合せなど、クラウドの消費者によって使用されるローカルのコンピューティング・デバイスと通信することができる1つまたは複数のクラウド・コンピューティング・ノード1010を含む。図10に図示されてはいないが、クラウド・コンピューティング・ノード1010は、クラウド消費者によって使用されるローカルのコンピューティング・デバイスが通信可能な量子プラットフォーム(例えば、量子コンピュータ、量子ハードウェア、量子ソフトウェアなど)をさらに含むことが可能である。ノード1010は互いに通信することができる。本明細書において上述したようなローカル、コミュニティ、パブリック、もしくはハイブリッドのクラウド、またはその組合せなどの、1つまたは複数のネットワークにおいて、ノードは物理的に、または仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境1050は、クラウドの消費者がローカルのコンピューティング・デバイスでリソースを維持する必要のない、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せをサービスとして提供することができる。図10に示されるコンピューティング・デバイス1054A~Nのタイプは、単に例示的であることを意図されており、コンピューティング・ノード1010およびクラウド・コンピューティング環境1050は、あらゆるタイプのネットワーク上またはネットワーク・アドレス可能接続で(例えば、ウェブ・ブラウザを使用して)、あるいはその両方で、あらゆるタイプのコンピュータ化されたデバイスと通信することができることが理解されよう。
図11を参照すると、クラウド・コンピューティング環境1100(図11)によって提供される機能的な抽象化レイヤのセットが示されている。図11に示されるコンポーネント、レイヤ、および機能は、単に例示的であることを意図されており、本発明の実施形態はそれに限定されないことが、予め理解されるべきである。描写されるように、以下のレイヤおよび対応する機能が提供される。
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、以下が挙げられる:メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66。いくつかの実施形態では、ソフトウェア・コンポーネントとしては、ネットワーク・アプリケーション・サーバ・ソフトウェア67、量子プラットフォーム・ルーティング・ソフトウェア68、または量子ソフトウェア(図11には図示せず)、あるいはその組合せを挙げることができる。
仮想化レイヤ70は、仮想エンティティの以下の例が提供され得る抽象化レイヤを提供する:仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75。
一例において、管理レイヤ80は以下で説明される機能を提供することができる。リソース・プロビジョニング81は、コンピューティング・リソースおよびクラウド・コンピューティング環境内でタスクを実施するために利用される他のリソースの動的な調達を提供する。計測および課金82は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費についての課金または請求書発行を提供する。一例において、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含む場合がある。セキュリティは、クラウド消費者およびタスクについての識別情報の検証、ならびにデータおよび他のリソースについての保護を提供する。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセスを消費者およびシステム管理者に提供する。サービス水準管理84は、要求されるサービス水準が満たされるように、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス水準合意(SLA)計画および遂行85は、SLAに従って将来的な要求が予期されるクラウド・コンピューティング・リソースについての事前申し合わせ、およびクラウド・コンピューティング・リソースの調達を提供する。
ワークロード・レイ90はクラウド・コンピューティング環境が利用され得る機能性の例を提供する。このレイヤからもたらされ得るワークロードおよび機能の非限定的な例として以下が挙げられる:マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想授業教育配信93、データ分析処理94、トランザクション処理95、および量子状態準備ソフトウェア96。
本発明は、統合のあらゆる可能な技術的詳細レベルにおいてシステム、方法、装置、またはコンピュータ・プログラム製品あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含むことができる。コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述のあらゆる好適な組合せであってもよいが、それに限定はしない。コンピュータ可読記憶媒体のより具体的な例の非網羅的な列挙としては、さらに以下を挙げることができる:ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、命令を記録されて有するパンチカードまたは溝に刻まれた構造などの機械的にエンコードされたデバイス、および前述のあらゆる好適な組合せ。本明細書において使用される場合、コンピュータ可読記憶媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の送信媒体を介して伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を介して伝送される電気的信号など、一過性の信号そのものであると解釈されてはならない。
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、個別のコンピューティング/処理デバイスに、あるいは、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組合せなどのネットワークを介して、外部のコンピュータまたは外部のストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅の送信ケーブル、光学送信ファイバ、無線送信、ルータ、ファイヤウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを備えることができる。それぞれのコンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、個別のコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための設定データ、あるいはスモールトーク(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語などの手続き型プログラミング言語もしくは類似するプログラミング言語、を含む1つまたは複数のプログラミング言語のあらゆる組合せで記述された、ソース・コードまたはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、すべてユーザのコンピュータ上で、一部はユーザのコンピュータ上でスタンドアロンのソフトウェア・パッケージとして、一部はユーザのコンピュータ上で一部はリモート・コンピュータ上で、またはすべてリモート・コンピュータ上もしくはサーバ上で、実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含むあらゆるタイプのネットワークを介してユーザのコンピュータに接続することができ、または接続は外部のコンピュータ(例えば、インターネット・サービス・プロバイダを使用するインターネットを介して)に対してなされてもよい。一部の実施形態において、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路をカスタマイズすることができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら本明細書において説明される。フローチャート図またはブロック図あるいはその両方のそれぞれのブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることを理解されたい。これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実装する手段を作成すべく、汎用コンピュータ、特殊目的コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作るものであってよい。これらのコンピュータ可読プログラム命令はまた、命令を記憶して有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実装するための命令を含む製造物品を備えるべく、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに特定のやり方で機能するように指示するものであってもよい。コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実装するように、コンピュータ実装処理を作るべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作可能な機能を実施させるものであってもよい。
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能性、および動作を図示している。この点において、フローチャートまたはブロック図のそれぞれのブロックは、指定される論理機能を実装するための1つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表現することができる。一部の代替的な実装形態において、ブロックにおいて示した機能は図面で示した順とは異なって発生してもよい。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行されてもよく、またはブロックは関与する機能性によっては、時に逆の順で実行されてもよい。ブロック図またはフローチャート図あるいはその両方のそれぞれのブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定される機能もしくは作用を実施する、または特殊目的ハードウェアとコンピュータ命令との組合せを実行する、特殊目的ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
1つまたは複数のコンピュータで実行するコンピュータ・プログラム製品のコンピュータ実行可能命令の一般的なコンテキストにおいて、主題を上で説明してきたが、当業者であれば、本開示はまた他のプログラム・モジュールと組み合わせて実装することができるか、または実装され得ることを理解されよう。一般的に、プログラム・モジュールは、特定のタスクを実施するか、または特定の抽象的なデータ・タイプを実装するか、あるいはその両方のルーチン、プログラム、コンポーネント、データ構造などを含む。その上、当業者であれば、本発明のコンピュータ実装方法は、単一プロセッサまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータ、ならびにコンピュータ、ハンドヘルド・コンピューティング・デバイス(例えば、PDA、電話機)、マイクロプロセッサ・ベースまたはプログラマブルの、家庭用または業務用電子機器など、を含む他のコンピュータ・システム構成で実践できることを諒解されよう。図示した態様はまた、タスクが通信ネットワークを通じてリンクされたリモート処理デバイスによって実施される分散コンピューティング環境において実践することができる。しかしながら、本開示の、すべてでないにしても一部の態様は、スタンドアロンのコンピュータで実践することができる。分散コンピューティング環境において、プログラム・モジュールはローカルおよびリモートの両方のメモリ・ストレージ・デバイスに配置することができる。
本出願で使用される場合、用語「コンポーネント」、「システム」、「プラットフォーム」、「インターフェース」などは、コンピュータ関連のエンティティ、または1つもしくは複数の特別な機能性を伴う動作可能な機械に関連するエンティティを称することができるか、または含むことができるか、あるいはその両方である。本明細書において開示されるエンティティは、ハードウェア、ハードウェアとソフトウェアとの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかであることができる。例えば、コンポーネントは、プロセッサで実行中のプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、またはコンピュータあるいはその組合せであることができるが、それに限定しない。例示として、サーバ上で実行中のアプリケーションおよびサーバの両方は、コンポーネントであることができる。1つまたは複数のコンポーネントは、プロセスまたは実行のスレッドあるいはその両方の中に存在することができ、また、コンポーネントは1つのコンピュータに集中してもよく、または2つ以上のコンピュータ間で分散されてもよく、あるいはその両方であってもよい。別の例において、個々のコンポーネントは様々なデータ構造が記憶された様々なコンピュータ可読媒体から実行することができる。コンポーネントは、1つまたは複数のデータ・パケットを有する信号に従うなど、ローカルまたはリモートのプロセスあるいはその両方のプロセスを介して通信することができる(例えば、信号を介して他のシステムと対話するインターネットのように、1つのコンポーネントからのデータは、ローカル・システム内で、分散システム内で、またはネットワーク間で、あるいはその組合せで、別のコンポーネントと対話する)。別の例として、コンポーネントは、電気的または電子的な回路によって動作させられる機械的な部品によって与えられる特別な機能性を有する装置であることができ、プロセッサによって実行されるソフトウェアまたはファームウェア・アプリケーションによって動作させられる。そのような場合、プロセッサは装置に対して内部または外部にあることができ、ソフトウェアまたはファームウェア・アプリケーションの少なくとも一部を実行することができる。さらに別の例として、コンポーネントは機械的な部品無しに電子機器部品を通じて特別な機能性を提供する装置であることができ、この場合、電子機器部品は、電子機器部品の機能性を少なくとも一部付与するソフトウェアまたはファームウェアを実行するためのプロセッサまたは他の手段を含むことができる。一態様において、コンポーネントは例えば、クラウド・コンピューティング・システム内で仮想機械を介して電子機器部品をエミューレートすることができる。
加えて、用語「または(or)」は、排他的「or」ではなく包括的「or」を意味することを意図されている。すなわち、特に明記しない限り、またはコンテキストから明らかではない限り、「Xは、AまたはBを利用する」とは、自然包括的並べ替えのうちの任意のものを意味することを意図されている。すなわち、XがAを利用する、XがBを利用する、またはXがAおよびBを両方利用する場合、「XがAまたはBを利用する」が前述の事例のいずれかの下で満足される。その上、本主題の明細書および添付される図面内で使用される場合、冠詞「1つの(a)」および「1つの(an)」は、単数形を対象とするよう特に明記しない限り、またはコンテキストから明らかではない限り、一般的に「1つまたは複数の」を意味するものと解釈されるべきである。本明細書において使用される場合、用語「例、例示の、例示的な(example)」または「例示の(exemplary)」あるいはその両方は、例、事例、または図示として機能することを意味するよう利用される。疑念の回避のため、本明細書において開示される主題はそのような例によって限定されない。加えて、本明細書において「例」または「例示の」あるいはその両方として説明されるあらゆる態様または設計は、必ずしも他の態様または設計よりも、好ましいまたは有利であるとして解釈される必要はなく、また当業者に既知の等価な例示の構造および技術を排除することも意図されていない。
主題の明細書で採用されるように、用語「プロセッサ」は実質的に、シングルコア・プロセッサ、ソフトウェア・マルチスレッド実行機能を有するシングルプロセッサ、マルチコア・プロセッサ、ソフトウェア・マルチスレッド実行機能を有するマルチコア・プロセッサ、ハードウェア・マルチスレッド技術を有するマルチコア・プロセッサ、並列プラットフォーム、および分散共有メモリを有する並列プラットフォーム、を備えるあらゆるコンピューティング処理ユニットまたはデバイスを称することができるが、限定はしない。追加的に、プロセッサとは、集積回路、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、プログラマブル・ロジック・コントローラ(PLC)、複合プログラマブル・ロジック・デバイス(CPLD)、個別ゲートもしくはトランジスタ・ロジック、個別ハードウェア・コンポーネント、または本明細書において説明される機能を実施するために設計されるそれらのあらゆる組合せを称することができる。さらには、プロセッサは空間使用を最適化するためまたはユーザ機器のパフォーマンスを向上させるために、分子および量子ドット・ベースのトランジスタ、スイッチ、ならびにゲートなどのナノスケールのアーキテクチャを活用することができるが、限定はしない。プロセッサはまたコンピューティング処理ユニットの組合せとして実装され得る。本開示において、「記憶する」、「ストレージ」、「データ記憶」、「データ・ストレージ」、「データベース」ならびにコンポーネントの動作および機能性に関連する実質的にあらゆる他の情報記憶コンポーネントなどの用語は、「メモリ」内に具体化される「メモリ・コンポーネント」エンティティまたはメモリを含むコンポーネントを称するために利用される。本明細書において説明されるメモリまたはメモリ・コンポーネントあるいはその両方は、揮発性メモリまたは非揮発性メモリのいずれかであることができるか、または揮発性メモリおよび非揮発性メモリの両方を含むことができることを諒解されたい。例示として、限定ではなく、非揮発性メモリは、読み取り専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能ROM(EEPROM)、フラッシュ・メモリ、または非揮発性ランダム・アクセス・メモリ(RAM)(例えば、強誘電RAM(FeRAM))を含むことができる。揮発性メモリは例えば外部キャッシュ・メモリとして動作できるRAMを含むことができる。例示として、限定ではなく、RAMは、シンクロナスRAM(SRAM)、動的RAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブル・データ・レートSDRAM(DDR SDRAM)、エンハンストSDRAM(ESDRAM)、シンクリンクDRAM(SLDRAM)、direct Rambus RAM(DRRAM)、direct Rambus dynamic RAM(DRDRAM)、およびRambus dynamic RAM(RDRAM)などの多くの形態で利用可能である。追加的に、本明細書におけるシステムまたはコンピュータ実装方法の開示されるメモリ・コンポーネントは、これらのおよびあらゆる他の好適なタイプのメモリを含むことを意図されているが、それらを含むように限定することは意図されていない。
上で説明してきたことは、システムおよびコンピュータ実装方法の単なる例を含む。もちろん、本開示を説明することを目的として、コンポーネントまたはコンピュータ実装方法のすべての考えられる組合せを説明することは不可能だが、当業者であれば本開示の多くのさらなる組合せおよび並べ替えが可能であることを理解されよう。さらには、発明を実施するための形態、特許請求の範囲、付録および図面において用語「含む(includes)」、「有する(has)」、「所有する(possesses)」などが使用される範囲では、そのような用語は、請求項の移行句として採用される場合に「を備える(comprising)」が解釈される場合の用語「を備える(comprising)」と類似するやり方で、包括的であることを意図されている。
例示を目的として様々な実施形態の説明を提示してきたが、網羅的であること、または開示された実施形態に限定することは意図されていない。説明された実施形態の範囲および思想から逸脱することなく、多くの変更形態および変形形態が当業者にとって明らかとなろう。本明細書において使用される用語法は、実施形態の原理、実践的な用途もしくは市場で見られる技術より優れた技術的な改善を最良に説明するため、または当業者の他の者が本明細書において開示される実施形態を理解できるように選ばれたものである。

Claims (25)

  1. システムであって、
    コンピュータ実行可能コンポーネントを記憶するメモリと、
    前記メモリに記憶された、前記コンピュータ実行可能コンポーネントを実行するプロセッサであって、前記コンピュータ実行可能コンポーネントが
    量子タスクを実行するための量子プログラムを受信する受信コンポーネントであり、前記量子プログラムが第1のプログラムおよび第2のプログラムを含む、前記受信コンポーネントと、
    前記第1のプログラムをコンパイルするアダプティブ・コンパイル・コンポーネントと、
    前記コンパイルされた第1のプログラムを実行する実行コンポーネントと、
    前記コンパイルされた第1のプログラムを実行することに基づいて出力を受信する第2の受信コンポーネントと、
    前記第1のプログラムを実行することから前記受信した出力に基づいて前記第2のプログラムをコンパイルする第2のアダプティブ・コンパイル・コンポーネントと、
    前記コンパイルされた第2のプログラムを実行する第2の実行コンポーネントと
    を含む、前記プロセッサと
    を備える、システム。
  2. 判定コンポーネントをさらに含み、前記判定コンポーネントが、1つまたは複数の回路入力に印加される1つまたは複数の回路出力を利用する、請求項1に記載のシステム。
  3. 前記第1のプログラムが、前記第1のプログラムからの以前に生成された1つまたは複数の出力に基づいて定められる、請求項1または2に記載のシステム。
  4. 前記第2のプログラムが、前記第2のプログラムからの以前に受信した1つまたは複数の出力に基づいて定められる、請求項1ないし3のいずれかに記載のシステム。
  5. 前記受信コンポーネントが、前記コンパイルされた第1のプログラムを、第1の量子ハードウェア・デバイスで実行するように適応された第1の再コンパイルされたプログラムへと再コンパイルする、請求項1ないし4のいずれかに記載のシステム。
  6. 前記第1の出力を受信することが、前記再コンパイルされた第1のプログラムを実行することに基づく、請求項5に記載のシステム。
  7. 前記コンパイルされた第1のプログラムを、第2の再コンパイルされたプログラムへと再コンパイルすることが、第2の量子ハードウェア・デバイスで実行するように適応される、請求項5または6に記載のシステム。
  8. 第2の出力を受信することが、前記再コンパイルされた第2のプログラムを実行することに基づく、請求項7に記載のシステム。
  9. 前記第2のプログラムをコンパイルすることが、前記受信した第1の出力または前記受信した第2の出力のいずれかを選択することに基づいている、請求項1ないし8のいずれかに記載のシステム。
  10. コンピュータ実装方法であって、
    量子タスクを実行するための量子プログラムに動作可能に連結されたシステムによって受信することであって、前記量子プログラムが第1のプログラムおよび第2のプログラムを含む、前記受信することと、
    前記システムによって、前記第1のプログラムをコンパイルすることと、
    前記システムによって、前記コンパイルされた第1のプログラムを実行することと、
    前記システムによって、前記コンパイルされた第1のプログラムを実行することに基づいて出力を受信することと、
    前記システムによって、前記第1のプログラムを実行することから前記受信した出力に基づいて前記第2のプログラムをコンパイルすることと、
    前記システムによって、前記コンパイルされた第2のプログラムを実行することと
    を含む、コンピュータ実装方法。
  11. 前記システムによって、1つまたは複数の回路入力に印加される1つまたは複数の回路出力を判定すること
    をさらに含む、請求項10に記載のコンピュータ実装方法。
  12. 前記システムによって、前記第1のプログラムからの以前に生成された1つまたは複数の出力に基づいて定められる前記第1のプログラムを利用すること
    をさらに含む、請求項10または11に記載のコンピュータ実装方法。
  13. 前記システムによって、前記第2のプログラムからの以前に受信した1つまたは複数の出力に基づいて定められる前記第2のプログラムを利用すること
    をさらに含む、請求項10ないし12のいずれかに記載のコンピュータ実装方法。
  14. 前記システムによって、前記コンパイルされた第1のプログラムを、第1の量子ハードウェア・デバイスで実行するように適応された第1の再コンパイルされたプログラムへと再コンパイルすること
    をさらに含む、請求項10ないし13のいずれかに記載のコンピュータ実装方法。
  15. 前記システムによって、前記再コンパイルされた第1のプログラムを実行することに基づいて前記第1の出力を受信すること
    をさらに含む、請求項14に記載のコンピュータ実装方法。
  16. 前記システムによって、前記コンパイルされた第1のプログラムを、第2の量子ハードウェア・デバイスで実行するように適応された第2の再コンパイルされたプログラムへと再コンパイルすること
    をさらに含む、請求項10ないし15のいずれかに記載のコンピュータ実装方法。
  17. 前記システムによって、前記再コンパイルされた第2のプログラムを実行することに基づいて第2の出力を受信すること
    をさらに含む、請求項16に記載のコンピュータ実装方法。
  18. 前記システムによって、前記受信された第1の出力または前記受信された第2の出力のいずれかを選択することに基づいて、前記第2のプログラムをコンパイルすること
    をさらに含む、請求項10ないし17のいずれかに記載のコンピュータ実装方法。
  19. 量子回路の量子アダプティブ実行を容易にするコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、プログラム命令が具体化されたコンピュータ可読記憶媒体を含み、プロセッサによって実行可能な前記プログラム命令は、前記プロセッサに
    前記プロセッサによって、量子タスクを実行するための量子プログラムを受信することであって、前記量子プログラムが第1のプログラムおよび第2のプログラムを含む、前記受信することと、
    前記プロセッサによって、前記第1のプログラムをコンパイルすることと、
    前記プロセッサによって、前記コンパイルされた第1のプログラムを実行することと、
    前記プロセッサによって、前記コンパイルされた第1のプログラムを実行することに基づいて出力を受信することと、
    前記プロセッサによって、前記第1のプログラムを実行することから前記受信した出力に基づいて前記第2のプログラムをコンパイルすることと、
    前記プロセッサによって、前記コンパイルされた第2のプログラムを実行することと
    を行わせる、コンピュータ・プログラム製品。
  20. 前記プログラム命令が、前記プロセッサによってさらに実行可能であり、前記プロセッサに
    前記プロセッサによって、1つまたは複数の回路入力に印加される1つまたは複数の回路出力を判定すること
    を行わせる、請求項19に記載のコンピュータ・プログラム製品。
  21. 前記プログラム命令が、前記プロセッサによってさらに実行可能であり、前記プロセッサに
    前記プロセッサによって、前記第1のプログラムからの以前に生成された1つまたは複数の出力に基づいて定められる前記第1のプログラムを利用すること
    を行わせる、請求項19または20に記載のコンピュータ・プログラム製品。
  22. 前記プログラム命令が、前記プロセッサによってさらに実行可能であり、前記プロセッサに
    前記プロセッサによって、前記第2のプログラムからの以前に受信した1つまたは複数の出力に基づいて定められる前記第2のプログラムを利用すること
    を行わせる、請求項19ないし21のいずれかに記載のコンピュータ・プログラム製品。
  23. 前記プログラム命令が、前記プロセッサによってさらに実行可能であり、前記プロセッサに
    前記プロセッサによって、前記コンパイルされた第1のプログラムを、第1の量子ハードウェア・デバイスで実行するように適応された第1の再コンパイルされたプログラムへと再コンパイルすること
    を行わせる、請求項19ないし22のいずれかに記載のコンピュータ・プログラム製品。
  24. 前記プログラム命令が、前記プロセッサによってさらに実行可能であり、前記プロセッサに
    前記プロセッサによって、前記再コンパイルされた第1のプログラムを実行することに基づいて前記第1の出力を受信すること
    を行わせる、請求項23に記載のコンピュータ・プログラム製品。
  25. 前記プログラム命令が、前記プロセッサによってさらに実行可能であり、前記プロセッサに
    前記プロセッサによって、前記コンパイルされた第1のプログラムを、第2の量子ハードウェア・デバイスで実行するように適応された第2の再コンパイルされたプログラムへと再コンパイルすること
    を行わせる、請求項19ないし24のいずれかに記載のコンピュータ・プログラム製品。
JP2022559732A 2020-04-28 2021-04-19 量子回路のための効率的な量子アダプティブ実行方法 Pending JP2023523143A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/860,644 US11194554B2 (en) 2020-04-28 2020-04-28 Efficient quantum adaptive execution method for quantum circuits
US16/860,644 2020-04-28
PCT/EP2021/060018 WO2021219408A1 (en) 2020-04-28 2021-04-19 Efficient quantum adaptive execution method for quantum circuits

Publications (1)

Publication Number Publication Date
JP2023523143A true JP2023523143A (ja) 2023-06-02

Family

ID=75588223

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022559732A Pending JP2023523143A (ja) 2020-04-28 2021-04-19 量子回路のための効率的な量子アダプティブ実行方法

Country Status (10)

Country Link
US (1) US11194554B2 (ja)
EP (1) EP4143749A1 (ja)
JP (1) JP2023523143A (ja)
KR (1) KR20220149545A (ja)
CN (1) CN115461763A (ja)
AU (1) AU2021263793B2 (ja)
BR (1) BR112022021761A2 (ja)
CA (1) CA3173081A1 (ja)
IL (1) IL296191A (ja)
WO (1) WO2021219408A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11663291B2 (en) * 2020-06-12 2023-05-30 Accenture Global Solutions Limited Quantum computation for cost optimization problems
US11539796B2 (en) * 2020-07-08 2022-12-27 Bank Of America Corporation System for intelligent sensor data transfer and device manipulation leveraging quantum optimization engine
US20220405132A1 (en) * 2021-06-17 2022-12-22 Multiverse Computing S.L. Method and system for quantum computing
WO2022267854A1 (zh) * 2021-06-23 2022-12-29 合肥本源量子计算科技有限责任公司 量子计算任务处理方法、系统、装置及操作系统
CN115470926B (zh) * 2022-02-28 2023-12-12 本源量子计算科技(合肥)股份有限公司 量子计算任务的处理装置、方法及量子计算机
CN115618955B (zh) * 2022-12-19 2023-04-07 量子科技长三角产业创新中心 一种量子线路优化方法、装置、设备及存储介质
CN115860128B (zh) * 2022-12-21 2023-08-15 北京百度网讯科技有限公司 量子电路运行方法、装置及电子设备
CN116451797B (zh) * 2023-04-24 2024-06-28 西安电子科技大学 基于量子过程层析的量子线路分割方法
CN117236458B (zh) * 2023-11-13 2024-03-26 国开启科量子技术(安徽)有限公司 量子云平台的量子计算任务调度方法、装置、介质和设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7249357B2 (en) * 2001-08-20 2007-07-24 Silicon Graphics, Inc. Transparent distribution and execution of data in a multiprocessor environment
FR2961922B1 (fr) * 2010-06-29 2013-12-13 Flexycore Procede de compilation selective, dispositif et produit programme d'ordinateur correspondant.
US9921859B2 (en) 2014-12-12 2018-03-20 The Regents Of The University Of Michigan Runtime compiler environment with dynamic co-located code execution
US10599988B2 (en) * 2016-03-02 2020-03-24 D-Wave Systems Inc. Systems and methods for analog processing of problem graphs having arbitrary size and/or connectivity
US11205134B2 (en) 2016-11-01 2021-12-21 Google Llc Numerical quantum experimentation
US10430162B2 (en) 2017-05-18 2019-10-01 Microsoft Technology Licensing, Llc Quantum resource estimates for computing elliptic curve discrete logarithms
EP3642765A4 (en) 2017-06-19 2021-04-07 Rigetti & Co., Inc. DISTRIBUTED QUANTUM COMPUTER SYSTEM
US10796240B2 (en) 2017-07-22 2020-10-06 QC Ware Corp. Performing fault tree analysis on quantum computers
US10592216B1 (en) 2017-11-15 2020-03-17 Amazon Technologies, Inc. Development environment for programming quantum computing resources
US11281987B2 (en) 2017-11-28 2022-03-22 Duke University Software-defined quantum computer
US11367010B2 (en) 2018-05-02 2022-06-21 IonQ, Inc. Quantum computer simulator characterization
US10803395B2 (en) 2018-06-07 2020-10-13 International Business Machines Corporation Quantum computations of classical specifications
US11531922B2 (en) 2018-09-27 2022-12-20 Intel Corporation Apparatus and method for scalable qubit addressing
US11314535B2 (en) * 2019-06-21 2022-04-26 International Business Machines Corporation Quantum data result streaming
US20210012233A1 (en) * 2019-07-11 2021-01-14 International Business Machines Corporation Adaptive compilation of quantum computing jobs

Also Published As

Publication number Publication date
BR112022021761A2 (pt) 2022-12-13
AU2021263793B2 (en) 2024-01-04
IL296191A (en) 2022-11-01
CN115461763A (zh) 2022-12-09
US20210334079A1 (en) 2021-10-28
KR20220149545A (ko) 2022-11-08
CA3173081A1 (en) 2021-11-04
WO2021219408A1 (en) 2021-11-04
US11194554B2 (en) 2021-12-07
AU2021263793A1 (en) 2022-07-28
EP4143749A1 (en) 2023-03-08

Similar Documents

Publication Publication Date Title
AU2021263793B2 (en) Efficient quantum adaptive execution method for quantum circuits
US11222279B2 (en) Modular quantum circuit transformation
US11748648B2 (en) Quantum pulse optimization using machine learning
Zhang et al. Multi-objective scheduling of many tasks in cloud platforms
US11586792B2 (en) Scheduling fusion for quantum computing simulation
US11995515B2 (en) DAG-Based CSP quantum circuit modeling
US11121725B2 (en) Instruction scheduling facilitating mitigation of crosstalk in a quantum computing system
US20210012233A1 (en) Adaptive compilation of quantum computing jobs
US11727309B2 (en) Runtime estimation for machine learning tasks
US11720812B2 (en) Visual representation of qubit stochastic errors and the impact on performance of a quantum circuit
US11599823B2 (en) Quantum reinforcement learning agent
US20210390235A1 (en) Synthesis of a quantum circuit
US20190286792A1 (en) Chemical compound discovery using machine learning technologies
US20220188680A1 (en) Quantum circuit optimization routine evaluation and knowledge base generation
Lin et al. Fine-grained performance and cost modeling and optimization for faas applications
US11551129B2 (en) Quantum platform routing of a quantum application component
US11586864B2 (en) Prior knowledge-based topological feature classification
US20220391572A1 (en) Visualization scheme of noise in a quantum circuit
US20210383267A1 (en) Sampling of an operator in a quantum system
CN117242457A (zh) 定位神经网络性能热点
Do et al. Co-scheduling ensembles of in situ workflows
US11741387B2 (en) Techniques for quickly revising waveforms following calibration of a quantum system
Witzke et al. Proactive Resource Management to Optimize Distributed Workflow Executions
WO2023196335A1 (en) Automatic differentiation and optimization of heterogeneous simulation intelligence system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221226

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230925