JP2013114366A - 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 PDF

Info

Publication number
JP2013114366A
JP2013114366A JP2011258481A JP2011258481A JP2013114366A JP 2013114366 A JP2013114366 A JP 2013114366A JP 2011258481 A JP2011258481 A JP 2011258481A JP 2011258481 A JP2011258481 A JP 2011258481A JP 2013114366 A JP2013114366 A JP 2013114366A
Authority
JP
Japan
Prior art keywords
quantum
program
microcode
computer system
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.)
Granted
Application number
JP2011258481A
Other languages
Japanese (ja)
Other versions
JP5921856B2 (en
Inventor
Chihiro Yoshimura
地尋 吉村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2011258481A priority Critical patent/JP5921856B2/en
Publication of JP2013114366A publication Critical patent/JP2013114366A/en
Application granted granted Critical
Publication of JP5921856B2 publication Critical patent/JP5921856B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a quantum computer having both versatility and stability.SOLUTION: The quantum computer system includes: a quantum register composed of at least one or more qubit; a control gate which performs an operation of the quantum register; a quantum unit having a read gate for observing a state of the quantum register; a classic storage device; and a control device accessible to the classic storage device. The classic storage device stores a quantum microcode which is a sequence of operation instructions for the control gate or the read gate. The control device reads the quantum microcode from the classic storage device, and controls the control gate or the read gate.

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 Document 1, which can perform factorization more efficiently than a classical computer.

量子コンピュータを実現するためには、デバイス、アーキテクチャ、アルゴリズムの各レイヤーで革新が必要とされている。例えば、量子コンピュータのデバイスは量子力学的な効果を利用しているため、僅かな外乱でも状態が乱れてしまい、安定して動作させ続けることは困難である。この問題に関して、デバイスのレイヤーにおいてより安定して動作するデバイスを実現するための取り組みは続けられているが、並行してアーキテクチャやアルゴリズムなどの上位レイヤーでの取り組みも重要となる。例えば、特許文献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, Patent Document 1 attempts to solve this problem by quantum error correction. In addition, the elements (various unitary transformations) used to describe the quantum computer algorithm (hereinafter referred to as the quantum algorithm) do not necessarily correspond one-to-one with the components of the quantum circuit constituting the quantum computer. For this reason, a process corresponding to the logic synthesis in a classical computer is required.

例えば、特許文献1では、人間が扱いやすい量子言語を、量子コンピュータの量子系に応じた最適な量子回路に自動的に変換する量子プログラム変換装置を示している。すなわち、特許文献1の発明は、入力された量子プログラムを古典コードと量子コードに分けてそれぞれコンパイルし、リンクする。量子コンピュータの方式(ハードウェアの相違)によって使っているゲートが違うので、量子コードから方式毎のクラスライブラリやエラー訂正ライブラリを使って、コンパイルしている。特許文献1の発明によれば、入力された量子プログラムに対し、量子コンピュータのハードウェア(量子系)の違いを考慮することなく量子回路を自動的に生成することができる。   For example, Patent Document 1 discloses a quantum program conversion device that automatically converts a quantum language that is easy to handle by humans into an optimal quantum circuit corresponding to the quantum system of the quantum computer. That is, the invention of Patent Document 1 compiles and links an input quantum program by dividing it into a classical code and a quantum code. Because the gate used depends on the quantum computer system (difference in hardware), the class code and error correction library for each system are compiled from the quantum code. According to the invention of Patent Document 1, a quantum circuit can be automatically generated for an input quantum program without considering the difference in hardware (quantum system) of the quantum computer.

なお、量子コンピュータ用のデバイスに関しては種々の研究がなされているが、例えば特許文献2に記載されているような半導体を用いた固体素子が実用上は有利であり、将来的にはこの種のデバイスを用いられていくものと考えられる。   Various studies have been made on devices for quantum computers. For example, a solid element using a semiconductor as described in Patent Document 2 is advantageous in practice, and this kind of device will be used in the future. It is thought that devices will be used.

また、特許文献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.

特開2006−331249号公報JP 2006-331249 A 特許第4213892号公報Japanese Patent No. 4213892 特表2010−511946号公報Special table 2010-511946 gazette

P.W. Shor, Algorithms for quantum computation: discrete logarithms and factoring, Proc. 35th Annual IEEE Symposium on Foundations of Computer Science, pp.124−134, 1994.P. W. Shor, Algorithms for quantum computation: discrete logics and factoring, Proc. 35th Annual IEEE Symposium on Foundations of Computer Science, pp. 124-134, 1994.

量子コンピュータを実用化するためには、汎用性と安定性を確保することが重要である。汎用性の面では、単に一種類の問題に対して効果を発揮するだけでなく、複数種の問題に対して汎用的に用いることができる量子コンピュータであることが望ましい。安定性の面では、量子コンピュータのデバイスを作製する技術はまだ発展途上にあり、量子レジスタの素子等の動作が不安定な可能性がある。そうした中では、素子が安定している期間に処理を終えるために、可能な限り処理に要する時間やステップ数を削減することが望まれる。換言すると、ユーザが処理すべき事項やデータの種類に応じて、量子回路のシーケンスを最適化し、素子が安定している短期間に処理できるようにしたいという汎用性に関する要求がある。また、将来的に大規模なデバイスを実現できるようになった段階では、素子数が莫大になるためシステム全体としては不安定になってしまう可能性がある。さらに、素子の故障に関しても、一時的な故障や恒久的な故障など、様々な故障モードを検討しなければならない。   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 Patent Document 1 relates to a quantum program conversion device based on differences in quantum systems, but it is not disclosed that a user uses a quantum computer for a plurality of types of problems for general purposes. . For example, a general-purpose process by software for a process in which a user gives data to be processed to an application program of a quantum computer, and a specific qubit is read by swapping between a plurality of qubits constituting a quantum register. It is not disclosed how to do this. There is no description about the stability of the operation of the quantum register.

特許文献2の発明は、量子コンピュータのデバイスに関するものであり、このデバイスを備えた量子コンピュータのソフトウェア、特に、ユーザが使用するにあたっての汎用性や安定性についての記載は無い。   The invention of Patent Document 2 relates to a device of a quantum computer, and there is no description of software of a quantum computer provided with this device, in particular, versatility and stability when used by a user.

特許文献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に係る量子コンピュータシステムの構成例を示す図である。It is a figure which shows the structural example of the quantum computer system which concerns on Example 1 of this invention. 実施例1に係る量子コンピュータシステムの、常温部の構成例を示す図である。FIG. 3 is a diagram illustrating a configuration example of a normal temperature unit of the quantum computer system according to the first embodiment. 実施例1に係る量子コンピュータシステムの、低温部の構成例を示す図である。FIG. 3 is a diagram illustrating a configuration example of a low temperature part of the quantum computer system according to the first embodiment. 実施例1における、キュービット及び制御ゲートの構成例を示す平面図である。3 is a plan view illustrating a configuration example of a qubit and a control gate in Embodiment 1. FIG. 実施例1における、量子レジスタ、制御ゲート、及び、読出しゲートの構成例を示す平面図である。3 is a plan view illustrating a configuration example of a quantum register, a control gate, and a readout gate in Embodiment 1. FIG. キュービットの状態を説明する図である。It is a figure explaining the state of a qubit. キュービットに対する操作を行う電圧パルスの印加を説明する図である。It is a figure explaining application of the voltage pulse which performs operation with respect to a qubit. キュービットの他の状態を説明する図である。It is a figure explaining the other state of a qubit. 実施例1の量子コンピュータシステム内の処理(前処理及び本処理準備)の例を示す説明図である。FIG. 3 is an explanatory diagram illustrating an example of processing (preprocessing and main processing preparation) in the quantum computer system according to the first embodiment. 実施例1の量子コンピュータシステム内の処理(本処理及び後処理)の例を示す説明図である。FIG. 3 is an explanatory diagram illustrating an example of processing (main processing and post-processing) in the quantum computer system according to the first embodiment. 量子部とトレーニング処理の関係を説明する図である。It is a figure explaining the relationship between a quantum part and training processing. 実行マネージャによる、量子レジスタに対するトレーニング処理の例を示すフローチャートである。It is a flowchart which shows the example of the training process with respect to a quantum register by the execution manager. 量子コンピュータシステム内の処理(トレーニングフェーズ処理)の例を示す説明図である。It is explanatory drawing which shows the example of the process (training phase process) in a quantum computer system. 実施例1のハードウェア制限情報の、データ構造を示す説明図の例である。4 is an explanatory diagram illustrating a data structure of hardware restriction information according to the first embodiment. FIG. 実施例1の実行マネージャの処理を示すフローチャートの例である。6 is an example of a flowchart illustrating processing of an execution manager according to the first exemplary embodiment. 実施例1の量子コンパイラ内の処理を示す説明図の例である。FIG. 3 is an explanatory diagram illustrating processing in the quantum compiler according to the first exemplary embodiment. 本発明の実施例2に係る量子コンピュータシステムの常温部の構成図の例である。It is an example of the block diagram of the normal temperature part of the quantum computer system which concerns on Example 2 of this invention. 実施例2に係る量子コンピュータシステムの、低温部の構成図の例である。6 is an example of a configuration diagram of a low temperature part of a quantum computer system according to Example 2. FIG. 実施例2の量子コンピュータシステム内の処理(前処理)の例を示す説明図である。FIG. 10 is an explanatory diagram illustrating an example of processing (preprocessing) in the quantum computer system according to the second embodiment. 実施例2の量子コンピュータシステム内の処理(本処理準備、トレーニング処理、本処理及び後処理)の例を示す説明図である。It is explanatory drawing which shows the example of the process (this process preparation, training process, this process, and post-process) in the quantum computer system of Example 2. FIG.

本発明の実施形態の一例を挙げるならば、量子コンピュータシステムは、少なくとも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 quantum computer system 100 that can be used in a general and stable manner because the quantum computer is programmable will be described.

図1は、本発明の実施例1に係る量子コンピュータシステム100の構成例を示す図である。後で述べる実施例も含めて、本発明の量子コンピュータシステムは、量子コンピュータと古典コンピュータの両方の機能を具備する。すなわち、量子コンピュータシステム100を、量子コンピュータの機能を具備する量子コンピュータ機能部と古典コンピュータの機能を具備する古典コンピュータ機能部とのハイブリッドシステムとして構成する。   FIG. 1 is a diagram illustrating a configuration example of a quantum computer system 100 according to the first embodiment of the present invention. The quantum computer system of the present invention, including the embodiments described later, has the functions of both a quantum computer and a classical computer. That is, the quantum computer system 100 is configured as a hybrid system of a quantum computer function unit having a quantum computer function and a classic computer function unit having a classic computer function.

一般的に、量子コンピュータ向けのアルゴリズム(これ以降、量子アルゴリズムと呼ぶ)の構成は、古典コンピュータによる前処理、量子コンピュータによる本処理、古典コンピュータによる後処理の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 quantum computer system 100 also includes a normal temperature unit 101 and a low temperature unit 102, and the normal temperature unit 101 and the low temperature unit 102 are connected by a transmission path 103 for communication. That is, the normal temperature unit 101 and the low temperature unit 102 can send and receive programs and data to and from each other via the transmission path 103.

一般的に、量子コンピュータのデバイスは低温の動作環境を要求するものが多い。例えば、量子コンピュータ機能部に、特許文献2に記載のデバイスを採用した場合には、4.2Kという非常に低い温度に冷却して利用する必要がある。このように、現在一般に用いられている古典コンピュータ機能部は常温動作を前提とし、量子コンピュータ機能部は低温動作を前提とて構成されているため、常温部101と低温部102に分離する必要性が理解できるであろう。   In general, many quantum computer devices require a low-temperature operating environment. For example, when the device described in Patent Document 2 is adopted as the quantum computer function unit, it is necessary to use the device after cooling to a very low temperature of 4.2K. As described above, since the classical computer function unit that is currently used is premised on normal temperature operation and the quantum computer function unit is premised on low temperature operation, it is necessary to separate the normal computer unit 101 and the low temperature unit 102 from each other. Will understand.

本実施例でも、概ね、古典コンピュータ機能部が常温部101に、量子コンピュータ機能部が低温部102に対応する。しかしながら、本実施例の低温部102は、量子コンピュータ機能部のみならず古典コンピュータ機能部に相当する制御装置であるマイクロ制御部301を含んでいる。   Also in this embodiment, the classical computer function unit generally corresponds to the normal temperature unit 101 and the quantum computer function unit corresponds to the low temperature unit 102. However, the low temperature unit 102 of the present embodiment includes a micro control unit 301 which is a control device corresponding to a classical computer function unit as well as a quantum computer function unit.

図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 room temperature unit 101 in the quantum computer system 100 of the present embodiment. The hardware configuration of the room temperature unit 101 is basically the same as the hardware configuration of a classic computer that is generally used at present. The room temperature unit 101 includes a main storage device 201, a CPU 202, and an I / O adapter 203. The main storage device 201 holds an application program 210, system software 220, and line time information 230. The CPU 202 executes the system software 220 and the classic object 231 held by the main storage device 201. The I / O adapter 203 communicates with the low temperature unit 102 via the transmission path 103 in response to a request from the CPU 202. In addition, although it is natural that the quantum computer system 100 according to the present embodiment also includes components such as an operating system that are generally provided in the current classical computer, a description thereof will be omitted.

アプリケーションプログラム210は、量子コンピュータシステム100で処理したい問題毎に用意されるプログラムである。前述した通り、量子アルゴリズムは古典コンピュータ機能部で実行する前処理及び後処理部と、量子コンピュータ機能部で実行する本処理部からなる。これに対応してアプリケーションプログラム210は、古典プログラム211と量子プログラム212の複合として構成される。古典プログラム211は、例えばC言語のようなプログラミング言語で記述されたプログラムであり、前処理及び後処理でCPU202が行うべき処理を記述している。量子プログラム212は、本処理で低温部102が行うべき処理を記述している。量子プログラム212は古典プログラム211と同様にプログラミング言語で記述することも可能であるし、ユニタリ行列や量子回路として表現しても良い。   The application program 210 is a program prepared for each problem to be processed by the quantum computer system 100. As described above, the quantum algorithm includes a pre-processing and post-processing unit executed by the classical computer function unit, and a main processing unit executed by the quantum computer function unit. Correspondingly, the application program 210 is configured as a composite of the classical program 211 and the quantum program 212. The classic program 211 is a program described in a programming language such as C language, for example, and describes processing to be performed by the CPU 202 in pre-processing and post-processing. The quantum program 212 describes a process to be performed by the low temperature unit 102 in this process. The quantum program 212 can be described in a programming language like the classical program 211, or may be expressed as a unitary matrix or a quantum circuit.

システムソフトウェア220は、アプリケーションプログラム210をCPU220及び低温部102上で動作させるために必要な制御や操作をCPU202に行わせるためのソフトウェア群である。システムソフトウェア220は古典コンパイラ221、量子コンパイラ222、及び、実行マネージャ223から構成される。古典コンパイラ221は古典プログラム211をCPU202上で実行可能な形式である古典オブジェクト231に変換するためのソフトウェアである。現在一般的に用いられているプログラミング言語の処理系と同義と考えて良い。量子コンパイラ222は量子プログラム212を低温部102上で実行可能な形式である量子マイクロコード232に変換するためのソフトウェアである。実行マネージャ223はアプリケーションプログラム210に入力データ233を入力して処理結果を得るために、システムソフトウェア220による処理や、常温部101と低温部102の間のデータ転送など、必要となる処理の全体制御を行うソフトウェアである。   The system software 220 is a software group for causing the CPU 202 to perform control and operation necessary for operating the application program 210 on the CPU 220 and the low temperature unit 102. The system software 220 includes a classic compiler 221, a quantum compiler 222, and an execution manager 223. The classical compiler 221 is software for converting the classical program 211 into a classical object 231 that is a format executable on the CPU 202. You can think of it as synonymous with the processing system of programming languages that are currently in common use. The quantum compiler 222 is software for converting the quantum program 212 into quantum microcode 232 which is a format that can be executed on the low temperature unit 102. The execution manager 223 inputs the input data 233 to the application program 210 and obtains a processing result, so that overall control of necessary processing such as processing by the system software 220 and data transfer between the normal temperature unit 101 and the low temperature unit 102 is performed. It is software that performs.

ランタイム情報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 runtime information 230 is data required when the application program 210 is executed, or data or code temporarily generated in the course of execution. The runtime information 230 includes a classic object 231, quantum microcode 232, input data 233, intermediate data 234, and observation data 235. As described above, the classic object 231 is a code that can be executed by the CPU 202 generated by the classic compiler 221. As described above, the quantum microcode 232 is a code that can be executed by the low temperature unit 102 generated by the quantum compiler 222. The input data 233 is data prepared by a user who uses the application program 210 and is data that the application program 210 wants to process. For example, in the example of factorization described above, the composite number to be factored becomes the input data 233. That is, the input data 233 is data to be processed using the quantum unit of the quantum computer function unit. The intermediate data 234 is data generated by preprocessing by the classical program 211. The observation data 235 is data generated by this process, and is transferred from the low temperature unit 102 that executes this process to the room temperature unit 101.

図3は、本実施例の量子コンピュータシステム100の低温部102の構成図の例である。低温部102は、マイクロ制御部301、観測レジスタ302、I/Oアダプタ303、量子部310、命令バッファ320から構成されている。   FIG. 3 is an example of a configuration diagram of the low temperature part 102 of the quantum computer system 100 of the present embodiment. The low temperature unit 102 includes a micro control unit 301, an observation register 302, an I / O adapter 303, a quantum unit 310, and an instruction buffer 320.

I/Oアダプタ303は伝送路103と接続され、常温部101が発したデータ転送要求を受け取り、命令バッファ320への量子マイクロコード321の格納、マイクロ制御部301への実行の指令、観測レジスタ302からのデータの取得などを行う。   The I / O adapter 303 is connected to the transmission path 103, receives a data transfer request issued by the room temperature unit 101, stores the quantum microcode 321 in the instruction buffer 320, executes an instruction to the micro control unit 301, and the observation register 302 Acquire data from.

量子部310は量子コンピュータ機能部の中核部分であり、量子マイクロコード321に記述されている処理を実行するリソースを有する。量子部310は制御ゲート311、量子レジスタ312、読出しゲート313から構成されている。量子レジスタ312は、0、1、もしくは0と1の重ね合わせの状態を保持できるキュービットを1個以上有する。キュービットの構成方法に関しては、例えば特許文献2に記載されている。   The quantum unit 310 is a core part of the quantum computer function unit, and has a resource for executing processing described in the quantum microcode 321. The quantum unit 310 includes a control gate 311, a quantum register 312, and a read gate 313. The quantum register 312 has one or more qubits that can hold 0, 1, or a superposition state of 0 and 1. A qubit configuration method is described in Patent Document 2, for example.

図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 qubit block 400 constituting the quantum register 312 in the present embodiment. Here, the qubit 410 is configured as a double qubit in which two quantum dots 411 and 412 are connected. In addition, in order to control the height of the barrier potential, control gates 420, 421, 422, 430, 431, and 432 are attached to the qubit 410. It becomes a component (building block).

図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 quantum unit 310 in this embodiment. As described above, the quantum unit 310 includes the control gate 311, the quantum register 312, and the read gate 313. Among these, the quantum register 312 is realized by arranging one or more qubit blocks 400 as shown in FIG. In the example of FIG. 5, the quantum register is configured by arranging four qubit blocks 501, 502, 503, and 504 side by side. The control gate 311 is placed in each qubit block (control gates 420, 421, 422, 430, 431, and 432 in FIG. 4). Hereinafter, when the qubits 410 in the qubit blocks 501, 502, 503, and 504 are indicated, they are simply referred to as qubits 501, 502, 503, and 504. In addition, control gates 511, 512, 521, 522 are also placed around the quantum register 312 (qubit blocks 501, 502, 503, 504) as a control gate 311 for initializing each qubit. ing. The read gate 313 is realized as single-electron transistors 531 and 532 placed around the quantum register 312 (qubit blocks 501 and 502).

これ以降、量子レジスタ312はキュービットをN個持つNキュービット量子レジスタであるとする。なお、このNキュービット量子レジスタは000…000(0がN個)から111…111(1がN個)までの2個の状態の重ね合わせを表現する能力を持つ。制御ゲート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 quantum register 312 is an N qubit quantum register having N qubits. This N qubit quantum register has the ability to express a superposition of 2 N states from 000... 000 (N is 0) to 111... 111 (N is 1). The control gate 311 is a gate for performing operations on one or a plurality of qubits in the quantum register 312. For example, when the qubit described in Patent Document 2 is adopted as the quantum register, the operation is performed by applying a voltage. Operations that can be performed by the control gate 311 include initialization (initializing the state of the qubit to 0 or 1), Hadamard transformation, control NOT, and the like. In response to an instruction from the micro control unit 301, the control gate performs a designated operation on a designated qubit in the quantum register 312. The read gate 313 is a gate for observing and reading the value of one or a plurality of qubits in the quantum register 312. In response to an instruction from the micro control unit 301, the read gate 313 observes the value of the quantum register 312 and stores the observation result in the observation register 302. At this time, the qubit to be observed is designated by the micro controller 301. With the observation, the observed qubit state converges to either 0 or 1 from the superposition of 0 and 1.

命令バッファ320は、量子マイクロコード321を保持している。この量子マイクロコード321は、常温部101の量子マイクロコード232が伝送路103経由で転送されてきたものである。   The instruction buffer 320 holds the quantum microcode 321. This quantum microcode 321 is obtained by transferring the quantum microcode 232 of the room temperature unit 101 via the transmission path 103.

観測レジスタ302は、前述した通り量子レジスタ312の観測結果を保持するレジスタであり、この観測レジスタは古典コンピュータ機能部の記憶素子、すなわち0もしくは1の2値を保持するものである。   The observation register 302 is a register that holds the observation result of the quantum register 312 as described above, and this observation register holds a storage element of the classical computer function unit, that is, a binary value of 0 or 1.

マイクロ制御部301は、命令バッファ320から量子マイクロコード321を読み出し、量子マイクロコード321に記述されたシーケンスに基づいて制御ゲート311及び読み出しゲート313を制御する。   The micro control unit 301 reads the quantum microcode 321 from the instruction buffer 320 and controls the control gate 311 and the read gate 313 based on the sequence described in the quantum microcode 321.

量子マイクロコード321は、制御ゲート311及び読出しゲート313を制御する命令を時系列的に示した動作シーケンスである。命令としては、制御ゲート311を駆動して量子レジスタ312内の指定するキュービットに対して操作を行う操作命令と、読出しゲート313を制御して観測を行い、観測結果を観測レジスタ302に格納する観測命令がある。操作命令と観測命令は同一の時系列上に記述され、各命令間は順序関係が保たれる。これは、観測命令を実行すると重ね合わせの状態を0か1に収束させてしまうという不可逆な効果を持つため、処理の途中で観測を利用するような量子アルゴリズムでは各操作命令と観測命令の実行順序が重要となるためである。   The quantum microcode 321 is an operation sequence in which commands for controlling the control gate 311 and the read gate 313 are shown in time series. As an instruction, an operation instruction for driving the control gate 311 to operate on a qubit designated in the quantum register 312 and an observation by controlling the read gate 313 are performed, and the observation result is stored in the observation register 302. There is an observation order. The operation command and the observation command are described on the same time series, and the order relationship is maintained between the commands. This has the irreversible effect of converging the superposition state to 0 or 1 when the observation instruction is executed. Therefore, in the quantum algorithm that uses observation in the middle of processing, each operation instruction and the observation instruction are executed. This is because the order becomes important.

操作命令としては、単一のキュービットに作用する操作や、複数のキュービットに作用する操作がある。いずれも、操作対象のキュービットを指定するためにオペランドとしてキュービット番号を持つ。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 quantum register 312 having N qubits is designated as QR, for example, qubit numbers are designated as QR (1) and QR (3) in order to designate qubits in the QR. At this time, the control NOT command can be expressed as “CNOT control queue bit number, target queue bit number” as an operation command. When the qubit number 1 is the control qubit and the qubit number 3 is the target qubit, it is described as “CNOT QR (1), QR (3)”. Similarly, an operation such as Hadamard transformation is prepared as an operation command. The observation instruction is also an instruction using the qubit number of the qubit to be observed as an operand.

また、操作命令及び観測命令は制御ゲート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 control gate 311 and the read gate 313. For example, a swap instruction for exchanging a state between two qubits can be indicated as an instruction such as “SWAP QR (i), QR (j)” (i and j are qubit numbers), but the control gate 311 directly Even if the swap instruction is not supported, the micro control unit 301 may realize an operation equivalent to the swap instruction by a control NOT instruction or a combination of other instructions.

図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-electron transistors 531 and 532) can read only the qubits 501 and 502, and the qubits 503 and 504 cannot be read. Therefore, a plurality of controls of the control gate 311 and the read gate 313 are combined using the above-described swap. When the qubit 503 is read, the swap is performed between the qubits 501 and 503, and when the qubit 504 is read, the qubit 502 is read. , 504 is required to be swapped.

図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 qubit 410. The two quantum dots 411 and 412 constituting the qubit 410 are assigned to the base | 0> and the base | 1>, respectively. Here, it is assumed that the quantum dot 411 is | 0> and the quantum dot 412 is | 1>. In the example of FIG. 6, it is assumed that electrons are stored in the quantum dot 411 and the state held by the qubit 410 is | 0>. Conversely, if electrons are accumulated on the quantum dot 412 side, the state held by the qubit 410 is | 1>.

図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 qubit 410 is performed by applying voltage pulses to the control gates 420, 421, 422, 430, 431, and 432, respectively. The operations that can be realized differ depending on the voltage pulse pattern (amplitude, time, phase relationship with other pulses) applied to each control gate. In the voltage pulse pattern example (Vpa, Vpb, Vpc, Vpd, Vpe, Vpf) of FIG. 7, a pulse acting in the direction of lowering the barrier potential height is applied to the control gates 420, 430.

この結果、図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 quantum dots 411 and 412 decreases, and the state of | 0> and the state of | 1> come and go with a certain probability. . At this time, if the probability of | 0> is α and the probability of | 1> is β, the qubit 410 shown in FIG. 8 has a superposition state of α | 0> + β | 1>. . In this way, various types of operations can be performed by applying voltage pulses to the control gate.

また、上記の例では単一のキュービットに対する操作の例だったが、隣接する複数のキュービットは互いにバリアポテンシャルの高さに影響を及ぼし合うので、複数のキュービットの制御ゲートに対して同時に電圧パルスを印加することで、制御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-electron transistors 531 and 532). For example, when it is desired to perform control NOT using the qubit 501 as the control bit and the qubit 504 as the operation bit, the qubits 502 and 504 are swapped, and the qubit 504 is held in the qubit 502 adjacent to the qubit 501. It is necessary to bring a state to do.

図9及び図10は、量子コンピュータシステム100におけるプログラムないしはソフトウェアの関係を示した図である。量子コンピュータシステム100を利用しようとするユーザは、古典プログラム211、量子プログラム212、入力データ233を用意する。   9 and 10 are diagrams showing the relationship between programs or software in the quantum computer system 100. FIG. A user who intends to use the quantum computer system 100 prepares a classical program 211, a quantum program 212, and input data 233.

量子コンピュータシステム100において、プログラムを実行して結果を得るまでの過程(機能)は、図9の古典コンパイルフェーズ(古典コンパイル機能)S400、図9の前処理フェーズ(前処理機能)S410、図9の本処理準備フェーズ(本処理準備機能)S420、図10の本処理実行フェーズ(本処理実行機能)S500、図10の後処理フェーズ(後処理機能)S510に大別できる。   In the quantum computer system 100, the process (function) until the program is executed and the result is obtained is the classical compilation phase (classical compilation function) S400 in FIG. 9, the preprocessing phase (preprocessing function) S410 in FIG. Main processing preparation phase (main processing preparation function) S420, main processing execution phase (main processing execution function) S500 in FIG. 10, and post processing phase (post processing function) S510 in FIG.

図9の古典コンパイルフェーズS400では、古典プログラム211を古典コンパイラ221でコンパイルし、古典オブジェクト231を得る。このフェーズは古典プログラム211を変更する度に行う必要がある。古典コンパイルフェーズS400は、現在一般的に用いられているコンピュータで、プログラムをコンパイルして実行形式を生成するフェーズと同様のものである。   In the classical compilation phase S400 of FIG. 9, the classical program 211 is compiled by the classical compiler 221 to obtain the classical object 231. This phase must be performed every time the classical program 211 is changed. The classical compilation phase S400 is the same as the phase in which a computer is generally used at present and a program is compiled to generate an execution format.

前処理フェーズS410では、古典オブジェクト231を実行することで、量子アルゴリズムの前処理を行う。このとき、処理するべきデータやパラメータは入力データ233として与えられる。入力データ233を入力として、前処理実行S411で古典オブジェクト231を実行し、処理結果として中間データ234を得る。前処理フェーズS410は入力データ233を変更するたびに行う必要がある。例えば、複数のデータやパラメータに対して処理を行う場合には、その都度前処理フェーズS410を実行する必要がある。なお、前処理が必要ない量子アルゴリズムでは、前処理フェーズS410は省略できる。   In the preprocessing phase S410, the quantum object is preprocessed by executing the classic object 231. At this time, data and parameters to be processed are given as input data 233. With the input data 233 as an input, the classic object 231 is executed in pre-processing execution S411, and intermediate data 234 is obtained as a processing result. The preprocessing phase S410 needs to be performed every time the input data 233 is changed. For example, when processing a plurality of data and parameters, it is necessary to execute the preprocessing phase S410 each time. In the quantum algorithm that does not require preprocessing, the preprocessing phase S410 can be omitted.

本処理準備フェーズS420では、量子アルゴリズムのうち本処理を担う量子プログラム212を量子コンパイラ222で量子マイクロコード232に変換する。量子マイクロコード232には、量子プログラム212で処理すべきデータも織り込まれる必要があるので、量子コンパイラ222は量子プログラム212の他に、前処理フェーズS410で生成された中間データ234も入力としている。生成された量子マイクロコード232は、低温部転送S421で低温部102に転送される。   In this processing preparation phase S 420, the quantum program 212 responsible for this processing in the quantum algorithm is converted into quantum microcode 232 by the quantum compiler 222. Since the quantum microcode 232 needs to include data to be processed by the quantum program 212, the quantum compiler 222 receives the intermediate data 234 generated in the preprocessing phase S410 in addition to the quantum program 212. The generated quantum microcode 232 is transferred to the low temperature part 102 in the low temperature part transfer S421.

なお、量子コンパイラ222は後述するようにコンパイル時にハードウェア機能情報707、及び、ハードウェア制限情報708を必要とする。ハードウェア機能情報707は量子部310の設計時に確定する情報であり、予め用意されている。ハードウェア制限情報708は後述するトレーニングフェーズ(トレーニング機能)S490で生成される。   Note that the quantum compiler 222 requires hardware function information 707 and hardware restriction information 708 at the time of compilation as described later. The hardware function information 707 is information determined when the quantum unit 310 is designed, and is prepared in advance. The hardware restriction information 708 is generated in a training phase (training function) S490 described later.

トレーニングフェーズS490は、量子部310の経年劣化、製造不良、及び、その時々の利用環境下における動作不良に応じて、それを回避した量子マイクロコード232を生成するために必要となるハードウェア制限情報708を生成するために行われる。そのため、トレーニングフェーズS490は、前述したようなハードウェアの特性を変化させうる変化要因の時間的な特性(発生頻度や変化速度)より十分に短い間隔で定期的に実行する。また、何らかの処理を実行した結果、その結果が誤っているなどハードウェアの動作不良が疑われる場合には、トレーニングフェーズS490を実行する。   The training phase S490 is hardware restriction information necessary for generating the quantum microcode 232 that avoids the aging of the quantum unit 310, the manufacturing failure, and the operation failure in the usage environment at that time. This is done to generate 708. Therefore, the training phase S490 is periodically executed at intervals sufficiently shorter than the temporal characteristics (occurrence frequency and change speed) of the change factors that can change the hardware characteristics as described above. Further, when a malfunction of hardware is suspected as a result of executing some processing, such as an incorrect result, training phase S490 is executed.

図10の本処理実行フェーズS500では、本処理を実行する。本処理準備フェーズS420で低温部102に転送されてきた量子マイクロコード321を量子部実行S501で実行し、処理結果を観測レジスタ302に得る。この観測レジスタ302が保持する情報を本処理の結果として常温部転送S502で常温部101に転送する。   In the process execution phase S500 of FIG. 10, this process is executed. The quantum microcode 321 transferred to the low-temperature unit 102 in the processing preparation phase S420 is executed in the quantum unit execution S501, and the processing result is obtained in the observation register 302. Information held in the observation register 302 is transferred to the room temperature unit 101 as a result of this processing in room temperature section transfer S502.

後処理フェーズ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 classical object 231 as in the pre-processing phase S410. In the post-processing, the execution result of this processing execution phase S500, that is, the observation data 235 transferred in the room temperature portion transfer S502 is used. Therefore, post-processing execution S511 executes the classic object 231 using the observation data 235 as input data. The execution result S512 of the post-processing execution S511 is an execution result finally obtained by executing the quantum algorithm.

本実施例によれば、量子コンピュータをプログラム可能とし、それにより汎用性の高い量子コンピュータシステムを実現することができる。すなわち、本実施例の量子コンピュータシステムは、量子コンピュータ機能部と古典コンピュータ機能部とのハイブリッドシステムとして構成されており、量子コンピュータ機能部(低温部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 quantum unit 310, a classical storage device (commands). A buffer 320) and a controller (microcontroller 301) capable of accessing the classical storage device and the quantum unit 310, the quantum unit 310 comprising a quantum register 312 comprising at least one qubit 410, and a quantum register And a read gate 313 for observing the state of the quantum register. The classical memory device stores quantum microcode 321 which is a sequence of operation instructions for the control gate or read gate, and the controller 301 reads the quantum microcode from the classical memory device and controls the control gate or read gate. On the other hand, the classical computer function unit (room temperature unit 101) includes an application program 210 and system software 220, and the system software includes a quantum compiler 222 that converts the quantum program 212 into quantum microcode. As described above, the quantum compiler 222 that generates the quantum microcode 321 incorporating the input data is provided as a hardware configuration of the room temperature unit 101. Therefore, it is possible to easily generate a program that executes a series of sequences using not only the room temperature part 101 but also all the elements of the quantum part 310 of the low temperature part 102. The execution result finally obtained by executing the quantum algorithm in the quantum computer function unit in the low temperature part is output as observation data to the room temperature part. As a result, it is possible to realize a highly versatile quantum computer system that can be used not only for a single type of problem but also for a plurality of types of problems.

なお、量子コンピュータ機能部と古典コンピュータ機能部は、各々、コンピュータに所定の機能を実現させるためのプログラムを備えており、このプログラムをコンピュータで実行することにより、上記各処理機能がコンピュータ上で実現される。この処理機能を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録することができる。   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 quantum unit 310 are performed. Hardware restriction information 708 for restricting the use of elements that may be unstable is obtained.

図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 quantum unit 310 includes a quantum register 312 composed of N qubits (qubit numbers 0 to (N−1)) arranged inside the control gate 311. Assume that each qubit is an element whose operation is unstable due to a problem in manufacturing technology. In this training phase S490, information on such qubits is extracted in advance and registered as hardware restriction information 708.

図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 hardware restriction information 708. FIG. 13 is a diagram illustrating an example of the operation in the training phase S490 for executing the training operation in the quantum computer system. This training operation is for detecting the failure status of the quantum register 312 and updating the hardware restriction information 708. The training operation can also be performed in the same manner as the quantum program execution process shown in FIGS. For example, even for a qubit located at a position away from the read gate inside the quantum register 312 like the qubit of number X in FIG. 11, the state is read using the above-described swap. Hereinafter, the flowchart of FIG. 12 and the operation of FIG. 13 will be described in correspondence.

図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 quantum register 312, reading it, and checking it. For example, if it is initialized to 0, it can be expected to observe 0. If a superposition state of 0 and 1 is generated, it can be expected to observe with the probability according to the probability of each of 0 and 1.

トレーニングフェーズのステップS491は、図13のトレーニング用マイクロコード4901を低温部転送S4921で低温部102に転送し、量子部実行S4922で実行しているのに対応する。   Step S491 in the training phase corresponds to the transfer of the training microcode 4901 of FIG. 13 to the low temperature unit 102 in the low temperature part transfer S4921 and the execution in the quantum part execution S4922.

次に、ステップ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 observation register 4902 in FIG. 13 is transferred to the room temperature unit 101 by room temperature portion transfer S4923, and step S493 corresponds to the observation result processing S4924.

上記の検査結果を元に、ステップS494でハードウェア制限情報708を生成し、トレーニングを完了する。ステップS494は、図13ではハードウェア制限情報生成S4925でハードウェア制限情報708を生成していることに対応する。   Based on the inspection result, hardware restriction information 708 is generated in step S494, and the training is completed. Step S494 corresponds to the generation of the hardware restriction information 708 in the hardware restriction information generation S4925 in FIG.

図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 hardware control information 708. The hardware configuration information 708 in FIG. 14 has a tabular data structure and includes columns indicating availability, status, and error rate. When the quantum register 312 is composed of N qubits, it is composed of N rows from 0 to N−1 in order to store hardware restriction information for each qubit. The availability indicates whether or not the qubit is available as a result of training. For example, 0 is unavailable and 1 is available. The quantum compiler 222 refers to this information to determine whether the qubit can be used. The status and error rate are for detailed analysis of failure factors and prediction of future failures. The error rate records the qubit error rate, that is, the rate at which the observed data and the expected value are different. The status records, for example, no abnormality (000), the error rate is increasing, but it is still usable (001), and the error rate exceeds the limit value so that it cannot be used (010).

図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 classical object 231 unless the classical program 211 is changed. The classic program 211 has a change factor such as an algorithm change or a bug fix, but it is common that none of them is as frequent as it is performed every execution. On the other hand, since the preprocessing phase S410 and later depend on the input data 233, it is necessary to re-execute every time the input data 233 is changed. Therefore, the execution manager 223 of the system software 220 performs the phases S410, S420, S500, and S510 shown in FIGS. 9 and 10 as necessary, and manages the entire execution process in order to execute the quantum algorithm normally. To do. The execution manager 223 is activated by an instruction from a user that instructs the start of execution of the quantum algorithm.

図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 execution manager 223.
In step S601, it is checked whether the intermediate data 234 exists and whether the input data 233 has been changed. The absence of the intermediate data 234 means that the preprocessing has not yet been performed, and the preprocessing phase S410 needs to be executed, and thus the process proceeds to step S602. Also, if there is a change in the input data 233, even if the intermediate data 234 exists, it corresponds to the old input data 233 before the change, so the preprocessing phase S410 is executed again to execute the intermediate data 234 must be updated. Therefore, it progresses to step S602 similarly. Only when the input data 233 is not changed and the corresponding intermediate data 234 has already been generated, the preprocessing phase S410 can be omitted. Therefore, at this time, the preprocessing phase S410 is omitted and the process proceeds to step S603.

ステップ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 quantum microcode 232 exists and whether the intermediate data 234 has been changed. If the quantum microcode 232 does not exist, the process transitions to step S604 in order to execute the processing preparation phase S420 and generate the quantum microcode 232. In addition, even if the quantum microcode 232 exists, if the intermediate data 234 is changed, the quantum microcode 232 depends on the intermediate data 234, so that this processing preparation phase S420 is executed again. The process proceeds to step S604. Although the idea is the same as in step S601, if the quantum microcode 232 already exists and the intermediate data 234 is not changed, the process preparation phase S604 is omitted and the process execution phase S605 is entered. move on.

ステップ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 input data 233 or intermediate data 234.
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 input data 233 is changed in step S609 as necessary. The input data 233 is changed by a user operation or execution of the classic object 231. That is, the classic object 231 plays a role of changing the input data 233 at the time of re-execution as part of the pre-processing or post-processing.

図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 quantum compiler 222 and the input and output. The quantum compiler 222 receives the quantum program 212 and the intermediate data 234 as input and generates a quantum microcode 232. This generation function, that is, the processing (S701 to S706) performed in the quantum compiler 222 of FIG. 16 is referred to as compilation. Hardware function information 707 and hardware restriction information 708 are also used as inputs during the compilation process.

ハードウェア機能情報707は、量子コンピュータシステム100における量子コンピュータ機能部である低温部102の有する機能を定義する情報である。具体的には、量子マイクロコード232を生成する上での制約として示される。例えば、CNOT命令が利用可能である、といった情報が記録される。また、オペランドに対する制約も指定される。例えば、量子レジスタ312上の隣接するキュービット間でしかCNOT命令が適用できない場合には、量子レジスタQR上のキュービットQR(i)とQR(i+1)が隣接するキュービットだとすると、CNOT命令のオペランドはQR(i),QR(i+1)の関係を満たさなければならないという制約が記述される。量子コンパイラ222は、ハードウェア機能情報707で定義される制約に基づいて量子マイクロコード232を生成する。   The hardware function information 707 is information that defines a function of the low-temperature unit 102 that is a quantum computer function unit in the quantum computer system 100. Specifically, it is shown as a restriction in generating the quantum microcode 232. For example, information that a CNOT instruction is available is recorded. Also, constraints on operands are specified. For example, when the CNOT instruction can be applied only between adjacent qubits on the quantum register 312, if the qubits QR (i) and QR (i + 1) on the quantum register QR are adjacent qubits, the operand of the CNOT instruction Describes a constraint that QR (i), QR (i + 1) must be satisfied. The quantum compiler 222 generates the quantum microcode 232 based on the constraints defined by the hardware function information 707.

ハードウェア制限情報708は、量子部310の製造ばらつきや故障に起因する障害を示す情報である。量子部310を構成する構成要素のうち、特に量子レジスタ312は外乱の影響を受けやすく、またキュービット数が増加することで量子レジスタ312全体としての故障確率は増加する。それに対して、背景技術で述べたように量子誤り訂正技術が用いられているが、恒常的に故障しているキュービットがある場合には量子誤り訂正技術を用いるだけでなく、プログラムの段階で当該キュービットを回避して利用することで、より安定して利用可能となることが期待できる。そこで、量子コンパイラ222は、ハードウェア制限情報708で示されている故障キュービットを使わないように、量子マイクロコード232を生成する。   The hardware restriction information 708 is information indicating a failure caused by manufacturing variation or failure of the quantum unit 310. Among the components constituting the quantum unit 310, the quantum register 312 is particularly susceptible to disturbance, and the failure probability of the entire quantum register 312 increases as the number of qubits increases. On the other hand, as described in the background art, quantum error correction technology is used, but when there is a qubit that is constantly broken, not only the quantum error correction technology but also at the program stage. By avoiding and using the qubit, it can be expected that the qubit can be used more stably. Therefore, the quantum compiler 222 generates the quantum microcode 232 so that the failure qubit indicated by the hardware restriction information 708 is not used.

なお、ハードウェア機能情報707は低温部102の仕様によって決まるため、設計時に決定できる情報である。一方、ハードウェア制限情報708は量子部310の製造時のばらつきや劣化、動作環境等に影響を受けるため、量子コンピュータシステム100の運用中にその制限は変わってくる。すなわち、運用中にハードウェア制限情報708を更新する手段が必要となるが、このために前述したトレーニングフェーズS490を用いる。   The hardware function information 707 is information that can be determined at the time of design because it is determined by the specifications of the low temperature part 102. On the other hand, the hardware restriction information 708 is affected by variations and deterioration during manufacture of the quantum unit 310, the operating environment, and the like, so that the restriction changes during operation of the quantum computer system 100. That is, a means for updating the hardware restriction information 708 during operation is required. For this purpose, the training phase S490 described above is used.

量子コンパイラ222で行われるコンパイルのうち、字句解析S701、構文解析S702、及び、意味解析S703に関しては、従来の古典コンピュータで用いられてきたコンパイラと同様であるので、説明を省略する。一般的な従来の古典コンピュータのコンパイラでは、入力されたプログラム(ソースコード)の字句解析、構文解析、及び、意味解析を行った後、コード生成と最適化を行う。これとは異なり量子コンパイラ222では、意味解析S703の後にデータ埋め込みS704という処理を行う。   Among the compilations performed by the quantum compiler 222, the lexical analysis S701, the syntax analysis S702, and the semantic analysis S703 are the same as the compiler used in the conventional classical computer, and thus the description thereof is omitted. A general compiler of a conventional classical computer performs code generation and optimization after lexical analysis, syntax analysis, and semantic analysis of an input program (source code). In contrast, the quantum compiler 222 performs a process of data embedding S704 after the semantic analysis S703.

データ埋め込みS704は、意味解析S703の結果得られた量子コンパイラ222内部の中間言語(中間形式)で、量子プログラム212の入力となっている変数に、中間データ234に示されているデータを当てはめる処理を行う。この処理により、実行時に入力すべき変数を、量子コンパイラ212でのコンパイル時に入力していることになる。   Data embedding S704 is an intermediate language (intermediate format) inside the quantum compiler 222 obtained as a result of the semantic analysis S703, and applies the data shown in the intermediate data 234 to the variable input to the quantum program 212. I do. By this processing, variables to be input at the time of execution are input at the time of compiling with the quantum compiler 212.

コード生成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 hardware function information 707, restrictions on available instructions and operands are acquired. The processing expressed in the intermediate language is expressed by a combination of available instructions shown in the hardware function information 707. In order to satisfy the constraints of the operand, a swap instruction for exchanging the states held by the two qubits in the quantum register 312 is added.

また、コード生成S705では、ハードウェア機能情報707のみならず、ハードウェア制限情報708に示されている制約も加味して量子マイクロコードS705を生成する。ハードウェア制限情報708には、利用不可能なキュービットが示されているので、このキュービットを回避して処理を行うように、スワップ命令などを加える。   In the code generation S705, the quantum microcode S705 is generated in consideration of not only the hardware function information 707 but also the restrictions indicated in the hardware restriction information 708. Since the hardware restriction information 708 indicates an unusable qubit, a swap instruction or the like is added so as to perform processing while avoiding this qubit.

最後に、最適化S706でコード生成S705が生成した量子マイクロコードを最適化して、コンパイル結果として量子マイクロコード232を出力する。   Finally, the quantum microcode generated by the code generation S705 in the optimization S706 is optimized, and the quantum microcode 232 is output as a compilation result.

本実施例によれば、古典コンピュータ機能部と量子コンピュータ機能部とを使用した一連のシーケンスを実行するプログラムを生成することができ、それにより汎用性の高い量子コンピュータシステムを実現することができる。また、プログラム可能であることを利用して、予めトレーニングフェーズを実施し、故障等の問題に対してプログラムの動作を変更することで動的に対応し、安定性を高めることができる。これによって、汎用的かつ安定的に利用することができる量子コンピュータシステムを提供することができる。   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 Embodiment 2 of the present invention will be described with reference to FIGS.
In this embodiment, another embodiment of the quantum computer system 100 that can be used for general purpose and stably by being programmable will be described. In the second embodiment, the entire configuration of the quantum computer system including the classical computer function unit and the quantum computer function unit is the same as that of the first embodiment shown in FIG. 1, but the configurations of the normal temperature unit 101 and the low temperature unit 102 are different. The description of the components having the same reference numerals as those in the drawings described in the first embodiment and the same functions is omitted.

量子コンピュータシステム100を構成する上で、伝送路103の両端は著しい温度差を持つことになる。そのため、伝送路103のレイテンシやスループットは必ずしも良好なものではない可能性がある。一方で、量子マイクロコード232は、量子プログラム212の高級な記述内容をより低級な操作命令と観測命令に書き下したものであると言えるため、そのコード長は元のプログラムと比較して長大なものになる。そうした長大な量子マイクロコードの伝送に耐えうる性能を、伝送路103で実現できないときのために、本実施例では、伝送路103に求められる性能要件を軽減する量子コンピュータシステム100の実施の形態を示す。   In configuring the quantum computer system 100, both ends of the transmission path 103 have a significant temperature difference. Therefore, there is a possibility that the latency and throughput of the transmission path 103 are not necessarily good. On the other hand, since the quantum microcode 232 can be said to be a high-level description of the quantum program 212 written into lower-level operation instructions and observation instructions, the code length is longer than that of the original program. become. In the case where the performance that can withstand transmission of such a long quantum microcode cannot be realized by the transmission path 103, in this embodiment, an embodiment of the quantum computer system 100 that reduces the performance requirements required for the transmission path 103 is described. Show.

本実施例では、図1の量子コンピュータシステム100において、常温部100を図17に示す常温部1001に、低温部102を図18に示す低温部1101に置き換えた構成を用いる。また、それに伴って、図9で説明した前処理フェーズS410及び本処理準備フェーズS420と、図10で説明した本処理実行フェーズS500の動作がそれぞれ変わる。以下に、それぞれに関して説明する。   In this embodiment, the quantum computer system 100 of FIG. 1 uses a configuration in which the normal temperature part 100 is replaced with a normal temperature part 1001 shown in FIG. 17 and the low temperature part 102 is replaced with a low temperature part 1101 shown in FIG. Accordingly, the operations of the preprocessing phase S410 and the main processing preparation phase S420 described in FIG. 9 and the main processing execution phase S500 described in FIG. Each will be described below.

図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 room temperature unit 1001 in the second embodiment. Compared with the normal temperature unit 100 of the first embodiment, the normal temperature unit 1001 of the second embodiment is characterized in that the quantum compiler 222 is not provided. Further, since the quantum compiler 222 is not provided, the quantum microcode 232 generated by the quantum compiler 222 is not provided.

図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 low temperature section 1101 in the second embodiment. Compared with the low temperature unit 102 of the first embodiment, the micro control unit 301 is replaced with a CPU 1102. Accordingly, the instruction buffer 320 attached to the microcontroller 301 in the first embodiment is changed to the main storage device 1130 of the CPU 1102 in the second embodiment. The main storage device 1130 includes intermediate data 1131, a quantum program 1132, a quantum compiler 1133, and quantum microcode 1134. The intermediate data 1131 and the quantum program 1132 are obtained by transmitting the intermediate data 234 and the quantum program 212 of the room temperature unit 1001 via the transmission path 103. That is, in the first embodiment, the transmission path 103 transmits the quantum microcode 321, but in this embodiment, the transmission path 103 transmits the intermediate data 1131 and the quantum program 1132. If the sizes of the intermediate data 1131 and the quantum program 1132 are smaller than the quantum microcode 1134, the load on the transmission path 103 can be reduced as compared with the first embodiment.

CPU1102は、量子コンパイラ1133を実行し、中間データ1131及び量子プログラム1132をコンパイラの入力として、量子マイクロコード1134を生成する。また、生成した量子マイクロコード1134を元にして量子部310を制御する。そのため、コンパイルと量子部310の制御をパイプライン動作させることも可能で、量子マイクロコード1134を格納するための主記憶装置1130の容量を削減することができる。   The CPU 1102 executes the quantum compiler 1133, and generates the quantum microcode 1134 using the intermediate data 1131 and the quantum program 1132 as inputs of the compiler. Further, the quantum unit 310 is controlled based on the generated quantum microcode 1134. Therefore, the compilation and control of the quantum unit 310 can be pipelined, and the capacity of the main memory 1130 for storing the quantum microcode 1134 can be reduced.

図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 preprocessing S phase 1200 according to the second embodiment. In the first embodiment, the quantum microcode 232 is generated in the processing preparation phase S420 of FIG. 9, and then the low temperature part transfer S421 is performed. On the other hand, in this embodiment, as shown in the preprocessing phase S1200 of FIG. 19, when the intermediate data 234 can be generated, the intermediate data 234 and the quantum program 212 are transferred to the low temperature part 1101 by the low temperature part transfer S1201. .

図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 room temperature unit 101. In the second embodiment, the processing preparation phase S1300 is executed by the CPU 1102 of the low temperature unit 1101. In the processing preparation phase S1300, the quantum program 1132 responsible for the processing in the quantum algorithm is converted into the quantum microcode 1134 by the quantum compiler 1133. Since the quantum microcode 1134 needs to include data to be processed by the quantum program 1132, the quantum compiler 1133 receives the intermediate data 1131 in addition to the quantum program 1132. The intermediate data 1131 and the quantum program 1132 required by the quantum compiler 1133 are those transferred from the normal temperature part 1001 to the low temperature part 1101 by the low temperature part transfer 1201 of the preprocessing phase 1200 described above. Further, as in the first embodiment, the quantum compiler 1133 requires the hardware function information 707 and the hardware restriction information 708 at the time of compilation. The hardware restriction information 708 is generated in the training phase S490.

なお、実施例2では量子コンパイラ1133が低温部102にあることから、図13に示したトレーニングフェーズS490の低温部転送S4921、及び、量子部実行S4922に相当する処理を行わず、図13の観測結果処理S4924及びハードウェア制限情報生成S4925に相当する処理を低温部102内のCPU1102上で行うことが出来る。この場合、トレーニングフェーズS490を実施例1より短い間隔で実行することが可能となるため、ハードウェアの特性変化への追従性を向上させることができる。   In the second embodiment, since the quantum compiler 1133 is in the low-temperature unit 102, the processing corresponding to the low-temperature unit transfer S4921 and the quantum unit execution S4922 in the training phase S490 illustrated in FIG. Processing corresponding to the result processing S4924 and the hardware restriction information generation S4925 can be performed on the CPU 1102 in the low temperature unit 102. In this case, the training phase S490 can be executed at an interval shorter than that in the first embodiment, so that it is possible to improve the ability to follow changes in hardware characteristics.

本実施例によれば、量子コンピュータをプログラム可能とし、それにより汎用性の高い量子コンピュータシステムを実現することができる。すなわち、本実施例の量子コンピュータシステムは、量子コンピュータ機能部と古典コンピュータ機能部とのハイブリッドシステムとして構成されており、量子コンピュータ機能部(低温部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 quantum unit 310, the classical storage device (main memory). Storage unit 1130) and a control unit (CPU 1102) capable of accessing this classical storage unit, and quantum unit 310 includes quantum register 312 composed of at least one qubit 410 and control for operating the quantum register It has a gate 311 and a read gate 313 for observing the state of the quantum register. The classical storage device stores the quantum compiler 1133 that converts the quantum program 1132 into the quantum microcode 1134 and the quantum microcode 1134 that is a sequence of operation instructions for the control gate or the read gate, and the control device 1102 includes the classical storage device. The quantum microcode is read out from the control gate or the control gate or readout gate is controlled. On the other hand, the classical computer function unit (normal temperature unit 1001) includes an application program 210 and system software 220. As described above, the low-temperature unit 1101 includes a quantum compiler 1133 that generates quantum microcode 1134 incorporating input data. Therefore, it is possible to easily generate a program that executes a series of sequences using not only the room temperature part 101 but also all the elements of the quantum part 310 of the low temperature part 102. The execution result finally obtained by executing the quantum algorithm in the quantum computer function unit in the low temperature part is output as observation data to the room temperature part. As a result, it is possible to realize a highly versatile quantum computer system that can be used not only for a single type of problem but also for a plurality of types of problems.

本実施例によれば、古典コンピュータ機能部と量子コンピュータ機能部とを使用した一連のシーケンスを実行するプログラムを生成することができ、それにより汎用性の高い量子コンピュータシステムを実現することができる。また、プログラム可能であることを利用して、予めトレーニングフェーズを実施し、故障等の問題に対してプログラムの動作を変更することで動的に対応し、安定性を高めることができる。これによって、汎用的かつ安定的に利用することができる量子コンピュータシステムを提供することができる。また、ハードウェアの特性変化への追従性を向上させることができる。   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 SYMBOLS 100 Quantum computer system 101 Normal temperature part 102 Low temperature part 103 Transmission path 201 Main memory 202 CPU
203 I / O adapter 210 Application program 211 Classical program 212 Quantum program 220 System software 221 Classical compiler 222 Quantum compiler 223 Execution manager 230 Runtime information 231 Classical object 232 Quantum microcode 233 Input data 234 Intermediate data 235 Observation data 301 Micro controller 302 Observation register 303 I / O adapter 310 Quantum unit 311 Control gate 312 Quantum register 313 Read gate 320 Instruction buffer 321 Quantum microcode 400 Qubit block 410 Qubit 411, 412 Quantum dot 420, 421, 422, 430, 431, 432 Control Gates 501, 502, 503, 504 Qubit blocks 511, 512, 5 21, 522 Control gate 531, 532 Single-electron transistor S400 Classical compilation phase S410 Preprocessing phase S411 Preprocessing execution S420 Main processing preparation phase S421 Low-temperature part transfer S490 Training phase S500 Main processing execution phase S501 Quantum part execution S502 After normal temperature part transfer S510 Processing phase S511 Post-processing execution S512 Execution result S701 Lexical analysis S702 Syntax analysis S703 Semantic analysis S704 Data embedding S705 Code generation S706 Optimization 707 Hardware function information 708 Hardware restriction information 1001 Normal temperature part 1101 Low temperature part 1102 CPU
1130 Main memory 1131 Intermediate data 1132 Quantum program 1133 Quantum compiler 1134 Quantum microcode S1200 Preprocessing phase S1201 Low temperature part transfer S1300 Main process preparation phase S1310 Main process execution phase 4901 Training microcode 4902 Observation register S4921 Low temperature part transfer S4922 Quantum part Execution S4923 Normal temperature part transfer S4924 Observation result process S4925 Generation of hardware restriction information.

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において、
前記量子部は、
少なくとも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.
請求項2において、
前記量子プログラムを前記量子マイクロコードに変換する量子コンパイラを有し、
前記量子コンパイラは、前記入力データを前記量子マイクロコード内に埋め込んで出力する
ことを特徴とする量子コンピュータシステム。
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.
請求項3において、
前記古典コンピュータ機能部が前記量子コンパイラを有する
ことを特徴とする量子コンピュータシステム。
In claim 3,
A quantum computer system, wherein the classical computer function unit includes the quantum compiler.
請求項3において、
前記量子コンピュータ機能部が前記量子コンパイラを有する
ことを特徴とする量子コンピュータシステム。
In claim 3,
A quantum computer system, wherein the quantum computer function unit includes the quantum compiler.
請求項3において、
前記制御ゲートないしは前記読出しゲートを前記制御装置が制御することで実現可能な操作の種類や制約などの前記量子コンピュータ機能部の機能を定義した、ハードウェア機能情報を有し、
前記量子コンパイラは、前記ハードウェア機能情報で定義された制約を満たす前記量子マイクロコードを生成する
ことを特徴とする量子コンピュータシステム。
In claim 3,
Hardware function information that defines the functions of the quantum computer function unit such as the types and restrictions of operations that can be realized by the control device controlling the control gate or the read gate;
The quantum computer system, wherein the quantum compiler generates the quantum microcode satisfying a constraint defined by the hardware function information.
請求項3において、
前記量子レジスタを構成する前記キュービットの其々について利用可否及びエラーレート等の情報を記憶するハードウェア制限情報を有し、
前記量子コンパイラは、前記ハードウェア制限情報で利用可能なキュービットのみを用いた前記量子マイクロコードを生成する
ことを特徴とする量子コンピュータシステム。
In claim 3,
It has hardware restriction information for storing information such as 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.
請求項7において、
前記ハードウェア構成情報は、前記量子レジスタを構成するN個のキュービットの各々に関して、利用可否、ステータス、及び、エラーレートを示す情報を含み、
前記エラーレートは前記キュービットの、観測データと期待値とが異なるエラー率を記録したものであり、
前記ステータスは前記各キュービットのエラーレートの状態を記録したものである
ことを特徴とする量子コンピュータシステム。
In claim 7,
The hardware configuration 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.
請求項8において、
前記キュービットの利用可否の判断ないしはエラーレートの測定を行うトレーニング用量子プログラムを有し、
前記トレーニング用量子プログラムを実行して前記ハードウェア制限情報を更新する
ことを特徴とする量子コンピュータシステム。
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.
請求項3において、
前記量子レジスタ内の前記キュービットは隣接して配置された前記キュービット間のみで操作を行うことが可能なものであり、
前記制御ゲートは、前記隣接して配置されたキュービット間の状態を交換するスワップ操作を有し、
前記量子コンパイラは、前記量子マイクロコードに前記スワップ操作を挿入する
ことを特徴とする量子コンピュータシステム。
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.
請求項3において、
前記量子レジスタは、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.
請求項3において、
前記量子コンピュータシステムの量子アルゴリズムが、前処理フェーズ、本処理準備フェーズ、本処理フェーズ、及び後処理フェーズの少なくとも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 main processing phase, the quantum microcode is executed in the quantum unit, and a processing result is acquired in an observation register.
In a post-processing phase, the classical computer is executed using the observed data as input data, and an execution result is obtained.
請求項12において、
前記量子コンピュータシステムは、常温部、低温部、及び前記常温部と前記低温部間の通信を行うための伝送路で構成されており、
前記前処理フェーズ、トレーニングフェーズ、前記本処理準備フェーズ及び前記後処理フェーズを前記常温部で動作する前記古典コンピュータ機能部により実行し、
前記トレーニングフェーズにより、前記量子コンピュータシステムを動作させ、前記量子部を構成する素子の動作を検査し不安定な可能性がある素子の使用を制限するハードウェア制限情報を取得し、
前記本処理フェーズを、前記低温部で動作する前記量子コンピュータ機能部により実行する
ことを特徴とする量子コンピュータシステム。
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.
請求項12において、
前記量子コンピュータシステムは、常温部、低温部、及び前記常温部と前記低温部間の通信を行うための伝送路で構成されており、
前記前処理フェーズ、及び前記後処理フェーズを前記常温部で動作する前記古典コンピュータ機能部により実行し、
トレーニングフェーズ、前記本処理準備フェーズ、及び前記本処理フェーズを、前記低温部で動作する前記量子コンピュータ機能部により実行し、
前記トレーニングフェーズにより、前記量子コンピュータシステムを動作させ、前記量子部を構成する素子の動作を検査し不安定な可能性がある素子の使用を制限するハードウェア制限情報を取得する
ことを特徴とする量子コンピュータシステム。
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.
請求項15において、
前記量子部は、
少なくとも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.
請求項15において、
前記量子プログラムを前記量子マイクロコードに変換する量子コンパイラを有し、
前記量子コンパイラは、前記入力データを前記量子マイクロコード内に埋め込んで出力する
ことを特徴とする量子コンピュータシステムの制御方法。
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.
請求項18において、
前記量子コンピュータ機能部は、前記量子プログラムを前記量子マイクロコードに変換する量子コンパイラを有し、
前記量子部は、前記量子マイクロコードに記述されている処理を実行するリソースとして、少なくとも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.
請求項18において、
前記量子コンピュータシステムは、
前記制御ゲートないしは前記読出しゲートを前記制御装置が制御することで実現可能な操作の種類や制約などの前記量子コンピュータ機能部の機能を定義した、ハードウェア機能情報と、
前記量子レジスタを構成する前記キュービットの其々について利用可否及びエラーレート等の情報を記憶するハードウェア制限情報とを有し、
前記量子コンピュータシステムに、
前記量子コンパイラが、前記ハードウェア機能情報で定義された制約を満たし、かつ、前記ハードウェア制限情報で利用可能なキュービットのみを用いた前記量子マイクロコードを生成する機能を実現させるためのプログラム。
In claim 18,
The quantum computer system includes:
Hardware function information that defines functions of the quantum computer function unit such as types of operations and restrictions that can be realized by controlling the control gate or the read gate by the control device;
Hardware restriction information for storing information such as 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.
JP2011258481A 2011-11-28 2011-11-28 Quantum computer system, control method and program for quantum computer system Expired - Fee Related JP5921856B2 (en)

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 true JP2013114366A (en) 2013-06-10
JP5921856B2 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 (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016006071A1 (en) * 2014-07-09 2016-01-14 株式会社日立製作所 Semiconductor device and information processing system
WO2016035171A1 (en) * 2014-09-03 2016-03-10 株式会社日立製作所 Semiconductor integrated circuit device
JP2016051325A (en) * 2014-08-29 2016-04-11 株式会社日立製作所 Semiconductor device and information processing device
KR101664173B1 (en) * 2015-06-08 2016-10-11 한국과학기술연구원 Apparatus and method for stablizing quantum cryptography system
RU2632129C1 (en) * 2016-09-22 2017-10-02 федеральное государственное бюджетное образовательное учреждение высшего образования "Иркутский национальный исследовательский технический университет" (ФГБОУ ВО "ИРНИТУ") Electronic module inserted into classical computer and its method based on quantum count procedure
JP2019520645A (en) * 2016-06-02 2019-07-18 グーグル エルエルシー Training Quantum Evolution Using Sub-Logic Control
JP2019521431A (en) * 2016-06-13 2019-07-25 ワンキュービー インフォメーション テクノロジーズ インク. Method and system for quantum instant or quantum enabled computer
JP2019537239A (en) * 2016-09-29 2019-12-19 インテル・コーポレーション Quantum computing assembly
JP2020535518A (en) * 2017-09-29 2020-12-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Systems for facilitating quantum tomography, methods implemented by computers, and computer programs
JP2020535517A (en) * 2017-09-29 2020-12-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Methods for job processing in quantum computing-enabled cloud environments, quantum cloud environments (QCE), and computer programs
JP2021536629A (en) * 2018-09-18 2021-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Quantum circuit design specific to the application or algorithm
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
US20220374390A1 (en) * 2019-09-13 2022-11-24 The University Of Chicago System and method of partial compilation with variational algorithms for quantum computers
US11514134B2 (en) 2015-02-03 2022-11-29 1Qb Information Technologies Inc. Method and system for solving the Lagrangian dual of a constrained binary quadratic programming problem using a quantum annealer
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
US11947506B2 (en) 2019-06-19 2024-04-02 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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023503730A (en) * 2019-12-09 2023-02-01 ホライズン クアンタム コンピューティング ピーティーイー. リミテッド Systems and methods for unified computing on digital and quantum computers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006061926A1 (en) * 2004-12-09 2006-06-15 National University Corporation NARA Institute of Science and Technology Program development support device for computer system including quantum computer, program development support program, and simulation device
JP2006331249A (en) * 2005-05-30 2006-12-07 Nippon Telegr & Teleph Corp <Ntt> Quantum program conversion apparatus, its method and program, and recording medium

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006061926A1 (en) * 2004-12-09 2006-06-15 National University Corporation NARA Institute of Science and Technology Program development support device for computer system including quantum computer, program development support program, and simulation device
JP2006331249A (en) * 2005-05-30 2006-12-07 Nippon Telegr & Teleph Corp <Ntt> Quantum program conversion apparatus, its method and program, and recording medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
大音真由美,外3名: "量子コンピュータ実現に向けた量子命令セットについて", 情報処理学会論文誌 数理モデル化と応用, vol. 第43巻,第SIG7(TOM6)号, JPN6015047732, 15 September 2002 (2002-09-15), JP, pages 19 - 28, ISSN: 0003285454 *

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2016006071A1 (en) * 2014-07-09 2017-06-15 株式会社日立製作所 Semiconductor device and information processing system
WO2016006071A1 (en) * 2014-07-09 2016-01-14 株式会社日立製作所 Semiconductor device and information processing system
JP2016051325A (en) * 2014-08-29 2016-04-11 株式会社日立製作所 Semiconductor device and information processing device
WO2016035171A1 (en) * 2014-09-03 2016-03-10 株式会社日立製作所 Semiconductor integrated circuit device
JPWO2016035171A1 (en) * 2014-09-03 2017-06-22 株式会社日立製作所 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
US11514134B2 (en) 2015-02-03 2022-11-29 1Qb Information Technologies Inc. Method and system for solving the Lagrangian dual of a constrained binary quadratic programming problem using a quantum annealer
KR101664173B1 (en) * 2015-06-08 2016-10-11 한국과학기술연구원 Apparatus and method for stablizing quantum cryptography system
US10110378B2 (en) 2015-06-08 2018-10-23 Korea Institute Of Science And Technology Apparatus and method for stablizing quantum cryptography system
JP2019520645A (en) * 2016-06-02 2019-07-18 グーグル エルエルシー Training Quantum Evolution Using Sub-Logic Control
US11763187B2 (en) 2016-06-02 2023-09-19 Google Llc Training quantum evolutions using sublogical controls
US11562285B2 (en) 2016-06-02 2023-01-24 Google Llc Training quantum evolutions using sublogical controls
JP2019521431A (en) * 2016-06-13 2019-07-25 ワンキュービー インフォメーション テクノロジーズ インク. Method and system for quantum instant or quantum enabled computer
JP7178155B2 (en) 2016-06-13 2022-11-25 ワンキュービー インフォメーション テクノロジーズ インク. Methods and systems for quantum-immediate or quantum-enabled computers
RU2632129C1 (en) * 2016-09-22 2017-10-02 федеральное государственное бюджетное образовательное учреждение высшего образования "Иркутский национальный исследовательский технический университет" (ФГБОУ ВО "ИРНИТУ") Electronic module inserted into classical computer and its method based on quantum count procedure
JP2019537239A (en) * 2016-09-29 2019-12-19 インテル・コーポレーション Quantum computing assembly
JP7044449B2 (en) 2017-09-29 2022-03-30 インターナショナル・ビジネス・マシーンズ・コーポレーション Systems for facilitating quantum tomography, methods implemented by computers, and computer programs
JP2020535517A (en) * 2017-09-29 2020-12-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Methods for job processing in quantum computing-enabled cloud environments, quantum cloud environments (QCE), and computer programs
JP2020535518A (en) * 2017-09-29 2020-12-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Systems for facilitating quantum tomography, methods implemented by computers, and computer programs
JP2021536629A (en) * 2018-09-18 2021-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Quantum circuit design specific to the application or algorithm
JP7324274B2 (en) 2018-09-18 2023-08-09 インターナショナル・ビジネス・マシーンズ・コーポレーション Application- or algorithm-specific quantum circuit design
US11947506B2 (en) 2019-06-19 2024-04-02 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
US20220374390A1 (en) * 2019-09-13 2022-11-24 The University Of Chicago System and method of partial compilation with variational algorithms for quantum computers
US11886379B2 (en) * 2019-09-13 2024-01-30 The University Of Chicago System and method of partial compilation with variational algorithms for quantum computers
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

Also Published As

Publication number Publication date
JP5921856B2 (en) 2016-05-24

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
CN103353834B (en) Branch misprediction Behavior inhibition to zero predicate branch misprediction
JP4718244B2 (en) Quantum program conversion apparatus, method thereof, program thereof and recording medium
JP6572610B2 (en) Information processing apparatus, compiling method, and compiling program
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
US9977759B2 (en) Parallel computing apparatus, compiling apparatus, and parallel processing method for enabling access to data in stack area of thread by another thread
JP4988789B2 (en) Simulation system, method and program
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
US20150277874A1 (en) Compiler method and compiler apparatus
JP5966509B2 (en) Program, code generation method, and information processing apparatus
US20120198425A1 (en) Management of conditional branches within a data parallel system
Jiang et al. Boyi: A systematic framework for automatically deciding the right execution model of OpenCL applications on FPGAs
US20230244459A1 (en) Hybrid compilation apparatus and method for quantum-classical code sequences
EP2799986B1 (en) Apparatus and method for translating multithread program code
US20120089813A1 (en) Computing apparatus based on reconfigurable architecture and memory dependence correction method thereof
Katel et al. High performance GPU code generation for matrix-matrix multiplication using MLIR: some early results
US11954563B2 (en) Apparatus and method for error reduction in distributed quantum systems via fusing-and-decomposing gates
Liu et al. Improving the performance of OpenMP by array privatization
KR20230101851A (en) Highly parallel processing architecture using a compiler
JPH04293150A (en) Compiling method
Mirkhani et al. Physical synthesis of quantum circuits using templates
JP5966801B2 (en) Language converter, program
WO2020116025A1 (en) Compile device, compile method, and non-transitory computer-readable medium
Wu et al. Quantum SoC and On-Chip Circuit Synthesis in the NISQ Era

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