WO2006061926A1 - 量子コンピュータを含むコンピュータシステムのためのプログラム開発支援装置、プログラム開発支援用プログラム、及びシミュレーション装置 - Google Patents

量子コンピュータを含むコンピュータシステムのためのプログラム開発支援装置、プログラム開発支援用プログラム、及びシミュレーション装置 Download PDF

Info

Publication number
WO2006061926A1
WO2006061926A1 PCT/JP2005/015181 JP2005015181W WO2006061926A1 WO 2006061926 A1 WO2006061926 A1 WO 2006061926A1 JP 2005015181 W JP2005015181 W JP 2005015181W WO 2006061926 A1 WO2006061926 A1 WO 2006061926A1
Authority
WO
WIPO (PCT)
Prior art keywords
computer
program
quantum
processing
development support
Prior art date
Application number
PCT/JP2005/015181
Other languages
English (en)
French (fr)
Inventor
Shigeru Yamashita
Original Assignee
National University Corporation NARA Institute of Science and Technology
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 National University Corporation NARA Institute of Science and Technology filed Critical National University Corporation NARA Institute of Science and Technology
Priority to US11/791,968 priority Critical patent/US20070294070A1/en
Priority to JP2006547648A priority patent/JP4867009B2/ja
Priority to EP05772573A priority patent/EP1840739A4/en
Publication of WO2006061926A1 publication Critical patent/WO2006061926A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B82NANOTECHNOLOGY
    • B82YSPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
    • B82Y10/00Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena

Definitions

  • Program development support device Program development support device, program development support program, and simulation device for computer system including quantum computer
  • the present invention relates to a program development support apparatus that supports development of a program for operating a computer system including a quantum computer and a conventional computer, and a cooperative operation between the quantum computer and the conventional computer in such a computer system.
  • the present invention relates to a program development support apparatus and a simulation apparatus that support development of a program for simulating operations using a conventional computer. Background art
  • a quantum computer operates on a completely different principle from a current computer (referred to as a conventional computer in this specification). For example, a quantum state transition of a substance such as an atom, ion, electron, or photon. It is a computer using Quantum computers have been logically proven to be capable of much faster computations than conventional computers for problems such as factorization. Development is underway. Currently, there are two main researches on quantum computers. One is the development of a quantum logic gate, or hardware, that is the basic element for executing the operations of a quantum computer, and the other is the realization of the quantum logic gate and the quantum logic gate. This is research on algorithms or software for quantum computation of quantum computers that operate using logic gates.
  • Non-Patent Document 1 The most well-known research on quantum algorithms is the factorization of integers by Shor and the polynomial-time algorithm for discrete logarithm problems (see Non-Patent Document 1), and unorganized databases.
  • Grover database search algorithm for search purposes (see Non-Patent Document 2).
  • N the database search method on a conventional computer requires processing of up to O (N) steps
  • the database search algorithm of the above-mentioned Grover database search algorithm has a maximum of 0 ( N) It is known that it can be solved in steps. In this way A computer can solve a problem that takes an enormous amount of time with a conventional computer in a much shorter time.
  • quantum computers are attracting attention for their high speed compared to conventional computers.
  • conventional computers do not outperform conventional computers in all arithmetic processes. But for problems that can be done fast enough, it may be equivalent or inferior to conventional computers.
  • a quantum computer even if a quantum computer is put into practical use, its price is likely to be much higher than that of a conventional computer, so when considering cost performance, all the various problems are executed on the quantum computer. It is useful to have a conventional computer and a quantum computer that are not very effective, and distribute and execute problems that are appropriate for each computer (in other words, each computer is good at it). It is believed that there is.
  • Non-Patent Document 1 “PWShor”, “Algorithms Fo Quatum Computation: Discrete Logarithms and Factoring” , Bron ⁇ ing '35' Annual Symposium ⁇ On Foundations 'Ob' Computer Science oc. Annual j5th Symposium on Foundations of Computer Science 1994, p. 124-134
  • Non-Patent Document 2 L Krover, “A First Quantum 'Mechanical Forces' Fo ⁇ ⁇ ⁇ ⁇ Tahe' ⁇ Su'sa ⁇ Chi (A fast quantum mechanical for database searcn ", Proceedings Day ring-en two Yuanore-er GCM-Symposium on spine ⁇ ⁇ O Breakfast 'Konhyu 1 ⁇ Aingu (Proc. Annual ACM Symposium on Theory of the omputing), 1996, p. 212- 219
  • the present invention has been made in view of the above problems, and a first object of the present invention is the cooperative operation of both computers in a computer system in which a conventional computer and a quantum computer are provided.
  • An object of the present invention is to provide a program development support apparatus capable of performing work, and to provide a simulation apparatus capable of easily simulating the processing operation of such a computer system.
  • the second object of the present invention is to create a program for executing a predetermined processing operation in a computer system provided with a conventional computer and a quantum computer. Even those who are unskilled already have a high level of existing The purpose is to provide a program development support device that can easily create and describe programs including quantum computations if there is knowledge of programming languages.
  • the quantum computer is noted for its high speed, but not all computation processing is much faster than the conventional computer. Therefore, the inventor of the present application, as an effective method of using a computer system in which a conventional computer and a quantum computer are provided together, has previously been determined that it is likely to be suitable for quantum computation. I thought of performing the load distribution process by letting the conventional computer take charge of general processes other than the specific process.
  • processing can be performed at a higher speed than processing by a conventional computer, and a global search algorithm with a wide range of applications (here, the global search algorithm).
  • Focusing on database search processing which can be applied to search algorithms that have been improved based on the bar search algorithm (typically C ++).
  • the bar search algorithm typically C ++.
  • the first invention made to achieve the first object uses a conventional computer for the cooperative operation of both computers in a computer system in which a quantum computer and a conventional computer are provided side by side.
  • a program development support device for supporting the development of a program for simulation,
  • Extraction means for selectively extracting a processing part suitable for quantum computation by a quantum computer, rather than arithmetic processing by a conventional computer, based on the description contents in the source code inputted by the input means
  • replacement means for performing replacement processing for replacing the processing part extracted by the extraction means with a program described in the programming language for simulating a quantum computation operation by a quantum computer corresponding to the part;
  • the second invention made to achieve the first object described above simulates the cooperative operation of both computers in a computer system having a quantum computer and a conventional computer, using a conventional computer.
  • a program development support program for creating a program to be executed by a conventional computer
  • the computer performs a replacement process for replacing the extracted processing part with a program described in the programming language for simulating the quantum computation operation by the quantum computer corresponding to the part.
  • the extraction means is only required to describe the processing contents executed by the computer system in, for example, C ++ language.
  • the processing part suitable for the quantum computation by the quantum computer is selectively extracted rather than the arithmetic processing by the conventional computer, and the replacement means corresponds to the processing part. It is automatically replaced with a program for simulating the quantum computation. Therefore, even a person who has little knowledge about quantum computation and quantum algorithms can create a program that simulates the cooperative behavior of both computers. As a result, the collaborative operation between the conventional computer and the quantum computer can be verified easily and efficiently, and the development of new algorithms for this purpose is also encouraged. Is advanced.
  • a processing part suitable for quantum computation when a processing part suitable for quantum computation is selectively extracted, it corresponds to database search based on the description content in the input source code.
  • the processing part is detected, and the time required when the detected processing part is processed by the conventional computer and the time required when the process is executed by the quantum computer are estimated, respectively. It is preferable to determine that the detected processing portion is a processing portion suitable for quantum computation by a quantum computer.
  • the replacement means may replace the extracted processing portion with a program that simulates a search algorithm of a quantum computation quantum on a conventional computer. Monkey.
  • a database search using a Grober search algorithm which is a quantum calculation
  • a database search algorithm using a conventional computer may be faster.
  • the replacement is not performed unconditionally.
  • Each time is estimated and the processing time of both is compared to determine whether it is effective to replace it with quantum computation. Therefore, according to this, it is possible to perform a simulation under a state in which the quantum computer is used more effectively.
  • the program development support apparatus in addition to being used alone, performs the cooperative operation of both computers in a computer system provided with both a computer and a conventional computer. It can be used as part of a simulation device for use in simulation. That is, such a simulation apparatus includes a compiler that compiles source code that has been subjected to replacement processing by the replacement means of the program development support apparatus according to the first invention, and a computer that executes processing operations according to the compiled machine language. are further provided.
  • the program development support apparatus and the program development support program according to the first and second inventions are for simulating quantum computations and quantum algorithms by a quantum computer on a conventional computer.
  • the program development support apparatus according to the present invention and the program development support program according to the fourth invention create a program for actually operating a computer system having a quantum computer and a conventional computer when the quantum computer is realized. It is a tool for development. Therefore, in the first and second inventions described above, the extracted processing portion is replaced with a program for simulating the quantum computation corresponding to the portion, whereas the quantum algorithm corresponding to the portion is changed. Change the process to replace the program to be executed.
  • the third invention made to achieve the second object described above is the development of a program for executing a predetermined process in a computer system having a quantum computer and a conventional computer.
  • Extraction means for extracting a processing part suitable for quantum computation by a quantum computer rather than arithmetic processing by a conventional computer based on the description content in the source code inputted by the input means;
  • the fourth invention made to achieve the second object described above is a program for executing a predetermined processing operation in a computer system having a quantum computer and a conventional computer.
  • Program development for computer creation A support program,
  • the computer performs a process of replacing the extracted processing part with a program that executes a quantum algorithm corresponding to the part.
  • FIG. 1 is a conceptual diagram showing an example of a future computer system in which a quantum computer and a conventional computer are provided together.
  • FIG. 2 is a block diagram of a program development support apparatus according to an embodiment of the present invention.
  • FIG. 3 is a flowchart for explaining the operation of the program development support apparatus of the present embodiment.
  • FIG. 4 is a diagram showing a simple example of source code written in the C ++ language that is input to the program development support device of the present embodiment.
  • FIG. 5 is a diagram showing an output source code when the source code shown in FIG. 4 is input.
  • FIG. 1 is a conceptual diagram showing an example of a future computer system in which a quantum computer and a conventional computer are provided together.
  • the conventional computer 2 is a computer that executes an arithmetic processing based on a bit representing one of the binary values “0” and “1”, whereas the quantum computer 3 Performs arithmetic processing based on qubits (qubits and! /, U) that can hold “0” and “1” with a certain probability.
  • Computer An input unit 4 and a display unit 5 are connected to the conventional computer 2, and an operator gives an instruction to the computer system 1 through the input unit 4, and execution of arithmetic processing in the computer system 1 through the display unit 5 You can check the results.
  • the conventional computer 2 and the quantum computer 3 are connected to each other. Basically, the two can operate independently, but one process can be executed by operating in cooperation with each other.
  • the program development support apparatus of the present embodiment uses a computer that is currently available (that is, a conventional computer) for the cooperative operation of both computers 2 and 3 in a computer system 1 as shown in FIG. This is to support the development of a program for simulation.
  • the program development support apparatus of the present embodiment is one form of the first invention, but in practice, the program according to the second invention is realized by executing it on an existing (ie, conventional) computer. Can do.
  • FIG. 2 is a block diagram showing functional blocks of the program development support apparatus of the present embodiment
  • FIG. 3 is a schematic flowchart for explaining the processing operation of the program development support apparatus of the present embodiment.
  • This program development support device includes an input unit 10 to which a source code describing a predetermined processing program in an existing high-level program language, specifically, a C ++ language, is input, and an input unit 10
  • a program conversion processing unit 11 that performs processing described later on the source code and converts a part of the source code as necessary, an output unit 18 that outputs the converted program, and program conversion
  • a quantum technology database 16 and a quantum algorithm library 17 associated with the processing unit 11 are provided.
  • the program conversion processing unit 11 includes, as a function block corresponding to processing steps described later, a region detection unit 12 that detects a specific region in accordance with the description content of the source code, and a quantum technique for the detected specific region. Processing time to estimate the processing time when the quantum computer 3 performs quantum computation using the information stored in the database 16 and the processing time when the conventional conventional computer 2 performs arithmetic processing The data stored in the quantum algorithm library 17 is determined by comparing the processing time for the computer 13, the computers 2 and 3, and determining whether or not the source code (program) in the specific area needs to be replaced. Insert the program of the area that needs to be replaced A replacement processing unit 15 for replacement is included.
  • FIG. 4 is a simple example of source code described in the C ++ language, which is a processing target of this apparatus.
  • the region detection unit 12 in the program conversion processing unit 11 searches for a program region for performing database search according to the description of the source code 20.
  • the program area indicated by reference numeral 21 in FIG. 4 that is, the portion described by the if statement corresponds to this, so it is determined whether or not there is an unprocessed if statement (step Sl). If all if statements in the input source code have been processed (however, it does not matter whether or not the conversion is actually performed), the process is terminated as it is.
  • the area detection unit 12 extracts the if statement and passes it to the processing time estimation unit 13.
  • the processing time estimation unit 13 and the determination unit 14 determine whether or not the corresponding if statement should be replaced, that is, whether or not the power is appropriate for applying the quantum calculation (step S2).
  • the processing time estimation unit 13 estimates the time required when the processing of the if statement, that is, the database search processing is executed by the conventional computer. In the example shown in Fig. 4, in the program area 21, a maximum of 10000 if statement judgments are repeatedly executed, and the time required for each if statement is determined based on the CPU calculation speed and other factors. Therefore, the processing time can be easily estimated by the product of both.
  • the processing time estimation unit 13 also estimates the required time when processing of the search algorithm of the global bar corresponding to the corresponding if statement is performed.
  • the program area 21 shown in FIG. 4 corresponds to the program area 31 in the source code 30 shown in FIG. 5 (a) in the quantum computer. That is, it can be converted into a subroutine program described as [Quantum Search].
  • the details of the processing operation of the subroutine program [Quantum Search] are described in the C ++ language in the library 32 shown in FIG.
  • the maximum number of search iterations is known to be N, where N is the conventional case. In this case, up to 100 iterations are sufficient.
  • the time required for one calculation process is not always the same as in the conventional case. This is because conventional logic operations guarantee that, for example, a combination of four rules can be executed in one step. This is because it is not the case with quantum state manipulations. Therefore, as one method, the quantum circuit design method known in the past research is introduced, and the number of steps is required after the quantum circuit corresponding to the arithmetic processing actually indicated by the if statement is created. Force can be estimated.
  • the estimated processing time by the quantum calculation is smaller than the estimated processing time by the conventional computer for the program area 21.
  • the decision unit 14 compares the estimated values of the processing times of both, and determines that the corresponding if statement should be replaced if the estimated value of the processing time by the quantum calculation is small (Yes in step S2).
  • the search program here [Quantum Search] and!, Is replaced with a subroutine program written in the C ++ language (step S3).
  • the code of the program area 31 is inserted instead of the program area 21 in the source code.
  • step S3 the processing returns from step S3 to S1, and it is determined whether or not an unprocessed if statement exists.
  • the estimated processing time value is determined in the same manner as described above.
  • the estimated value of the processing time of the quantum calculation is longer than the estimated value of the processing time by the conventional computer. In this case, it is determined that the replacement should not be performed in step S2, and the process returns to step S1 without performing the replacement process as described above.
  • step S1 When it is determined that the processing for all if statements in the input source code has been completed, No is determined in step S1, and the program conversion processing is terminated.
  • the source code obtained as output is the operation that is performed by the quantum computer only in the part suitable for quantum computation, specifically, only the part that can be processed in a shorter time than the conventional computer by using the quantum computer. It is replaced with a program that can be simulated by a computer. Therefore, by installing this program on a conventional ordinary computer and executing it, the two computers 2 and 3 in the computer system 1 with the conventional computer 2 and the quantum computer 3 shown in FIG. Operational simulation verification can be performed on existing computers (traditional computers).
  • the source code obtained as output is the operation that is performed by the quantum computer only in the part suitable for quantum computation, specifically, only the part that can be processed in a shorter time than the conventional computer by using the quantum computer. It is replaced with a program that can be simulated by a computer. Therefore, by installing this program on a conventional ordinary computer and executing it, the two computers 2
  • the program development support apparatus configured as shown in FIG. 2 can convert the program as described above, by combining a C ++ language compiler and a computer with this apparatus, both computers 2 in the computer system 1 can be converted. Therefore, it is possible to obtain a simulation device that can simulate the three cooperative operations on a general existing computer.
  • the above embodiment is an apparatus for supporting the creation and development of a simulation program, and it is assumed that the hardware of the quantum computer is realized even before the hardware of the quantum computer is completed. It can be used for the development of quantum algorithms above. In addition, if the hardware of a quantum computer is realized, it can be used as a tool for creating and developing programs that operate a computer system that includes a quantum computer and a conventional computer by simple modifications.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Nanotechnology (AREA)
  • Mathematical Physics (AREA)
  • Chemical & Material Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Computational Mathematics (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

 C++言語で記述されたソースコードの中から領域検出部12はデータベース検索処理を実行する領域を検出し、処理時間推算部13は該領域における従来型の論理演算による処理時間とグローバー検索アルゴリズムに基づく量子計算による処理時間とをそれぞれ推算する。判断部14により後者が前者よりも短いと判断されると、置換処理部15はグローバー検索アルゴリズムに相当するC++言語で記述されたプログラムに置換する。これにより、量子コンピュータで計算することが適当な部分を入れ替えたソースコードが完成する。このようにして、本発明によれば量子コンピュータと従来型コンピュータとを併設したコンピュータシステムにおける両コンピュータの協調的動作をシミュレートするためのプログラム開発を容易にすることができる。

Description

明 細 書
量子コンピュータを含むコンピュータシステムのためのプログラム開発支 援装置、プログラム開発支援用プログラム、及びシミュレーション装置
技術分野
[0001] 本発明は、量子コンピュータと従来型コンピュータとを併設したコンピュータシステム を動作させるためのプログラムの開発を支援するプログラム開発支援装置と、そうした コンピュータシステムにおける量子コンピュータと従来型コンピュータとの協調的動作 を従来型コンピュータを用いてシミュレーションするためのプログラムの開発を支援す るプログラム開発支援装置及びシミュレーション装置に関する。 背景技術
[0002] 量子コンピュータは現在のコンピュータ (本明細書中では従来型コンピュータと呼ぶ )とは全く異なる原理で動作するものであり、例えば原子、イオン、電子、光子等の物 質の量子状態の遷移を利用したコンピュータである。量子コンピュータは、例えば因 数分解などの問題に関して従来型コンピュータよりも遙かに高速な計算が可能である ことが論理的に実証されていることから、世界中の多くの組織や機関で研究 ·開発が 鋭意進められている。現在、量子コンピュータについては主に 2つの方向力 研究が 行われている。その 1つは、量子コンピュータの演算を実行するための基本素子であ る量子論理ゲートつまりハードウェアの開発であり、他の 1つは、量子論理ゲートの実 現を想定した上で、その量子論理ゲートを利用して動作する量子コンピュータの量子 計算用のアルゴリズムつまりソフトウェアに関する研究である。
[0003] 量子アルゴリズムの研究として最もよく知られているのは、ショァ (Shor)による整数の 因数分解と離散対数問題に対する多項式時間アルゴリズム (非特許文献 1参照)、及 び、未整理なデータベースに対する検索を目的としたグロ一バー (Grover)のデータ ベース検索アルゴリズムである(非特許文献 2参照)。例えば N個の元の探索問題に ついて、従来型コンピュータにおけるデータベース検索方法では最大 O (N)ステップ の処理が必要であるのに対し、上記グロ一バーのデータベース検索アルゴリズムによ れば最大 0 ( N)ステップで解くことができることが知られている。このように量子コン ピュータでは、従来型コンピュータでは膨大な時間を要する問題に対し、格段に短い 時間で以て解を得ることができる。
[0004] 上述したように量子コンピュータにおける量子計算の原理は従来型コンピュータの 計算原理とは全く異なるため、量子アルゴリズムに基づくプログラムを記述してその動 作を現在入手可能な従来型コンピュータで検証することはかなり困難な作業である。 もちろん、量子アルゴリズムを記述するための高位のレベルのプログラミング言語もこ れまで数多く提案されている。し力しながら、こうした特殊なプログラミング言語は取り 扱いにくぐ量子計算に熟知している者でないと記述を行うことが困難である。
[0005] また、量子コンピュータは従来型コンピュータと比較してその高速性が注目されて いるが、全ての演算処理において従来型コンピュータに勝るわけではなぐ実際には 例えば平易な四則演算など従来型コンピュータでも十分に高速で行えるような問題 に対しては同等か或 、は従来型コンピュータよりも劣る場合もあると考えられる。さら にまた、量子コンピュータが実用化されてもその価格は従来型コンピュータよりも遙か に高価になる可能性が高いため、コストパフォーマンスを考えた場合、様々な問題を 全て量子コンピュータ上で実行するのはあまり有効ではなぐ従来型コンピュータと量 子コンピュータとを併設して各コンピュータにそれぞれ適した (換言すれば、各コンビュ ータが得意とするところの)問題を振り分けて実行させることが有用であると考えられ る。このような従来型コンピュータと量子コンピュータとを併設したコンピュータシステ ムでは両コンピュータを協調的に動作させる必要があるため、従来型コンピュータで 使用されて 、る既存のプログラミング言語で全てのプログラムを記述できることが望ま しい。し力しながら、現状では、こうした必要性は認識されておらず、そうしたことを考 慮したプログラムやアルゴリズムの開発環境は存在しな 、。
[0006] また、現在のところ量子コンピュータ自体は実現されていないが、従来型コンビユー タを用いて量子計算のシミュレーションを行うことは盛んに研究されており、そうしたシ ミュレータ用プログラムも入手可能である。しかしながら、上述したような従来型コンビ ユータと量子コンピュータとを併設したコンピュータシステムでの協調的動作をシミュ レーシヨンで検証したい場合には、例えば、量子計算シミュレータ用に作成したプロ グラムを従来型コンピュータで実行させて演算結果を取得し、その結果を組み込んだ 別のプログラムを作成してこれをまた従来型コンピュータで実行させるといった面倒 で煩雑な作業が必要であり、非常に効率が悪い。こうしたことから、量子コンピュータ が実現される前の段階にぉ 、て、量子計算を含む様々なアルゴリズムの検証を効率 良く行うためのツールが切望されて 、る。
[0007] 非特許文献 1:ピ一'ダブル ·ショァ (P. W.Shor)、 「アルゴリズムス ·フォ一'クォンタム ·コ ンピュテーシヨン:ディスクリート'ロガリズムス 'アンド'ファクタリング (Algorithms fo Qua ntum computation: Discrete Logarithms and Factoring)」、ブロン ~~ァイング ' 35ス' ン-ュアル ·シンポジウム ·オン ·ファンデーションズ 'ォブ 'コンピュータ ·サイエンスの oc. Annual j5th Symposium on Foundations of Computer Science入 1994、 p. 124 - 134
非特許文献 2:エル ·ケ一'グローバー (L.K.Grover)、 「ァ ·ファースト ·クォンタム'メカ- 力ノレ'フォ ~~ ·ν ~~タへ' ~~ス'サ ~~チ (A fast quantum mechanical for database searcn 」、プロシーデイング ·アン二ユアノレ ·エーシーエム ·シンポジウム ·オン ·セオリ ~ ·ォブ 'コンヒュ 1 ~~ァイング (Proc. Annual ACM Symposium on Theory ofし omputing)、 1996 、 p. 212- 219
発明の開示
発明が解決しょうとする課題
[0008] 本発明は上記課題に鑑みて成されたものであり、その第 1の目的とするところは、従 来型コンピュータと量子コンピュータとを併設したコンピュータシステムにおける両コ ンピュータの協調的動作を従来型コンピュータを用いてシミュレーションしょうとする 際に、量子計算や量子コンピュータに未熟な者でも既存の高位レベルのプロダラミン グ言語の知識さえあればシミュレーション用プログラムを容易に作成して効率的なシ ミュレーシヨン作業を行うことができるプログラム開発支援装置を提供するとともに、そ うしたコンピュータシステムの処理動作のシミュレーションを容易に行うことができるシ ミュレーシヨン装置を提供することにある。
[0009] また、本発明の第 2の目的とするところは、従来型コンピュータと量子コンピュータと を併設したコンピュータシステムで所定の処理動作を実行させるためのプログラムを 作成するに際し、量子計算や量子コンピュータに未熟な者でも既存の高位レベルの プログラミング言語の知識さえあれば量子計算を含むプログラムを容易に作成 ·記述 することができるプログラム開発支援装置を提供することにある。
課題を解決するための手段
[0010] 上述したように、量子コンピュータはその高速性が注目されて 、るが全ての演算処 理について従来型コンピュータよりも格段に高速であるわけではない。そこで、本願 発明者は、従来型コンピュータと量子コンピュータとが併設されたコンピュータシステ ムの有効な利用方法として、量子計算に向く可能性が高いことが予めわ力つている 特定の処理のみを量子コンピュータに担当させ、その特定の処理以外の一般的な処 理については従来型コンピュータに担当させるという負荷の分配処理を行うことに想 到した。
[0011] 具体的には、既に従来型コンピュータによる処理よりも高速での処理が可能となり 得ることが確認されており、且つ応用範囲が広いグロ一バーの検索アルゴリズム (な お、ここではグロ一バーの検索アルゴリズムを基本として改良が加えられた検索アル ゴリズムも含む)を適用することが可能であるデータベース検索の処理に着目し、従 来型コンピュータ用の高位のプログラミング言語、典型的には C++言語で記述された ソースコードの中にそうしたデータベース検索処理が存在した場合に、その部分のみ をグロ一バーの検索アルゴリズムをシミュレーションするためのプログラム又は該検索 アルゴリズムに対応したプログラムに置換することにより、既存の高位のレベルのプロ グラミング言語の知識のみでのプログラムの作成を可能とした。
[0012] 即ち、上記第 1の目的を達成するために成された第 1発明は、量子コンピュータと従 来型コンピュータとを併設したコンピュータシステムにおける両コンピュータの協調的 動作を、従来型コンピュータを用いてシミュレーションするためのプログラムの開発を 支援するプログラム開発支援装置であって、
a)従来型コンピュータに対応した既存の高位のレベルのプログラミング言語で記述 されたソースコードを入力するための入力手段と、
b)該入力手段により入力されたソースコードの中で、その記述内容に基づいて、従 来型コンピュータによる演算処理よりも量子コンピュータによる量子計算に適した処 理部分を選択的に抽出する抽出手段と、 c)該抽出手段により抽出された処理部分を、該部分に対応した量子コンピュータに よる量子計算動作をシミュレートするための前記プログラミング言語で記述されたプロ グラムに置換する置換処理を行う置換手段と、
を備えことを特徴としている。
[0013] また上記第 1の目的を達成するために成された第 2発明は、量子コンピュータと従 来型コンピュータとを併設したコンピュータシステムにおける両コンピュータの協調的 動作を従来型コンピュータを用いてシミュレーションするプログラムを、従来型コンビ ユータにより作成するためのプログラム開発支援用プログラムであって、
従来型コンピュータに対応した既存の高位のレベルのプログラミング言語で記述さ れたソースコードが入力されたとき、該ソースコードの中で、その記述内容に基づい て、従来型コンピュータによる演算処理よりも量子コンピュータによる量子計算に適し た処理部分を選択的に抽出し、
その抽出された処理部分を、該部分に対応した量子コンピュータによる量子計算動 作をシミュレートするための前記プログラミング言語で記述されたプログラムに置換す る置換処理をコンピュータに行わせることを特徴としている。
[0014] 第 1及び第 2発明において、プログラミング言語としては既存の各種のものを使用す ることができるが、具体的な一態様として例えば C++言語とすることができる。
発明の効果
[0015] 第 1発明に係るプログラム開発支援装置及び第 2発明に係るプログラム開発支援用 プログラムによれば、コンピュータシステムで実行した 、処理内容を例えば C++言語 などにより記述しさえすれば、抽出手段は、入力されたソースコードの中でその記述 内容に基づいて従来型コンピュータによる演算処理よりも量子コンピュータによる量 子計算に適した処理部分を選択的に抽出し、置換手段は、その処理部分に対応し た量子計算をシミュレートするためのプログラムに自動的に置換する。したがって、プ ログラム作成に際して量子計算や量子アルゴリズムに関する知識が乏しい者であつ ても、両コンピュータの協調的動作をシミュレートするためのプログラムを容易に記述 '作成することができる。それによつて、従来型コンピュータと量子コンピュータとの協 調的動作の検証が容易且つ効率的に行え、そのためのアルゴリズムの新規開発も促 進される。
[0016] また第 1及び第 2発明においては、量子計算に適した処理部分を選択的に抽出す る際に、入力されたソースコードの中で、その記述内容に基づいてデータベース検索 に相当する処理部分を検出し、その検出された処理部分について従来型コンビユー タで処理を実行した場合の所要時間と量子コンピュータで処理を実行した場合の所 要時間とをそれぞれ推算し、その後者が前者よりも短いと判断した場合に、前記検出 された処理部分が量子コンピュータによる量子計算に適した処理部分であると判断 することが好ましい。
[0017] またその場合、前記置換手段は、前記抽出された処理部分を、量子計算用のグロ 一バーの検索アルゴリズムを従来型コンピュータ上でシミュレートするプログラムに置 換するちのとすることがでさる。
[0018] 一般に量子計算であるグロ一バーの検索アルゴリズムによるデータベース検索は 従来型コンピュータによるデータベース検索アルゴリズムよりも高速であるが、例えば 検索対象の母数が少ない場合には両者の速度がほぼ同等力 従来型コンピュータ によるデータベース検索アルゴリズムのほうが高速となる場合があり得る。これに対し 上記構成によれば、入力されたソースコードの中でグロ一バーの検索アルゴリズムに より置換し得る処理部分が存在した場合でも、無条件に置換を実行するのではなぐ 予め両者の処理時間をそれぞれ推算し、両者の処理時間を比較することで量子計 算に置き換えることが有効か否かを決めている。したがって、これによれば量子コンビ ユータをより有効に利用する状態の下でのシミュレーションを行うことができる。
[0019] また、第 1発明に係るプログラム開発支援装置はそれ単独で使用される以外に、量 子コンピュータと従来型コンピュータとを併設したコンピュータシステムにおける両コ ンピュータの協調的動作を従来型コンピュータを用いてシミュレーションするためのシ ミュレーシヨン装置の一部として利用することができる。即ち、こうしたシミュレーション 装置は、第 1発明に係るプログラム開発支援装置の前記置換手段により置換処理が 成されたソースコードをコンパイルするコンパイラと、そのコンパイルされた機械語に 従った処理動作を実行するコンピュータとをさらに備えるものである。
[0020] このシミュレーション装置によれば、例えば C++言語などの既存の高位のレベルの プログラミング言語により記述したソースコードを入力しさえすれば、量子コンピュータ による量子計算に向いた部分についてはその量子計算をシミュレートするプログラム に自動的に変換が成され、従来型コンピュータと量子コンピュータとの協調的動作が シミュレートされる。したがって、こうした動作の検証が非常に容易に且つ効率的に行 え、量子アルゴリズムの新規開発や改良などに有用である。
[0021] 第 1及び第 2発明に係るプログラム開発支援装置及びプログラム開発支援用プログ ラムは、量子コンピュータによる量子計算、量子アルゴリズムを従来型コンピュータの 上でシミュレートするものであるが、第 3発明に係るプログラム開発支援装置及び第 4 発明に係るプログラム開発支援用プログラムは、量子コンピュータが実現されたとき にその量子コンピュータと従来型コンピュータを併設したコンピュータシステムを実際 に動作させるためのプログラムを作成 '開発するためのツールである。したがって、上 記第 1及び第 2発明では、抽出された処理部分を該部分に対応した量子計算をシミ ュレートするためのプログラムに置換していたのに対し、その部分に対応した量子ァ ルゴリズムを実行するプログラムに置換するように処理を変更すればよ 、。
[0022] 即ち、上記第 2の目的を達成するために成された第 3発明は、量子コンピュータと従 来型コンピュータとを併設したコンピュータシステムにおいて所定の処理を実行させ るためのプログラムの開発を支援するプログラム開発支援装置であって、
a)従来型コンピュータに対応した既存の高位のレベルのプログラミング言語で記述 されたソースコードを入力するための入力手段と、
b)該入力手段により入力されたソースコードの中で、その記述内容に基づいて、従 来型コンピュータによる演算処理よりも量子コンピュータによる量子計算に適した処 理部分を抽出する抽出手段と、
c)該抽出手段により抽出された処理部分を、該部分に対応した量子アルゴリズムを 実行するプログラムに置換する置換手段と、
を備えることを特徴として 、る。
[0023] また上記第 2の目的を達成するために成された第 4発明は、量子コンピュータと従 来型コンピュータとを併設したコンピュータシステムにおいて所定の処理動作を実行 させるためのプログラムを、従来型コンピュータにより作成するためのプログラム開発 支援用プログラムであって、
従来型コンピュータに対応した既存の高位のレベルのプログラミング言語で記述さ れたソースコードが入力されたとき、該ソースコードの中で、その記述内容に基づい て、従来型コンピュータによる演算処理よりも量子コンピュータによる量子計算に適し た処理部分を選択的に抽出し、
その抽出された処理部分を、該部分に対応した量子アルゴリズムを実行するプログ ラムに置換する処理をコンピュータに行わせることを特徴としている。
[0024] この第 3発明に係るプログラム開発支援装置及び第 4発明に係るプログラム開発支 援用プログラムによれば、従来型コンピュータと量子コンピュータとを併設したコンビ ユータシステムを効率良く動作させるためのプログラムを作成 ·開発するに際し、量子 コンピュータや量子計算についての知識が乏しい者でもそうした作業に携わることが でき、効率良くプログラムを開発することができる。
図面の簡単な説明
[0025] [図 1]量子コンピュータと従来型コンピュータとを併設した将来のコンピュータシステム の一例を示す概念図。
[図 2]本発明の一実施例によるプログラム開発支援装置のブロック構成図。
[図 3]本実施例のプログラム開発支援装置の動作を説明するフローチャート。
[図 4]本実施例のプログラム開発支援装置に入力される C++言語により記述されたソ ースコードの簡単な一例を示す図。
[図 5]図 4に示すソースコードが入力されたときの出力のソースコードを示す図。
発明を実施するための最良の形態
[0026] 以下、本発明に係るプログラム開発支援装置の一実施例について図面を参照して 説明する。
[0027] 図 1は量子コンピュータと従来型コンピュータとを併設した将来のコンピュータシス テムの一例を示す概念図である。図 1において、従来型コンピュータ 2は既存の、「0」 、 「1」の二値のいずれかを表現するビットを基本とする演算処理を実行するコンビュ ータであるのに対し、量子コンピュータ 3は「0」と「 1」とを或る確率で以て重ね合わせ て保持することが可能な量子ビット (キュービットと!/、う)を基本とする演算処理を実行 するコンピュータである。従来型コンピュータ 2には入力部 4や表示部 5が接続されて おり、入力部 4を介して作業者がコンピュータシステム 1に対する指示を与え、表示部 5を介してコンピュータシステム 1における演算処理の実行結果などを確認することが できる。従来型コンピュータ 2と量子コンピュータ 3とは互いに接続されており、基本的 には両者はそれぞれが独立して動作可能であるものの、互いに協調的に動作するこ とによって一つの処理を実行し得る。
[0028] 本実施例のプログラム開発支援装置は、図 1に示すようなコンピュータシステム 1に おいて両コンピュータ 2、 3の協調的動作を、現在入手可能な (つまり従来型の)コン ピュータを用いてシミュレーションするためのプログラムの作成'開発を支援するため のものである。本実施例のプログラム開発支援装置は第 1発明の一形態であるが、実 際には第 2発明に係るプログラムを既存の(つまり従来型)のコンピュータ上で実行す ることにより具現化することができる。図 2は本実施例のプログラム開発支援装置の機 能ブロックを示す構成図、図 3は本実施例のプログラム開発支援装置の処理動作を 説明する概略フローチャートである。
[0029] このプログラム開発支援装置は、既存の高位レベルのプログラム言語、具体的には ここでは C++言語、で所定の処理プログラムを記述したソースコードが入力される入 力部 10と、入力されたソースコードに対して後述する処理を実行して必要に応じてそ のソースコードの一部を変換するプログラム変換処理部 11と、変換処理後のプロダラ ムが出力される出力部 18と、プログラム変換処理部 11と関連付けられた量子技術デ ータベース 16及び量子アルゴリズムライブラリ 17とを備える。
[0030] プログラム変換処理部 11は、後述する処理ステップに対応した機能ブロックとして、 ソースコードの記述内容に従ってその中の特定の領域を検出する領域検出部 12、 その検出された特定領域について量子技術データベース 16に保存されている情報 を利用して量子コンピュータ 3による量子計算を行った場合の処理時間と通常の従 来型コンピュータ 2による演算処理を行った場合の処理時間とを推算する処理時間 推算部 13、両コンピュータ 2、 3に対する処理時間を比較してその特定領域のソース コード (プログラム)の置換が必要か否かを判断する判断部 14、量子アルゴリズムライ ブラリ 17に格納されているデータを利用して置換が必要な領域のプログラムを入れ 替える置換処理部 15を含む。
[0031] 図 4はこの装置による処理対象である、 C++言語により記述されたソースコードの簡 単な一例である。このようなソースコード 20が入力部 10より入力されると、プログラム 変換処理部 11にあって領域検出部 12はそのソースコード 20の記述に沿ってデータ ベース検索を実行するプログラム領域を探し出す。 C++言語では図 4中に符号 21で 示すプログラム領域、つまり if文で記述される部分がこれに相当するから、未処理の if 文が存在するか否かを判定する(ステップ Sl)。入力されたソースコード中の全ての if 文が処理済み (但し実際に変換がなされている力否かは問わない)である場合には、 そのまま処理を終了する。
[0032] 未処理の if文が存在した場合には、領域検出部 12はその if文を抽出して処理時間 推算部 13に渡す。処理時間推算部 13及び判断部 14は、該当する if文を置換すベ きであるか否か、つまり量子計算を適用するのに適当である力否かを判定する (ステ ップ S2)。具体的には、処理時間推算部 13は従来型コンピュータでその if文の処理 、つまりデータベース検索処理を実行した場合の所要時間を推算する。図 4の例で はプログラム領域 21においては最大 10000回の if文の判定を繰り返し実行すること になり、また if文の 1回当たりの所要時間は CPUの演算速度など力 予め概算値を 決めておくことができるから、両者の積で以て処理時間を容易に推算することができ る。
[0033] 他方、処理時間推算部 13は該当 if文に相当するグロ一バーの検索アルゴリズムの 処理を行った場合の所要時間も推算する。具体的には、図 4に示したプログラム領域 21は量子コンピュータでは図 5 (a)に示すソースコード 30ではプログラム領域 31に相 当する。即ち、 [Quantum Search]と記述されているサブルーチンプログラムに変換さ れ得る。そのサブルーチンプログラム [Quantum Search]の処理動作の詳細は、図 5 ( b)に示すライブラリ 32の中に C++言語で記述されている。グロ一バーの検索アルゴリ ズムの場合、最大検索繰り返し回数は従来の場合を Nとすると Nとなることが知ら れているから、この場合には最大 100回の繰り返し演算で済む。但し、この場合、 1回 の演算処理の所要時間は従来の場合と同じとは限らない。何故なら、従来の論理演 算では例えば四則が組み合わさった演算が 1ステップで実行できることが保証されて いるが、量子状態の操作の場合にはそうではないからである。そこで、 1つの方法とし て、これまでの研究で知られている量子回路設計手法を導入し、実際に if文で示され る演算処理に対応する量子回路を作成した上で何ステップ掛カる力を見積もることが できる。
[0034] この実施例の場合、 1回のデータベース検索は 1ステップの演算で十分であるから 、プログラム領域 21に対する従来型コンピュータによる処理時間の推算値よりも量子 計算による処理時間の推算値が小さくなる。判断部 14は両者の処理時間の推算値 を比較、量子計算による処理時間の推算値が小さい場合には該当 if文を置換すべき であると判断し (ステップ S 2で Yes)、対応するデータベース検索のプログラム、ここで は上記 [Quantum Search]と!、う名称の C++言語で記述されたサブルーチンプログラ ムに置換する(ステップ S3)。その結果、ソースコード中ではプログラム領域 21に代え てプログラム領域 31のコードが挿入される。
[0035] さらに処理はステップ S3から S1へと戻り、未処理の if文が存在するか否かを判定す る。図 4の例では、プログラム領域 22にも if文が存在するから、上記と同様にして処理 時間の推算値の判定を実行する。この場合、データベース検索の対象の母数が 100 と少ないため、量子計算の処理時間の推算値が従来型コンピュータによる処理時間 の推算値よりも長いものとする。この場合には、ステップ S 2で置換すべきでないと判 定され、上述したような置換処理は実行されずにステップ S1に戻ることになる。
[0036] そして、入力されたソースコード中で全ての if文に対する処理が終了したと判定され ると、ステップ S1で Noとなりプログラム変換処理を終了する。これにより、図 4に示す ような入力に対しては図 5に示すように出力が出力部 18より得られることになる。即ち 、出力として得られるソースコードは、量子計算に適した部分、具体的には量子コン ピュータを利用すれば従来型コンピュータよりも短時間で処理が済む部分について のみ、量子コンピュータで行う動作を従来型コンピュータでシミュレートするようなプロ グラムに入れ替えられる。そこで、このプログラムを従来の一般のコンピュータに導入 して実行させることにより、図 1に示したような従来型コンピュータ 2と量子コンピュータ 3とを併設したコンピュータシステム 1における両コンピュータ 2、 3の協調的動作のシ ミュレーシヨン検証を既存のコンピュータ (従来型コンピュータ)で実行することができ る。
[0037] 図 2に示す構成のプログラム開発支援装置において上記のようなプログラムの変換 が可能であるから、この装置に C++言語のコンパイラ及びコンピュータを組み合わせ ることにより、上記コンピュータシステム 1における両コンピュータ 2、 3の協調的動作を 一般の既存のコンピュータ上でシミュレーション可能なシミュレーション装置を得ること ができる。
[0038] なお、上記実施例では入力されたソースコード中にデータベース検索領域があつ て且つその検索処理の実行所要時間が量子計算を用いた場合に短くなることが想 定される場合には自動的にその領域を量子計算によるデータベース検索に置き換え るようにして 、たが、予め取り決めた指示文等をソースコード中に挿入することによつ て、ソースコード中の一部の領域を強制的に量子計算を用いて実行するようにプログ ラムの置換を実行させたり、逆に本来は量子計算を用いて実行するほうが適切なプロ グラムを強制的に従来型コンピュータでの演算処理で実行させたりするようにしてもよ い。
[0039] 上記実施例はシミュレーション用のプログラムの作成や開発を支援する装置であつ て、量子コンピュータのハードウェアが完成する前であっても、そうした量子コンビュ ータのハードウェアの実現を想定した上での量子アルゴリズムの開発に利用すること ができる。また、量子コンピュータのハードウェアが実現された場合には、簡単な変更 によって、量子コンピュータと従来型コンピュータを併設したコンピュータシステムを 動作させるプログラムの作成 ·開発用ツールとして使用することができる。
[0040] 即ち、上記実施例では、量子アルゴリズムライブラリ 17にグロ一バーの検索アルゴリ ズムを従来型コンピュータの論理回路で仮想的に実行するつまりシミュレートするた めの C++言語で記述されたサブルーチンプログラムが格納されて 、たが、これに代え て、グロ一バーの検索アルゴリズムに対応して量子コンピュータのキュービットを制御 するためのプログラムを格納しておくことにより、量子コンピュータの量子計算に向い たデータベース検索処理のみを量子コンピュータに振り分けるようなプログラムを容 易に作成することができる。
[0041] また、上記実施例では全ての処理機能をコンピュータで実現させるようにしているが 、一部の機能又は全部を専用に設計した論理回路で構成するようにしてもょ 、。 また、上記実施例は一例であって、本発明の趣旨の範囲で適宜変形や修正を行つ ても、本願特許請求の範囲に包含されることも明らかである。

Claims

請求の範囲
[1] 量子コンピュータと従来型コンピュータとを併設したコンピュータシステムにおける 両コンピュータの協調的動作を従来型コンピュータを用いてシミュレーションするため のプログラムの開発を支援するプログラム開発支援装置であって、
a)従来型コンピュータに対応した既存の高位のレベルのプログラミング言語で記述 されたソースコードを入力するための入力手段と、
b)該入力手段により入力されたソースコードの中で、その記述内容に基づいて、従 来型コンピュータによる演算処理よりも量子コンピュータによる量子計算に適した処 理部分を選択的に抽出する抽出手段と、
c)該抽出手段により抽出された処理部分を、該部分に対応した量子コンピュータに よる量子計算動作をシミュレートするための前記プログラミング言語で記述されたプロ グラムに置換する置換処理を行う置換手段と、
を備えることを特徴とするプログラム開発支援装置。
[2] 前記プログラミング言語は C++言語であることを特徴とする請求項 1に記載のプログ ラム開発支援装置。
[3] 前記抽出手段は、量子計算に適した処理部分を選択的に抽出する際に、入力され たソースコードの中で、その記述内容に基づ!/、てデータベース検索に相当する処理 部分を検出し、その検出された処理部分について従来型コンピュータで処理を実行 した場合の所要時間と量子コンピュータで処理を実行した場合の所要時間とをそれ ぞれ推算し、その後者が前者よりも短いと判断した場合に、前記検出された処理部 分が量子コンピュータによる量子計算に適した処理部分であると判断することを特徴 とする請求項 1又は 2に記載のプログラム開発支援装置。
[4] 前記置換手段は、前記抽出手段により抽出された処理部分を、量子計算用のグロ 一バーの検索アルゴリズムを従来型コンピュータ上でシミュレートするプログラムに置 換することを特徴とする請求項 3に記載のプログラム開発支援装置。
[5] 請求項 1〜4のいずれかに記載のプログラム開発支援装置を含み、前記置換手段 により置換処理がなされたソースコードをコンパイルするコンパイラと、そのコンパイル された機械語に従った処理動作を実行するコンピュータとをさらに備えることを特徴と する、量子コンピュータと従来型コンピュータとを併設したコンピュータシステムにお ける両コンピュータの協調的動作を従来型コンピュータを用いてシミュレーションする ためのシミュレーション装置。
[6] 量子コンピュータと従来型コンピュータとを併設したコンピュータシステムにおける 両コンピュータの協調的動作を従来型コンピュータを用いてシミュレーションするプロ グラムを、従来型コンピュータにより作成するためのプログラム開発支援用プログラム であって、
従来型コンピュータに対応した既存の高位のレベルのプログラミング言語で記述さ れたソースコードが入力されたとき、該ソースコードの中で、その記述内容に基づい て、従来型コンピュータによる演算処理よりも量子コンピュータによる量子計算に適し た処理部分を選択的に抽出し、その抽出された処理部分を、該部分に対応した量子 コンピュータによる量子計算動作をシミュレートするための前記プログラミング言語で 記述されたプログラムに置換する置換処理を、コンピュータに行わせることを特徴とす るプログラム開発支援用プログラム。
[7] 前記プログラミング言語は C++言語であることを特徴とする請求項 6に記載のプログ ラム開発支援用プログラム。
[8] 量子計算に適した処理部分を選択的に抽出する際に、入力されたソースコードの 中で、その記述内容に基づいてデータベース検索に相当する処理部分を検出し、そ の検出された処理部分について従来型コンピュータで処理を実行した場合の所要時 間と量子コンピュータで処理を実行した場合の所要時間とをそれぞれ推算し、その後 者が前者よりも短いと判断した場合に、前記検出された処理部分が量子コンピュータ による量子計算に適した処理部分であると判断することを特徴とする、請求項 6又は 7 に記載のプログラム開発支援用プログラム。
[9] 前記置換処理は、前記抽出された処理部分を、量子計算用のグロ一バーの検索ァ ルゴリズムを従来型コンピュータ上でシミュレートするプログラムに置換するものである ことを特徴とする請求項 8に記載のプログラム開発支援用プログラム。
[10] 量子コンピュータと従来型コンピュータとを併設したコンピュータシステムにおいて 所定の処理動作を実行させるためのプログラムの開発を支援するプログラム開発支 援装置であって、
a)従来型コンピュータに対応した既存の高位のレベルのプログラミング言語で記述 されたソースコードを入力するための入力手段と、
b)該入力手段により入力されたソースコードの中で、その記述内容に基づいて、従 来型コンピュータによる演算処理よりも量子コンピュータによる量子計算に適した処 理部分を抽出する抽出手段と、
c)該抽出手段により抽出された処理部分を、該部分に対応した量子アルゴリズムを 実行するプログラムに置換する置換処理を行う置換手段と、
を備えることを特徴とするプログラム開発支援装置。
[11] 前記プログラミング言語は C++言語であることを特徴とする請求項 10に記載のプロ グラム開発支援装置。
[12] 前記抽出手段は、量子計算に適した処理部分を選択的に抽出する際に、入力され たソースコードの中で、その記述内容に基づ!/、てデータベース検索に相当する処理 部分を検出し、その検出された処理部分について従来型コンピュータで処理を実行 した場合の所要時間と量子コンピュータで処理を実行した場合の所要時間とをそれ ぞれ推算し、その後者が前者よりも短いと判断した場合に、前記検出された処理部 分が量子コンピュータによる量子計算に適した処理部分であると判断することを特徴 とする請求項 10又は 11に記載のプログラム開発支援装置。
[13] 前記置換手段は、前記抽出手段により抽出された処理部分を、量子計算用のグロ 一バーの検索アルゴリズムを記述したプログラムに置換することを特徴とする請求項
12に記載のプログラム開発支援装置。
[14] 量子コンピュータと従来型コンピュータとを併設したコンピュータシステムにおいて 所定の処理動作を実行させるためのプログラムを、従来型コンピュータにより作成す るためのプログラム開発支援用プログラムであって、
従来型コンピュータに対応した既存の高位のレベルのプログラミング言語で記述さ れたソースコードが入力されたとき、該ソースコードの中で、その記述内容に基づい て、従来型コンピュータによる演算処理よりも量子コンピュータによる量子計算に適し た処理部分を選択的に抽出し、その抽出された処理部分を、該部分に対応した量子 アルゴリズムを実行するプログラムに置換する置換処理を、コンピュータに行わせるこ とを特徴とするプログラム開発支援用プログラム。
[15] 前記プログラミング言語は C++言語であることを特徴とする請求項 14に記載のプロ グラム開発支援用プログラム。
[16] 量子計算に適した処理部分を選択的に抽出する際に、入力されたソースコードの 中で、その記述内容に基づいてデータベース検索に相当する処理部分を検出し、そ の検出された処理部分について従来型コンピュータで処理を実行した場合の所要時 間と量子コンピュータで処理を実行した場合の所要時間とをそれぞれ推算し、その後 者が前者よりも短いと判断した場合に、前記検出された処理部分が量子コンピュータ による量子計算に適した処理部分であると判断することを特徴とする請求項 14又は 1 5に記載のプログラム開発支援用プログラム。
[17] 前記置換処理は、前記抽出された処理部分を、量子計算用のグロ一バーの検索ァ ルゴリズムを記述したプログラムに置換するものであることを特徴とする請求項 16に 記載のプログラム開発支援用プログラム。
PCT/JP2005/015181 2004-12-09 2005-08-22 量子コンピュータを含むコンピュータシステムのためのプログラム開発支援装置、プログラム開発支援用プログラム、及びシミュレーション装置 WO2006061926A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US11/791,968 US20070294070A1 (en) 2004-12-09 2005-08-22 Program Development Support Apparatus for Computer System Including Quantum Computer, Program Development Support Program, and Simulation Apparatus
JP2006547648A JP4867009B2 (ja) 2004-12-09 2005-08-22 量子コンピュータを含むコンピュータシステムのためのプログラム開発支援装置、プログラム開発支援用プログラム、及びシミュレーション装置
EP05772573A EP1840739A4 (en) 2004-12-09 2005-08-22 PROGRAM DEVELOPMENT SUPPORT DEVICE FOR COMPUTER SYSTEM COMPRISING A QUANTUM COMPUTER, PROGRAM DEVELOPMENT SUPPORT PROGRAM, AND SIMULATION DEVICE

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004-356175 2004-12-09
JP2004356175 2004-12-09

Publications (1)

Publication Number Publication Date
WO2006061926A1 true WO2006061926A1 (ja) 2006-06-15

Family

ID=36577756

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/015181 WO2006061926A1 (ja) 2004-12-09 2005-08-22 量子コンピュータを含むコンピュータシステムのためのプログラム開発支援装置、プログラム開発支援用プログラム、及びシミュレーション装置

Country Status (4)

Country Link
US (1) US20070294070A1 (ja)
EP (1) EP1840739A4 (ja)
JP (1) JP4867009B2 (ja)
WO (1) WO2006061926A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006331249A (ja) * 2005-05-30 2006-12-07 Nippon Telegr & Teleph Corp <Ntt> 量子プログラム変換装置、その方法、そのプログラム及び記録媒体
JP2013114366A (ja) * 2011-11-28 2013-06-10 Hitachi Ltd 量子コンピュータシステム、量子コンピュータシステムの制御方法及びプログラム
CN111165052A (zh) * 2017-09-29 2020-05-15 国际商业机器公司 启用量子计算的云环境中的作业处理
JP2020535518A (ja) * 2017-09-29 2020-12-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 量子トモグラフィを容易化するためのシステム、コンピュータによって実施される方法、およびコンピュータ・プログラム
US11620569B2 (en) 2019-04-26 2023-04-04 International Business Machines Corporation Machine learning quantum algorithm validator

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9870273B2 (en) * 2016-06-13 2018-01-16 1Qb Information Technologies Inc. Methods and systems for quantum ready and quantum enabled computations
US10977570B2 (en) * 2017-06-19 2021-04-13 Rigetti & Co, Inc. Distributed quantum computing system
US11270220B1 (en) 2017-11-15 2022-03-08 Amazon Technologies, Inc. Service for managing quantum computing resources
US11170137B1 (en) * 2017-11-15 2021-11-09 Amazon Technologies, Inc. Cloud-based simulation of quantum computing resources
US10592216B1 (en) * 2017-11-15 2020-03-17 Amazon Technologies, Inc. Development environment for programming quantum computing resources
US11010145B1 (en) 2018-02-21 2021-05-18 Rigetti & Co, Inc. Retargetable compilation for quantum computing systems
US11537381B2 (en) 2019-07-15 2022-12-27 International Business Machines Corporation Quantum software developer kit and framework
US11605016B2 (en) 2019-11-27 2023-03-14 Amazon Technologies, Inc. Quantum computing service supporting local execution of hybrid algorithms
US11704715B2 (en) 2019-11-27 2023-07-18 Amazon Technologies, Inc. Quantum computing service supporting multiple quantum computing technologies
US11605033B2 (en) 2019-11-27 2023-03-14 Amazon Technologies, Inc. Quantum computing task translation supporting multiple quantum computing technologies
US11907092B2 (en) 2021-11-12 2024-02-20 Amazon Technologies, Inc. Quantum computing monitoring system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222369A (ja) * 1999-01-28 2000-08-11 Nec Corp 並列/ベクトル化方法およびその手順が記録された記録媒体
JP2002042104A (ja) * 2000-07-27 2002-02-08 Yamaha Motor Co Ltd 量子ソフトコンピューティングを使用した制御システムと制御方法
JP2002116916A (ja) * 2000-10-04 2002-04-19 Internatl Business Mach Corp <Ibm> プログラムの最適化方法及びこれを用いたコンパイラ
WO2003056512A1 (en) * 2001-12-22 2003-07-10 D-Wave Systems, Inc. Quantum computing integrated development environment
JP2004046747A (ja) * 2002-07-16 2004-02-12 Matsushita Electric Ind Co Ltd ベクトル化方式

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01108638A (ja) * 1987-10-21 1989-04-25 Hitachi Ltd 並列化コンパイル方式
JPH04293150A (ja) * 1991-03-20 1992-10-16 Hitachi Ltd コンパイル方法
JPH07175761A (ja) * 1993-12-20 1995-07-14 Nec Corp 最適データ分散自動決定方式
JPH07282016A (ja) * 1994-04-11 1995-10-27 Matsushita Electric Ind Co Ltd 並列化コンパイラ
JPH08328871A (ja) * 1995-05-31 1996-12-13 Hitachi Ltd 並列処理プログラム生成方法及びその実行方法並びにそれらの実施装置
US6456994B1 (en) * 1998-05-05 2002-09-24 Robert Tucci Computer for a quantum computer
US6578018B1 (en) * 1999-07-27 2003-06-10 Yamaha Hatsudoki Kabushiki Kaisha System and method for control using quantum soft computing
JP2001356934A (ja) * 2000-03-02 2001-12-26 Texas Instr Inc <Ti> ハードウェアシステムとインタラクトするソフトウェアシステムの構成方法およびデジタルシステム
US6675154B2 (en) * 2001-02-23 2004-01-06 Magiq Technologies, Inc. Method and system for the quantum mechanical representation and processing of fuzzy information
CN1672132A (zh) * 2002-07-25 2005-09-21 皇家飞利浦电子股份有限公司 源到源的分区编译
US7346902B2 (en) * 2002-10-22 2008-03-18 Sun Microsystems, Inc. System and method for block-based concurrentization of software code

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222369A (ja) * 1999-01-28 2000-08-11 Nec Corp 並列/ベクトル化方法およびその手順が記録された記録媒体
JP2002042104A (ja) * 2000-07-27 2002-02-08 Yamaha Motor Co Ltd 量子ソフトコンピューティングを使用した制御システムと制御方法
JP2002116916A (ja) * 2000-10-04 2002-04-19 Internatl Business Mach Corp <Ibm> プログラムの最適化方法及びこれを用いたコンパイラ
WO2003056512A1 (en) * 2001-12-22 2003-07-10 D-Wave Systems, Inc. Quantum computing integrated development environment
JP2004046747A (ja) * 2002-07-16 2004-02-12 Matsushita Electric Ind Co Ltd ベクトル化方式

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IWAMA KAZUO ET AL: "Ryoshi Computer Kagaku Nyumon.", THE JOURNAL OF THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS., vol. 85, no. 8, 1 August 2002 (2002-08-01), pages 618 - 625, XP002996882 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006331249A (ja) * 2005-05-30 2006-12-07 Nippon Telegr & Teleph Corp <Ntt> 量子プログラム変換装置、その方法、そのプログラム及び記録媒体
JP2013114366A (ja) * 2011-11-28 2013-06-10 Hitachi Ltd 量子コンピュータシステム、量子コンピュータシステムの制御方法及びプログラム
CN111165052A (zh) * 2017-09-29 2020-05-15 国际商业机器公司 启用量子计算的云环境中的作业处理
JP2020535518A (ja) * 2017-09-29 2020-12-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 量子トモグラフィを容易化するためのシステム、コンピュータによって実施される方法、およびコンピュータ・プログラム
JP2020535517A (ja) * 2017-09-29 2020-12-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 量子計算対応のクラウド環境におけるジョブ処理のための方法、量子クラウド環境(qce)、およびコンピュータ・プログラム
JP7044449B2 (ja) 2017-09-29 2022-03-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 量子トモグラフィを容易化するためのシステム、コンピュータによって実施される方法、およびコンピュータ・プログラム
CN111165052B (zh) * 2017-09-29 2024-01-19 国际商业机器公司 启用量子计算的云环境中的作业处理
US11620569B2 (en) 2019-04-26 2023-04-04 International Business Machines Corporation Machine learning quantum algorithm validator

Also Published As

Publication number Publication date
EP1840739A4 (en) 2010-07-21
US20070294070A1 (en) 2007-12-20
JPWO2006061926A1 (ja) 2008-06-05
EP1840739A1 (en) 2007-10-03
JP4867009B2 (ja) 2012-02-01

Similar Documents

Publication Publication Date Title
JP4867009B2 (ja) 量子コンピュータを含むコンピュータシステムのためのプログラム開発支援装置、プログラム開発支援用プログラム、及びシミュレーション装置
KR101478567B1 (ko) 가속 이익 추정기
Krishnakumar et al. Machining fixture layout optimization using the genetic algorithm
Marella et al. Introduction to quantum computing
Haedicke et al. metaSMT: Focus on Your Application not on Solver Integration.
Batt et al. Symbolic reachability analysis of genetic regulatory networks using discrete abstractions
CN113011461B (zh) 通过知识学习增强基于分类的软件需求跟踪链接恢复方法及电子装置
US11537373B2 (en) Systems and methods for scalable hierarchical polyhedral compilation
Mishra et al. Test case generation and optimization for critical path testing using genetic algorithm
Perez et al. MDDs: Sampling and probability constraints
CN112764738A (zh) 基于多视图程序特征的代码自动生成方法及***
Hagemann Reachability analysis of hybrid systems using symbolic orthogonal projections
Dou et al. QPanda: high-performance quantum computing framework for multiple application scenarios
Noureddine et al. Reduction and abstraction techniques for BIP
Ramouthar et al. Hybrid quantum algorithms and quantum software development frameworks
Liu et al. Krylov solvers for interior point methods with applications in radiation therapy and support vector machines
Kim et al. System level power reduction for yolo2 sub-modules for object detection of future autonomous vehicles
Romero et al. Computing subdominant unstable modes of turbulent plasma with a parallel Jacobi–Davidson eigensolver
Ingole et al. Instruction set design for elementary set in tensilica xtensa
Amouzgar et al. Multi-objective optimization of material model parameters of an adhesive layer by using SPEA2
Wimmer et al. Minimization of large state spaces using symbolic branching bisimulation
Chen et al. A quantum circuit optimization framework based on pattern matching
Roetteler Tools for Quantum and Reversible Circuit Compilation
Marino et al. A general-purpose framework for genetic improvement
Din et al. An Automated Code Optimizer of Design Patterns for Reducing Energy Usage in Green Computing

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 11791968

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2006547648

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2005772573

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2005772573

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 11791968

Country of ref document: US