JP5921856B2 - Quantum computer system, control method and program for quantum computer system - Google Patents
Quantum computer system, control method and program for quantum computer system Download PDFInfo
- Publication number
- JP5921856B2 JP5921856B2 JP2011258481A JP2011258481A JP5921856B2 JP 5921856 B2 JP5921856 B2 JP 5921856B2 JP 2011258481 A JP2011258481 A JP 2011258481A JP 2011258481 A JP2011258481 A JP 2011258481A JP 5921856 B2 JP5921856 B2 JP 5921856B2
- Authority
- JP
- Japan
- Prior art keywords
- quantum
- program
- computer system
- microcode
- classical
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 63
- 230000006870 function Effects 0.000 claims description 97
- 239000002096 quantum dot Substances 0.000 claims description 89
- 238000012545 processing Methods 0.000 claims description 77
- 230000008569 process Effects 0.000 claims description 50
- 238000007781 pre-processing Methods 0.000 claims description 40
- 238000012549 training Methods 0.000 claims description 38
- 238000012805 post-processing Methods 0.000 claims description 22
- 238000002360 preparation method Methods 0.000 claims description 22
- 238000003860 storage Methods 0.000 claims description 22
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 20
- 238000012546 transfer Methods 0.000 description 17
- 238000004458 analytical method Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 7
- 230000004888 barrier function Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000007689 inspection Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 230000004907 flux Effects 0.000 description 2
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 230000018199 S phase Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000005610 quantum mechanics Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Landscapes
- Superconductor Devices And Manufacturing Methods Thereof (AREA)
- Optical Modulation, Optical Deflection, Nonlinear Optics, Optical Demodulation, Optical Logic Elements (AREA)
Description
本発明は、量子コンピュータシステム、量子コンピュータシステムの制御方法、及びプログラムに係り、特に、量子アルゴリズムが古典−量子のハイブリッド構成の量子コンピュータシステムに関する。 The present invention relates to a quantum computer system, a control method of the quantum computer system, and a program, and more particularly, to a quantum computer system having a hybrid configuration of classical-quantum quantum algorithms.
従来のコンピュータ(これ以降、古典コンピュータと呼ぶ)では解決することが困難だった問題に対して、量子力学の原理を応用した量子コンピュータによる解決が期待されている。量子コンピュータでは重ね合わせの状態を利用し、重ね合わされた状態それぞれに対する処理を一度に行うことができる(量子並列性)。例えば、2キュービットで構成された量子コンピュータでは、00,01,10,11のそれぞれの状態に対して並列処理を行うことができる。量子並列性を活用することで、古典コンピュータが苦手としていた幾つかの問題において、量子コンピュータによる効率的なアルゴリズムが発見されている。有名な例では、古典コンピュータより効率良く因数分解を行うことができる非特許文献1に記載のShorの因数分解アルゴリズムがある。
A problem that has been difficult to solve with a conventional computer (hereinafter referred to as a classical computer) is expected to be solved by a quantum computer that applies the principles of quantum mechanics. The quantum computer uses the superposition state, and can process each superposed state at once (quantum parallelism). For example, in a quantum computer configured with 2 qubits, parallel processing can be performed for each state of 00, 01, 10, and 11. By utilizing quantum parallelism, efficient algorithms using quantum computers have been discovered in several problems that classical computers were not good at. A well-known example is the Shor factorization algorithm described in Non-Patent
量子コンピュータを実現するためには、デバイス、アーキテクチャ、アルゴリズムの各レイヤーで革新が必要とされている。例えば、量子コンピュータのデバイスは量子力学的な効果を利用しているため、僅かな外乱でも状態が乱れてしまい、安定して動作させ続けることは困難である。この問題に関して、デバイスのレイヤーにおいてより安定して動作するデバイスを実現するための取り組みは続けられているが、並行してアーキテクチャやアルゴリズムなどの上位レイヤーでの取り組みも重要となる。例えば、特許文献1では量子誤り訂正によってこの問題を解決しようとしている。また、量子コンピュータのアルゴリズム(これ以降、量子アルゴリズムと呼ぶ)を記述する上で用いられている要素(種々のユニタリ変換)は、量子コンピュータを構成する量子回路の構成要素と必ずしも一対一に対応しないため、古典コンピュータで言うところの論理合成に相当する処理が必要となる。
In order to realize quantum computers, innovation is required in each layer of devices, architectures, and algorithms. For example, since a quantum computer device uses quantum mechanical effects, even a slight disturbance disturbs the state, and it is difficult to keep it operating stably. Regarding this problem, efforts to realize a device that operates more stably in the device layer are continuing, but in parallel, efforts in higher layers such as architecture and algorithms are also important. For example,
例えば、特許文献1では、人間が扱いやすい量子言語を、量子コンピュータの量子系に応じた最適な量子回路に自動的に変換する量子プログラム変換装置を示している。すなわち、特許文献1の発明は、入力された量子プログラムを古典コードと量子コードに分けてそれぞれコンパイルし、リンクする。量子コンピュータの方式(ハードウェアの相違)によって使っているゲートが違うので、量子コードから方式毎のクラスライブラリやエラー訂正ライブラリを使って、コンパイルしている。特許文献1の発明によれば、入力された量子プログラムに対し、量子コンピュータのハードウェア(量子系)の違いを考慮することなく量子回路を自動的に生成することができる。
For example,
なお、量子コンピュータ用のデバイスに関しては種々の研究がなされているが、例えば特許文献2に記載されているような半導体を用いた固体素子が実用上は有利であり、将来的にはこの種のデバイスを用いられていくものと考えられる。
Various studies have been made on devices for quantum computers. For example, a solid element using a semiconductor as described in
また、特許文献3には、量子プロセッサ要素の局所的プログラミングのためのシステムや方法が開示されている。すなわち、複数の素子(プログラム可能デバイス)とメモリアドミニストレーションシステムとを具備した量子プロセッサにおける、各素子(例えば超伝導磁束キュービットや超伝導電荷キュービット)のデバイスパラメータをプログラムするための方法が開示されている。 Patent Document 3 discloses a system and method for local programming of quantum processor elements. That is, a method for programming device parameters of each element (eg, superconducting flux qubit and superconducting charge qubit) in a quantum processor comprising a plurality of elements (programmable devices) and a memory administration system is disclosed. Has been.
量子コンピュータを実用化するためには、汎用性と安定性を確保することが重要である。汎用性の面では、単に一種類の問題に対して効果を発揮するだけでなく、複数種の問題に対して汎用的に用いることができる量子コンピュータであることが望ましい。安定性の面では、量子コンピュータのデバイスを作製する技術はまだ発展途上にあり、量子レジスタの素子等の動作が不安定な可能性がある。そうした中では、素子が安定している期間に処理を終えるために、可能な限り処理に要する時間やステップ数を削減することが望まれる。換言すると、ユーザが処理すべき事項やデータの種類に応じて、量子回路のシーケンスを最適化し、素子が安定している短期間に処理できるようにしたいという汎用性に関する要求がある。また、将来的に大規模なデバイスを実現できるようになった段階では、素子数が莫大になるためシステム全体としては不安定になってしまう可能性がある。さらに、素子の故障に関しても、一時的な故障や恒久的な故障など、様々な故障モードを検討しなければならない。 In order to put a quantum computer into practical use, it is important to ensure versatility and stability. From the viewpoint of versatility, it is desirable that the quantum computer be capable of being used universally for a plurality of types of problems as well as being effective for a single type of problem. In terms of stability, the technology for fabricating quantum computer devices is still under development, and the operation of quantum register elements and the like may be unstable. Under such circumstances, it is desired to reduce the time and the number of steps required for the processing as much as possible in order to finish the processing while the element is stable. In other words, there is a demand for versatility that the sequence of the quantum circuit is optimized according to the items to be processed by the user and the type of data so that the processing can be performed in a short time when the element is stable. In addition, at the stage where a large-scale device can be realized in the future, the number of elements becomes enormous and the entire system may become unstable. Furthermore, regarding the failure of the element, various failure modes such as a temporary failure and a permanent failure must be considered.
特許文献1の発明は、量子系の相違を踏まえた量子プログラム変換装置に関するものであるが、ユーザが、量子コンピュータを複数種の問題に対して汎用的に駆使することについては、開示されていない。例えば、ユーザが量子コンピュータのアプリケーションプログラムに処理させたいデータを与え、量子レジスタを構成する複数のキュービットの間でスワップを行って特定のキュービットを読み出すような処理に関して、ソフトウェアによる汎用的な処理をどのように行うかについては、開示されていない。また、量子レジスタの動作の安定性についての記載も無い。
The invention of
特許文献2の発明は、量子コンピュータのデバイスに関するものであり、このデバイスを備えた量子コンピュータのソフトウェア、特に、ユーザが使用するにあたっての汎用性や安定性についての記載は無い。
The invention of
特許文献3の発明は、量子コンピュータの複数の超伝導素子(プログラム可能デバイス)の制御に関するものであり、各超伝導素子の特性を外部から設定(プログラム)できるようにする技術である。特許文献3には、デバイスの特性を生かしてソフトウェアにより量子コンピュータのシステム全体をどのように制御するかについての開示はない。すなわち、ユーザが量子コンピュータを使用する上での汎用性や安定性についての記載は無い。 The invention of Patent Document 3 relates to control of a plurality of superconducting elements (programmable devices) of a quantum computer, and is a technique that allows the characteristics of each superconducting element to be set (programmed) from the outside. Patent Document 3 does not disclose how the entire quantum computer system is controlled by software utilizing the characteristics of the device. That is, there is no description about versatility and stability when a user uses a quantum computer.
本発明の主たる課題は、汎用性の高い量子コンピュータシステムを提供することにある。 A main object of the present invention is to provide a highly versatile quantum computer system.
本発明は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、量子コンピュータシステムは、古典プログラムを実行可能な古典コンピュータ機能部と量子プログラムを実行可能な量子コンピュータ機能部とを備え、前記量子コンピュータ機能部は、量子部、古典記憶装置及び制御装置を備え、前記古典記憶装置は前記量子部に対する操作命令の列である量子マイクロコードを記憶しており、該量子マイクロコードは、前記量子プログラムと、前記量子部での処理対象となる入力データと前記古典プログラムとに基づいて生成された中間データとから変換されたものであり、前記制御装置により、前記量子マイクロコードに記述されたシーケンスに基づいて前記量子部を制御することを特徴とする。 The present invention includes a plurality of means for solving the above-described problems. For example, a quantum computer system includes a classical computer function unit capable of executing a classical program and a quantum computer function unit capable of executing a quantum program. The quantum computer function unit includes a quantum unit, a classical storage device, and a control device, and the classical storage device stores quantum microcode that is a sequence of operation instructions for the quantum unit, and the quantum microcode Is converted from the quantum program, the input data to be processed in the quantum unit and the intermediate data generated based on the classical program, and is converted into the quantum microcode by the control device. The quantum unit is controlled based on the described sequence.
本発明により、ユーザが量子コンピュータに任意の処理を実行させるプログラムを生成することを可能とし、汎用性の高い量子コンピュータシステムを実現することができる。 According to the present invention, a user can generate a program for causing a quantum computer to execute arbitrary processing, and a highly versatile quantum computer system can be realized.
本発明の実施形態の一例を挙げるならば、量子コンピュータシステムは、少なくとも1個以上のキュービットから構成される量子レジスタと前記量子レジスタに対して操作を行う制御ゲートと前記量子レジスタの状態を観測する読出しゲートとを有する量子部と、古典記憶装置と、前記古典記憶装置にアクセス可能な制御装置とを備え、前記古典記憶装置は前記制御ゲートないしは前記読出しゲートに対する操作命令の列である量子マイクロコードを記憶し、前記制御装置は前記古典記憶装置から前記量子マイクロコードを読み出して前記制御ゲートないしは前記読出しゲートを制御する。 To give an example of an embodiment of the present invention, a quantum computer system observes a state of a quantum register composed of at least one qubit, a control gate for operating the quantum register, and the quantum register. A quantum unit having a read gate for reading, a classical memory device, and a control device accessible to the classical memory device, wherein the classical memory device is a sequence of operation instructions for the control gate or the read gate. A code is stored, and the control device reads the quantum microcode from the classical storage device and controls the control gate or the read gate.
これにより、量子コンピュータをプログラム可能とし、それにより本発明の課題の一つである汎用性を実現する。また、プログラム可能であることを利用して、故障等の問題に対してプログラムの動作を変更することで動的に対応し、量子コンピュータの安定性を高めることができる。よって、上記手段により、汎用的かつ安定的に利用することのできる量子コンピュータシステムを提供することができる。
以下、本発明の実施例を、図面を用いて説明する。
Thus, the quantum computer can be programmed, thereby realizing the versatility that is one of the problems of the present invention. Further, by utilizing the fact that it is programmable, it is possible to dynamically cope with a problem such as a failure by changing the operation of the program, thereby improving the stability of the quantum computer. Therefore, the above means can provide a quantum computer system that can be used universally and stably.
Embodiments of the present invention will be described below with reference to the drawings.
本発明の実施例1に係る量子コンピュータシステムを、図1〜図16を用いて説明する。
本実施例では、量子コンピュータがプログラム可能であることにより、汎用的かつ安定的に利用することができる量子コンピュータシステム100の例を説明する。
A quantum computer system according to a first embodiment of the present invention will be described with reference to FIGS.
In this embodiment, an example of a
図1は、本発明の実施例1に係る量子コンピュータシステム100の構成例を示す図である。後で述べる実施例も含めて、本発明の量子コンピュータシステムは、量子コンピュータと古典コンピュータの両方の機能を具備する。すなわち、量子コンピュータシステム100を、量子コンピュータの機能を具備する量子コンピュータ機能部と古典コンピュータの機能を具備する古典コンピュータ機能部とのハイブリッドシステムとして構成する。
FIG. 1 is a diagram illustrating a configuration example of a
一般的に、量子コンピュータ向けのアルゴリズム(これ以降、量子アルゴリズムと呼ぶ)の構成は、古典コンピュータによる前処理、量子コンピュータによる本処理、古典コンピュータによる後処理の3段階に分類できるものが多い。例えば、有名な量子アルゴリズムであるShorの因数分解アルゴリズム(非特許文献1)は、前処理で本処理のためのパラメータを生成し、それを用いて本処理を行い、本処理で得られた結果を後処理して因数分解の結果を出す。本処理では因数分解が直接行われているのではなく、位数発見を行っている。前処理では、本処理の位数発見を用いて因数分解を行うために、位数発見のパラメータを生成する。後処理では本処理で発見された位数を元にして因数分解を行う。前処理と後処理を量子コンピュータで行うことも出来るが、量子コンピュータの特徴を生かして高速化することはできない処理である。そのため、前処理と後処理は、一般的には古典コンピュータで行う。このように、量子アルゴリズムは古典−量子のハイブリッド構成となっているものが多い。 In general, there are many types of algorithms for quantum computers (hereinafter referred to as quantum algorithms) that can be classified into three stages: preprocessing by a classical computer, main processing by a quantum computer, and post-processing by a classical computer. For example, Shor's factorization algorithm (Non-Patent Document 1), which is a famous quantum algorithm, generates parameters for the main processing by preprocessing, performs the main processing using the parameters, and obtains the results obtained by the main processing. Is post-processed to obtain a factorization result. In this process, factoring is not performed directly, but the order is found. In the pre-processing, order finding parameters are generated in order to perform factorization using the order finding of this processing. In post-processing, factorization is performed based on the order found in this processing. The pre-processing and post-processing can be performed by the quantum computer, but the processing cannot be speeded up by utilizing the characteristics of the quantum computer. For this reason, pre-processing and post-processing are generally performed by a classical computer. Thus, many quantum algorithms have a classical-quantum hybrid configuration.
本実施例においても、古典コンピュータ機能部が前処理及び後処理部を備え、量子コンピュータ機能部が本処理部を備えている。 Also in this embodiment, the classical computer function unit includes pre-processing and post-processing units, and the quantum computer function unit includes this processing unit.
また、量子コンピュータシステム100は、常温部101と低温部102を備えており、常温部101と低温部102の間は、通信を行うための伝送路103で接続される。すなわち、常温部101と低温部102は伝送路103を介して、互いにプログラムやデータを通信で送受することができる。
The
一般的に、量子コンピュータのデバイスは低温の動作環境を要求するものが多い。例えば、量子コンピュータ機能部に、特許文献2に記載のデバイスを採用した場合には、4.2Kという非常に低い温度に冷却して利用する必要がある。このように、現在一般に用いられている古典コンピュータ機能部は常温動作を前提とし、量子コンピュータ機能部は低温動作を前提とて構成されているため、常温部101と低温部102に分離する必要性が理解できるであろう。
In general, many quantum computer devices require a low-temperature operating environment. For example, when the device described in
本実施例でも、概ね、古典コンピュータ機能部が常温部101に、量子コンピュータ機能部が低温部102に対応する。しかしながら、本実施例の低温部102は、量子コンピュータ機能部のみならず古典コンピュータ機能部に相当する制御装置であるマイクロ制御部301を含んでいる。
Also in this embodiment, the classical computer function unit generally corresponds to the
図2は、本実施例の量子コンピュータシステム100における常温部101の構成例を示す図である。常温部101のハードウェア構成は、現在一般的に用いられている古典コンピュータのハードウェア構成と基本的に同一である。常温部101は、主記憶装置201、CPU202、I/Oアダプタ203を具備する。主記憶装置201はアプリケーションプログラム210、システムソフトウェア220、ラインタイム情報230を保持している。CPU202は主記憶装置201が保持しているシステムソフトウェア220、及び、古典オブジェクト231を実行する。I/Oアダプタ203はCPU202の要求に応じて、伝送路103を経由して低温部102と通信を行う。なお、オペレーティングシステム等、現在の古典コンピュータが一般的に備えている構成要素に関しては、本実施例の量子コンピュータシステム100も当然備えているが、説明を省略する。
FIG. 2 is a diagram illustrating a configuration example of the
アプリケーションプログラム210は、量子コンピュータシステム100で処理したい問題毎に用意されるプログラムである。前述した通り、量子アルゴリズムは古典コンピュータ機能部で実行する前処理及び後処理部と、量子コンピュータ機能部で実行する本処理部からなる。これに対応してアプリケーションプログラム210は、古典プログラム211と量子プログラム212の複合として構成される。古典プログラム211は、例えばC言語のようなプログラミング言語で記述されたプログラムであり、前処理及び後処理でCPU202が行うべき処理を記述している。量子プログラム212は、本処理で低温部102が行うべき処理を記述している。量子プログラム212は古典プログラム211と同様にプログラミング言語で記述することも可能であるし、ユニタリ行列や量子回路として表現しても良い。
The
システムソフトウェア220は、アプリケーションプログラム210をCPU220及び低温部102上で動作させるために必要な制御や操作をCPU202に行わせるためのソフトウェア群である。システムソフトウェア220は古典コンパイラ221、量子コンパイラ222、及び、実行マネージャ223から構成される。古典コンパイラ221は古典プログラム211をCPU202上で実行可能な形式である古典オブジェクト231に変換するためのソフトウェアである。現在一般的に用いられているプログラミング言語の処理系と同義と考えて良い。量子コンパイラ222は量子プログラム212を低温部102上で実行可能な形式である量子マイクロコード232に変換するためのソフトウェアである。実行マネージャ223はアプリケーションプログラム210に入力データ233を入力して処理結果を得るために、システムソフトウェア220による処理や、常温部101と低温部102の間のデータ転送など、必要となる処理の全体制御を行うソフトウェアである。
The
ランタイム情報230は、アプリケーションプログラム210の実行時に必要となるデータ、ないしは、実行の過程で一時的に生成されるデータやコードである。ランタイム情報230は古典オブジェクト231、量子マイクロコード232、入力データ233、中間データ234、及び、観測データ235から構成される。古典オブジェクト231は前述した通り、古典コンパイラ221によって生成されたCPU202が実行可能なコードである。量子マイクロコード232は前述した通り、量子コンパイラ222によって生成された低温部102が実行可能なコードである。入力データ233は、アプリケーションプログラム210を利用するユーザが用意するデータで、アプリケーションプログラム210に処理させたいデータである。例えば前述した因数分解の例では、因数分解するべき合成数が入力データ233となる。すなわち、入力データ233は、量子コンピュータ機能部の量子部を用いて処理される対象となるデータである。中間データ234は古典プログラム211による前処理で生成されるデータである。観測データ235は本処理で生成されるデータで、本処理を実行する低温部102から常温部101に転送されてきたものである。
The
図3は、本実施例の量子コンピュータシステム100の低温部102の構成図の例である。低温部102は、マイクロ制御部301、観測レジスタ302、I/Oアダプタ303、量子部310、命令バッファ320から構成されている。
FIG. 3 is an example of a configuration diagram of the
I/Oアダプタ303は伝送路103と接続され、常温部101が発したデータ転送要求を受け取り、命令バッファ320への量子マイクロコード321の格納、マイクロ制御部301への実行の指令、観測レジスタ302からのデータの取得などを行う。
The I /
量子部310は量子コンピュータ機能部の中核部分であり、量子マイクロコード321に記述されている処理を実行するリソースを有する。量子部310は制御ゲート311、量子レジスタ312、読出しゲート313から構成されている。量子レジスタ312は、0、1、もしくは0と1の重ね合わせの状態を保持できるキュービットを1個以上有する。キュービットの構成方法に関しては、例えば特許文献2に記載されている。
The
図4に、本実施例における量子レジスタ312を構成するキュービットブロック400の構成の一例を示す。ここでキュービット410は、2個の量子ドット411,412を連結した二重量子ビットとして構成される。また、バリアポテンシャルの高さを制御するために、制御ゲート420,421,422,430,431,432がキュービット410に付随しており、これらを組にしたキュービットブロック400として、ハードウェアの構成要素(ビルディングブロック)となる。
FIG. 4 shows an example of the configuration of the
図5に、本実施例における量子部310の構成の一例を示す。前述した通り、量子部310は制御ゲート311、量子レジスタ312、読出しゲート313から構成される。このうち、量子レジスタ312は図4に示したようなキュービットブロック400を1個以上並べることで実現される。図5の例では、量子レジスタが、キュービットブロック501,502,503,504の4個を並べて構成されている。また、制御ゲート311は各キュービットブロック内に置かれている(図4の制御ゲート420,421,422,430,431,432)。なお,これ以降、キュービットブロック501,502,503,504内の各キュービット410のことを指し示す場合には、単にキュービット501,502,503,504と呼称する。加えて、量子レジスタ312(キュービットブロック501,502,503,504)の周囲には、各キュービットの初期化を行うための制御ゲート311として、制御ゲート511,512,521,522も置かれている。読出しゲート313は、量子レジスタ312(キュービットブロック501,502)の周囲に置かれた単電子トランジスタ531,532として実現される。
FIG. 5 shows an example of the configuration of the
これ以降、量子レジスタ312はキュービットをN個持つNキュービット量子レジスタであるとする。なお、このNキュービット量子レジスタは000…000(0がN個)から111…111(1がN個)までの2N個の状態の重ね合わせを表現する能力を持つ。制御ゲート311は量子レジスタ312の1個ないしは複数個のキュービットに対して操作を行うためのゲートである。例えば量子レジスタとして特許文献2に記載のキュービットを採用した場合には、電圧を印加することで操作を行う。制御ゲート311で行える操作としては、初期化(キュービットの状態を0ないしは1に初期化する)、アダマール変換、及び、制御NOT等がある。マイクロ制御部301の指示によって、制御ゲートは量子レジスタ312の中の指定されたキュービットに対して、指定された操作を行う。読出しゲート313は、量子レジスタ312の1個ないしは複数個のキュービットの値を観測して読み出すためのゲートである。マイクロ制御部301の指示によって、読出しゲート313は量子レジスタ312の値を観測し、観測結果を観測レジスタ302に格納する。この時、観測対象となるキュービットはマイクロ制御部301から指定される。なお、観測に伴い、観測されたキュービットの状態は0と1の重ね合わせから、0若しくは1の何れかに収束する。
Hereinafter, it is assumed that the
命令バッファ320は、量子マイクロコード321を保持している。この量子マイクロコード321は、常温部101の量子マイクロコード232が伝送路103経由で転送されてきたものである。
The
観測レジスタ302は、前述した通り量子レジスタ312の観測結果を保持するレジスタであり、この観測レジスタは古典コンピュータ機能部の記憶素子、すなわち0もしくは1の2値を保持するものである。
The
マイクロ制御部301は、命令バッファ320から量子マイクロコード321を読み出し、量子マイクロコード321に記述されたシーケンスに基づいて制御ゲート311及び読み出しゲート313を制御する。
The
量子マイクロコード321は、制御ゲート311及び読出しゲート313を制御する命令を時系列的に示した動作シーケンスである。命令としては、制御ゲート311を駆動して量子レジスタ312内の指定するキュービットに対して操作を行う操作命令と、読出しゲート313を制御して観測を行い、観測結果を観測レジスタ302に格納する観測命令がある。操作命令と観測命令は同一の時系列上に記述され、各命令間は順序関係が保たれる。これは、観測命令を実行すると重ね合わせの状態を0か1に収束させてしまうという不可逆な効果を持つため、処理の途中で観測を利用するような量子アルゴリズムでは各操作命令と観測命令の実行順序が重要となるためである。
The
操作命令としては、単一のキュービットに作用する操作や、複数のキュービットに作用する操作がある。いずれも、操作対象のキュービットを指定するためにオペランドとしてキュービット番号を持つ。N個のキュービットを持つ量子レジスタ312をQRとした時、例えばQR内のキュービットを指定するためにQR(1),QR(3)ようにキュービット番号を指定するものとする。このとき、操作命令として制御NOT命令は「CNOT 制御キュービット番号、ターゲットキュービット番号」というように表現することができる。キュービット番号1番のキュービットを制御キュービット、キュービット番号3番のキュービットをターゲットキュービットとする場合には「CNOT QR(1),QR(3)」の様に記述する。同様にして、アダマール変換のような操作も操作命令として用意される。観測命令に関しても、観測すべきキュービットのキュービット番号をオペランドとした命令である。
The operation command includes an operation that operates on a single qubit and an operation that operates on a plurality of qubits. Each of them has a qubit number as an operand in order to specify a qubit to be operated. When the
また、操作命令及び観測命令は制御ゲート311及び読出しゲート313の複数の制御を複合したものでも良い。例えば、2つのキュービット間の状態を交換するスワップ命令は「SWAP QR(i),QR(j)」(i,jはキュービット番号)のように命令として示せるが、制御ゲート311が直接的にスワップ命令をサポートしていなくても、マイクロ制御部301が制御NOT命令、ないしは、その他の命令の組合せでスワップ命令相当の動作を実現しても良い。
The operation command and the observation command may be a combination of a plurality of controls of the
図5の例から自明なように、読出しゲート(単電子トランジスタ531,532)が読出しを行えるのはキュービット501,502だけであり、キュービット503,504の読出しは行えない。そこで、前述したスワップを利用して、制御ゲート311及び読出しゲート313の複数の制御を複合し、キュービット503を読み出す時にはキュービット501,503の間でスワップ、キュービット504を読み出す時にはキュービット502,504の間でスワップするような使い方が必要となる。
As is obvious from the example of FIG. 5, the read gates (single-
図6に、キュービット410が保持する状態の例を示す。キュービット410を構成する2つの量子ドット411,412はそれぞれ基底|0>,基底|1>に割当てられている。ここでは、量子ドット411が|0>,量子ドット412が|1>とする。図6の例では、量子ドット411に電子が溜めこまれており、それをもってキュービット410の保持する状態が|0>であるとしている。逆に、量子ドット412の側に電子が溜めこまれていれば、キュービット410の保持する状態は|1>である。
FIG. 6 shows an example of a state held by the
図6に示すように、|0>ないしは|1>の状態を持ったキュービットに対して、アダマール変換を作用させることで重ね合わせの状態を作り出し、量子コンピュータ特有の重ね合わせの状態による並列処理を行うことができる。 As shown in FIG. 6, a superposition state is created by applying a Hadamard transform to a qubit having a state of | 0> or | 1>, and parallel processing based on the superposition state peculiar to the quantum computer. It can be performed.
図7に、アダマール変換を行うための制御ゲートの制御方法の例を示す。キュービット410に対する操作は、各制御ゲート420,421,422,430,431,432に対して各々電圧パルスを印加することで行う。各制御ゲートに印加する電圧パルスのパターン(振幅,時間,他のパルスとの位相関係)によって、実現できる操作が異なる。図7の電圧パルスのパターンの例(Vpa,Vpb,Vpc,Vpd,Vpe,Vpf)では、制御ゲート420,430に対してバリアポテンシャルの高さを下げる方向に作用するパルスを印加している。
FIG. 7 shows an example of a control gate control method for performing Hadamard transform. The operation on the
この結果、図8に示すように、2個の量子ドット411,412の間にあるバリアポテンシャルの高さが下がり、|0>の状態と|1>の状態をある確率で行き来するようになる。このとき|0>である確率をα,|1>である確率をβとすると、図8に示すキュービット410は、α|0>+β|1>となる重ね合わせの状態を持つことになる。このようにして、制御ゲートに対して電圧パルスを印加することで、様々な種類の操作を行うことができる。
As a result, as shown in FIG. 8, the height of the barrier potential between the two
また、上記の例では単一のキュービットに対する操作の例だったが、隣接する複数のキュービットは互いにバリアポテンシャルの高さに影響を及ぼし合うので、複数のキュービットの制御ゲートに対して同時に電圧パルスを印加することで、制御NOTやスワップなどの操作を実現することができる。このことから分かるように、複数のキュービットに対する操作は、図5に示した平面上の複数キュービットのうち、隣接して配置されているキュービットの間でのみ行うことが出来る。そのため、読出しゲート(単電子トランジスタ531,532)による読出しを行う場合と同様に、所望の操作を行うためにはスワップを必要とする場合がある。例えば、キュービット501を制御ビット、キュービット504を操作ビットとした制御NOTを行いたい場合、キュービット502,504をスワップして、キュービット501に隣接するキュービット502に、キュービット504の保持する状態を持ってくる必要がある。
In the above example, the operation is performed on a single qubit. However, since a plurality of adjacent qubits influence each other on the height of the barrier potential, the control gates of a plurality of qubits can be simultaneously controlled. By applying voltage pulses, operations such as control NOT and swap can be realized. As can be seen from the above, operations for a plurality of qubits can be performed only between adjacent qubits among the plurality of qubits on the plane shown in FIG. For this reason, swapping may be required to perform a desired operation, as in the case of performing reading by the reading gate (single-
図9及び図10は、量子コンピュータシステム100におけるプログラムないしはソフトウェアの関係を示した図である。量子コンピュータシステム100を利用しようとするユーザは、古典プログラム211、量子プログラム212、入力データ233を用意する。
9 and 10 are diagrams showing the relationship between programs or software in the
量子コンピュータシステム100において、プログラムを実行して結果を得るまでの過程(機能)は、図9の古典コンパイルフェーズ(古典コンパイル機能)S400、図9の前処理フェーズ(前処理機能)S410、図9の本処理準備フェーズ(本処理準備機能)S420、図10の本処理実行フェーズ(本処理実行機能)S500、図10の後処理フェーズ(後処理機能)S510に大別できる。
In the
図9の古典コンパイルフェーズS400では、古典プログラム211を古典コンパイラ221でコンパイルし、古典オブジェクト231を得る。このフェーズは古典プログラム211を変更する度に行う必要がある。古典コンパイルフェーズS400は、現在一般的に用いられているコンピュータで、プログラムをコンパイルして実行形式を生成するフェーズと同様のものである。
In the classical compilation phase S400 of FIG. 9, the
前処理フェーズS410では、古典オブジェクト231を実行することで、量子アルゴリズムの前処理を行う。このとき、処理するべきデータやパラメータは入力データ233として与えられる。入力データ233を入力として、前処理実行S411で古典オブジェクト231を実行し、処理結果として中間データ234を得る。前処理フェーズS410は入力データ233を変更するたびに行う必要がある。例えば、複数のデータやパラメータに対して処理を行う場合には、その都度前処理フェーズS410を実行する必要がある。なお、前処理が必要ない量子アルゴリズムでは、前処理フェーズS410は省略できる。
In the preprocessing phase S410, the quantum object is preprocessed by executing the
本処理準備フェーズS420では、量子アルゴリズムのうち本処理を担う量子プログラム212を量子コンパイラ222で量子マイクロコード232に変換する。量子マイクロコード232には、量子プログラム212で処理すべきデータも織り込まれる必要があるので、量子コンパイラ222は量子プログラム212の他に、前処理フェーズS410で生成された中間データ234も入力としている。生成された量子マイクロコード232は、低温部転送S421で低温部102に転送される。
In this processing
なお、量子コンパイラ222は後述するようにコンパイル時にハードウェア機能情報707、及び、ハードウェア制限情報708を必要とする。ハードウェア機能情報707は量子部310の設計時に確定する情報であり、予め用意されている。ハードウェア制限情報708は後述するトレーニングフェーズ(トレーニング機能)S490で生成される。
Note that the
トレーニングフェーズS490は、量子部310の経年劣化、製造不良、及び、その時々の利用環境下における動作不良に応じて、それを回避した量子マイクロコード232を生成するために必要となるハードウェア制限情報708を生成するために行われる。そのため、トレーニングフェーズS490は、前述したようなハードウェアの特性を変化させうる変化要因の時間的な特性(発生頻度や変化速度)より十分に短い間隔で定期的に実行する。また、何らかの処理を実行した結果、その結果が誤っているなどハードウェアの動作不良が疑われる場合には、トレーニングフェーズS490を実行する。
The training phase S490 is hardware restriction information necessary for generating the
図10の本処理実行フェーズS500では、本処理を実行する。本処理準備フェーズS420で低温部102に転送されてきた量子マイクロコード321を量子部実行S501で実行し、処理結果を観測レジスタ302に得る。この観測レジスタ302が保持する情報を本処理の結果として常温部転送S502で常温部101に転送する。
In the process execution phase S500 of FIG. 10, this process is executed. The
後処理フェーズS510では、前処理フェーズS410と同様に古典オブジェクト231を実行することで、量子アルゴリズムの後処理を行う。後処理では本処理実行フェーズS500の実行結果、すなわち常温部転送S502で転送されてきた観測データ235を用いる。そのため、後処理実行S511は観測データ235を入力データとして古典オブジェクト231を実行する。後処理実行S511の実行結果S512が量子アルゴリズムの実行によって最終的に得られる実行結果となる。
In the post-processing phase S510, the quantum object is post-processed by executing the
本実施例によれば、量子コンピュータをプログラム可能とし、それにより汎用性の高い量子コンピュータシステムを実現することができる。すなわち、本実施例の量子コンピュータシステムは、量子コンピュータ機能部と古典コンピュータ機能部とのハイブリッドシステムとして構成されており、量子コンピュータ機能部(低温部102)が、量子部310、古典記憶装置(命令バッファ320)及びこの古典記憶装置と量子部310とにアクセス可能な制御装置(マイクロ制御部301)を備え、量子部310は少なくとも1個のキュービット410で構成される量子レジスタ312と、量子レジスタに対して操作を行う制御ゲート311と、量子レジスタの状態を観測する読出しゲート313とを有している。古典記憶装置は、制御ゲートないしは読出しゲートに対する操作命令の列である量子マイクロコード321を記憶し、制御装置301は、古典記憶装置から量子マイクロコードを読み出して制御ゲートないしは読出しゲートを制御する。一方、古典コンピュータ機能部(常温部101)は、アプリケーションプログラム210とシステムソフトウェア220を備え、システムソフトウェアには量子プログラム212を量子マイクロコードに変換する量子コンパイラ222を有する。このように、入力データを織り込んだ量子マイクロコード321を生成する量子コンパイラ222を常温部101のハードウェア構成として備えている。そのため、常温部101のみならず低温部102の量子部310の全素子をも使用した一連のシーケンスを実行するプログラムを容易に生成することができる。低温部の量子コンピュータ機能部における量子アルゴリズムの実行によって最終的に得られる実行結果は、観測データとして常温部に出力される。これにより、単に一種類の問題に対して効果を発揮するだけでなく、複数種の問題に対して汎用的に用いることができる、汎用性の高い量子コンピュータシステムを実現することができる。
According to this embodiment, the quantum computer can be programmed, thereby realizing a highly versatile quantum computer system. That is, the quantum computer system of the present embodiment is configured as a hybrid system of a quantum computer function unit and a classic computer function unit, and the quantum computer function unit (low temperature unit 102) includes a
なお、量子コンピュータ機能部と古典コンピュータ機能部は、各々、コンピュータに所定の機能を実現させるためのプログラムを備えており、このプログラムをコンピュータで実行することにより、上記各処理機能がコンピュータ上で実現される。この処理機能を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録することができる。 Each of the quantum computer function unit and the classical computer function unit has a program for causing the computer to realize a predetermined function. By executing this program on the computer, the above-described processing functions are realized on the computer. Is done. The program describing this processing function can be recorded on a computer-readable recording medium.
次に、上記のように量子部をプログラム可能としたことを利用して、実行されるトレーニングフェーズS490について述べる。動作が不安定な素子(キュービット)の使用を制限し、量子コンピュータシステムの安定性を向上させるために、予め、トレーニングフェーズS490で量子コンピュータシステムを動作させ、量子部310を構成する素子の動作を検査し不安定な可能性がある素子の使用を制限するハードウェア制限情報708を取得する。
Next, the training phase S490 that is executed using the fact that the quantum part is programmable as described above will be described. In order to limit the use of unstable elements (qubits) and improve the stability of the quantum computer system, the quantum computer system is operated in advance in the training phase S490, and the operations of the elements constituting the
図11は、量子部とトレーニング処理の関係を説明する図である。量子部310は、制御ゲート311の内側に配置されたN個のキュービット(キュービット番号0〜(N−1))から構成される量子レジスタ312を備えており、ここではハッチング表示された3個のキュービットが、作製技術の問題などで動作が不安定な素子であると想定する。このトレーニングフェーズS490では、このようなキュービットに関する情報を事前に抽出し、ハードウェア制限情報708として登録する。
FIG. 11 is a diagram illustrating the relationship between the quantum unit and the training process. The
図12は、ハードウェア制限情報708を更新するためのトレーニング動作を示したフローチャートである。図13は、量子コンピュータシステム内の、トレーニング動作を実行するトレーニングフェーズS490の動作の一例を示す図である。このトレーニング動作は量子レジスタ312の故障状況等を検出して、ハードウェア制限情報708を更新するためのものである。トレーニング動作も、図9及び図10に示した量子プログラムの実行過程と同様にして行うことができる。例えば、図11の番号Xのキュービットのように、量子レジスタ312の内側で読出しゲートから離れた位置にあるキュービットであっても、前述したスワップを利用して、その状態を読み出す。以下では、図12のフローチャートと、図13の動作を対応させながら説明する。
FIG. 12 is a flowchart showing a training operation for updating the
図12のステップS491で、トレーニング用の量子マイクロコードを実行する。トレーニング用の量子マイクロコードは種々の動作の形態が考えられるが、例えば、量子レジスタ312に対して特定の状態を生成し、それを読み出して検査する方法がある。例えば、0に初期化すれば、0を観測することが期待できる。0と1の重ね合わせの状態を生成すれば、0及び1各々の確率に応じて、その確率で観測することが期待できる。
In step S491 in FIG. 12, quantum microcode for training is executed. There are various modes of operation of the quantum microcode for training. For example, there is a method of generating a specific state for the
トレーニングフェーズのステップS491は、図13のトレーニング用マイクロコード4901を低温部転送S4921で低温部102に転送し、量子部実行S4922で実行しているのに対応する。
Step S491 in the training phase corresponds to the transfer of the
次に、ステップS492で観測を行い、ステップS493で観測データと期待値を比較してそれらの差分を検査する。なお、重ね合わせ状態を用いた検査では、一回の観測だけでは検査が出来ず、ステップS491〜S493を何度か繰り返して、観測結果の統計を見ることで判断することになる。図12のステップS492は、図13において、観測レジスタ4902に格納された観測結果を常温部転送S4923で常温部101に転送していることに対応し、ステップS493は観測結果処理S4924に対応する。
Next, observation is performed in step S492, and in step S493, the observation data is compared with the expected value, and the difference between them is inspected. In the inspection using the superposition state, the inspection cannot be performed only by one observation, and the determination is made by repeating the steps S491 to S493 several times and viewing the statistics of the observation results. Step S492 of FIG. 12 corresponds to that the observation result stored in the
上記の検査結果を元に、ステップS494でハードウェア制限情報708を生成し、トレーニングを完了する。ステップS494は、図13ではハードウェア制限情報生成S4925でハードウェア制限情報708を生成していることに対応する。
Based on the inspection result,
図14に、ハードウェア制御情報708の構成の一例を示す。図14のハードウェア構成情報708は表形式のデータ構造であり、利用可否、ステータス、及び、エラーレートを示す列がある。量子レジスタ312がN個のキュービットから構成される時、各キュービットに対するハードウェア制限情報を記憶するために、0〜N−1までのN行で構成される。利用可否はトレーニングの結果、当該キュービットを利用可能であるかどうかを示し、例えば0が利用不可、1が利用可能とする。量子コンパイラ222はこの情報を参照してキュービットの利用可否を判断する。ステータス、及び、エラーレートは故障要因の詳細な分析、及び、将来の故障予測を行うためにある。エラーレートはキュービットのエラー率、即ち、観測データと期待値が異なる率を記録するものである。また、ステータスは例えば異常無し(000)、エラーレート上昇傾向にあるがまだ利用可能(001)、エラーレートが限界値を超えたので利用不可能(010)などを記録する。
FIG. 14 shows an example of the configuration of the
図9及び図10で示した各フェーズS400,S410,S420,S500,S510において、古典コンパイルフェーズS400は、古典プログラム211が変更されない限り、一度実行して古典オブジェクト231を得ておけば済む。古典プログラム211はアルゴリズムの変更やバグフィックスなどの変更要因があるが、いずれも実行毎に行うほど頻繁ではないことが一般的である。それに対して、前処理フェーズS410以降は、入力データ233に依存しているため、入力データ233に変更がある度に再実行する必要がある。そこで、システムソフトウェア220の実行マネージャ223は、図9及び図10で示した各フェーズS410,S420,S500,S510を必要に応じて行い、量子アルゴリズムを正常に実行するためには実行過程全体を管理する。実行マネージャ223は量子アルゴリズムの実行開始を指令するユーザからの指示によって起動する。
In each of the phases S400, S410, S420, S500, and S510 shown in FIGS. 9 and 10, the classical compilation phase S400 only needs to be executed once to obtain the
図15は、実行マネージャ223の動作の一例を示すフローチャートである。
ステップS601では、中間データ234の存在、及び、入力データ233に変更があったかを検査する。中間データ234が存在しないということは前処理がまだ行われていないことを意味しており、前処理フェーズS410を実行する必要があるため、ステップS602に進む。また、入力データ233に変更があった場合、中間データ234が存在していたとしても、それは変更前の古い入力データ233に対応するものであるから、前処理フェーズS410を再度実行して中間データ234を更新しなければならない。よって、同様にステップS602に進む。入力データ233に変更がなく、かつ、対応する中間データ234が既に生成されている場合に限り、前処理フェーズS410を省略することができる。よって、この時は前処理フェーズS410を省略してステップS603に進む。
FIG. 15 is a flowchart illustrating an example of the operation of the
In step S601, it is checked whether the
ステップS602では、前述した前処理フェーズS410を実行し、ステップS603に進む。
ステップS603では、量子マイクロコード232の存在、及び、中間データ234に変更があったかを検査する。量子マイクロコード232が存在していなければ本処理準備フェーズS420を実行して量子マイクロコード232を生成するために、ステップS604に遷移する。また、量子マイクロコード232が存在していても、中間データ234に変更がある場合には、量子マイクロコード232が中間データ234に依存するために、本処理準備フェーズS420を再度実行するために、ステップS604に遷移する。ステップS601と同様の考え方であるが、量子マイクロコード232が既に存在しており、かつ、中間データ234に変更が無い場合には、本処理準備フェーズS604を省略して、本処理実行フェーズS605に進む。
In step S602, the above-described preprocessing phase S410 is executed, and the process proceeds to step S603.
In step S603, it is checked whether the
ステップS604では、前述した本処理準備フェーズS420を実行し、ステップS604に進む。
ステップS605では、前述した本処理実行フェーズS500を実行し、ステップS605に進む。
In step S604, the process preparation phase S420 described above is executed, and the process proceeds to step S604.
In step S605, the process execution phase S500 described above is executed, and the process proceeds to step S605.
ステップS606では、本処理実行フェーズS500の実行回数が規定された回数に達したかを検査し、満たなければ再度本処理実行フェーズS500を実行するためステップS605に戻る。実行回数を満たしていたら、ステップS607に進む。実行回数は入力データ233ないしは中間データ234で規定される。
ステップS607では、前述した後処理フェーズS510を実行し、ステップS608に進む。
In step S606, it is checked whether or not the number of executions of this process execution phase S500 has reached the prescribed number. If not, the process returns to step S605 to execute this process execution phase S500 again. If the number of executions is satisfied, the process proceeds to step S607. The number of executions is defined by
In step S607, the post-processing phase S510 described above is executed, and the process proceeds to step S608.
ステップS608では、後処理フェーズS510で得られた実行結果S512を検査し、処理が成功していれば終了する。もし、間違った実行結果が得られているなど処理が失敗している場合には、再度実行をやりなおすため、図15のフローチャートの先頭まで戻る。なお、このとき必要に応じてステップS609で入力データ233を変更する。入力データ233を変更するのは、ユーザ操作ないしは古典オブジェクト231の実行によって行う。すなわち、古典オブジェクト231は前処理ないしは後処理に加えて、その一環として再実行時に入力データ233を変更する役割も担う。
In step S608, the execution result S512 obtained in the post-processing phase S510 is inspected, and the process ends if the process is successful. If the processing has failed such as an incorrect execution result is obtained, the process returns to the top of the flowchart of FIG. 15 to execute again. At this time, the
図16は、量子コンパイラ222の動作と入力及び出力の関係を示した図である。量子コンパイラ222は量子プログラム212と中間データ234を入力として、量子マイクロコード232を生成する。この生成機能、すなわち図16の量子コンパイラ222内で行われている処理(S701〜S706)をコンパイルと称する。コンパイルの過程でハードウェア機能情報707とハードウェア制限情報708も入力として用いられる。
FIG. 16 is a diagram illustrating the relationship between the operation of the
ハードウェア機能情報707は、量子コンピュータシステム100における量子コンピュータ機能部である低温部102の有する機能を定義する情報である。具体的には、量子マイクロコード232を生成する上での制約として示される。例えば、CNOT命令が利用可能である、といった情報が記録される。また、オペランドに対する制約も指定される。例えば、量子レジスタ312上の隣接するキュービット間でしかCNOT命令が適用できない場合には、量子レジスタQR上のキュービットQR(i)とQR(i+1)が隣接するキュービットだとすると、CNOT命令のオペランドはQR(i),QR(i+1)の関係を満たさなければならないという制約が記述される。量子コンパイラ222は、ハードウェア機能情報707で定義される制約に基づいて量子マイクロコード232を生成する。
The
ハードウェア制限情報708は、量子部310の製造ばらつきや故障に起因する障害を示す情報である。量子部310を構成する構成要素のうち、特に量子レジスタ312は外乱の影響を受けやすく、またキュービット数が増加することで量子レジスタ312全体としての故障確率は増加する。それに対して、背景技術で述べたように量子誤り訂正技術が用いられているが、恒常的に故障しているキュービットがある場合には量子誤り訂正技術を用いるだけでなく、プログラムの段階で当該キュービットを回避して利用することで、より安定して利用可能となることが期待できる。そこで、量子コンパイラ222は、ハードウェア制限情報708で示されている故障キュービットを使わないように、量子マイクロコード232を生成する。
The
なお、ハードウェア機能情報707は低温部102の仕様によって決まるため、設計時に決定できる情報である。一方、ハードウェア制限情報708は量子部310の製造時のばらつきや劣化、動作環境等に影響を受けるため、量子コンピュータシステム100の運用中にその制限は変わってくる。すなわち、運用中にハードウェア制限情報708を更新する手段が必要となるが、このために前述したトレーニングフェーズS490を用いる。
The
量子コンパイラ222で行われるコンパイルのうち、字句解析S701、構文解析S702、及び、意味解析S703に関しては、従来の古典コンピュータで用いられてきたコンパイラと同様であるので、説明を省略する。一般的な従来の古典コンピュータのコンパイラでは、入力されたプログラム(ソースコード)の字句解析、構文解析、及び、意味解析を行った後、コード生成と最適化を行う。これとは異なり量子コンパイラ222では、意味解析S703の後にデータ埋め込みS704という処理を行う。
Among the compilations performed by the
データ埋め込みS704は、意味解析S703の結果得られた量子コンパイラ222内部の中間言語(中間形式)で、量子プログラム212の入力となっている変数に、中間データ234に示されているデータを当てはめる処理を行う。この処理により、実行時に入力すべき変数を、量子コンパイラ212でのコンパイル時に入力していることになる。
Data embedding S704 is an intermediate language (intermediate format) inside the
コード生成S705では、データ埋め込みS704が完了した後の中間言語から、量子マイクロコードS705を生成する。このとき、ハードウェア機能情報707を参照して、利用可能な命令やオペランドの制約を取得する。中間言語で表現されている処理を、ハードウェア機能情報707に示された利用可能な命令の組み合わせで表現する。また、オペランドの制約を満たすために、量子レジスタ312内の2つのキュービットが保持している状態を交換するスワップ命令などを加える。
In the code generation S705, the quantum microcode S705 is generated from the intermediate language after the data embedding S704 is completed. At this time, by referring to the
また、コード生成S705では、ハードウェア機能情報707のみならず、ハードウェア制限情報708に示されている制約も加味して量子マイクロコードS705を生成する。ハードウェア制限情報708には、利用不可能なキュービットが示されているので、このキュービットを回避して処理を行うように、スワップ命令などを加える。
In the code generation S705, the quantum microcode S705 is generated in consideration of not only the
最後に、最適化S706でコード生成S705が生成した量子マイクロコードを最適化して、コンパイル結果として量子マイクロコード232を出力する。
Finally, the quantum microcode generated by the code generation S705 in the optimization S706 is optimized, and the
本実施例によれば、古典コンピュータ機能部と量子コンピュータ機能部とを使用した一連のシーケンスを実行するプログラムを生成することができ、それにより汎用性の高い量子コンピュータシステムを実現することができる。また、プログラム可能であることを利用して、予めトレーニングフェーズを実施し、故障等の問題に対してプログラムの動作を変更することで動的に対応し、安定性を高めることができる。これによって、汎用的かつ安定的に利用することができる量子コンピュータシステムを提供することができる。 According to the present embodiment, it is possible to generate a program for executing a series of sequences using the classical computer function unit and the quantum computer function unit, thereby realizing a highly versatile quantum computer system. Further, by utilizing the fact that it is programmable, it is possible to increase the stability by executing a training phase in advance and dynamically responding to a problem such as a failure by changing the operation of the program. As a result, a quantum computer system that can be used universally and stably can be provided.
次に、図17〜図20を用いて、本発明の実施例2に係る量子コンピュータシステムを説明する。
本実施例では、プログラム可能であることにより、汎用的かつ安定的に利用することができる量子コンピュータシステム100の、別の実施の形態を説明する。実施例2では、古典コンピュータ機能部と量子コンピュータ機能部からなる量子コンピュータシステムの全体の構成は実施例1と同じく図1に示す構成であるが、常温部101と低温部102の構成が異なる。実施例1で説明した図と同一の符号を付された構成と、同一の機能を有する部分については、説明を省略する。
Next, a quantum computer system according to
In this embodiment, another embodiment of the
量子コンピュータシステム100を構成する上で、伝送路103の両端は著しい温度差を持つことになる。そのため、伝送路103のレイテンシやスループットは必ずしも良好なものではない可能性がある。一方で、量子マイクロコード232は、量子プログラム212の高級な記述内容をより低級な操作命令と観測命令に書き下したものであると言えるため、そのコード長は元のプログラムと比較して長大なものになる。そうした長大な量子マイクロコードの伝送に耐えうる性能を、伝送路103で実現できないときのために、本実施例では、伝送路103に求められる性能要件を軽減する量子コンピュータシステム100の実施の形態を示す。
In configuring the
本実施例では、図1の量子コンピュータシステム100において、常温部100を図17に示す常温部1001に、低温部102を図18に示す低温部1101に置き換えた構成を用いる。また、それに伴って、図9で説明した前処理フェーズS410及び本処理準備フェーズS420と、図10で説明した本処理実行フェーズS500の動作がそれぞれ変わる。以下に、それぞれに関して説明する。
In this embodiment, the
図17は、実施例2における常温部1001の構成を示す構成図の例である。実施例1の常温部100と比較して、実施例2の常温部1001では量子コンパイラ222を備えないことを特徴とする。また、量子コンパイラ222を備えないため、量子コンパイラ222が生成する量子マイクロコード232も備えていない。
FIG. 17 is an example of a configuration diagram illustrating the configuration of the
図18は、実施例2における低温部1101の構成を示す構成図の例である。実施例1の低温部102と比較して、マイクロ制御部301がCPU1102に置き換わっていることを特徴とする。それに伴い、実施例1でマイクロ制御部301に付随していた命令バッファ320は、実施例2においてCPU1102の主記憶装置1130に変更する。この主記憶装置1130は、中間データ1131、量子プログラム1132、量子コンパイラ1133、及び、量子マイクロコード1134を備える。中間データ1131及び量子プログラム1132は、常温部1001の中間データ234及び量子プログラム212が、伝送路103経由で伝送されたものである。すなわち、実施例1では伝送路103が伝送していたのは量子マイクロコード321であるが、本実施例では伝送路103は中間データ1131及び量子プログラム1132を伝送する。中間データ1131と量子プログラム1132のサイズが量子マイクロコード1134より小さければ、実施例1と比較して伝送路103への負荷を軽減することができる。
FIG. 18 is an example of a configuration diagram illustrating the configuration of the
CPU1102は、量子コンパイラ1133を実行し、中間データ1131及び量子プログラム1132をコンパイラの入力として、量子マイクロコード1134を生成する。また、生成した量子マイクロコード1134を元にして量子部310を制御する。そのため、コンパイルと量子部310の制御をパイプライン動作させることも可能で、量子マイクロコード1134を格納するための主記憶装置1130の容量を削減することができる。
The
図19は、実施例2における前処理Sフェーズ1200の動作の例を示す図である。実施例1では図9の本処理準備フェーズS420で量子マイクロコード232を生成した後、低温部転送S421を行っていた。それに対して、本実施例では図19の前処理フェーズS1200に示すように、中間データ234が生成できた段階で、中間データ234と量子プログラム212を低温部転送S1201で、低温部1101に転送する。
FIG. 19 is a diagram illustrating an example of the operation of the
図20は、実施例2における本処理準備フェーズS1300及び本処理実行フェーズS1310の動作の例を示す図である。実施例1では本処理準備フェーズS420は常温部101で実行されていたが、実施例2では本処理準備フェーズS1300を低温部1101のCPU1102で実行する。本処理準備フェーズS1300では、量子アルゴリズムのうち本処理を担う量子プログラム1132を量子コンパイラ1133で量子マイクロコード1134に変換する。量子マイクロコード1134には、量子プログラム1132で処理すべきデータも織り込まれる必要があるので、量子コンパイラ1133は量子プログラム1132の他に、中間データ1131も入力としている。量子コンパイラ1133で必要となる中間データ1131及び量子プログラム1132は、前述した前処理フェーズ1200の低温部転送1201で常温部1001から低温部1101に転送されたものである。また、量子コンパイラ1133は、実施例1と同様に、コンパイル時にハードウェア機能情報707及びハードウェア制限情報708を必要とする。ハードウェア制限情報708は、トレーニングフェーズS490で生成されたものである。
FIG. 20 is a diagram illustrating an example of operations of the main process preparation phase S1300 and the main process execution phase S1310 according to the second embodiment. In the first embodiment, the processing preparation phase S420 is executed in the
なお、実施例2では量子コンパイラ1133が低温部102にあることから、図13に示したトレーニングフェーズS490の低温部転送S4921、及び、量子部実行S4922に相当する処理を行わず、図13の観測結果処理S4924及びハードウェア制限情報生成S4925に相当する処理を低温部102内のCPU1102上で行うことが出来る。この場合、トレーニングフェーズS490を実施例1より短い間隔で実行することが可能となるため、ハードウェアの特性変化への追従性を向上させることができる。
In the second embodiment, since the
本実施例によれば、量子コンピュータをプログラム可能とし、それにより汎用性の高い量子コンピュータシステムを実現することができる。すなわち、本実施例の量子コンピュータシステムは、量子コンピュータ機能部と古典コンピュータ機能部とのハイブリッドシステムとして構成されており、量子コンピュータ機能部(低温部1101)が、量子部310、古典記憶装置(主記憶装置1130)及びこの古典記憶装置にアクセス可能な制御装置(CPU1102)を備え、量子部310は少なくとも1個のキュービット410で構成される量子レジスタ312と、量子レジスタに対して操作を行う制御ゲート311と、量子レジスタの状態を観測する読出しゲート313とを有している。古典記憶装置は、量子プログラム1132を量子マイクロコード1134に変換する量子コンパイラ1133、及び、制御ゲートないしは読出しゲートに対する操作命令の列である量子マイクロコード1134を記憶し、制御装置1102は、古典記憶装置から量子マイクロコードを読み出して制御ゲートないしは読出しゲートを制御する。一方、古典コンピュータ機能部(常温部1001)は、アプリケーションプログラム210とシステムソフトウェア220を備えている。このように、入力データを織り込んだ量子マイクロコード1134を生成する量子コンパイラ1133を低温部1101のハードウェア構成として備えている。そのため、常温部101のみならず低温部102の量子部310の全素子をも使用した一連のシーケンスを実行するプログラムを容易に生成することができる。低温部の量子コンピュータ機能部における量子アルゴリズムの実行によって最終的に得られる実行結果は、観測データとして常温部に出力される。これにより、単に一種類の問題に対して効果を発揮するだけでなく、複数種の問題に対して汎用的に用いることができる、汎用性の高い量子コンピュータシステムを実現することができる。
According to this embodiment, the quantum computer can be programmed, thereby realizing a highly versatile quantum computer system. That is, the quantum computer system of the present embodiment is configured as a hybrid system of a quantum computer functional unit and a classical computer functional unit, and the quantum computer functional unit (low temperature unit 1101) includes the
本実施例によれば、古典コンピュータ機能部と量子コンピュータ機能部とを使用した一連のシーケンスを実行するプログラムを生成することができ、それにより汎用性の高い量子コンピュータシステムを実現することができる。また、プログラム可能であることを利用して、予めトレーニングフェーズを実施し、故障等の問題に対してプログラムの動作を変更することで動的に対応し、安定性を高めることができる。これによって、汎用的かつ安定的に利用することができる量子コンピュータシステムを提供することができる。また、ハードウェアの特性変化への追従性を向上させることができる。 According to the present embodiment, it is possible to generate a program for executing a series of sequences using the classical computer function unit and the quantum computer function unit, thereby realizing a highly versatile quantum computer system. Further, by utilizing the fact that it is programmable, it is possible to increase the stability by executing a training phase in advance and dynamically responding to a problem such as a failure by changing the operation of the program. As a result, a quantum computer system that can be used universally and stably can be provided. In addition, it is possible to improve followability to changes in hardware characteristics.
なお、上記各実施例で述べた量子コンピュータ機能部は、核磁気共鳴、量子光学等、超伝導磁束等の他のハードウェアに基づくもので有っても良い。 Note that the quantum computer function unit described in each of the above embodiments may be based on other hardware such as nuclear magnetic resonance, quantum optics, and superconducting magnetic flux.
100 量子コンピュータシステム
101 常温部
102 低温部
103 伝送路
201 主記憶装置
202 CPU
203 I/Oアダプタ
210 アプリケーションプログラム
211 古典プログラム
212 量子プログラム
220 システムソフトウェア
221 古典コンパイラ
222 量子コンパイラ
223 実行マネージャ
230 ランタイム情報
231 古典オブジェクト
232 量子マイクロコード
233 入力データ
234 中間データ
235 観測データ
301 マイクロ制御部
302 観測レジスタ
303 I/Oアダプタ
310 量子部
311 制御ゲート
312 量子レジスタ
313 読出しゲート
320 命令バッファ
321 量子マイクロコード
400 キュービットブロック
410 キュービット
411,412 量子ドット
420,421,422,430,431,432 制御ゲート
501,502,503,504 キュービットブロック
511,512,521,522 制御ゲート
531,532 単電子トランジスタ
S400 古典コンパイルフェーズ
S410 前処理フェーズ
S411 前処理実行
S420 本処理準備フェーズ
S421 低温部転送
S490 トレーニングフェーズ
S500 本処理実行フェーズ
S501 量子部実行
S502 常温部転送
S510 後処理フェーズ
S511 後処理実行
S512 実行結果
S701 字句解析
S702 構文解析
S703 意味解析
S704 データ埋め込み
S705 コード生成
S706 最適化
707 ハードウェア機能情報
708 ハードウェア制限情報
1001 常温部
1101 低温部
1102 CPU
1130 主記憶装置
1131 中間データ
1132 量子プログラム
1133 量子コンパイラ
1134 量子マイクロコード
S1200 前処理フェーズ
S1201 低温部転送
S1300 本処理準備フェーズ
S1310 本処理実行フェーズ
4901 トレーニング用マイクロコード
4902 観測レジスタ
S4921 低温部転送
S4922 量子部実行
S4923 常温部転送
S4924 観測結果処理
S4925 ハードウェア制限情報生成。
DESCRIPTION OF
203 I /
1130
Claims (20)
前記量子コンピュータ機能部は、量子部、古典記憶装置及び制御装置を備え、
前記古典記憶装置は前記量子部に対する操作命令の列である量子マイクロコードを記憶しており、該量子マイクロコードは、前記量子プログラムと、前記量子部での処理対象となる入力データと前記古典プログラムとに基づいて生成された中間データとから変換されたものであり、
前記制御装置により、前記量子マイクロコードに記述されたシーケンスに基づいて前記量子部を制御する
ことを特徴とする量子コンピュータシステム。 A classical computer function unit capable of executing classical programs and a quantum computer function unit capable of executing quantum programs are provided.
The quantum computer function unit includes a quantum unit, a classical storage device, and a control device,
The classical storage device stores quantum microcode which is a sequence of operation instructions for the quantum unit, and the quantum microcode includes the quantum program, input data to be processed in the quantum unit, and the classical program. Converted from the intermediate data generated based on
The quantum computer system, wherein the control unit controls the quantum unit based on a sequence described in the quantum microcode.
前記量子部は、
少なくとも1個以上のキュービットから構成される量子レジスタと、
前記量子レジスタに対して操作を行う制御ゲートと、
前記量子レジスタの状態を観測する読出しゲートとを有し、
前記古典記憶装置は、前記量子プログラムから変換され、前記制御ゲートないしは前記読出しゲートに対する操作命令の列である前記量子マイクロコードを記憶し、
前記制御装置は、前記古典記憶装置から前記量子マイクロコードを読み出して前記制御ゲートないしは前記読出しゲートを制御する
ことを特徴とする量子コンピュータシステム。 In claim 1,
The quantum part is
A quantum register composed of at least one qubit;
A control gate that operates on the quantum register;
A readout gate for observing the state of the quantum register;
The classical storage device stores the quantum microcode that is converted from the quantum program and is a sequence of operation instructions for the control gate or the read gate,
The quantum computer system, wherein the control device reads the quantum microcode from the classical memory device and controls the control gate or the read gate.
前記量子プログラムを前記量子マイクロコードに変換する量子コンパイラを有し、
前記量子コンパイラは、前記入力データを前記量子マイクロコード内に埋め込んで出力する
ことを特徴とする量子コンピュータシステム。 In claim 2,
A quantum compiler for converting the quantum program into the quantum microcode;
The quantum compiler system outputs the input data embedded in the quantum microcode.
前記古典コンピュータ機能部が前記量子コンパイラを有する
ことを特徴とする量子コンピュータシステム。 In claim 3,
A quantum computer system, wherein the classical computer function unit includes the quantum compiler.
前記量子コンピュータ機能部が前記量子コンパイラを有する
ことを特徴とする量子コンピュータシステム。 In claim 3,
A quantum computer system, wherein the quantum computer function unit includes the quantum compiler.
前記制御ゲートないしは前記読出しゲートを前記制御装置が制御することで実現可能な操作の種類や制約を前記量子コンピュータ機能部の機能として定義した、ハードウェア機能情報を有し、
前記量子コンパイラは、前記ハードウェア機能情報で定義された制約を満たす前記量子マイクロコードを生成する
ことを特徴とする量子コンピュータシステム。 In claim 3,
The operation type and constraints that can realize the control gate or the read gate by the control device controls was defined as a function of the quantum computer function unit has a hardware function information,
The quantum computer system, wherein the quantum compiler generates the quantum microcode satisfying a constraint defined by the hardware function information.
前記量子レジスタを構成する前記キュービットの其々について利用可否及びエラーレートの情報を記憶するハードウェア制限情報を有し、
前記量子コンパイラは、前記ハードウェア制限情報で利用可能なキュービットのみを用いた前記量子マイクロコードを生成する
ことを特徴とする量子コンピュータシステム。 In claim 3,
Hardware restriction information for storing information on availability and error rate for each of the qubits constituting the quantum register;
The quantum computer system, wherein the quantum compiler generates the quantum microcode using only qubits that can be used in the hardware restriction information.
前記ハードウェア制限情報は、前記量子レジスタを構成するN個のキュービットの各々に関して、利用可否、ステータス、及び、エラーレートを示す情報を含み、
前記エラーレートは前記キュービットの、観測データと期待値とが異なるエラー率を記録したものであり、
前記ステータスは前記各キュービットのエラーレートの状態を記録したものである
ことを特徴とする量子コンピュータシステム。 In claim 7,
The hardware restriction information includes information indicating availability, status, and error rate for each of the N qubits constituting the quantum register,
The error rate is a record of an error rate in which the observation data and the expected value of the qubit are different,
2. The quantum computer system according to claim 1, wherein the status is a record of an error rate state of each qubit.
前記キュービットの利用可否の判断ないしはエラーレートの測定を行うトレーニング用量子プログラムを有し、
前記トレーニング用量子プログラムを実行して前記ハードウェア制限情報を更新する
ことを特徴とする量子コンピュータシステム。 In claim 8,
Having a quantum program for training that determines whether or not the qubit is available or measures an error rate;
A quantum computer system that executes the training quantum program and updates the hardware restriction information.
前記量子レジスタ内の前記キュービットは隣接して配置された前記キュービット間のみで操作を行うことが可能なものであり、
前記制御ゲートは、前記隣接して配置されたキュービット間の状態を交換するスワップ操作を有し、
前記量子コンパイラは、前記量子マイクロコードに前記スワップ操作を挿入する
ことを特徴とする量子コンピュータシステム。 In claim 3,
The qubit in the quantum register can be operated only between the qubits arranged adjacent to each other,
The control gate has a swap operation to exchange a state between the adjacently arranged qubits;
The quantum computer system, wherein the quantum compiler inserts the swap operation into the quantum microcode.
前記量子レジスタは、0,1,もしくは0と1の重ね合わせの状態を保持できる前記キュービットを1個以上有する
ことを特徴とする量子コンピュータシステム。 In claim 3,
2. The quantum computer system according to claim 1, wherein the quantum register has one or more qubits capable of holding a superposed state of 0, 1, or 0 and 1.
前記量子コンピュータシステムの量子アルゴリズムが、前処理フェーズ、本処理準備フェーズ、本処理フェーズ、及び後処理フェーズの少なくとも4段階で構成されており、
前記前処理フェーズにおいて、入力データを入力として、古典オブジェクトを実行し、処理結果として中間データを生成し、
前記本処理準備フェーズにおいて、前記中間データを入力とし、前記本処理を担う前記量子プログラムを前記量子コンパイラで量子マイクロコードに変換し量子マイクロコードを生成し、
前記本処理フェーズにおいて、前記量子マイクロコードを前記量子部で実行し、処理結果を観測データとして観測レジスタに取得し、
後処理フェーズにおいて、前記観測データを入力データとして前記古典オブジェクトを実行し、実行結果を取得する
ことを特徴とする量子コンピュータシステム。 In claim 3,
The quantum algorithm of the quantum computer system includes at least four stages of a preprocessing phase, a main processing preparation phase, a main processing phase, and a postprocessing phase,
In the preprocessing phase, with the input data as input, the classical object is executed, and intermediate data is generated as a processing result,
In the main processing preparation phase, the intermediate data is input, and the quantum program responsible for the main processing is converted into quantum microcode by the quantum compiler to generate quantum microcode,
In the present process phase, the quantum microcode to run in the quantum unit, acquires the observation register processing results as the observation data,
In a post-processing phase, the classical computer is executed using the observed data as input data, and an execution result is obtained.
前記量子コンピュータシステムは、常温部、低温部、及び前記常温部と前記低温部間の通信を行うための伝送路で構成されており、
前記前処理フェーズ、トレーニングフェーズ、前記本処理準備フェーズ及び前記後処理フェーズを前記常温部で動作する前記古典コンピュータ機能部により実行し、
前記トレーニングフェーズにより、前記量子コンピュータシステムを動作させ、前記量子部を構成する素子の動作を検査し不安定な可能性がある素子の使用を制限するハードウェア制限情報を取得し、
前記本処理フェーズを、前記低温部で動作する前記量子コンピュータ機能部により実行する
ことを特徴とする量子コンピュータシステム。 In claim 12,
The quantum computer system is composed of a normal temperature part, a low temperature part, and a transmission path for performing communication between the normal temperature part and the low temperature part,
The pre-processing phase, the training phase, the main processing preparation phase and the post-processing phase are executed by the classic computer function unit operating in the room temperature unit,
According to the training phase, the quantum computer system is operated, the operation of the elements constituting the quantum unit is inspected, and hardware restriction information for restricting the use of elements that may be unstable is obtained,
The quantum computer system characterized in that the processing phase is executed by the quantum computer function unit operating in the low temperature unit.
前記量子コンピュータシステムは、常温部、低温部、及び前記常温部と前記低温部間の通信を行うための伝送路で構成されており、
前記前処理フェーズ、及び前記後処理フェーズを前記常温部で動作する前記古典コンピュータ機能部により実行し、
トレーニングフェーズ、前記本処理準備フェーズ、及び前記本処理フェーズを、前記低温部で動作する前記量子コンピュータ機能部により実行し、
前記トレーニングフェーズにより、前記量子コンピュータシステムを動作させ、前記量子部を構成する素子の動作を検査し不安定な可能性がある素子の使用を制限するハードウェア制限情報を取得する
ことを特徴とする量子コンピュータシステム。 In claim 12,
The quantum computer system is composed of a normal temperature part, a low temperature part, and a transmission path for performing communication between the normal temperature part and the low temperature part,
The pre-processing phase and the post-processing phase are executed by the classic computer function unit operating in the normal temperature unit,
The training phase, the main processing preparation phase, and the main processing phase are executed by the quantum computer function unit operating in the low temperature unit,
According to the training phase, the quantum computer system is operated, the operation of the elements constituting the quantum unit is inspected, and hardware restriction information for restricting use of elements that may be unstable is obtained. Quantum computer system.
前記量子コンピュータシステムは、古典プログラムを実行可能な古典コンピュータ機能部と量子プログラムを実行可能な量子コンピュータ機能部とを備え、
前記量子コンピュータ機能部は、量子部、古典記憶装置、及び制御装置を備え、
前記量子プログラムと、前記量子部での処理対象となる入力データと前記古典プログラムとに基づいて生成された中間データとを変換して量子マイクロコードを生成し、
該量子マイクロコードを前記古典記憶装置に記憶し、
前記制御装置により、前記量子マイクロコードに記述されたシーケンスに基づいて前記量子部を制御する
ことを特徴とする量子コンピュータシステムの制御方法。 A method for controlling a quantum computer system, comprising:
The quantum computer system includes a classical computer function unit capable of executing a classical program and a quantum computer function unit capable of executing a quantum program,
The quantum computer function unit includes a quantum unit, a classical storage device, and a control device,
Converting the quantum program, input data to be processed in the quantum unit and intermediate data generated based on the classical program to generate quantum microcode,
Storing the quantum microcode in the classical memory device;
A control method for a quantum computer system, wherein the control unit controls the quantum unit based on a sequence described in the quantum microcode.
前記量子部は、
少なくとも1個以上のキュービットから構成される量子レジスタと、
前記量子レジスタに対して操作を行う制御ゲートと、
前記量子レジスタの状態を観測する読出しゲートとを有し、
前記制御装置により、前記制御ゲートないしは前記読出しゲートに対する操作命令の列である前記量子マイクロコードを前記古典記憶装置から読み出して前記制御ゲートないしは前記読出しゲートを制御する
ことを特徴とする量子コンピュータシステムの制御方法。 In claim 15,
The quantum part is
A quantum register composed of at least one qubit;
A control gate that operates on the quantum register;
A readout gate for observing the state of the quantum register;
A quantum computer system, wherein the control device reads the quantum microcode, which is a sequence of operation instructions for the control gate or the read gate, from the classical memory device and controls the control gate or the read gate. Control method.
前記量子プログラムを前記量子マイクロコードに変換する量子コンパイラを有し、
前記量子コンパイラは、前記入力データを前記量子マイクロコード内に埋め込んで出力する
ことを特徴とする量子コンピュータシステムの制御方法。 In claim 15,
A quantum compiler for converting the quantum program into the quantum microcode;
A quantum computer system control method, wherein the quantum compiler embeds the input data in the quantum microcode and outputs the embedded data.
前記量子コンピュータシステムは、古典コンピュータ機能部と量子コンピュータ機能部とを備え、
前記古典コンピュータ機能部は、前記古典プログラムを実行可能なCPUを備え、
前記量子コンピュータ機能部は、量子部、古典記憶装置、及び制御装置を備え、
前記古典コンピュータ機能部に、
前記古典プログラム及び入力データを入力として、前記古典プログラムを実行して中間データを生成させる機能を実現させ、
前記量子コンピュータ機能部に、
前記量子プログラム及び前記中間データから変換された量子マイクロコードを前記量子部で実行させて観測データを取得する機能と、
該観測データを前記古典コンピュータ機能部に転送させる機能とを実現させるためのプログラム。 A quantum computer system program configured as a combination of a classical program and a quantum program,
The quantum computer system includes a classical computer function unit and a quantum computer function unit,
The classical computer function unit includes a CPU capable of executing the classical program,
The quantum computer function unit includes a quantum unit, a classical storage device, and a control device,
In the classic computer function section,
Using the classic program and input data as input, realizing the function of executing the classic program and generating intermediate data,
In the quantum computer function unit,
A function for obtaining observation data by causing the quantum unit to execute quantum microcode converted from the quantum program and the intermediate data;
A program for realizing the function of transferring the observation data to the classical computer function unit.
前記量子コンピュータ機能部は、前記量子プログラムを前記量子マイクロコードに変換する量子コンパイラを有し、
前記量子部は、前記量子マイクロコードに記述されている処理を実行するリソースとして、少なくとも1個以上のキュービットから構成される量子レジスタと、制御ゲートと、読出しゲートとを備え、
前記量子コンピュータシステムに、
前記量子コンパイラが、前記量子プログラムと、前記量子プログラムが処理すべき入力データとを入力とし、前記入力データを前記量子マイクロコード内に埋め込んで出力する機能と、
前記制御ゲートないしは前記読出しゲートに対する操作命令の列である前記量子マイクロコードを前記古典記憶装置に記憶する機能と、
前記古典記憶装置から前記量子マイクロコードを読み出して前記制御ゲートないしは前記読出しゲートを制御する機能とを実現させるためのプログラム。 In claim 18,
The quantum computer function unit includes a quantum compiler that converts the quantum program into the quantum microcode.
The quantum unit includes, as resources for executing processing described in the quantum microcode, a quantum register including at least one qubit, a control gate, and a read gate,
In the quantum computer system,
The quantum compiler has the input of the quantum program and input data to be processed by the quantum program, and the output of the input data embedded in the quantum microcode.
A function of storing the quantum microcode, which is a sequence of operation instructions for the control gate or the read gate, in the classical storage device;
A program for reading the quantum microcode from the classical memory device and realizing the function of controlling the control gate or the read gate.
前記量子コンピュータシステムは、
前記制御ゲートないしは前記読出しゲートを前記制御装置が制御することで実現可能な操作の種類や制約を前記量子コンピュータ機能部の機能として定義した、ハードウェア機能情報と、
前記量子レジスタを構成する前記キュービットの其々について利用可否及びエラーレートの情報を記憶するハードウェア制限情報とを有し、
前記量子コンピュータシステムに、
前記量子コンパイラが、前記ハードウェア機能情報で定義された制約を満たし、かつ、前記ハードウェア制限情報で利用可能なキュービットのみを用いた前記量子マイクロコードを生成する機能を実現させるためのプログラム。 In claim 19 ,
The quantum computer system includes:
Hardware function information that defines the types and restrictions of operations that can be realized by controlling the control gate or the read gate by the control device as functions of the quantum computer function unit;
Hardware restriction information for storing information on availability and error rate for each of the qubits constituting the quantum register;
In the quantum computer system,
A program for realizing a function in which the quantum compiler generates the quantum microcode using only qubits that satisfy the constraints defined by the hardware function information and can be used in the hardware restriction information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011258481A JP5921856B2 (en) | 2011-11-28 | 2011-11-28 | Quantum computer system, control method and program for quantum computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011258481A JP5921856B2 (en) | 2011-11-28 | 2011-11-28 | Quantum computer system, control method and program for quantum computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013114366A JP2013114366A (en) | 2013-06-10 |
JP5921856B2 true JP5921856B2 (en) | 2016-05-24 |
Family
ID=48709881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011258481A Expired - Fee Related JP5921856B2 (en) | 2011-11-28 | 2011-11-28 | Quantum computer system, control method and program for quantum computer system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5921856B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021118464A1 (en) * | 2019-12-09 | 2021-06-17 | Horizon Quantum Computing Pte. Ltd. | Systems and methods for unified computing on digital and quantum computers |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6295325B2 (en) * | 2014-07-09 | 2018-03-14 | 株式会社日立製作所 | Semiconductor device and information processing system |
JP6021864B2 (en) * | 2014-08-29 | 2016-11-09 | 株式会社日立製作所 | Semiconductor device and information processing apparatus |
JP6294971B2 (en) * | 2014-09-03 | 2018-03-14 | 株式会社日立製作所 | Semiconductor integrated circuit device |
US11797641B2 (en) | 2015-02-03 | 2023-10-24 | 1Qb Information Technologies Inc. | Method and system for solving the lagrangian dual of a constrained binary quadratic programming problem using a quantum annealer |
CA2881033C (en) | 2015-02-03 | 2016-03-15 | 1Qb Information Technologies Inc. | Method and system for solving lagrangian dual of a constrained binary quadratic programming problem |
KR101664173B1 (en) * | 2015-06-08 | 2016-10-11 | 한국과학기술연구원 | Apparatus and method for stablizing quantum cryptography system |
US9870273B2 (en) * | 2016-06-13 | 2018-01-16 | 1Qb Information Technologies Inc. | Methods and systems for quantum ready and quantum enabled computations |
US10275717B2 (en) * | 2016-06-02 | 2019-04-30 | Google Llc | Training quantum evolutions using sublogical controls |
RU2632129C1 (en) * | 2016-09-22 | 2017-10-02 | федеральное государственное бюджетное образовательное учреждение высшего образования "Иркутский национальный исследовательский технический университет" (ФГБОУ ВО "ИРНИТУ") | Electronic module inserted into classical computer and its method based on quantum count procedure |
KR102630448B1 (en) * | 2016-09-29 | 2024-01-31 | 인텔 코포레이션 | Quantum computing assembly, a method of manufacturing a quantum computing assembly, and a method of operating a quantum computing assembly |
US20180260245A1 (en) * | 2017-03-10 | 2018-09-13 | Rigetti & Co, Inc. | Event Scheduling in a Hybrid Computing System |
JP6918980B2 (en) | 2017-05-15 | 2021-08-11 | グーグル エルエルシーGoogle LLC | Operator averaging in quantum computing systems |
US10885678B2 (en) * | 2017-09-29 | 2021-01-05 | International Business Machines Corporation | Facilitating quantum tomography |
US10996979B2 (en) | 2017-09-29 | 2021-05-04 | International Business Machines Corporation | Job processing in quantum computing enabled cloud environments |
US11087232B2 (en) | 2018-07-18 | 2021-08-10 | IonQ, Inc. | Quantum hybrid computation |
US10657212B2 (en) * | 2018-09-18 | 2020-05-19 | International Business Machines Corporation | Application- or algorithm-specific quantum circuit design |
WO2020255076A1 (en) | 2019-06-19 | 2020-12-24 | 1Qb Information Technologies Inc. | Method and system for mapping a dataset from a hilbert space of a given dimension to a hilbert space of a different dimension |
JP7644515B2 (en) * | 2019-09-13 | 2025-03-12 | ザ・ユニバーシティ・オブ・シカゴ | System and method for partially compiling variational algorithms for quantum computers |
JP2023504281A (en) | 2019-12-03 | 2023-02-02 | 1キュービー インフォメーション テクノロジーズ インコーポレイテッド | Systems and methods for enabling access to physics-inspired computers and physics-inspired computer simulators |
JP2022173975A (en) * | 2021-05-10 | 2022-11-22 | 武平 河野 | Paramagnetic or diamagnetic elements converted into ferromagnetism, their oxides, compounds and their alloys, semiconductor pigment and ferromagnet, or quantum computer with quantum circuit composed of ferrimagnet |
JP7590928B2 (en) | 2021-06-10 | 2024-11-27 | 株式会社日立製作所 | Quantum computer and quantum state control method of quantum computer |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1840739A4 (en) * | 2004-12-09 | 2010-07-21 | Nat Univ Corp Nara Inst | PROGRAM DEVELOPMENT SUPPORT DEVICE FOR COMPUTER SYSTEM COMPRISING A QUANTUM COMPUTER, PROGRAM DEVELOPMENT SUPPORT PROGRAM, AND SIMULATION DEVICE |
JP4718244B2 (en) * | 2005-05-30 | 2011-07-06 | 日本電信電話株式会社 | Quantum program conversion apparatus, method thereof, program thereof and recording medium |
-
2011
- 2011-11-28 JP JP2011258481A patent/JP5921856B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021118464A1 (en) * | 2019-12-09 | 2021-06-17 | Horizon Quantum Computing Pte. Ltd. | Systems and methods for unified computing on digital and quantum computers |
US11842177B2 (en) | 2019-12-09 | 2023-12-12 | Horizon Quantum Computing Pte. Ltd. | Systems and methods for unified computing on digital and quantum computers |
Also Published As
Publication number | Publication date |
---|---|
JP2013114366A (en) | 2013-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5921856B2 (en) | Quantum computer system, control method and program for quantum computer system | |
CN109063843B (en) | Quantum computer software architecture system | |
US9195444B2 (en) | Compiler method and compiler apparatus for optimizing a code by transforming a code to another code including a parallel processing instruction | |
US9164769B2 (en) | Analyzing data flow graph to detect data for copying from central register file to local register file used in different execution modes in reconfigurable processing array | |
US20140149719A1 (en) | Arithmetic processing apparatus, control method of arithmetic processing apparatus, and a computer-readable storage medium storing a control program for controlling an arithmetic processing apparatus | |
JP4988789B2 (en) | Simulation system, method and program | |
JP6432450B2 (en) | Parallel computing device, compiling device, parallel processing method, compiling method, parallel processing program, and compiling program | |
JP5966509B2 (en) | Program, code generation method, and information processing apparatus | |
JPWO2008120367A1 (en) | Parallelization program generation method, parallelization program generation apparatus, and parallelization program generation program | |
US20230244459A1 (en) | Hybrid compilation apparatus and method for quantum-classical code sequences | |
Jiang et al. | Boyi: A systematic framework for automatically deciding the right execution model of OpenCL applications on FPGAs | |
US20120198425A1 (en) | Management of conditional branches within a data parallel system | |
CN112906877B (en) | Awareness of data layout in memory architecture for executing neural network models | |
EP2799986B1 (en) | Apparatus and method for translating multithread program code | |
US9189290B2 (en) | Distributing processing of array block tasks | |
US11954563B2 (en) | Apparatus and method for error reduction in distributed quantum systems via fusing-and-decomposing gates | |
US20120089813A1 (en) | Computing apparatus based on reconfigurable architecture and memory dependence correction method thereof | |
JP5278538B2 (en) | Compilation system, compilation method, and compilation program | |
US20230129967A1 (en) | Quantum computing system and method for operating the same | |
Liu et al. | Improving the performance of OpenMP by array privatization | |
KR20220142454A (en) | Predictive teletransmission for reliable computations in multi-SIMD quantum processors | |
KR20230101851A (en) | Highly parallel processing architecture using a compiler | |
JPH04293150A (en) | Compiling method | |
US20180341734A1 (en) | Reconfigurable computing resource allocation using flow graph translation | |
CN116974729B (en) | Task scheduling method and device for big data job, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140820 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20140908 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151201 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160106 |
|
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: 20160329 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160413 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5921856 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |