JP7621375B2 - Efficient quantum adaptive execution methods for quantum circuits - Google Patents
Efficient quantum adaptive execution methods for quantum circuits Download PDFInfo
- Publication number
- JP7621375B2 JP7621375B2 JP2022559732A JP2022559732A JP7621375B2 JP 7621375 B2 JP7621375 B2 JP 7621375B2 JP 2022559732 A JP2022559732 A JP 2022559732A JP 2022559732 A JP2022559732 A JP 2022559732A JP 7621375 B2 JP7621375 B2 JP 7621375B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- quantum
- computer
- executing
- circuit
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
- G06N10/20—Models of quantum computing, e.g. quantum circuits or universal quantum computers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
- G06N10/60—Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
- G06N10/80—Quantum programming, e.g. interfaces, languages or software-development kits for creating or handling programs capable of running on quantum computers; Platforms for simulating or accessing quantum computers, e.g. cloud-based quantum computing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B82—NANOTECHNOLOGY
- B82Y—SPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
- B82Y10/00—Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Devices For Executing Special Programs (AREA)
- Semiconductor Lasers (AREA)
Description
主題となる開示は、先行量子回路により生成される量子回路依存性および中間結果に基づく量子アダプティブ実行方法に関する。最適化されたアダプティブ・コンパイルの方法論は、特定のバックエンド量子回路および先行する依存的な量子回路のために利用され、そのことにより回路をジョブ・ディスパッチャによって量子回路を実行する量子バックエンドにリダイレクトする。 The subject disclosure relates to a quantum adaptive execution method based on quantum circuit dependencies and intermediate results generated by a preceding quantum circuit. An optimized adaptive compilation methodology is utilized for a particular backend quantum circuit and preceding dependent quantum circuits, thereby redirecting the circuit by a job dispatcher to a quantum backend that executes the quantum circuit.
量子プログラミングは、量子プログラムと呼ばれる一連の命令を組み上げるプロセスである。量子プログラムは、量子コンピュータ上で実行可能なジョブとしても知られる。量子プログラムは、量子回路の集合を有することが可能である。ジョブ中の量子回路は、依存性を有する可能性があり、先行量子回路の結果は、次の量子回路を実行するために使用される可能性がある。量子回路が実行されると、量子コンピュータによって結果が作り出され、これらの量子回路の結果の一部は、先行量子回路によって作り出された中間結果に依存性がある。多くの従来型の量子回路最適化技術は、量子回路を強化して最適な結果を与えることに焦点を当てたものであり、そのためユーザは、1つの量子コンピュータ内で1つの量子プログラムしか実行できない。すべてのジョブ(回路のリスト)を連続的な様式で送信し、個々のジョブを順序通りに実行する従来型の技術は、後続の実行される回路へと(例えば、環境にあるケーブル、他のハードウェアにより生じる)誤りまたはノイズを伝播させることにつながり、そのため望ましくない量子プログラムの実行に至る可能性がある。 Quantum programming is the process of assembling a set of instructions called a quantum program. A quantum program is also known as a job that can be executed on a quantum computer. A quantum program can have a collection of quantum circuits. The quantum circuits in a job may have dependencies, and the results of previous quantum circuits may be used to execute the next quantum circuit. When a quantum circuit is executed, results are produced by the quantum computer, and some of the results of these quantum circuits are dependent on intermediate results produced by previous quantum circuits. Many conventional quantum circuit optimization techniques focus on strengthening the quantum circuit to give optimal results, so that a user can only run one quantum program in one quantum computer. Conventional techniques that submit all jobs (list of circuits) in a sequential manner and execute each job in order can lead to the propagation of errors or noise (e.g., caused by cables, other hardware in the environment) to subsequent executed circuits, which can lead to the execution of undesired quantum programs.
本発明の1つまたは複数の実施形態の基本的な理解を与えるための概要を以下に提示する。この概要は、主要または重要な要素を特定すること、特定の実施形態の範囲または特許請求の範囲を詳述することを意図されていない。その唯一の目的は、後に提示されるより詳細な説明への導入部として簡素化された形式での概念を提示することである。本明細書において説明される1つまたは複数の実施形態では、システム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組合せは、先行量子回路およびその中間結果に基づいて量子アダプティブ実行方法の生成を容易にする。 The following presents a summary to provide a basic understanding of one or more embodiments of the present invention. This summary is not intended to identify key or critical elements or to delineate the scope of particular embodiments or the claims. Its sole purpose is to present concepts in a simplified form as a prelude to the more detailed description presented later. In one or more embodiments described herein, a system, computer-implemented method, apparatus, and/or computer program product facilitates the generation of a quantum adaptive execution method based on a prior quantum circuit and its intermediate results.
実施形態によると、システムは、メモリに動作可能に結合されたプロセッサを備え、プロセッサは、以下のコンピュータ実行可能コンポーネントを実行する:量子タスクを実行するための量子プログラムを受信する受信コンポーネントであり、量子プログラムが第1のプログラムおよび第2のプログラムを含む、受信コンポーネント;第1のプログラムをコンパイルするアダプティブ・コンパイル・コンポーネント;コンパイルされた第1のプログラムを実行する実行コンポーネント;コンパイルされた第1のプログラムを実行することに基づいて出力を受信する第2の受信コンポーネント;第1のプログラムを実行することから受信した出力に基づいて第2のプログラムをコンパイルする第2のアダプティブ・コンパイル・コンポーネント;コンパイルされた第2のプログラムを実行する第2の実行コンポーネント。 According to an embodiment, the system comprises a processor operably coupled to a memory, the processor executing the following computer-executable components: a receiving component for receiving a quantum program for performing a quantum task, the quantum program including a first program and a second program; an adaptive compilation component for compiling the first program; an execution component for executing the compiled first program; a second receiving component for receiving output based on executing the compiled first program; a second adaptive compilation component for compiling a second program based on output received from executing the first program; and a second execution component for executing the compiled second program.
任意選択の態様では、判定コンポーネントは、1つまたは複数の回路入力に印加される1つまたは複数の回路出力を利用する。 In an optional aspect, the determination component utilizes one or more circuit outputs applied to one or more circuit inputs.
任意選択の態様では、第1のプログラムは、第1のプログラムからの以前に生成された1つまたは複数の出力に基づいて定められる。 In an optional aspect, the first program is determined based on one or more previously generated outputs from the first program.
さらに別の任意選択の態様では、第2のプログラムは、第2のプログラムからの以前に受信した1つまたは複数の出力に基づいて定められる。 In yet another optional aspect, the second program is determined based on one or more previously received outputs from the second program.
実施形態によると、コンピュータ実装方法は、メモリに動作可能に結合されたプロセッサを使用して、コンピュータ実行可能コンポーネントを実行することを含み、以下の機能を実施する:プロセッサを使用して量子タスクを実行するための量子プログラムを受信することであって、量子プログラムは第1のプログラムおよび第2のプログラムを含む、受信すること。アダプティブ・コンパイル・コンポーネントは、第1のプログラムをコンパイルし、実行コンポーネントは、コンパイルされた第1のプログラムを実行する。第2の受信コンポーネントは、コンパイルされた第1のプログラムを実行することに基づいて出力を受信する。第2のアダプティブ・コンパイル・コンポーネントは、第1のプログラムを実行することから受信した出力に基づいて第2のプログラムをコンパイルする。次いで、第2の実行コンポーネントは、コンパイルされた第2のプログラムを実行する。 According to an embodiment, a computer-implemented method includes executing computer-executable components using a processor operably coupled to a memory to perform the following functions: receiving a quantum program for performing a quantum task using the processor, the quantum program including a first program and a second program; an adaptive compilation component compiles the first program, and an execution component executes the compiled first program; a second receiving component receives output based on executing the compiled first program; a second adaptive compilation component compiles a second program based on the output received from executing the first program; and a second execution component then executes the compiled second program.
任意選択の態様では、コンピュータ実装方法は、システムによって、1つまたは複数の回路入力に印加される1つまたは複数の回路出力を判定することをさらに含む。 In an optional aspect, the computer-implemented method further includes determining, by the system, one or more circuit outputs that are applied to the one or more circuit inputs.
別の任意選択の態様では、コンピュータ実装方法は、システムによって、第1のプログラムからの以前に生成された1つまたは複数の出力に基づいて定められる第1のプログラムを利用することをさらに含む。 In another optional aspect, the computer-implemented method further includes utilizing, by the system, a first program that is determined based on one or more previously generated outputs from the first program.
さらに別の任意選択の態様では、コンピュータ実装方法は、システムによって、第2のプログラムからの以前に受信した1つまたは複数の出力に基づいて定められる第2のプログラムを利用することをさらに含む。 In yet another optional aspect, the computer-implemented method further includes utilizing a second program, the second program being determined by the system based on one or more previously received outputs from the second program.
実施形態によると、コンピュータ実装方法は、メモリに動作可能に結合されたプロセッサを使用して、コンピュータ実行可能コンポーネントを実行することを含み、以下の機能を実施する:プロセッサを使用して1つまたは複数の回路入力に印加される1つまたは複数の回路出力を判定すること。第1のプログラムは、第1のプログラムからの以前に生成された1つまたは複数の出力に基づいて定められる。第2のプログラムは、第2のプログラムからの以前に受信した1つまたは複数の出力に基づいて定められる。受信コンポーネントは、コンパイルされた第1のプログラムを、第1の量子ハードウェア・デバイスで実行するように適応された第1の再コンパイルされたプログラムへと再コンパイルする。第1の出力を受信することは、再コンパイルされた第1のプログラムを実行することに基づく。次いで、コンパイルされた第1のプログラムは、コンパイルされた第1のプログラムを、第2の量子ハードウェア・デバイスで実行するように適応された第2の再コンパイルされたプログラムへと再コンパイルされる。第2の出力は、再コンパイルされた第2のプログラムを実行することに基づいて受信される。第2のプログラムは、受信された第1の出力または受信された第2の出力のいずれかを選択することに基づいてコンパイルされる。 According to an embodiment, a computer-implemented method includes executing computer-executable components using a processor operably coupled to a memory to perform the following functions: determining one or more circuit outputs to be applied to one or more circuit inputs using the processor; The first program is defined based on one or more previously generated outputs from the first program; The second program is defined based on one or more previously received outputs from the second program; The receiving component recompiles the compiled first program into a first recompiled program adapted to run on the first quantum hardware device; The receiving component receives the first output based on executing the recompiled first program; The first compiled program is then recompiled into a second recompiled program adapted to run on the second quantum hardware device; The second output is received based on executing the recompiled second program; The second program is compiled based on selecting either the received first output or the received second output.
以下の詳細な説明は例示に過ぎず、実施形態、または実施形態の適用もしくは使用、あるいはその両方を限定するよう意図されていない。さらには、先の「発明の概要」セクション、または「発明を実施するための形態」セクションにおいて提示される、いかなる明記されたまたは示唆された情報によっても拘束されるような意図もない。次に1つまたは複数の実施形態を、図面を参照して説明するが、一貫して同一の参照符号は同一の要素を参照するために使用される。以下の説明では、説明目的のため、1つまたは複数の実施形態の徹底した理解を与えるために、多くの具体的な詳細が説明される。しかしながら、様々な場合において、1つまたは複数の実施形態はこれらの具体的な詳細無しに実践され得ることが明白である。 The following detailed description is illustrative only and is not intended to limit the embodiments, or the application and/or use of the embodiments. Furthermore, there is no intention to be bound by any stated or implied information presented in the preceding "Summary of the Invention" section or the "Description of the Preferred Embodiments" section. One or more embodiments will now be described with reference to the drawings, in which like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of one or more embodiments. However, it will be apparent that in various instances one or more embodiments may be practiced without these specific details.
主題となる開示は、一般的に、先行量子回路およびその中間的な出力に基づいて量子回路向けの量子アダプティブ実行方法を使用するシステムおよび方法に関する。これは、特定のバックエンドおよび先行量子回路依存物(dependent)に最適化されたアダプティブ・コンパイル結果を生成し、故に、ジョブ・ディスパッチャによって正しい量子バックエンドにリダイレクトすることが可能である。本明細書で開示される実施形態は、生成される誤りの数を低減し、システム効率を改善し、量子コンピュータにおける条件付きロジックの強化が達成され得るように、先行回路の結果を用いて組合せの様式で、次の量子回路を改善することが可能である。実施形態は、第1の回路またはプログラムを利用して、プログラムを分析し、それをコンパイルすることができる。次いで、次のシーケンスまたは第2のプログラムは、先行シーケンスの出力およびその内部コードに基づいて、コンパイルされる。量子コンピュータ上には、実行される量子シーケンスに基づいて変化し得るパラメータがいくつか存在する。そのようなコンパイルを通じて得られる結果を使用して、量子積を改変することが可能であり、誤り率が低減された最適な結果が得られるよう、ゲート/パラメータは再コンパイル用に変更することが可能である。故に、実施形態は利用可能な量子コンピュータ・バックエンドを使用して、量子プログラムを多くの可能なバックエンドに分散し、1つの量子コンピュータ内で実行される1つの量子プログラムに関連付けられる制約を取り除く。 The subject disclosure generally relates to systems and methods that use quantum adaptive execution methods for quantum circuits based on a previous quantum circuit and its intermediate outputs. It generates adaptive compilation results that are optimized for a particular backend and previous quantum circuit dependent, and can therefore be redirected by a job dispatcher to the correct quantum backend. The embodiments disclosed herein can improve the next quantum circuit in a combinatorial manner using the results of the previous circuit, so that the number of errors generated can be reduced, system efficiency can be improved, and enhanced conditional logic in the quantum computer can be achieved. The embodiments can utilize a first circuit or program to analyze a program and compile it. The next sequence or second program is then compiled based on the output of the previous sequence and its internal code. There are several parameters on a quantum computer that can be changed based on the quantum sequence being executed. The results obtained through such compilation can be used to modify the quantum product, and gates/parameters can be changed for recompilation to obtain optimal results with reduced error rates. Thus, embodiments use available quantum computer backends to distribute quantum programs across many possible backends, removing the constraints associated with a single quantum program running within a single quantum computer.
現在のデジタルな世界では、データは多くの用途で主要なファクタである。アクションを起こすと、デジタル・フットプリントを、衛星画像、バイオメディカル分野、スマートフォン、ソーシャル・メディア、および他の用途を通じて残す可能性が高い。急激に成長する技術は、機械生成データを指数関数的に増加させている。ビッグ・データは、量、多様性、および速度において高度なデータを含むべく、データ探索および利用における新しい時代を表現している。現代のソフトウェア・エンジニアリングにおける進歩は、software as service(例えば、SaaS)を展開することにつながり、このようなSaaSは組織が、コンピュータ・インフラストラクチャでのリソースの拡大および維持の代わりにコア・ビジネスに集中するために顕著な利点を与える。例えば、データ・インスタンスのセットを入力として利用する「ビッグ・データ」クラスタ化software as a serviceは、データのクラスタ化のための計算を実施し、分割したデータをクライアントに出力として返すことが可能である。ビッグ・データは、例えばソーシャル・メディアで生成されたコンテンツを追跡すること、ウェブからのウェブ・ページ画像および国勢調査データを分析すること、必要とされるデータをモノのインターネット(IoT)センサから取得すること、ならびにサイバーセキュリティのためのスマートフォンおよびネットワーク・トラフィック・データからのアクティビティ追跡のなど、データマイニングのために多くのシナリオで使用することが可能である。ビッグ・データがデータ分析において普遍的になるにつれ、データ・サンプリングの需要およびデータ次元特徴は急激に大きくなった。故に、本質的にプリミティブなものとして、量子コンピューティングはさらに注目を集めている。 In today's digital world, data is a major factor in many applications. When you take an action, you are likely to leave a digital footprint through satellite imagery, biomedical fields, smartphones, social media, and other applications. Rapidly growing technology is exponentially increasing machine-generated data. Big data represents a new era in data exploration and utilization to include data that is advanced in volume, variety, and velocity. Advances in modern software engineering have led to the deployment of software as a service (e.g., SaaS), which gives organizations significant advantages to focus on their core business instead of expanding and maintaining resources in computer infrastructure. For example, a "big data" clustering software as a service that uses a set of data instances as input can perform calculations for clustering the data and return the partitioned data to the client as output. Big data can be used in many scenarios for data mining, such as tracking content generated on social media, analyzing web page images and census data from the web, acquiring required data from Internet of Things (IoT) sensors, and activity tracking from smartphones and network traffic data for cybersecurity. As big data becomes ubiquitous in data analysis, the demand for data sampling and data dimensionality characteristics have grown exponentially. Hence, as something primitive in nature, quantum computing has attracted more and more attention.
量子コンピューティングは、一般的には量子力学的な現象を利用して、計算および情報処理機能を実行することである。量子コンピューティングは、一般的にトランジスタを用いてバイナリ値を演算する古典的なコンピューティングとは対照的であると考えることができる。つまり、古典的なコンピュータは0か1かのビット値を演算することができるが、量子コンピュータは0と1両方の重ね合わせから成る量子ビットを演算し、複数の量子ビットをもつれさせ、干渉を利用することが可能である。超伝導量子ビットは、巨視的なレベルで(例えば、既存の集積回路技術によって設計および製作される)量子力学的な挙動を見せる可能性があるため(量子情報処理に使用できるようにする)、フル稼働の量子コンピュータを構築するために有望な道筋を与えるものである。量子計算は、その本質的な単位として、古典的な計算用ビットの代わりに量子ビットを用いる。量子ビット(例えば、量子二進数)は、古典的なビットの量子力学的アナログである。古典的なビットは2つの基底状態のうちの1つのみ(例えば、0または1)を利用することができるが、量子ビットはこのような基底状態の重ね合わせを利用することができ(例えば、α|0〉+β|1〉、ここでαとβは|α|2+|β|2=1となるような複素スカラ量である)、それにより理論的には、ある数の量子ビットが、同じ数の古典的なビットよりも指数関数的に多くの情報を保持することを可能にしている。故に、量子コンピュータ(例えば、単に古典的なビットの代わりに量子ビットを利用するコンピュータ)は、理論としては、古典的なコンピュータでは極めて困難となり得る問題を素早く解決することが可能である。古典的なコンピュータのビットは単純に、0または1のいずれかの値を持つ二進数である。2つの別個の状態を有するほぼすべてのデバイスは、古典的なビットを表現するように機能することが可能である:スイッチ、バルブ、磁石、コインなど。量子の神秘の性質を帯びる量子ビットは、0状態と1状態の重ね合わせを占有することが可能である。これは、量子ビットが0.63のような中間的な値を取ることができるという意味ではない。量子ビットの状態が測定されると、その結果は0か1である。しかし、計算の過程で、量子ビットは、例えば0が63パーセント、1が37パーセントのように、状態の混合であるかのように振る舞う可能性がある。
Quantum computing is generally the use of quantum mechanical phenomena to perform computational and information processing functions. Quantum computing can be considered in contrast to classical computing, which typically uses transistors to operate on binary values. That is, while classical computers can operate on bit values of 0 or 1, quantum computers operate on qubits consisting of superpositions of both 0 and 1, and can entangle multiple qubits and exploit interference. Superconducting qubits offer a promising route to building fully operational quantum computers, since they can exhibit quantum mechanical behavior at a macroscopic level (e.g., designed and fabricated with existing integrated circuit technology) (allowing them to be used for quantum information processing). Quantum computing uses qubits instead of classical computational bits as its essential unit. Qubits (e.g., quantum binary digits) are the quantum mechanical analog of classical bits. While classical bits can only occupy one of two basis states (e.g., 0 or 1), quantum bits can occupy a superposition of such basis states (e.g., α|0〉+β|1〉, where α and β are complex scalars such that |α| 2 +|β| 2 =1), theoretically allowing a number of quantum bits to hold exponentially more information than the same number of classical bits. Thus, quantum computers (e.g., computers that simply use quantum bits instead of classical bits) are theoretically capable of quickly solving problems that would be extremely difficult for classical computers. A classical computer bit is simply a binary number that can have a value of either 0 or 1. Nearly any device that has two distinct states can function to represent a classical bit: switches, valves, magnets, coins, etc. A quantum bit, by virtue of its quantum mystical properties, can occupy a superposition of 0 and 1 states. This does not mean that a quantum bit can take on intermediate values such as 0.63. When the state of a quantum bit is measured, the result is either 0 or 1. But during the course of a calculation, a qubit can behave as if it were a mixture of states, for example 63
量子コンピューティングは、一般的には量子力学的な現象を利用して、計算および情報処理機能を実行することである。量子コンピューティングは、一般的にトランジスタを用いてバイナリ値を演算する古典的なコンピューティングとは対照的であると考えることができる。つまり、古典的なコンピュータは0か1かのビット値を演算することができるが、量子コンピュータは0と1両方の重ね合わせから成る量子ビット(キュビット)を演算し、複数の量子ビットをもつれさせ、干渉を利用することが可能である。量子コンピューティングには、その計算科学的な複雑性により、多くの実用的な目的で古典的なコンピュータでは解決することができない問題を解決する可能性がある。しかしながら、量子コンピューティングは、例えば振幅推定を行うための確率分布の量子状態を準備するためなどに、非常に専門的な技能を必要とする。量子プログラミングは、量子プログラムと呼ばれる命令のシーケンスを組み立てるプロセスであり、量子プログラムは量子コンピュータ上で実行することができる。 Quantum computing is the use of quantum mechanical phenomena to perform computational and information processing functions. Quantum computing can be considered in contrast to classical computing, which typically uses transistors to operate on binary values. That is, while classical computers can operate on bit values of 0 or 1, quantum computers operate on quantum bits (qubits) that are superpositions of both 0 and 1, and can entangle multiple qubits and use interference. Quantum computing has the potential to solve problems that cannot be solved by classical computers for many practical purposes due to its computational complexity. However, quantum computing requires highly specialized skills, for example to prepare quantum states of probability distributions for amplitude estimation. Quantum programming is the process of assembling a sequence of instructions, called a quantum program, that can be executed on a quantum computer.
量子プログラムは、量子回路の集合を有することが可能である。量子回路が実行されると、結果は量子コンピュータによって作り出される。このような回路の一部は、先行回路によって作り出される中間結果に基づいて、他の回路に依存する可能性がある。問題の特性は、量子回路がいつ、その実行中に依存性を有するかである。したがって、このような実施形態は、量子回路の最適化を、先行量子回路によって生成される依存性と結果に基づいて管理することができるシステムおよび方法を提案する。このことは、1つの量子プログラムは1つの量子コンピュータで実行されるということに関連する制約の軽減を容易にすることができる。本明細書における実施形態は、様々な特徴とノイズ品質を伴ういくつかの量子コンピュータで実行するよう、反復アルゴリズムを最適化する。そのような実施形態の利点は、量子プログラムを一組の量子コンピュータに適応して、それを異なる量子バックエンドで実行するよう分割することであり得る。これは、実行時間をスピード・アップすることが可能であり、故に量子回路を実行する量子バックエンドにおいて効果的な量子回路を作り出す。 A quantum program can have a collection of quantum circuits. When a quantum circuit is executed, a result is produced by the quantum computer. Some of such circuits may depend on other circuits based on intermediate results produced by previous circuits. A property of interest is when a quantum circuit has dependencies during its execution. Thus, such embodiments propose systems and methods that can manage the optimization of a quantum circuit based on dependencies and results produced by previous quantum circuits. This can facilitate the alleviation of constraints related to one quantum program running on one quantum computer. Embodiments herein optimize an iterative algorithm to run on several quantum computers with different characteristics and noise qualities. An advantage of such embodiments can be to adapt a quantum program to a set of quantum computers and split it to run on different quantum backends. This can speed up the execution time, thus making the quantum circuit more efficient in the quantum backend that runs the quantum circuit.
主題のコンピュータ処理システム、方法装置、またはコンピュータ・プログラム製品、あるいはその組合せは、技術、コンピュータ・ネットワーク、インターネットなどの進歩により生じる新しい問題を解決するために利用することが可能である。 The subject computer processing systems, method apparatus, or computer program products, or combinations thereof, can be utilized to solve new problems arising from advances in technology, computer networks, the Internet, and the like.
図1は、本明細書において説明される1つまたは複数の実施形態により描かれる可変な計算コンポーネントを使用して、データにアクセスし、そのデータを処理することが可能な例示的なシステム100のブロック図を示す。システム100は、機械学習を使用して、大量で多様な形態のデータを精査して識別するプロセス、およびニューラル・ネットワークまたは他のタイプのモデルを訓練するプロセスを容易にすることが可能である。システム100はまた、本明細書において説明される1つまたは複数の実施形態によるコンテキストで個々のレベルまでの予測的なレコメンデーションを生成することが可能である。本開示で説明されるシステム(例えば、システム100など)、装置、またはプロセスの態様は、機械内で具体化される機械実行可能コンポーネントを構成することができ、例えば、1つまたは複数の機械に関連付けられる1つまたは複数のコンピュータ可読媒体に具体化される。そのようなコンポーネントは、1つまたは複数の機械、例えばコンピュータ、コンピューティング・デバイス、仮想機械などによって実行されると、機械に本明細書で説明される動作を実施させることができる。本明細書において説明される1つまたは複数の実施形態において採用される類似の要素の繰り返しの説明は簡略化のために省略する。
FIG. 1 illustrates a block diagram of an
システム100は、先行量子回路および中間結果に基づいて、量子回路の量子アダプティブ実行を容易にして、特定のバックエンドおよび先行量子回路依存物に最適化されたアダプティブ・コンパイルを生成し、ジョブ・ディスパッチャ114によって、量子回路を実行することおよび結果を返すことに基づいて適当な量子バックエンド116にリダイレクトする。
The
システム100は、大量で多様な形態のデータを精査して識別するプロセスを容易にすることが可能である。システム100はまた、本明細書において説明される1つまたは複数の実施形態によるコンテキストをもたらす個々のレベルまでの予測的なレコメンデーションを生成することが可能である。本開示で説明されるシステム(例えば、システム100など)、装置、またはプロセスの態様は、機械内で具体化される機械実行可能コンポーネントを構成することができ、例えば、1つまたは複数の機械に関連付けられる1つまたは複数のコンピュータ可読媒体に具体化される。そのようなコンポーネントは、1つまたは複数の機械、例えばコンピュータ、コンピューティング・デバイス、仮想機械などによって実行されると、説明される動作を機械に実施させることができる。本明細書において説明される1つまたは複数の実施形態において採用される類似の要素の繰り返しの説明は簡略化のために省略する。
The
システム100は、任意選択で、サーバ・デバイス、1つまたは複数のネットワーク、および1つまたは複数のデバイス(図示せず)を含むことが可能である。システム100はまた、メモリ104に動作可能に連結され、コンピュータ実行可能コンポーネントを実行する、少なくとも1つのプロセッサ102を含むか、それに関連付けられることもできる。システム100は、限定はしないが、量子タスクを実行するための量子プログラムを受信する受信コンポーネント108を含む、様々なコンポーネントを動作可能に連結することができるシステム・バス106をさらに含むことが可能であり、量子プログラムは第1のプログラムを含む。アダプティブ・コンパイル・コンポーネント110は、第1のプログラムをコンパイルし、実行コンポーネント112は、コンパイルされた第1のプログラムを実行する。そのようなシステム100の利点は、誤りを識別することを含み、効率を改善する実行方法を強化し、そして元々のコードを改変することによって、最適な結果を与えるパラメータを変更する。
The
実装形態では、受信コンポーネント108は、量子タスクを実行するための量子プログラムを受信し、量子プログラムは第1のプログラムを含む。第1のプログラムは、第1のプログラムからの以前に生成された1つまたは複数の出力に基づいて定められる。第2のプログラムは、第2のプログラムからの以前に受信した1つまたは複数の出力に基づいて定められる。受信コンポーネントは、コンパイルされた第1のプログラムを、第1の量子ハードウェア・デバイスで実行するように適応された第1の再コンパイルされたプログラムへと再コンパイルする。アダプティブ・コンパイル・コンポーネント110は、第1のプログラムをコンパイルし、実行コンポーネント112は、コンパイルされた第1のプログラムを実行する。そのような実施形態の利点は、1つまたは複数の回路出力が1つまたは複数の回路入力に印加されて、先行出力に基づいた最適な結果を提供することである。第1のプログラムは、第1のプログラムからの以前に生成された1つまたは複数の出力に基づいて定められる。受信コンポーネント108は、コンパイルされた第1のプログラムを、第1の量子ハードウェア・デバイスで実行するように適応された第1の再コンパイルされたプログラムへと再コンパイルする。
In an implementation, the receiving
量子回路は、回路コンポーザを使用して生成することが可能である。これにより量子回路をどのように作成するかを視覚的に学習できるようにし、プログラムの実行中に量子ビットに何が起こるかを描写する。回路の入力状態を操作するために、量子コンピューティングの基本的な演算が適用される必要がある。ゲートの使用により、量子ロジックをまとめ、それにより量子回路を作り出すことができる。個々のバックエンド・システムは、この回路をコンパイルするために使用される。前段落で述べたように、このような実施形態は、量子回路の効率的な量子アダプティブ実行方法を提案する。量子回路は、量子コンピュータ(バックエンド)で実行される量子ゲートの順序付けられたリストである。ジョブ中の量子回路は、依存性を有する可能性があり、先行量子回路の結果は、次の量子回路を実行するために必要である。故に、このような実施形態は、様々な特徴およびノイズ品質を伴ういくつかの量子コンピュータのために反復アルゴリズムを最適化することに焦点を当てる。量子プログラムが受信されると、第1のプログラムがコンパイルされて実行される。第1のコンパイルされたプログラムの出力は受信され、第2のプログラムがコンパイルされて実行される。この技術を通じて、異なるバックエンドで実行するようプログラムを分割し、それによりバックエンドでの効果的なる量子回路を作り出すことによって実行時間が改善される(例えば、従来型の技術を通じるよりも高速)。 Quantum circuits can be generated using a circuit composer. This allows visual learning of how to create quantum circuits and depicts what happens to the qubits during program execution. Fundamental operations of quantum computing need to be applied to manipulate the input states of the circuit. The use of gates allows the quantum logic to be put together, thereby creating a quantum circuit. A separate back-end system is used to compile this circuit. As mentioned in the previous paragraph, such an embodiment proposes an efficient quantum adaptive execution method for quantum circuits. A quantum circuit is an ordered list of quantum gates that are executed on a quantum computer (back-end). Quantum circuits in a job may have dependencies, and the results of a previous quantum circuit are necessary to execute the next quantum circuit. Thus, such an embodiment focuses on optimizing the iterative algorithm for several quantum computers with different characteristics and noise qualities. When a quantum program is received, a first program is compiled and executed. The output of the first compiled program is received, and a second program is compiled and executed. Through this technique, execution times are improved (e.g., faster than through classical techniques) by splitting a program to run on different backends, thereby creating efficient quantum circuits in the backends.
システム100は、あらゆる好適なコンピューティング・デバイスまたはデバイスに通信可能に結合可能なコンピューティング・デバイスのセットであってもよく、これらの非限定的な例としては、限定はしないが、サーバ・コンピュータ、コンピュータ、モバイル・コンピュータ、メインフレーム・コンピュータ、自動試験システム、ネットワーク・ストレージ・デバイス、通信デバイス、ウェブ・サーバ・デバイス、ネットワーク・スイッチング・デバイス、ネットワーク・ルーティング・デバイス、ゲートウェイ・デバイス、ネットワーク・ハブ・デバイス、ネットワーク・ブリッジ・デバイス、制御システム、またはあらゆる他の好適なコンピューティング・デバイスを挙げることができる。デバイスは、システム100、またはシステム100によって与えられる情報を利用可能なあらゆる他の好適なデバイス、あるいはその組合せと情報を通信することが可能な、あらゆるデバイスであってもよい。システム100、コンポーネント、モデルまたはデバイスには、システム、コンポーネント、モデル、デバイスなどの間で、1つまたは複数のネットワーク上での通信を可能にする通信コンポーネント(図示せず)が備えられる可能性があることを諒解されたい。
システム100の様々なコンポーネントは、直接的に、または1つもしくは複数のネットワークを介して接続することが可能である。そのようなネットワークとしては、限定はしないが、セルラ・ネットワーク、ワイド・エリア・ネットワーク(WAN)(例えば、インターネット)、またはローカル・エリア・ネットワーク(LAN)を含む有線および無線ネットワークを挙げることができ、これらの非限定的な例としては、セルラ、WAN、ワイヤレス・フィディリティ(Wi-Fi)、Wi-Max、WLAN、無線通信、マイクロ波通信、衛星通信、光通信、音波通信、またはあらゆる他の好適な通信技術が挙げられる。その上、上述のシステムまたはデバイスあるいはその両方は、いくつかのコンポーネント間のインタラクションに関して説明してきた。そのようなシステムおよびコンポーネントは、そこで指定されるこのようなコンポーネントもしくはサブコンポーネント、指定されるコンポーネントもしくはサブコンポーネントの一部、または追加的なコンポーネント、あるいはその組合せを含むことが可能であることが諒解されよう。サブコンポーネントはまた、親コンポーネント内に含まれるのではなく、他のコンポーネントに通信可能に結合されるコンポーネントとして実装されてもよい。さらになお、1つまたは複数のコンポーネント、またはサブコンポーネント、あるいはその両方は、単一のコンポーネントと組み合わせて集約された機能性を実現することが可能である。コンポーネントはまた、簡潔にするために本明細書で具体的に説明されないが当業者には既知である、1つまたは複数の他のコンポーネントと対話することも可能である。
The various components of the
図2は、本明細書において説明される1つまたは複数の実施形態により描かれる可変な計算コンポーネントを使用して、データにアクセスし、そのデータを処理することが可能なシステム100(図1)の別の実施形態のブロック図を示す。本明細書において説明される1つまたは複数の実施形態において採用される類似の要素の繰り返しの説明は簡略化のために省略する。 Figure 2 illustrates a block diagram of another embodiment of system 100 (Figure 1) capable of accessing and processing data using variable computational components depicted in accordance with one or more embodiments described herein. Repetitive descriptions of similar elements employed in one or more embodiments described herein are omitted for the sake of brevity.
システム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のプログラムの出力を利用すること、および量子積を変更することによって量子回路の次のセットを改善することであり得る。
The
量子プログラムは、量子回路の集合を有することが可能である。量子回路が実行されると、結果は量子コンピュータによって作り出される。このような回路の一部は、先行回路によって作り出される中間結果に基づいて、他の回路に依存する可能性がある。したがって、システム100がその依存性に基づいて回路の最適化を管理することが必要である。システム100は、先行量子回路および中間結果に基づいて量子回路をコンパイルする。そのようなシステム100の利点は、量子回路のための量子結果を強化すること、およびこれらの結果をコンパイラ・ユニットで使用して、特定のバックエンド向けの最適化された出力を作り出すアダプティブ・コンパイルの方法論を生成することである。また、先行量子回路依存物は、ジョブ・ディスパッチャ220によって、好適または最適な量子バックエンド222にリダイレクトするために使用することができる。結果としての後処理ユニット(post processing-unit)は、そのようなロジックを適用し、コンパイラ・ユニットおよびジョブ・ディスパッチャ220用のデータの入力/出力を管理する。
A quantum program can have a collection of quantum circuits. When a quantum circuit is executed, a result is produced by the quantum computer. Some of such circuits may depend on other circuits based on intermediate results produced by previous circuits. It is therefore necessary for the
図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]ゲートなどのゲートの一部を用いて回路をアンパックしてもよい。
3 shows an example of a
このような実施形態は、量子回路のためにプログラムの効率的な量子アダプティブ実行方法を提供する方法およびシステムを提案する。このワークフローでは、1つの量子回路を量子コンピュータ(バックエンド)で実行するために、1つのジョブの一部である回路は、最適化され、特定のハードウェアに適合するようにコンパイルすることができる。パラメータは、コンパイル・レイヤが最適なやり方で回路をコンパイルできるように調節される。この時点で、あるジョブ中の1つの特定の回路は、他の回路から生成された中間結果の依存性を有する可能性がある。この場合、ジョブ・ディスパッチャと組み合わせたコンパイラのインフラストラクチャは、量子回路を再構成し、先行回路の実行によって生成された結果を含むことが可能である。第2の最適化は実行時であり、コンパイラ・ユニットは、1つまたは複数の量子バックエンドで先行回路の実行によって生成される特定の結果を待機することが可能である。 Such an embodiment proposes a method and system that provides an efficient quantum adaptive execution method of programs for quantum circuits. In this workflow, in order to execute a quantum circuit on a quantum computer (backend), the circuits that are part of a job can be optimized and compiled to fit the specific hardware. Parameters are adjusted so that the compilation layer can compile the circuit in an optimal way. At this point, a particular circuit in a job may have dependencies on intermediate results generated from other circuits. In this case, the compiler infrastructure in combination with the job dispatcher can reconfigure the quantum circuit to include results generated by the execution of the previous circuit. The second optimization is at runtime, where the compiler unit can wait for certain results generated by the execution of the previous circuit on one or more quantum backends.
図4は、量子回路生成器の例示的で詳細なフローチャートを示し、量子回路を作成し、回路を実行し、それに応じて結果を解釈するための回路コンポーザを使用するプロセスを示す。プロセスは、ブロック404によって示されるようにグラフィカル・ユーザ・インターフェースを使用して量子回路がシミュレートされるところで開始する。ブロック406によって示されるような可視化ツールを開くと、ブロック408によって示されるように予め定められたリストからデバイスが選択される。いったんデバイスが選択されると、ブロック410によって示されるように、ゲートがトポロジにマッピングされる。罫線入りの紙に似た水平の線のセットが現れ、左から右へのこのようなラインを、量子ワイヤと呼ぶ。量子ワイヤは、単一の量子ビットを表現する。ワイヤの左の表記法は、ワイヤが表現しているのがどの量子ビットかを示し、また各量子ビットが最初は|0〉状態であることを示す。この出力を量子コンピュータから取り出すため、量子ビットは測定されなければならず、ブロック412によって示されるように追加することが可能である。測定は、量子ビットに対して劇的な効果があり、そのためそれ自身が演算と考えられ、測定命令を用いて表現される。測定結果は、古典的なビットとして記録され、量子ワイヤと同じ様式で古典的なワイヤとして描かれる。量子ワイヤおよび古典的なワイヤは、ワイヤの左側の注釈によって区別される。ここで、量子ワイヤは、q[0]、q[1]などとして印がつけられ、古典的なワイヤはc1、c2などとして印がつけられる。測定命令から延びる垂直なワイヤは、量子ワイヤから古典的なワイヤへと流れる情報を描く。量子回路は、ブロック414によって示されるように完成し、ブロック416によって示されるように回路を実行する。バックエンドは、ブロック418によって示されるように選択され、バックエンドとは、量子コンピュータの古典的なシミュレータまたは現実の量子コンピュータのいずれかを指す用語であり、量子システムとも称される。いくつかのショット(例えば、量子回路が実行される回数)は、ブロック420によって示されるように選択される。いったん回路がブロック422によって示されるように実行されると、ブロック424によって示されるように選択されたショットの回数に基づいて、システムは反復を実行する。反復が、もうない場合、ブロック426において実行は完了し、それとともに結果レポートが作り出される。このプロセスを通じて、量子回路は選ばれたゲート/パラメータに従って構築され、実行される。
4 shows an exemplary detailed flow chart of the quantum circuit generator, illustrating the process of using the circuit composer to create a quantum circuit, execute the circuit, and interpret the results accordingly. The process begins where the quantum circuit is simulated using a graphical user interface as indicated by
図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の出力のいずれかを選択することに基づいている。この方法を通じて、これらの実施形態は、多くの量子コンピュータを利用して量子プログラムを適応し、異なるバックエンドで実行するプログラムを分割することによって実行時間をスピード・アップし、バックエンドにおける量子回路を作り出す。そのような方法の利点は、実行時間を最適化し、ユーザ/サービスと量子バックエンドとの間のデータの行き来(例えば、ジョブおよび回路)をなくすことができることである。したがって、依存性のあるジョブまたは回路当たりの平均実行時間が低減される。 5 shows an exemplary flow chart of a method for efficient quantum adaptive execution of quantum circuits. A quantum program is called a job and consists of a list of quantum circuits. A quantum circuit is an ordered list of quantum gates to be executed on a quantum computer (backend). Quantum circuits in a job may have dependencies, and the results of a previous quantum circuit are utilized to execute the next quantum circuit. Thus, such an embodiment optimizes an iterative algorithm for several quantum computers with different characteristics and noise qualities. In the current state of the art, a user typically executes one quantum program in one quantum computer. The embodiments disclosed herein facilitate the use of available quantum computer backends to distribute a quantum program (split into circuits) across many possible backends. This removes the constraints associated with a single quantum program executed on a single quantum computer. The process begins with a receiving component receiving a quantum program for executing a quantum task, as indicated by block 502, the quantum program including a first program and a second program. An adaptive compilation component as indicated by block 504 compiles the first program. The execution component as indicated by block 506 executes the compiled first program. These methods utilize one or more circuit outputs applied to one or more circuit inputs. The first program is defined based on one or more previously generated outputs from the first program. The second program is defined based on one or more previously received outputs from the second program. The receiving component recompiles the compiled first program into a first recompiled program adapted to run on a first quantum hardware device. Through this step, the recompilation of the compiled first program into a second recompiled program adapted to run on a second quantum hardware device. The second receiving component as indicated by block 508 receives the output based on running the compiled first program. The second adaptive compilation component as indicated by block 510 compiles the second program based on the output received from running the first program. The second execution component as indicated by block 512 executes the compiled second program. Receiving the second output is based on executing the recompiled second program, and compiling the second program is based on selecting either the received first output or the received second output. Through this method, these embodiments utilize many quantum computers to adapt the quantum program, speed up execution time by splitting the program to run on different backends, and create quantum circuits in the backend. The advantage of such a method is that it optimizes execution time and eliminates data traffic (e.g., jobs and circuits) between the user/service and the quantum backend. Thus, the average execution time per dependent job or circuit is reduced.
量子コンピュータの最適化問題を解決するために、VQEまたはQAOAなどの様々なアルゴリズムを使用することができる。VQEアルゴリズムは、大きな行列の固有値を求めるために使用することができる量子/古典ハイブリッドなアルゴリズムである。固有値は、ある条件下で微分方程式が非ゼロの解(固有関数)を持つパラメータの一組の値である。このアルゴリズムは、量子系をシミュレーションするためのハイブリッドな量子-古典的アルゴリズムとして導入されてきた。VQEを使用する量子シミュレーションのいくつかの例として、分子や電子のシュレーディンガー方程式および物性物理学におけるモデル系を解くことが挙げられる。 Various algorithms such as VQE or QAOA can be used to solve optimization problems on quantum computers. The VQE algorithm is a hybrid quantum/classical algorithm that can be used to find eigenvalues of large matrices. An eigenvalue is a set of parameter values for which a differential equation has a nonzero solution (eigenfunction) under certain conditions. This algorithm has been introduced as a hybrid quantum-classical algorithm for simulating quantum systems. Some examples of quantum simulations using VQE include solving the molecular and electronic Schrödinger equations and model systems in condensed matter physics.
図6は、変分量子固有値ソルバ(VQE)アルゴリズムのための例示的な量子回路を示す。ヒューリスティックなトレイル状態の準備には、2つのタイプの量子ゲート、つまり回転角θによって定められる604によって示される単一の量子ビットのゲートU(θ)、および量子ビット対に作用する606によって示されるもつれドリフト演算Uentが含まれる。606のブロックは、探索がより大きな空間に達することができるように、ブロック602によって示されるような異なるN個の量子ビットにもつれる。このアルゴリズムはD回繰り返され、より長いプロセスが実行され、システムが最適化するよう学習するパラメータがより多くなる。プロセスの最後に、量子ビットが測定され、0または1を返す。個々の測定は、可能性のある答えを最適化問題に与える。このアルゴリズムが608のθのような固定パラメータでD回実行されてしまうと、最適化は最適な結果を取得するように実行することが可能である。この技術を通じて、アルゴリズムは、二値最適化問題を実行して、連続的な最適化問題にする。QAOAアルゴリズムは、組合せ最適化問題に取り組むよう設計された別のハイブリッドな量子-古典的変分アルゴリズムである。このアルゴリズムは正の整数pに依存し、pが大きくなると近似品質が上がる。このアルゴリズムを実装する量子回路は、ユニタリ・ゲートを有し、回路の深さは制約の数にpを掛けたものに線形に大きくなる。pが固定値で入力サイズとは無関係である場合、アルゴリズムは古典的前処理と呼ばれる効率的な方法を使用する。pが入力サイズとともに大きくなる場合、違う作戦が提案される。これらの実施形態は、VQEまたはQAOAアルゴリズムに限定されず、所与の問題に応じて量子最適化にはあらゆる好適なアルゴリズムを使用することができる。
FIG. 6 shows an example quantum circuit for the variational quantum eigensolver (VQE) algorithm. The heuristic trail state preparation includes two types of quantum gates: a single qubit gate U(θ) denoted by 604 that is determined by a rotation angle θ, and an entanglement drift operation U ent denoted by 606 that operates on qubit pairs.
VQEアルゴリズムでは、1つの量子回路の出力は、別の量子回路の入力の一部であることが可能である。一般には、VQEアルゴリズムは同じバックエンドで実行し、結果を得ることができる。しかしながら、VQEアルゴリズムが分割され、量子回路が異なるバックエンドで実行される場合、最適な結果を取得することが可能である。VQEアルゴリズムは、あらゆるタイプのゲートまたはバックエンドを使用することによって、多様な設定の(異なるエラー・ゲート)異なるバックエンドで実行することが可能である。量子回路は様々な量子ゲートを使用し、エラー・ゲートは利用可能なバックエンドに基づいて変わり得るため、このことは、最終的な結果のパフォーマンスに影響を及ぼす。ユーザによって用意されたコンパイルされた量子回路は、バックエンドの性質、量子ビット(T1、T2、読み出しエラー、周波数など)、および先行技術で定められる他の一般的な性質(冷蔵庫温度、パルスのデフォルト・パラメータなど)を用いて使用することができる(ユーザ入力)。上述のVQEアルゴリズムの例は、ユーザによって書かれた元々の量子回路とともに、そのバックエンド性質を用いて回路をコンパイルするために使用することが可能である。バックエンドの設定は、回路を先行回路の結果とともに実行することが可能である。同一バックエンド内でVQEアルゴリズム(量子プログラム)の多くを実行する代わりに、バックエンドとして使用可能な量子回路へと分割することが可能である(元々の量子プログラムをチェックする)。バックエンドの性質および設定ならびに1つの量子回路の先行する結果は、次のコンパイルに依存性がある。それとともに、システムは、量子回路のためのバックエンド実行を選ぶこと、および全体の実行時間をスピード・アップするために量子プログラムを同時に並列化することが可能である。 In the VQE algorithm, the output of one quantum circuit can be part of the input of another quantum circuit. In general, the VQE algorithm can be run on the same backend and get the results. However, it is possible to obtain optimal results if the VQE algorithm is split and the quantum circuits are run on different backends. The VQE algorithm can be run on different backends with various settings (different error gates) by using any type of gate or backend. This affects the performance of the final result, since quantum circuits use various quantum gates and error gates can change based on the available backends. The compiled quantum circuit prepared by the user can be used (user input) with the backend properties, qubits (T1, T2, read error, frequency, etc.), and other general properties defined in the prior art (refrigerator temperature, default parameters of pulses, etc.). The above example VQE algorithm can be used to compile a circuit with its backend properties along with the original quantum circuit written by the user. The backend settings can run the circuit with the results of the previous circuit. Instead of running many of the VQE algorithms (quantum programs) in the same backend, they can be split into quantum circuits that can be used as backends (check the original quantum program). The nature and configuration of the backends and the previous results of one quantum circuit are dependent on the next compilation. Together, the system can choose the backend execution for the quantum circuit and parallelize the quantum program simultaneously to speed up the overall execution time.
図7は、VQE量子古典的アルゴリズムの例示的なフローチャートを示す。上段落で言及したように、VQEアルゴリズムは大きな行列Hの固有値を見つけるために使用することができる量子/古典ハイブリッドなアルゴリズムである。VQEは、所与のハミルトニアンの最小固有値の上限を見つけられるようにする。VQEは、ハイブリッドな量子-古典的アルゴリズムであるため、すべての計算を量子コンピュータと古典的なコンピュータで実行する。計算は、702で示されるような量子処理ユニット(Quantum Processing Unit)で所与のパラメータのセットについての期待値またはエネルギーレベルを計算することによって開始される。パラメータのセットが与えられると、量子状態はブロック704によって示されるように準備される。ブロック706によって示されるような測定項に基づいて、Hの期待値は708によって示されるように計算される。量子プロセッサでこの値を取得すると、ブロック710によって示されるように、古典的なプロセッサで他の最適化が実行される。最も正確な結果を見つけるためにブロック712によって示されるような期待値に対して、平均が計算される。ブロック714によって示されるような最適化手順が実施され、ブロック716によって示されるように、新しいパラメータのセットを見つける。ブロック718によって示されるように、さらなる反復がある場合、プロセスはブロック702から繰り返される。実行すべき反復が、もうない場合、ansatzパラメータの古典的な最適化が、ブロック720によって示されるように作り出される。ansatzは、多くの状態をカバーできるようなものであり、制御と最適化が簡単になるように、有するパラメータの数は、より少ない。この方法論は、反復的な量子位相推定および量子位相推定アルゴリズムに大きな利点を有する。
Figure 7 shows an example flow chart of the VQE quantum-classical algorithm. As mentioned in the paragraph above, the VQE algorithm is a hybrid quantum/classical algorithm that can be used to find eigenvalues of a large matrix H. VQE allows for finding an upper bound on the smallest eigenvalue of a given Hamiltonian. Since VQE is a hybrid quantum-classical algorithm, all calculations are performed on quantum and classical computers. The calculations start by calculating the expectation values or energy levels for a given set of parameters in the Quantum Processing Unit as shown by
図8は、本明細書において説明される1つまたは複数の実施形態による、量子コンピューティング・ジョブのアダプティブ・コンパイルを容易にすることが可能な、例示の、非限定的なシステム800の図を示す。本明細書において説明される様々な実施形態において採用される類似の要素またはプロセスあるいはその両方の繰り返しの説明は、簡略化のために省略する。複数の実施形態によると、システムは図8の、例示的で非限定的な代替的実施形態を含むことが可能である。いくつかの実施形態では、このシステム800は、あるエンティティ(例えば、プログラマ、デバイス、コンピュータ、ロボット、機械、人工知能駆動のモジュール、人間など)から量子プログラムを受信することができるインターフェース・コンポーネントJoB System802を含むことが可能である。いくつかの実施形態では、インターフェース・コンポーネント802は、そのような量子プログラムをアダプティブ・コンパイル・コンポーネント806に送信して、図1を参照して上述したような改変された量子プログラム・コンパイルを生成することが可能である。いくつかの実施形態では、量子デバイスは、図1を参照して上述した1つまたは複数の実行基準に基づいて、ブロック808によって示されるような量子ユニットから選択することができる。いくつかの実施形態では、アダプティブ・コンパイル・コンポーネント806は、改変された量子プログラム・コンパイルを、実行順序位置が判定可能なキューにおける改変された量子プログラム・コンパイルの実行順序位置に基づいて、改変された量子プログラム・コンパイルを実行するように選択される量子ユニット808のキューに向けてディスパッチすることが可能である。いくつかの実施形態では、選択コンポーネントによって選択された量子デバイスは、アダプティブ・コンパイル・コンポーネント806によって生成された改変された量子プログラム・コンパイルを実行することが可能であり、インターフェース・コンポーネント802は、そのような実行の結果を管理することができる。例えば、インターフェース・コンポーネント802は、量子プログラムをインターフェース・コンポーネント802にサブミットしたエンティティに結果を返すこと、またはそのような結果を、結果後処理を通じて、例えばメモリ804などのメモリ・デバイスに記憶すること、あるいはその両方を行うことができる。後処理ユニットは、先行回路から取得した結果を分析すること、および次のコンパイルに使用するデータを、第2のプログラム・パラメータとともに記憶することが可能である。結果後処理ユニットは、このロジックを適用して、コンパイラ・ユニットとジョブ・ディスパッチャにプッシュするデータの入力/出力を管理する担当となるユニットである。
8 illustrates a diagram of an exemplary,
いくつかの実施形態では、量子アダプティブ実行システムは、様々な技術と関連付けられる可能性がある。例えば、量子アダプティブ・コンパイル・システムは、古典的なコンパイラ技術、量子ベースのコンパイラ技術、古典的なコンピュータ・ワークロード・スケジューリング技術、量子コンピュータ・ワークロード・スケジューリング技術、量子力学的な技術、量子計算技術、量子コンピュータ技術、量子ハードウェアもしくはソフトウェアまたはその両方の技術、量子シミュレータ技術、古典ドメインもしくは量子ドメインまたはその両方のデータ処理技術、機械学習技術、人工知能技術、または他の技術、あるいはその組合せと関連付けられてもよい。 In some embodiments, the quantum adaptive execution system may be associated with various technologies. For example, the quantum adaptive compilation system may be associated with classical compiler technology, quantum-based compiler technology, classical computer workload scheduling technology, quantum computer workload scheduling technology, quantum mechanical technology, quantum computing technology, quantum computer technology, quantum hardware and/or software technology, quantum simulator technology, data processing technology in the classical and/or quantum domains, machine learning technology, artificial intelligence technology, or other technologies, or combinations thereof.
いくつかの実施形態では、量子アダプティブ実行システムは、技術的改善をシステム、デバイス、コンポーネント、動作ステップ、または上で特定した様々な技術に関連付けられる処理ステップあるいはその組合せに提供することが可能である。例えば、量子アダプティブ・コンパイル・システムは、1つまたは複数の量子デバイス(例えば、量子デバイスの1つまたは複数の属性、例えば、設定、性質、利用可能性などを分析することができる)、ならびに1つまたは複数の量子プログラム(例えば、そのような量子デバイスで実行されるのを待機している次の量子プログラム)を分析することができ、特定の量子プログラムの1つまたは複数の要素(例えば、量子回路、パルス・スケジュールなど)をさらに改変して、特定の瞬間に特定の量子デバイス(例えば、次に利用可能な量子デバイス、他の量子デバイスに対して相対的に最高レベルの信頼性を有する量子デバイスなど)上で、そのような量子プログラムの実行を可能にすることができる。この例では、量子アダプティブ・コンパイル・システムは、次のようなことができる:a)量子プログラムを受信すること(例えば、インターフェース・コンポーネント802を介して)、b)実行すべき回路と利用可能なバックエンド(例えば、量子デバイス)を分析すること、またはc)(例えば、受信した量子プログラムの1つまたは複数の要素を改変することによって)改変された、利用可能なバックエンドの次の反復で実行する準備ができる量子プログラム・コンパイルを生成すること、あるいはその組合せ。したがって、この例では、量子アダプティブ・コンパイル・システムは、量子アダプティブ・コンパイル・システムにサブミットされた特定の量子プログラムの実行時間の低減を容易にすること、または量子アダプティブ・コンパイル・システムにサブミットされた量子プログラムの機能で、量子デバイスのワークロードのバランスをとって(例えば、量子デバイスのレイテンシを低減する)それぞれのデバイスの使用を安定化できるようにする、あるいはその両方を可能にする。 In some embodiments, the quantum adaptive execution system can provide technical improvements to systems, devices, components, operational steps, or process steps associated with the various techniques identified above, or combinations thereof. For example, the quantum adaptive compilation system can analyze one or more quantum devices (e.g., one or more attributes of the quantum devices, e.g., configuration, properties, availability, etc.), as well as one or more quantum programs (e.g., the next quantum program waiting to be executed on such quantum devices), and can further modify one or more elements (e.g., quantum circuits, pulse schedules, etc.) of a particular quantum program to enable execution of such a quantum program on a particular quantum device at a particular moment in time (e.g., the next available quantum device, the quantum device with the highest level of reliability relative to other quantum devices, etc.). In this example, the quantum adaptive compilation system can: a) receive a quantum program (e.g., via interface component 802); b) analyze the circuit to be executed and the available backends (e.g., quantum devices); or c) generate a modified (e.g., by modifying one or more elements of the received quantum program) quantum program compilation ready to run on the next iteration of the available backends, or a combination thereof. Thus, in this example, the quantum adaptive compilation system can facilitate a reduction in the execution time of a particular quantum program submitted to the quantum adaptive compilation system, or can enable a feature of the quantum program submitted to the quantum adaptive compilation system to balance the workload of the quantum devices (e.g., reduce the latency of the quantum devices) to stabilize the use of each device, or both.
いくつかの実施形態では、量子アダプティブ実行システムは、技術的改善を、古典的なコンピューティング・デバイスまたは量子コンピューティング・デバイス(例えば、量子プロセッサ、量子ハードウェア、超伝導回路など)あるいはその両方に関連付けられる処理ユニット(例えば、プロセッサ)に提供する。例えば、特定の時間に特定の量子デバイスによって実行することが可能な改変された量子プログラム・コンパイルを生成するために、受信した量子プログラム(例えば、量子回路、パルス・スケジュールなど)の1つまたは複数の要素のコンパイル(例えば、プログラミング言語変換)または改変あるいはその両方を実行することによって、量子アダプティブ・コンパイル・システムは、量子アダプティブ・コンパイル・システムにサブミットされた特定の量子プログラムの実行時間の低減、または量子デバイスのレイテンシの低減あるいはその両方を容易にし、それによってそのような量子デバイスに関連付けられる処理ユニット(例えば、プロセッサ)の効率またはパフォーマンスあるいはその両方を改善することができる。 In some embodiments, the quantum adaptive execution system provides technical improvements to processing units (e.g., processors) associated with classical or quantum computing devices (e.g., quantum processors, quantum hardware, superconducting circuits, etc.) or both. For example, by performing compilation (e.g., programming language transformations) and/or modification of one or more elements of a received quantum program (e.g., quantum circuits, pulse schedules, etc.) to generate a modified quantum program compilation capable of being executed by a particular quantum device at a particular time, the quantum adaptive compilation system can facilitate reducing the execution time of a particular quantum program submitted to the quantum adaptive compilation system, or reducing the latency of the quantum device, or both, thereby improving the efficiency and/or performance of the processing units (e.g., processors) associated with such quantum devices.
いくつかの実施形態では、性質として高度に技術的であり、抽象的ではなく、また人間による精神的活動のセットとして実施することができない問題を解決するために、量子アダプティブ実行システムは、ハードウェアまたはソフトウェアを採用することができる。いくつかの実施形態では、本明細書で説明されるプロセスのうちの1つまたは複数は、上で特定した様々な技術に関連して定められたタスクを実行するように、1つまたは複数の特殊化されたコンピュータ(例えば、特殊化された処理ユニット、特殊化された古典的なコンピュータ、特殊化された量子コンピュータなど)によって実行することが可能である。いくつかの実施形態では、量子アダプティブ・コンパイル・システム、またはそのコンポーネントあるいはその両方は、上述の技術の進歩、量子コンピューティング・システム、クラウド・コンピューティング・システム、コンピュータ・アーキテクチャ、または別の技術あるいはその組合せの利用により生じる新しい問題を解決するために利用することが可能である。 In some embodiments, the quantum adaptive execution system may employ hardware or software to solve problems that are highly technical in nature, not abstract, and cannot be implemented as a set of mental activities by a human. In some embodiments, one or more of the processes described herein may be executed by one or more specialized computers (e.g., specialized processing units, specialized classical computers, specialized quantum computers, etc.) to perform tasks defined in connection with the various technologies identified above. In some embodiments, the quantum adaptive compilation system, or components thereof, or both, may be utilized to solve new problems that arise due to advances in the technologies described above, quantum computing systems, cloud computing systems, computer architectures, or other technologies, or combinations thereof.
本明細書で説明されるような量子アダプティブ・コンパイル・システムまたはそのコンポーネントあるいはその組合せによって実行可能な様々な演算は、人間の頭の能力よりも規模の大きい演算であるため、量子アダプティブ・コンパイル・システムは、電気的コンポーネント、機械的コンポーネント、および人間の頭の中で再現できないか人間によって実行することができない回路の様々な組合せを利用することが可能であることを諒解されたい。例えば、特定の期間に、処理されるデータ量、そのようなデータを処理する速度、または量子アダプティブ・コンパイル・システムによって処理されるデータのタイプは、その同じ期間に人間の頭によって処理することができる量、速度、またはデータ・タイプよりも、大きく、高速で様々であることができる。 It should be appreciated that the various operations that can be performed by a quantum adaptive compilation system or components thereof as described herein, or combinations thereof, are operations that are on a larger scale than the capabilities of the human mind, and thus the quantum adaptive compilation system may utilize various combinations of electrical components, mechanical components, and circuitry that cannot be replicated in the human mind or performed by a human. For example, in a particular period of time, the amount of data processed, the speed at which such data is processed, or the type of data processed by the quantum adaptive compilation system may be larger, faster, and more varied than the amount, speed, or type of data that can be processed by the human mind in that same period of time.
いくつかの実施形態によると、量子アダプティブ・コンパイル・システムは、本明細書で説明される様々な動作も実行しつつ、1つまたは複数の他の機能を実行するために、フル稼働であることもできる(例えば、常に電源オンにする、常に実行する、など)。そのような同時的でマルチ動作の実行は、人間の頭の能力を超えたものであると諒解すべきである。量子アダプティブ・コンパイル・システムは、人間のユーザなどのエンティティによって手作業で取得することが不可能な情報を含むことが可能であることも諒解されたい。例えば、量子アダプティブ・コンパイル・システム、受信コンポーネント108、アダプティブ・コンパイル・コンポーネント110、実行コンポーネント112、第2の受信コンポーネント214、第2のアダプティブ・コンパイル・コンポーネント216、第2の実行コンポーネント218、または量子デバイス、あるいはその組合せに含まれる情報のタイプ、量、または多様性、あるいはその組合せは、人間のユーザなどのエンティティによって手作業で取得される情報よりも複雑であることが可能である。
According to some embodiments, the quantum adaptive compilation system may be fully operational (e.g., always on, always running, etc.) to perform one or more other functions while also performing various operations described herein. It should be appreciated that performing such simultaneous, multi-operations is beyond the capabilities of the human mind. It should also be appreciated that the quantum adaptive compilation system may include information that is not manually obtainable by an entity such as a human user. For example, the type, amount, or variety of information included in the quantum adaptive compilation system, receiving
開示される主題の様々な態様についてのコンテキストを与えるために、図9ならびに以下の議論は、開示される主題の様々な態様が実装され得る好適な環境の一般的な説明を与えるよう意図されている。図9は、本明細書において説明される1つまたは複数の実施形態が容易にされ得る、例示の、非限定的な動作環境のブロック図を示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡略化のために省略する。 To provide a context for the various aspects of the disclosed subject matter, FIG. 9 and the following discussion are intended to provide a general description of a suitable environment in which the various aspects of the disclosed subject matter may be implemented. FIG. 9 illustrates a block diagram of an exemplary, non-limiting operating environment in which one or more embodiments described herein may be facilitated. Repeated descriptions of similar elements employed in other embodiments described herein are omitted for brevity.
図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)を含むがそれに限定されないあらゆる多様な利用可能なバス・アーキテクチャを使用するローカル・バス、あるいはその組合せのうちの任意のものであることができる。 9, a suitable operating environment 900 for implementing various aspects of the disclosure may also include a computer 912. The computer 912 may also include a processing unit 914, a system memory 916, and a system bus 918. The system bus 918 couples system components including, but not limited to, the system memory 916 to the processing unit 914. The processing unit 914 may be any of a variety of available processors. Dual microprocessors and other multi-processor architectures may also be employed as the processing unit 914. The system bus 918 can be any of several types of bus structures including a memory bus or memory controller, a peripheral or external bus, or a local bus using any of a variety of available bus architectures, including but not limited to Industrial Standard Architecture (ISA), MicroChannel Architecture (MSA), Enhanced ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus (USB), Advanced Graphics Port (AGP), Firewire (IEEE 1394), and Small Computer Systems Interface (SCSI), or a combination thereof.
システム・メモリ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のリソースを制御して割り当てるよう作用する。 The system memory 916 may also include volatile memory 920 and non-volatile memory 922. A Basic Input/Output System (BIOS), containing the basic routines for transferring information between elements within the computer 912, such as during start-up, is stored in the non-volatile memory 922. The computer 912 may also include removable/non-removable, volatile/non-volatile computer storage media. For example, FIG. 9 illustrates a disk storage 924. The disk storage 924 may also include, but is not limited to, devices such as a magnetic disk drive, a floppy (R) disk drive, a tape drive, a Jaz drive, a Zip drive, an LS-100 drive, a flash memory card, or a memory stick. The disk storage 924 may also include a storage medium, either separately or in combination with other storage media. To facilitate connection of the disk storage 924 to the system bus 918, a removable or non-removable interface, such as an interface 926, is typically used. 9 also depicts software that acts as an intermediary between a user and the basic computer resources described within the preferred operating environment 900. Such software may also include, for example, an operating system 928. The operating system 928, which may be stored on disk storage 924, acts to control and allocate resources of the computer 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など、他のデバイスまたはデバイスのシステムあるいはその両方は、入力機能および出力機能の両方を提供することに留意すべきである。 System applications 930 take advantage of the management of resources by operating system 928 through program modules 932 and program data 934 stored, for example, in either system memory 916 or disk storage 924. It should be appreciated that the present disclosure may be implemented with various operating systems or combinations of operating systems. A user enters commands or information into computer 912 through input devices 936. Input devices 936 include, but are not limited to, a pointing device such as a mouse, a trackball, a stylus, a touch pad, a keyboard, a microphone, a joystick, a game pad, a satellite dish, a scanner, a TV tuner card, a digital camera, a digital video camera, a web camera, and the like. These and other input devices connect to processing unit 914 through system bus 918 via interface ports 938. Interface ports 938 include, for example, serial ports, parallel ports, game ports, and a universal serial bus (USB). The output device 940 uses some of the same types of ports as the input device 936. Thus, for example, a USB port can be used to provide input to the computer 912 and to output information from the computer 912 to the output device 940. Output adapter 942 is provided to illustrate that there are some output devices 940, such as monitors, speakers, and printers, among other output devices 940, that require special adapters. Output adapters 942 include, by way of example and not limitation, video cards and sound cards that provide a means of connection between the output device 940 and the system bus 918. It should be noted that other devices and/or systems of devices, such as a remote computer 944, provide both input and output capabilities.
コンピュータ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)・カードなどの内部的技術および外部的技術を挙げることができる。 The computer 912 can operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 944. The remote computer 944 can be a computer, a server, a router, a network PC, a workstation, a microprocessor-based appliance, a peer device, or other common network node, and can include many or all of the elements typically described for the computer 912. For simplicity, only a memory storage device 946 is illustrated with the remote computer 944. The remote computer 944 is logically connected to the computer 912 through a network interface 948, which is then physically connected via a communication connection 950. The network interface 948 encompasses wired and/or wireless communication networks, such as a local area network (LAN), a wide area network (WAN), a cellular network, and the like. LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ring, etc. WAN technologies include, but are not limited to, point-to-point links, circuit-switched networks such as Integrated Services Digital Networks (ISDN) and their variations, packet-switched networks, and Digital Subscriber Lines (DSL). Communications connection(s) 950 refers to the hardware/software employed to connect network interface 948 to system bus 918. While communications connection(s) 950 is shown inside computer 912 for illustrative clarity, it may also be external to computer 912. Hardware/software for connecting to the network interface 948 may also include, by way of example only, internal and external technologies such as modems, including telephone grade modems, cable and DSL modems, ISDN adapters, and Ethernet cards.
次に図10を参照すると、例示的なクラウド・コンピューティング環境1050が描写されている。示されるように、クラウド・コンピューティング環境1050は、例えば、携帯情報端末(PDA)または携帯電話1054A、デスクトップ・コンピュータ1054B、ラップトップ・コンピュータ1054C、または自動車コンピュータ・システム1054Nあるいはその組合せなど、クラウドの消費者によって使用されるローカルのコンピューティング・デバイスと通信することができる1つまたは複数のクラウド・コンピューティング・ノード1010を含む。図10に図示されてはいないが、クラウド・コンピューティング・ノード1010は、クラウド消費者によって使用されるローカルのコンピューティング・デバイスが通信可能な量子プラットフォーム(例えば、量子コンピュータ、量子ハードウェア、量子ソフトウェアなど)をさらに含むことが可能である。ノード1010は互いに通信することができる。本明細書において上述したようなローカル、コミュニティ、パブリック、もしくはハイブリッドのクラウド、またはその組合せなどの、1つまたは複数のネットワークにおいて、ノードは物理的に、または仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境1050は、クラウドの消費者がローカルのコンピューティング・デバイスでリソースを維持する必要のない、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せをサービスとして提供することができる。図10に示されるコンピューティング・デバイス1054A~Nのタイプは、単に例示的であることを意図されており、コンピューティング・ノード1010およびクラウド・コンピューティング環境1050は、あらゆるタイプのネットワーク上またはネットワーク・アドレス可能接続で(例えば、ウェブ・ブラウザを使用して)、あるいはその両方で、あらゆるタイプのコンピュータ化されたデバイスと通信することができることが理解されよう。 10, an exemplary cloud computing environment 1050 is depicted. As shown, the cloud computing environment 1050 includes one or more cloud computing nodes 1010 that can communicate with local computing devices used by cloud consumers, such as, for example, a personal digital assistant (PDA) or cell phone 1054A, a desktop computer 1054B, a laptop computer 1054C, or an automobile computer system 1054N, or combinations thereof. Although not shown in FIG. 10, the cloud computing node 1010 can further include a quantum platform (e.g., quantum computer, quantum hardware, quantum software, etc.) with which the local computing devices used by the cloud consumers can communicate. The nodes 1010 can communicate with each other. The nodes can be physically or virtually grouped (not shown) in one or more networks, such as a local, community, public, or hybrid cloud, or combinations thereof, as described herein above. This allows the cloud computing environment 1050 to provide infrastructure, platform, and/or software as a service without requiring cloud consumers to maintain resources on local computing devices. It will be understood that the types of computing devices 1054A-N shown in FIG. 10 are intended to be merely exemplary, and that the computing nodes 1010 and the cloud computing environment 1050 can communicate with any type of computerized device over any type of network or network addressable connection (e.g., using a web browser), or both.
図11を参照すると、クラウド・コンピューティング環境1100(図11)によって提供される機能的な抽象化レイヤのセットが示されている。図11に示されるコンポーネント、レイヤ、および機能は、単に例示的であることを意図されており、本発明の実施形態はそれに限定されないことが、予め理解されるべきである。描写されるように、以下のレイヤおよび対応する機能が提供される。 With reference to FIG. 11, a set of functional abstraction layers provided by cloud computing environment 1100 (FIG. 11) is shown. It should be understood in advance that the components, layers, and functions shown in FIG. 11 are intended to be merely exemplary, and embodiments of the present invention are not limited thereto. As depicted, the following layers and corresponding functions are provided:
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、以下が挙げられる:メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66。いくつかの実施形態では、ソフトウェア・コンポーネントとしては、ネットワーク・アプリケーション・サーバ・ソフトウェア67、量子プラットフォーム・ルーティング・ソフトウェア68、または量子ソフトウェア(図11には図示せず)、あるいはその組合せを挙げることができる。 Hardware and software layer 60 includes hardware and software components. Examples of hardware components include: mainframe 61, RISC (reduced instruction set computer) architecture based servers 62, servers 63, blade servers 64, storage devices 65, and networks and networking components 66. In some embodiments, software components may include network application server software 67, quantum platform routing software 68, and/or quantum software (not shown in FIG. 11).
仮想化レイヤ70は、仮想エンティティの以下の例が提供され得る抽象化レイヤを提供する:仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75。 The virtualization layer 70 provides an abstraction layer onto which the following examples of virtual entities can be provided: virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75.
一例において、管理レイヤ80は以下で説明される機能を提供することができる。リソース・プロビジョニング81は、コンピューティング・リソースおよびクラウド・コンピューティング環境内でタスクを実施するために利用される他のリソースの動的な調達を提供する。計測および課金82は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費についての課金または請求書発行を提供する。一例において、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含む場合がある。セキュリティは、クラウド消費者およびタスクについての識別情報の検証、ならびにデータおよび他のリソースについての保護を提供する。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセスを消費者およびシステム管理者に提供する。サービス水準管理84は、要求されるサービス水準が満たされるように、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス水準合意(SLA)計画および遂行85は、SLAに従って将来的な要求が予期されるクラウド・コンピューティング・リソースについての事前申し合わせ、およびクラウド・コンピューティング・リソースの調達を提供する。 In one example, the management layer 80 can provide the functions described below. Resource provisioning 81 provides dynamic procurement of computing resources and other resources utilized to perform tasks within the cloud computing environment. Metering and billing 82 provides cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud consumers and tasks, and protection for data and other resources. User portal 83 provides consumers and system administrators with access to the cloud computing environment. Service level management 84 provides allocation and management of cloud computing resources such that required service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides advance agreement for cloud computing resources in anticipation of future demands and procurement of cloud computing resources according to SLAs.
ワークロード・レイ90はクラウド・コンピューティング環境が利用され得る機能性の例を提供する。このレイヤからもたらされ得るワークロードおよび機能の非限定的な例として以下が挙げられる:マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想授業教育配信93、データ分析処理94、トランザクション処理95、および量子状態準備ソフトウェア96。 The workload layer 90 provides examples of functionality for which a cloud computing environment may be utilized. Non-limiting examples of workloads and functions that may come from this layer include: mapping and navigation 91, software development and lifecycle management 92, virtual classroom instruction delivery 93, data analytics processing 94, transaction processing 95, and quantum state preparation software 96.
本発明は、統合のあらゆる可能な技術的詳細レベルにおいてシステム、方法、装置、またはコンピュータ・プログラム製品あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含むことができる。コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述のあらゆる好適な組合せであってもよいが、それに限定はしない。コンピュータ可読記憶媒体のより具体的な例の非網羅的な列挙としては、さらに以下を挙げることができる:ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、命令を記録されて有するパンチカードまたは溝に刻まれた構造などの機械的にエンコードされたデバイス、および前述のあらゆる好適な組合せ。本明細書において使用される場合、コンピュータ可読記憶媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の送信媒体を介して伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を介して伝送される電気的信号など、一過性の信号そのものであると解釈されてはならない。 The present invention may be a system, method, apparatus, or computer program product, or combinations thereof, at any possible level of technical detail of integration. The computer program product may include a computer readable storage medium having computer readable program instructions for causing a processor to execute aspects of the present invention. The computer readable storage medium may be a tangible device capable of holding and storing instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media may further include: portable computer diskettes, hard disks, random access memories (RAMs), read-only memories (ROMs), erasable programmable read-only memories (EPROMs or flash memories), static random access memories (SRAMs), portable compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or grooved structures having instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as being ephemeral signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted through electrical wires.
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、個別のコンピューティング/処理デバイスに、あるいは、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組合せなどのネットワークを介して、外部のコンピュータまたは外部のストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅の送信ケーブル、光学送信ファイバ、無線送信、ルータ、ファイヤウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを備えることができる。それぞれのコンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、個別のコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための設定データ、あるいはスモールトーク(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語などの手続き型プログラミング言語もしくは類似するプログラミング言語、を含む1つまたは複数のプログラミング言語のあらゆる組合せで記述された、ソース・コードまたはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、すべてユーザのコンピュータ上で、一部はユーザのコンピュータ上でスタンドアロンのソフトウェア・パッケージとして、一部はユーザのコンピュータ上で一部はリモート・コンピュータ上で、またはすべてリモート・コンピュータ上もしくはサーバ上で、実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含むあらゆるタイプのネットワークを介してユーザのコンピュータに接続することができ、または接続は外部のコンピュータ(例えば、インターネット・サービス・プロバイダを使用するインターネットを介して)に対してなされてもよい。一部の実施形態において、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路をカスタマイズすることができる。 The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to an individual computing/processing device or to an external computer or storage device over a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may comprise copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface of each computing/processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the individual computing/processing device. The computer readable program instructions for carrying out the operations of the present invention may be either source code or object code written in any combination of one or more programming languages including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state configuration data, configuration data for integrated circuits, or object oriented programming languages such as Smalltalk®, C++, and procedural programming languages such as the “C” programming language or similar programming languages. The computer readable program instructions may be executed entirely on the user's computer, partly on the user's computer as a standalone software package, partly on the user's computer and partly on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network including a local area network (LAN) or wide area network (WAN), or the connection may be made to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), can execute computer-readable program instructions to customize the electronic circuitry by utilizing state information of the computer-readable program instructions to perform aspects of the invention.
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら本明細書において説明される。フローチャート図またはブロック図あるいはその両方のそれぞれのブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることを理解されたい。これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実装する手段を作成すべく、汎用コンピュータ、特殊目的コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作るものであってよい。これらのコンピュータ可読プログラム命令はまた、命令を記憶して有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実装するための命令を含む製造物品を備えるべく、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに特定のやり方で機能するように指示するものであってもよい。コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実装するように、コンピュータ実装処理を作るべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作可能な機能を実施させるものであってもよい。 Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present invention. It should be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, may be implemented by computer-readable program instructions. These computer-readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to make a machine, such that the instructions executed by a processor of the computer or other programmable data processing apparatus create means for implementing the functions/operations specified in one or more blocks of the flowcharts and/or block diagrams. These computer-readable program instructions may also be stored in a computer-readable storage medium having instructions stored thereon to instruct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, such that the computer-readable storage medium having the instructions stored thereon comprises an article of manufacture including instructions for implementing aspects of the functions/operations specified in one or more blocks of the flowcharts and/or block diagrams. The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to create a computer-implemented process such that the instructions, which execute on the computer, other programmable apparatus, or other device, implement the functions/operations specified in one or more blocks of the flowcharts and/or block diagrams, causing the computer, other programmable apparatus, or other device to perform a series of operable functions.
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能性、および動作を図示している。この点において、フローチャートまたはブロック図のそれぞれのブロックは、指定される論理機能を実装するための1つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表現することができる。一部の代替的な実装形態において、ブロックにおいて示した機能は図面で示した順とは異なって発生してもよい。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行されてもよく、またはブロックは関与する機能性によっては、時に逆の順で実行されてもよい。ブロック図またはフローチャート図あるいはその両方のそれぞれのブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定される機能もしくは作用を実施する、または特殊目的ハードウェアとコンピュータ命令との組合せを実行する、特殊目的ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。 The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block of the flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions shown in the blocks may occur out of the order shown in the figures. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order depending on the functionality involved. It should also be noted that each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, may be implemented by a special-purpose hardware-based system that performs the specified functions or actions, or executes a combination of special-purpose hardware and computer instructions.
1つまたは複数のコンピュータで実行するコンピュータ・プログラム製品のコンピュータ実行可能命令の一般的なコンテキストにおいて、主題を上で説明してきたが、当業者であれば、本開示はまた他のプログラム・モジュールと組み合わせて実装することができるか、または実装され得ることを理解されよう。一般的に、プログラム・モジュールは、特定のタスクを実施するか、または特定の抽象的なデータ・タイプを実装するか、あるいはその両方のルーチン、プログラム、コンポーネント、データ構造などを含む。その上、当業者であれば、本発明のコンピュータ実装方法は、単一プロセッサまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータ、ならびにコンピュータ、ハンドヘルド・コンピューティング・デバイス(例えば、PDA、電話機)、マイクロプロセッサ・ベースまたはプログラマブルの、家庭用または業務用電子機器など、を含む他のコンピュータ・システム構成で実践できることを諒解されよう。図示した態様はまた、タスクが通信ネットワークを通じてリンクされたリモート処理デバイスによって実施される分散コンピューティング環境において実践することができる。しかしながら、本開示の、すべてでないにしても一部の態様は、スタンドアロンのコンピュータで実践することができる。分散コンピューティング環境において、プログラム・モジュールはローカルおよびリモートの両方のメモリ・ストレージ・デバイスに配置することができる。 Although the subject matter has been described above in the general context of computer-executable instructions for a computer program product executing on one or more computers, those skilled in the art will appreciate that the present disclosure can also be implemented or implemented in combination with other program modules. Generally, program modules include routines, programs, components, data structures, etc. that perform particular tasks and/or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the computer-implemented methods of the present invention can be practiced with other computer system configurations, including single-processor or multiprocessor computer systems, minicomputing devices, mainframe computers, as well as computers, handheld computing devices (e.g., PDAs, telephones), microprocessor-based or programmable home or commercial electronic devices, and the like. The illustrated aspects can also be practiced in distributed computing environments where tasks are performed by remote processing devices linked through a communications network. However, some, if not all, aspects of the present disclosure can be practiced with stand-alone computers. In a distributed computing environment, program modules can be located in both local and remote memory storage devices.
本出願で使用される場合、用語「コンポーネント」、「システム」、「プラットフォーム」、「インターフェース」などは、コンピュータ関連のエンティティ、または1つもしくは複数の特別な機能性を伴う動作可能な機械に関連するエンティティを称することができるか、または含むことができるか、あるいはその両方である。本明細書において開示されるエンティティは、ハードウェア、ハードウェアとソフトウェアとの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかであることができる。例えば、コンポーネントは、プロセッサで実行中のプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、またはコンピュータあるいはその組合せであることができるが、それに限定しない。例示として、サーバ上で実行中のアプリケーションおよびサーバの両方は、コンポーネントであることができる。1つまたは複数のコンポーネントは、プロセスまたは実行のスレッドあるいはその両方の中に存在することができ、また、コンポーネントは1つのコンピュータに集中してもよく、または2つ以上のコンピュータ間で分散されてもよく、あるいはその両方であってもよい。別の例において、個々のコンポーネントは様々なデータ構造が記憶された様々なコンピュータ可読媒体から実行することができる。コンポーネントは、1つまたは複数のデータ・パケットを有する信号に従うなど、ローカルまたはリモートのプロセスあるいはその両方のプロセスを介して通信することができる(例えば、信号を介して他のシステムと対話するインターネットのように、1つのコンポーネントからのデータは、ローカル・システム内で、分散システム内で、またはネットワーク間で、あるいはその組合せで、別のコンポーネントと対話する)。別の例として、コンポーネントは、電気的または電子的な回路によって動作させられる機械的な部品によって与えられる特別な機能性を有する装置であることができ、プロセッサによって実行されるソフトウェアまたはファームウェア・アプリケーションによって動作させられる。そのような場合、プロセッサは装置に対して内部または外部にあることができ、ソフトウェアまたはファームウェア・アプリケーションの少なくとも一部を実行することができる。さらに別の例として、コンポーネントは機械的な部品無しに電子機器部品を通じて特別な機能性を提供する装置であることができ、この場合、電子機器部品は、電子機器部品の機能性を少なくとも一部付与するソフトウェアまたはファームウェアを実行するためのプロセッサまたは他の手段を含むことができる。一態様において、コンポーネントは例えば、クラウド・コンピューティング・システム内で仮想機械を介して電子機器部品をエミューレートすることができる。 As used in this application, the terms "component," "system," "platform," "interface," and the like, can refer to or include computer-related entities or entities related to a machine operable with one or more special functionalities. The entities disclosed herein can be either hardware, a combination of hardware and software, software, or software in execution. For example, but not limited to, a component can be a process running on a processor, a processor, an object, an executable file, a thread of execution, a program, or a computer, or a combination thereof. By way of example, both an application running on a server and the server can be a component. One or more components can reside in a process and/or thread of execution, and a component can be localized on one computer or distributed between two or more computers, or both. In another example, individual components can execute from various computer-readable media having various data structures stored thereon. Components may communicate via local and/or remote processes, such as following a signal having one or more data packets (e.g., data from one component may interact with another component within a local system, within a distributed system, or across networks, or a combination thereof, such as the Internet, which interacts with other systems via signals). As another example, a component may be a device having special functionality provided by mechanical parts operated by electrical or electronic circuits, and operated by a software or firmware application executed by a processor. In such a case, the processor may be internal or external to the device, and may execute at least a portion of the software or firmware application. As yet another example, a component may be a device that provides special functionality through electronic parts without mechanical parts, in which case the electronic parts may include a processor or other means for executing software or firmware that imparts at least a portion of the functionality of the electronic parts. In one aspect, a component may emulate an electronic part via a virtual machine, for example, in a cloud computing system.
加えて、用語「または(or)」は、排他的「or」ではなく包括的「or」を意味することを意図されている。すなわち、特に明記しない限り、またはコンテキストから明らかではない限り、「Xは、AまたはBを利用する」とは、自然包括的並べ替えのうちの任意のものを意味することを意図されている。すなわち、XがAを利用する、XがBを利用する、またはXがAおよびBを両方利用する場合、「XがAまたはBを利用する」が前述の事例のいずれかの下で満足される。その上、本主題の明細書および添付される図面内で使用される場合、冠詞「1つの(a)」および「1つの(an)」は、単数形を対象とするよう特に明記しない限り、またはコンテキストから明らかではない限り、一般的に「1つまたは複数の」を意味するものと解釈されるべきである。本明細書において使用される場合、用語「例、例示の、例示的な(example)」または「例示の(exemplary)」あるいはその両方は、例、事例、または図示として機能することを意味するよう利用される。疑念の回避のため、本明細書において開示される主題はそのような例によって限定されない。加えて、本明細書において「例」または「例示の」あるいはその両方として説明されるあらゆる態様または設計は、必ずしも他の態様または設計よりも、好ましいまたは有利であるとして解釈される必要はなく、また当業者に既知の等価な例示の構造および技術を排除することも意図されていない。 In addition, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or." That is, unless otherwise stated or clear from the context, "X utilizes A or B" is intended to mean any of the natural inclusive permutations. That is, if X utilizes A, X utilizes B, or X utilizes both A and B, then "X utilizes A or B" is satisfied under any of the foregoing cases. Moreover, as used within the specification of the subject matter and the accompanying drawings, the articles "a" and "an" should be construed generally to mean "one or more" unless otherwise stated or clear from the context to be directed to the singular form. As used herein, the terms "example" and/or "exemplary" are utilized to mean serving as an example, instance, or illustration. For the avoidance of doubt, the subject matter disclosed herein is not limited by such examples. Additionally, any aspect or design described herein as "example" and/or "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects or designs, and is not intended to exclude equivalent exemplary structures and techniques known to those skilled in the art.
主題の明細書で採用されるように、用語「プロセッサ」は実質的に、シングルコア・プロセッサ、ソフトウェア・マルチスレッド実行機能を有するシングルプロセッサ、マルチコア・プロセッサ、ソフトウェア・マルチスレッド実行機能を有するマルチコア・プロセッサ、ハードウェア・マルチスレッド技術を有するマルチコア・プロセッサ、並列プラットフォーム、および分散共有メモリを有する並列プラットフォーム、を備えるあらゆるコンピューティング処理ユニットまたはデバイスを称することができるが、限定はしない。追加的に、プロセッサとは、集積回路、特定用途向け集積回路(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)などの多くの形態で利用可能である。追加的に、本明細書におけるシステムまたはコンピュータ実装方法の開示されるメモリ・コンポーネントは、これらのおよびあらゆる他の好適なタイプのメモリを含むことを意図されているが、それらを含むように限定することは意図されていない。 As employed in the subject specification, the term "processor" may refer to, but is not limited to, any computing processing unit or device that includes a single-core processor, a single processor with software multithreaded execution capabilities, a multi-core processor, a multi-core processor with software multithreaded execution capabilities, a multi-core processor with hardware multithreading technology, a parallel platform, and a parallel platform with distributed shared memory. Additionally, a processor may refer to an integrated circuit, an application specific integrated circuit (ASIC), a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic controller (PLC), a complex programmable logic device (CPLD), discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. Furthermore, the processor may utilize nanoscale architectures, such as, but not limited to, molecular and quantum dot-based transistors, switches, and gates to optimize space usage or improve the performance of user equipment. A processor may also be implemented as a combination of computing processing units. In this disclosure, terms such as "store," "storage," "data storage," "database," and substantially any other information storage component associated with the operation and functionality of a component are utilized to refer to a "memory component" entity embodied in a "memory" or a component that includes a memory. It should be appreciated that the memory and/or memory components described herein can be either volatile or non-volatile memory, or can include both volatile and non-volatile memory. By way of example, and not limitation, non-volatile memory can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), flash memory, or non-volatile random access memory (RAM) (e.g., ferroelectric RAM (FeRAM)). Volatile memory can include RAM, which can act as an external cache memory, for example. By way of example, and not limitation, RAM is available in many forms, such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), SyncLink DRAM (SLDRAM), direct Rambus RAM (DRRAM), direct Rambus dynamic RAM (DRDRAM), and Rambus dynamic RAM (RDRAM). Additionally, the disclosed memory components of the systems or computer-implemented methods herein are intended to include, but are not intended to be limited to, these and any other suitable types of memory.
上で説明してきたことは、システムおよびコンピュータ実装方法の単なる例を含む。もちろん、本開示を説明することを目的として、コンポーネントまたはコンピュータ実装方法のすべての考えられる組合せを説明することは不可能だが、当業者であれば本開示の多くのさらなる組合せおよび並べ替えが可能であることを理解されよう。さらには、発明を実施するための形態、特許請求の範囲、付録および図面において用語「含む(includes)」、「有する(has)」、「所有する(possesses)」などが使用される範囲では、そのような用語は、請求項の移行句として採用される場合に「を備える(comprising)」が解釈される場合の用語「を備える(comprising)」と類似するやり方で、包括的であることを意図されている。 What has been described above includes merely examples of systems and computer-implemented methods. Of course, for purposes of describing this disclosure, it is not possible to describe every conceivable combination of components or computer-implemented methods, but one of ordinary skill in the art will recognize that many further combinations and permutations of the present disclosure are possible. Moreover, to the extent that the terms "includes," "has," "possesses," and the like are used in the detailed description, claims, appendices, and drawings, such terms are intended to be inclusive in a manner similar to the way "comprising" is interpreted when employed as a transitional phrase in a claim.
例示を目的として様々な実施形態の説明を提示してきたが、網羅的であること、または開示された実施形態に限定することは意図されていない。説明された実施形態の範囲および思想から逸脱することなく、多くの変更形態および変形形態が当業者にとって明らかとなろう。本明細書において使用される用語法は、実施形態の原理、実践的な用途もしくは市場で見られる技術より優れた技術的な改善を最良に説明するため、または当業者の他の者が本明細書において開示される実施形態を理解できるように選ばれたものである。 The description of various embodiments has been presented for purposes of illustration, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein has been selected to best explain the principles of the embodiments, practical applications or technical improvements over the art found in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.
Claims (19)
コンピュータ実行可能コンポーネントを記憶するメモリと、
前記メモリに記憶された、前記コンピュータ実行可能コンポーネントを実行するプロセッサであって、前記コンピュータ実行可能コンポーネントが
量子タスクを実行するための量子プログラムを受信する受信コンポーネントであり、前記量子プログラムが第1のプログラムおよび第2のプログラムを含む、前記受信コンポーネントと、
前記第1のプログラムをコンパイルするアダプティブ・コンパイル・コンポーネントと、
前記コンパイルされた第1のプログラムを実行する実行コンポーネントと、
前記コンパイルされた第1のプログラムを実行することに基づいて出力を受信する第2の受信コンポーネントと、
前記第1のプログラムを実行することから前記受信した出力に基づいて前記第2のプログラムをコンパイルする第2のアダプティブ・コンパイル・コンポーネントと、
前記コンパイルされた第2のプログラムを実行する第2の実行コンポーネントと
を含む、前記プロセッサと
を備える、システム。 1. A system comprising:
a memory for storing computer executable components;
a processor for executing the computer-executable components stored in the memory, the computer-executable components being a receiving component for receiving a quantum program for performing a quantum task, the quantum program including a first program and a second program;
an adaptive compilation component for compiling the first program;
an execution component for executing the compiled first program;
a second receiving component that receives output based on executing the compiled first program;
a second adaptive compilation component that compiles the second program based on the received output from executing the first program; and
and a second execution component for executing the compiled second program.
システムによって、量子タスクを実行するための量子プログラムを受信することであって、前記量子プログラムが第1のプログラムおよび第2のプログラムを含む、前記受信することと、
前記システムによって、前記第1のプログラムをコンパイルすることと、
前記システムによって、前記コンパイルされた第1のプログラムを実行することと、
前記システムによって、前記コンパイルされた第1のプログラムを実行することに基づいて出力を受信することと、
前記システムによって、前記第1のプログラムを実行することから前記受信した出力に基づいて前記第2のプログラムをコンパイルすることと、
前記システムによって、前記コンパイルされた第2のプログラムを実行することと
を含む、コンピュータ実装方法。 1. A computer-implemented method comprising:
receiving, by a system , a quantum program for performing a quantum task , the quantum program including a first program and a second program;
compiling, by the system, the first program;
executing, by the system, the compiled first program;
receiving an output based on executing, by the system, the compiled first program;
compiling, by the system, the second program based on the received output from executing the first program;
and executing, by the system, the compiled second program.
をさらに含む、請求項10に記載のコンピュータ実装方法。 The computer-implemented method of claim 10 , further comprising determining, by the system, one or more circuit outputs that are applied to one or more circuit inputs.
をさらに含む、請求項10または11に記載のコンピュータ実装方法。 12. The computer-implemented method of claim 10 or 11, further comprising utilizing, by the system, the first program that is defined based on one or more previously generated outputs from the first program.
をさらに含む、請求項10ないし12のいずれかに記載のコンピュータ実装方法。 13. The computer-implemented method of claim 10, further comprising utilizing, by the system, the second program defined based on one or more previously received outputs from the second program.
をさらに含む、請求項10ないし13のいずれかに記載のコンピュータ実装方法。 14. The computer-implemented method of claim 10, further comprising recompiling, by the system, the compiled first program into a first recompiled program adapted to run on a first quantum hardware device.
をさらに含む、請求項14に記載のコンピュータ実装方法。 15. The computer-implemented method of claim 14, further comprising receiving, by the system, the output based on executing the recompiled first program.
をさらに含む、請求項10ないし15のいずれかに記載のコンピュータ実装方法。 16. The computer-implemented method of claim 10, further comprising recompiling, by the system, the compiled first program into a second recompiled program adapted to run on a second quantum hardware device.
をさらに含む、請求項16に記載のコンピュータ実装方法。 17. The computer-implemented method of claim 16, further comprising receiving, by the system, a second output based on executing the recompiled second program.
をさらに含む、請求項10ないし17のいずれかに記載のコンピュータ実装方法。 18. The computer-implemented method of claim 10, further comprising compiling the second program based on selecting, by the system, either the received first output or the received second output.
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 (2)
| Publication Number | Publication Date |
|---|---|
| JP2023523143A JP2023523143A (en) | 2023-06-02 |
| JP7621375B2 true JP7621375B2 (en) | 2025-01-24 |
Family
ID=75588223
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022559732A Active JP7621375B2 (en) | 2020-04-28 | 2021-04-19 | Efficient quantum adaptive execution methods for quantum circuits |
Country Status (10)
| Country | Link |
|---|---|
| US (1) | US11194554B2 (en) |
| EP (1) | EP4143749A1 (en) |
| JP (1) | JP7621375B2 (en) |
| KR (1) | KR102924753B1 (en) |
| CN (1) | CN115461763A (en) |
| AU (1) | AU2021263793B2 (en) |
| BR (1) | BR112022021761A2 (en) |
| CA (1) | CA3173081A1 (en) |
| IL (1) | IL296191B2 (en) |
| WO (1) | WO2021219408A1 (en) |
Families Citing this family (16)
| 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 |
| WO2022231846A1 (en) * | 2021-04-27 | 2022-11-03 | The University Of Chicago | System and method of in-queue optimizations for quantum cloud computing |
| US20220405132A1 (en) * | 2021-06-17 | 2022-12-22 | Multiverse Computing S.L. | Method and system for quantum computing |
| WO2022267854A1 (en) * | 2021-06-23 | 2022-12-29 | 合肥本源量子计算科技有限责任公司 | Method, system and apparatus for processing quantum computing task, and operating system |
| US12306900B1 (en) * | 2021-06-28 | 2025-05-20 | National Technology & Engineering Solutions Of Sandia, Llc | Feedback-based quantum optimization |
| CN115543330B (en) * | 2021-06-30 | 2025-08-22 | 华为技术有限公司 | Program compilation method and device |
| US12547922B2 (en) * | 2021-10-20 | 2026-02-10 | IonQ, Inc. | Benchmark-driven automation for tuning quantum computers |
| US20230143072A1 (en) * | 2021-11-09 | 2023-05-11 | International Business Machines Corporation | Optimize quantum-enhanced feature generation |
| CN115470926B (en) * | 2022-02-28 | 2023-12-12 | 本源量子计算科技(合肥)股份有限公司 | Quantum computing task processing device and method and quantum computer |
| CN115618955B (en) * | 2022-12-19 | 2023-04-07 | 量子科技长三角产业创新中心 | Quantum line optimization method, device, equipment and storage medium |
| CN115860128B (en) * | 2022-12-21 | 2023-08-15 | 北京百度网讯科技有限公司 | Quantum circuit operation method and device and electronic equipment |
| US12572836B2 (en) | 2023-02-20 | 2026-03-10 | Bank Of America Corporation | Intelligent provisioning of quantum programs to quantum hardware |
| CN116451797B (en) * | 2023-04-24 | 2024-06-28 | 西安电子科技大学 | Quantum circuit segmentation method based on quantum process tomography |
| CN117391206B (en) * | 2023-05-22 | 2024-11-19 | 北京百度网讯科技有限公司 | Quantum circuit processing method and device and electronic equipment |
| CN117236458B (en) * | 2023-11-13 | 2024-03-26 | 国开启科量子技术(安徽)有限公司 | Quantum computing task scheduling method, device, medium and equipment for quantum cloud platform |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180181685A1 (en) | 2015-06-08 | 2018-06-28 | Microsoft Technology Licensing, Llc | System for reversible circuit compilation with space constraint, method and program |
| WO2019108512A1 (en) | 2017-11-28 | 2019-06-06 | IonQ Inc. | Software-defined quantum computer |
| US10592216B1 (en) | 2017-11-15 | 2020-03-17 | Amazon Technologies, Inc. | Development environment for programming quantum computing resources |
| WO2020056176A1 (en) | 2018-09-13 | 2020-03-19 | The University Of Chicago | System and method of optimizing instructions for quantum computers |
Family Cites Families (19)
| 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 (en) * | 2010-06-29 | 2013-12-13 | Flexycore | SELECTIVE COMPILATION METHOD, DEVICE AND CORRESPONDING COMPUTER PROGRAM PRODUCT. |
| EP3129923B1 (en) * | 2014-04-09 | 2021-10-27 | Microsoft Technology Licensing, LLC | Efficient synthesis of repeat-until-success circuits in clifford + t basis |
| 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 |
| CA3022037C (en) * | 2016-04-25 | 2021-09-21 | Google Llc | Quantum assisted optimization |
| 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 |
| US10977570B2 (en) | 2017-06-19 | 2021-04-13 | Rigetti & Co, Inc. | Distributed quantum computing system |
| US10796240B2 (en) | 2017-07-22 | 2020-10-06 | QC Ware Corp. | Performing fault tree analysis on quantum computers |
| 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 |
| US11710058B2 (en) * | 2018-06-30 | 2023-07-25 | Intel Corporation | Apparatus and method for recompilation of quantum circuits to compensate for drift in a quantum computer |
| US11531922B2 (en) | 2018-09-27 | 2022-12-20 | Intel Corporation | Apparatus and method for scalable qubit addressing |
| US11586966B2 (en) * | 2018-09-27 | 2023-02-21 | International Business Machines Corporation | Development and analysis of quantum computing programs |
| US11243248B2 (en) * | 2018-10-11 | 2022-02-08 | International Business Machines Corporation | Symbolic backend for execution of quantum programs |
| 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 |
| CN110569979B (en) * | 2019-09-09 | 2022-09-06 | 中国科学技术大学 | Logical-physical bit remapping method for noisy medium-sized quantum equipment |
-
2020
- 2020-04-28 US US16/860,644 patent/US11194554B2/en active Active
-
2021
- 2021-04-19 EP EP21720232.4A patent/EP4143749A1/en active Pending
- 2021-04-19 WO PCT/EP2021/060018 patent/WO2021219408A1/en not_active Ceased
- 2021-04-19 CN CN202180031500.XA patent/CN115461763A/en active Pending
- 2021-04-19 BR BR112022021761A patent/BR112022021761A2/en unknown
- 2021-04-19 IL IL296191A patent/IL296191B2/en unknown
- 2021-04-19 KR KR1020227032326A patent/KR102924753B1/en active Active
- 2021-04-19 CA CA3173081A patent/CA3173081A1/en active Pending
- 2021-04-19 AU AU2021263793A patent/AU2021263793B2/en active Active
- 2021-04-19 JP JP2022559732A patent/JP7621375B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180181685A1 (en) | 2015-06-08 | 2018-06-28 | Microsoft Technology Licensing, Llc | System for reversible circuit compilation with space constraint, method and program |
| US10592216B1 (en) | 2017-11-15 | 2020-03-17 | Amazon Technologies, Inc. | Development environment for programming quantum computing resources |
| WO2019108512A1 (en) | 2017-11-28 | 2019-06-06 | IonQ Inc. | Software-defined quantum computer |
| WO2020056176A1 (en) | 2018-09-13 | 2020-03-19 | The University Of Chicago | System and method of optimizing instructions for quantum computers |
Also Published As
| Publication number | Publication date |
|---|---|
| IL296191A (en) | 2022-11-01 |
| IL296191B2 (en) | 2025-05-01 |
| AU2021263793A1 (en) | 2022-07-28 |
| CN115461763A (en) | 2022-12-09 |
| JP2023523143A (en) | 2023-06-02 |
| KR20220149545A (en) | 2022-11-08 |
| WO2021219408A1 (en) | 2021-11-04 |
| US20210334079A1 (en) | 2021-10-28 |
| US11194554B2 (en) | 2021-12-07 |
| EP4143749A1 (en) | 2023-03-08 |
| KR102924753B1 (en) | 2026-02-06 |
| AU2021263793B2 (en) | 2024-01-04 |
| IL296191B1 (en) | 2025-01-01 |
| BR112022021761A2 (en) | 2022-12-13 |
| CA3173081A1 (en) | 2021-11-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7621375B2 (en) | Efficient quantum adaptive execution methods for quantum circuits | |
| US11222279B2 (en) | Modular quantum circuit transformation | |
| US11681914B2 (en) | Determining multivariate time series data dependencies | |
| US11121725B2 (en) | Instruction scheduling facilitating mitigation of crosstalk in a quantum computing system | |
| CN113661501B (en) | Quantum signature nuclear alignment | |
| US20210004707A1 (en) | Quantum pulse optimization using machine learning | |
| US11288589B1 (en) | Quantum circuit modeling | |
| US20200342344A1 (en) | Quantum circuit optimization using machine learning | |
| IL296108B1 (en) | Generation of microservices from a monolithic application based on runtime traces | |
| US12175342B2 (en) | Quantum reinforcement learning agent | |
| US11983471B2 (en) | Providing reusable quantum circuit components as a curated service | |
| US12277477B2 (en) | Quantum circuit optimization routine evaluation and knowledge base generation | |
| US20220188681A1 (en) | Compilation of a quantum program | |
| US20250209368A1 (en) | Methods, systems and kits for quantum-optimized cross-backend software development | |
| Wang et al. | Structural Priors and Modular Adapters in the Composable Fine-Tuning Algorithm of Large-Scale Models | |
| Li et al. | Qusplit: Achieving both high fidelity and throughput via job splitting on noisy quantum computers | |
| JP7824010B2 (en) | Fair and simultaneous comparison of parallel machine learning models | |
| US11853725B2 (en) | Microservices recommendation framework | |
| Do et al. | Co-scheduling ensembles of in situ workflows | |
| US12412114B2 (en) | Visualization scheme of noise in a quantum circuit | |
| CN117242457B (en) | Locating the performance hotspots of neural networks | |
| Kissami et al. | Predicting mpi communication for solving partial differential equations using machine learning | |
| De Maio | Paving the Way to Hybrid Quantum-Classical Scientific Workflows | |
| Ma et al. | An Approximate Dynamic Programming Method for Directed Acyclic Graph Scheduling Problem | |
| Iyer | Advances in Machine Learning and Software Engineering |
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 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240918 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20241001 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20241210 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20241224 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250114 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7621375 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |