Quantum processing system
The quantum processing system addresses the challenge of cross-architecture algorithm implementation by using quantum language translators and process managers to convert and execute processes efficiently across diverse quantum computers, enhancing accuracy and reducing errors.
Patent Information
- Application Number
- JP2021098422
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-06-17
- Filing Date
- 2021-06-14
- Publication Date
- 2025-07-03
- Estimated Expiration
- 2041-06-14
AI Technical Summary
The complexity of implementing quantum algorithms across different quantum computer architectures leads to time-consuming and error-prone processes due to the need for manual conversion between various programming languages and hardware-specific implementations, complicating benchmarking and distributed processing.
A quantum processing system with a set of quantum language translators and a process manager that converts instructions between quantum programming languages and universal gate sets, enabling efficient conversion and execution of processes across diverse quantum computers.
Facilitates accurate and efficient distribution of quantum algorithms across heterogeneous quantum computers, reducing duplication efforts and improving the quality of distributed processing by using a digital model representation and universal gate sets.
Smart Images

Figure 0007702280000001 
Figure 0007702280000002 
Figure 0007702280000003
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to improved computer systems, and more particularly to methods, apparatuses, systems, and computer program products for managing the execution of quantum processes for quantum computers.
Background Art
[0002] A quantum computer is a computer that executes a sequence of instructions in a quantum mechanical system. Such instructions are for a process, also referred to as a quantum algorithm. This process involves quantum mechanical phenomena (such as superposition and quantum entanglement) for performing operations. A quantum computer can effectively use its processing power for problem solving using sophisticated programming.
[0003] Quantum computers can provide computing advantages for tasks including optimization, machine learning, cryptography, and other tasks. There are various types of quantum computers. For example, a computer can take the form of an architecture such as an ion trap quantum computer, a superconducting quantum computer, a topological quantum computer, or other types of quantum computers. Such various architectures can have separate development tools, stacks, and programming languages.
[0004] The existence of multiple computer types, development tools, and programming languages for quantum computers can make it time-consuming and difficult to create processes such as quantum algorithms and implement these processes in various languages and hardware.
[0005] Therefore, in addition to at least some of the above problems, it would be desirable to have methods and apparatuses that also consider other possible problems. For example, it would be desirable to obtain methods and devices that overcome technical problems related to quantum processing in quantum computers.
Summary of the Invention
[0006] One embodiment of the present disclosure is a quantum processing system, comprising a computer system, a set of quantum language translators in the computer system, a universal gate set, and a process manager in the computer system. The set of quantum language translators is configured to convert instructions for an operation in a quantum programming language into a digital model representation of a quantum computer component configured to execute this operation, and to convert a digital model representation of a quantum computer component configured to execute an operation into instructions for an operation in a quantum programming language to be executed on a quantum computer. Each quantum language translator in the set of quantum language translators is for a particular quantum programming language among a plurality of quantum programming languages. Any process executable for a particular quantum computer can be executed using some of the gates in one of the universal gate sets among a plurality of universal gate sets. The process manager is configured to send instructions in a quantum programming language to one of the quantum language translators in the set of quantum language translators. The quantum language translator is configured to handle a quantum programming language and output a digital model representation of a quantum computer component. The process manager is configured to send a digital model representation of a quantum computer component to the quantum language translator, whereby the quantum language translator outputs instructions for an operation in the quantum programming language using universal gates selected according to the computer type of the particular quantum computer.
[0007] Another embodiment of the present disclosure provides a quantum processing system comprising a computer system, a set of quantum language translators in the computer system, and a process manager in the computer system. The set of quantum language translators is configured to convert instructions for processing in a quantum programming language into a digital model representation of a quantum computer component configured to execute the processing, and to convert the digital model representation of the quantum computer component configured to execute the processing into instructions for processing in a quantum programming language executable on a quantum computer. Each of the quantum language translators in the set of quantum language translators is for a particular quantum programming language among a plurality of quantum programming languages. The process manager is configured to receive instructions in one of the plurality of quantum programming languages. The process manager is configured to send instructions in the quantum programming language to one of the set of quantum language translators. The quantum language translator is configured to process the quantum programming language and output a digital model representation of the quantum computer component. The process manager is configured to send the digital model representation of the quantum computer component to the quantum language translator, whereby the quantum language translator outputs instructions for processing in the quantum programming language.
[0008] Yet another embodiment of the present disclosure provides a method for quantum processing. Target quantum programming for a process for a quantum computer is identified by a computer system. Based on the computer type of the quantum computer, one universal gate set is selected from a plurality of universal gate sets by the computer system, and any process executable for a particular quantum computer can be executed using some of the gates in this universal gate set. Instructions for the process in a source quantum programming language are sent by the computer system to one of a set of source quantum language translators, and this source quantum language translator outputs a digital model representation of a quantum computer component configured to execute the process using the instructions. The digital model representation of the quantum computer component and the selected universal gate set are sent by the computer system to a target quantum language translator, whereby this target quantum language translator outputs instructions for the process in the target quantum programming language using the digital model representation of the quantum computer component and the universal gate set selected according to the computer type of the quantum computer.
[0009] Yet another embodiment of the present disclosure provides a computer program product for quantum processing. The computer program product includes a first program code, a second program code, a third program code, and a fourth program code stored in a computer-readable storage medium. The first program code is executable by the computer system to cause the computer system to identify a target quantum programming language for a process for a quantum computer. The second program code is executable by the computer system to cause the computer system to select one universal gate set from a plurality of universal gate sets based on the computer type of the quantum computer. Any process executable for a particular quantum computer can be executed using some of the gates in the universal gate set. The third program code is executable by the computer system to cause the computer system to send instructions for the process of the source quantum programming language to one of a set of quantum language translators. This source quantum language translator outputs a digital model representation of a quantum computer component configured to execute the process using the instructions. The fourth program code is executable by the computer system to cause the computer system to send the digital model representation of the quantum computer component and the selected universal gate set to a target quantum language translator, whereby the target quantum language translator uses the digital model representation of the quantum computer component and the universal gate selected according to the computer type of the quantum computer to output instructions for the process in the target quantum programming language.
[0010] These features and functions can be implemented alone in various embodiments of the present disclosure or can be combined in yet other embodiments that can be understood in further detail by reference to the following description and drawings.
[0011] The features considered characteristic of the exemplary embodiments are set forth in the appended claims. However, together with the exemplary embodiments, preferred modes of use, further objectives and features will be best understood by reference to the following detailed description of the exemplary embodiments of the present disclosure in conjunction with the accompanying drawings.
Brief Description of the Drawings
[0012]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Best Mode for Carrying Out the Invention
[0013] Exemplary embodiments recognize and consider one or more different considerations. For example, exemplary embodiments recognize and consider that the prior art for implementing processes in quantum computers can be more difficult than desired. For example, exemplary embodiments recognize and consider that in a quantum program, where each program is in a programming language for a particular computer and individual instructions among a plurality of instructions regarding the quantum program existing in an individual stack or hardware are manually constructed in the prior art. Such embodiments recognize and consider that due to the complexity of the above implementation, errors are likely to occur and it can be time-consuming.
[0014] Exemplary embodiments also recognize and consider that two different programs for quantum computers can implement the same process differently. Such different implementations of the same process can lead to discrepancies in benchmarking in the comparison of different types of quantum computers that can be evaluated.
[0015] Referring now to the figures, specifically FIG. 1, there is shown a diagram of a network of a data processing system in which an exemplary embodiment can be implemented. Network data processing system 100 is a network of computers in which an exemplary embodiment can be implemented. Network data processing system 100 includes network 102, which is a medium used to provide communication links between various devices and computers connected together within network data processing system 100. Network 102 can include connections such as wired or wireless communication links, or fiber optic cables.
[0016] In the illustrated example, server computers 104 and 106 are connected to network 102 along with storage unit 108. Additionally, client device 110 is also connected to network 102. The illustrated client device 110 includes quantum computers 112, 114, and client computer 116. Client device 110 can be, for example, a computer, a workstation, or a network computer. In the illustrated example, server computer 104 provides information (such as boot files, operating system images, and applications) to client device 110. Further, client device 110 can also include other types of client devices (such as mobile phone 118, tablet computer 120, and smart glasses 122). In this embodiment, server computer 104, server computer 106, storage unit 108, and client device 110 are network devices connected to network 102, and network 102 is a communication medium for these network devices. Some or all of client device 110 may form the "Internet of Things (IoT)", in which these physical devices are connected to network 102 and can exchange information with each other through network 102.
[0017] In this example, client device 110 is a client to server computer 104. Network data processing system 100 may also include additional server computers, client computers, and other devices not shown. Client device 110 is connected to network 102 using at least one of a wired, fiber optic, or wireless connection.
[0018] The program code disposed within the network data processing system 100 may be stored in a computer-readable storage medium and downloaded to the data processing system or other device for use. For example, the program code may be stored in the computer-readable storage medium of the server computer 104 and downloaded to the client device 110 through the network 102 for use in the client device 110.
[0019] In the illustrated example, the network data processing system 100 is the Internet with the network 102, which is a worldwide collection of networks and gateways that use the TCP / IP (Transmission Control Protocol / Internet Protocol) suite, a protocol for communicating with each other. At the center of the Internet is a backbone of high-speed data communication lines between thousands of private, government, educational, and other computer systems that route data and messages. Of course, the network data processing system 100 may be implemented using several different types of networks. For example, the network 102 may be composed of at least one of the Internet, an intranet, a local area network (LAN), a metropolitan area network (MAN), or a wide area network (WAN). FIG. 1 is for illustrative purposes only and is not intended to be architecturally limiting for various exemplary embodiments.
[0020] As used herein in connection with an item, the phrase "a number of" means one or more items. For example, "a number of different types of networks" means one or more different types of networks.
[0021] Furthermore, when used with the listed items, the expression "at least one of" means that various combinations of one or more of the listed items may be used, and that only one of each of the listed items may be required. In other words, "at least one of" means that any combination and any number of items from the list may be used, and not all of the listed items are required. An item can be a particular object, article, or category.
[0022] By way of non-limiting example, "at least one of item A, item B, or item C" can include "item A", "item A and item B", or "item B". This example can also include "item A, item B, and item C", or "item B and item C". Of course, any combination of these items can exist. In some embodiments, "at least one of" can be, by way of non-limiting example, "two item As", "one item B", and "ten item Cs", "four item Bs and seven item Cs", or other suitable combinations.
[0023] In this embodiment, quantum computer 112 and quantum computer 114 are client devices 110 that can execute processes such as quantum algorithms. The illustrated quantum computer 112 and quantum computer 114 are different types of quantum computers. In other words, these quantum computers are constructed with different types of architectures. In this embodiment, quantum computer 112 is a superconducting quantum computer while quantum computer 114 is an ion trap quantum computer.
[0024] These two quantum computers may execute quantum programs, and the performance of these computers may be compared. Such a comparison may be part of a benchmarking process for comparing the performance of separate hardware architectures used to implement quantum computer 112 and quantum computer 114. In this benchmarking process, it is desirable for a program to execute the same process on both of these quantum computers in order to obtain information for comparing the performance of quantum computer 112 and quantum computer 114.
[0025] Furthermore, in other embodiments, these two quantum computers may be available for processing tasks. If both quantum computers are used to process the same type of task, these quantum computers may be part of one common computing system or a grid computing system. When these two quantum computers are used for distributed processing for problem solving, the program may be distributed between quantum computer 112 and quantum computer 114, and quantum computer 112 and quantum computer 114 may execute the processing using different programming languages. Such programming languages may be based on the computer type of the quantum computer.
[0026] In this embodiment, a process manager 130 is disposed within server computer 104. The illustrated process manager 130 may operate to manage processes. For example, process manager 130 may manage the execution of quantum process 132 on quantum computer 112 and quantum process 134 executed on quantum computer 114.
[0027] In this embodiment, quantum process 132 and quantum process 134 are composed of instructions in one or more quantum processing languages. The instructions 136 for the illustrated quantum process 132 may be a different quantum programming language from the instructions 138 for quantum process 134.
[0028] In the management of quantum process 132 and quantum process 134, the process manager 130 can distribute the same process to these quantum computers. This same process can be executed on these quantum computers for the purpose of specifying the performance of these quantum computers in executing the same process. As another example, the same process can be used to execute tasks related to shared processing (e.g., grid computing).
[0029] However, the instructions 136 and 138 for the same process may be different. These separate instructions may be caused by at least one of different programming languages or different hardware components in quantum computer 112 and quantum computer 114.
[0030] In this embodiment, the process manager 130 utilizes a digital model representation 140 of a hardware component configured to execute the processing for the process. In this embodiment, the process manager 130 can use a translator system 142 to convert one of a plurality of digital model representations 140 related to the process into instructions 136 and 138. In this manner, a single process can be converted into multiple instructions to be executed on separate hardware systems (e.g., quantum computer 112 and quantum computer 114 which can be of different computer types).
[0031] In one example, the process can be implemented using instructions. If the process is distributable across multiple systems (such as quantum computer 112 and quantum computer 114), the instructions can be transformed into a digital model representation by the process manager 130 using a quantum program translator within the translator system 142. The digital model representation can then be used to generate instructions 136 and 138, which are each distributed to quantum computer 112 and quantum computer 114 for execution. In this manner, the need for duplication effort to derive multiple programs in different languages or for different implementations can be reduced. Further, by having the process manager 130, the overall quality of processes distributed to separate hardware systems in different languages can be improved compared to a unified resource when always generating instructions using the process manager 130.
[0032] Referring now to FIG. 2, there is shown a block diagram of a quantum computing environment, according to an exemplary embodiment. In this example, the quantum computing environment 200 includes components that may be implemented in hardware (e.g., the hardware shown within the network data processing system 100 of FIG. 1).
[0033] In this embodiment, each quantum computer 202 in the quantum computing environment 200 can execute process 204. The quantum computer 202 can take several different forms. For example, the quantum computer 202 can have computer types 203 that are the same as or different from each other. In other words, one quantum computer among the plurality of quantum computers 202 can have at least one of physical hardware, architecture, or other characteristics that have constraints on how processing can be executed, which are different from those of other quantum computers among the plurality of quantum computers 202 with different computer types 203. In this embodiment, the computer type 203 can be selected from at least one of a superconducting quantum computer, an ion trap quantum computer, a topological quantum computer, a quantum dot quantum computer, an optical lattice quantum computer, a cavity quantum electrodynamics quantum computer, a nuclear magnetic resonance quantum computer, a nitrogen vacancy diamond quantum computer, a hybrid quantum computer combining one or more types of quantum computers, or any other type of quantum computer.
[0034] The illustrated process 204 can be a process executed in relation to at least one of a quantum algorithm, a subroutine, a function, or any other type of process. For example, the process 204 can be a single quantum algorithm or a plurality of quantum algorithms, or a subroutine.
[0035] In this embodiment, the quantum processing by the quantum computer 202 can be managed by the quantum processing system 208. In this embodiment, the quantum processing system 208 includes a computer system 210, a set of quantum language translators 212, and a process manager 214.
[0036] As used herein, the phrase "a set of" when used in connection with an item means one or more items. For example, "a set of 212 quantum language translators of different types" means one or more quantum language translators 212 of different types.
[0037] The illustrated set 212 of quantum language translators is within computer system 210. The set 212 of quantum language translators is configured to convert instructions 218 for processing 220 of quantum programming language 222 into a digital model representation 226 of quantum computer component 228 configured to execute processing 220. The set 212 of quantum language translators is also configured to convert the quantum computer component 228 of digital model representation 226 into instructions 218 for processing 220 of quantum programming language 222 to be executed by quantum computer 202. Quantum computer component 228 is, in this embodiment, a component within quantum computer 202 that operates to execute processing 220 for process 204.
[0038] In this embodiment, processing 220 is the processing executed for process 204.
[0039] In this embodiment, each of the quantum language translators in the set 212 of quantum language translators is for a particular quantum programming language among the plurality of quantum programming languages 222. The quantum computer components 228 within the illustrated digital model representation 226 are interconnected such that processing 220 for process 204 is executed by the configuration of the quantum computer components 228 (including their connections).
[0040] In this embodiment, the digital model representation 226 is a data structure used by the process manager 214. In other embodiments, the digital model representation 226 can be displayed to the operator 230 in the graphical user interface 232 within the display system 234.
[0041] The display system 234 is a physical hardware system and includes one or more display devices capable of displaying the graphical user interface 232. This display device can include at least one of a light-emitting diode (LED) display, a liquid crystal display (LCD), an organic light-emitting diode (OLED) display, a computer monitor, a projector, a flat panel display, a head-up display (HUD), or any other suitable device capable of outputting information to visually present information.
[0042] The operator 230 is a person who can interact with the graphical user interface 232 through the user input 236 generated by the input system 238 of the computer system 210. The input system 238 is a physical hardware system and can be selected from at least one of a mouse, a keyboard, a trackball, a touch screen, a stylus, a motion sensing input device, a gesture detection device, a cyber glove, or any other suitable type of input device. The display system 234 and the input system 238 form a human-machine interface (HMI) 240.
[0043] The illustrated process manager 214 can be implemented in software, hardware, firmware, or a combination thereof. When software is used, the processes executed by the process manager 214 can be implemented with program code configured to execute on hardware (such as a processor unit). When firmware is used, the processes executed by the process manager 214 may be implemented with program code and data, stored in persistent memory and executable on a processor unit. When hardware is used, the hardware can include circuitry that operates to execute processes in the process manager 214.
[0044] In an embodiment, the hardware can take the form of at least one selected from among a circuit system, an integrated circuit, an application specific integrated circuit (ASIC), a programmable logic device, or any other suitable type of hardware configured to execute some processes. When a programmable logic device is used, the device can be configured to execute some processes. The device may be reconfigured later or may be permanently configured to execute some processes. Programmable logic devices include, for example, programmable logic arrays, programmable array logic, field programmable logic arrays, field programmable gate arrays, and other suitable hardware devices. Additionally, the process may be implemented in organic components integrated with inorganic components and may be entirely composed of non-human organic components. For example, the process may be implemented as circuitry in an organic semiconductor.
[0045] The computer system 210 is a physical hardware system and includes one or more data processing systems. If there are more than one data processing systems within the computer system 210, such data processing systems communicate with each other using a communication medium. This communication medium can be a network. The data processing system can be selected from at least one of a computer, a server computer, a tablet computer, or some other suitable data processing system.
[0046] During operation, the process manager 214 can send instructions 218 of one quantum programming language 242 out of a plurality of quantum programming languages 222 to one quantum language translator 244 out of a set 212 of quantum language translators. The quantum language translator 244 is configured to process the quantum programming language 242 and outputs a digital model representation 226 of the quantum computer component 228.
[0047] In addition, the process manager 214 can send the digital model representation 226 of the quantum computer component 228 to the quantum language translator 244, whereby the quantum language translator 244 outputs instructions 218 for the process 220 in the quantum programming language 242.
[0048] In this embodiment, the quantum processing system 208 may also include a universal gate set 246. The universal gate set 246 can be selected from at least one of: a Hadamard gate, a phase (S) gate, a controlled-X (CNOT) gate, and a Toffoli gate; a Hadamard gate, a phase (S) gate, a π / 8 (T) gate, and a controlled-X (CNOT) gate; a Barenco gate (B); a Deutsch gate (D_θ) gate; rotation gates R_x(θ), R_y(θ); rotation gates R_x(θ), R_y(θ), a controlled-Z (CZ) gate, or some other suitable type of gate set. In some embodiments, two or more universal gate sets 246 can be combined. Such a combination of universal gate sets 246 can be implemented using mathematical operations (such as AND operation (intersection) and union operation) to obtain a combination of universal gate sets 246 that can be used to perform desired processing.
[0049] One universal gate set 248 among the plurality of universal gate sets 246 includes various types of gates 250. By having a plurality of gates 250 in the universal gate set 248, any process executable for a particular quantum computer among the quantum computers 202 can be executed using some of the gates 250 of one universal gate set 248 among the plurality of universal gate sets 246. In this embodiment, the order of the gates 250 can be selected to execute the process for the process 204. Some of the gates 250 can be a permutation sequence of the gates 250, and this permutation sequence is a sequential arrangement of the gates 250 selected to execute the process for the process 204.
[0050] The availability of the universal gate set 246 enables the quantum language translator 244 to output instructions 218 for the processing 220 of the quantum programming language 242, using the digital model representation 226 and a universal gate set 248 selected for a particular quantum computer among the quantum computers 202, using the universal gate set 248. The selection of the universal gate set 248 can be based on the computer type 252 among the plurality of computer types 203 for a particular quantum computer among the quantum computers 202. The illustrated process manager 214 can identify a universal gate set 248 of one of the plurality of universal gate sets 246 selected to be used, using the hardware database 249.
[0051] In this embodiment, the hardware database 249 can contain information that identifies the universal gate set 246 for the computer type 203 of the quantum computer 202. For example, the hardware database 249 can identify all universal gate sets that are compatible with a particular computer type. As another example, the hardware database 249 can identify not only the universal gate set that is optimal for a particular computer type, but also universal gate sets that are not fully supported by a particular computer type. The universal gate set that is optimal for a particular computer type can be based on a set of performance parameters selected from at least one of speed, accuracy, resource usage, circuit depth, gate performance, gate error, or other performance parameters. As a result, different universal gate sets can be selected for use in a quantum computer having a particular computer type, depending on the one or more selected performance parameters.
[0052] As a result, the process manager 214 may select the universal gate set 248 using the hardware database 249 to provide a desired level of performance for a particular quantum computer. The performance may be selected from at least one of accuracy, speed, hardware support, circuit depth, noise rate or error rate, gate performance, or other performance factors.
[0053] In this embodiment, the process manager 214 may send the selection of the universal gate set 246 to the quantum language translator 244 along with the digital model representation 226.
[0054] In this embodiment, the digital model representation 226 including the quantum computer component 228 may be created using mechanisms other than sending the instruction 218 to the quantum language translator 244. For example, the digital model representation 226 of the quantum computer component 228 may be created from user input 236 generated by an operator 230 interacting with the human-machine interface 240. The quantum computer component 228 of the digital model representation 226 may be displayed on the graphical user interface 232 within the display system 234 in response to user input 236 generated by an operator 230 operating the human-machine interface 240. In this manner, the visualized digital model representation 226 may be displayed on the graphical user interface 232.
[0055] Furthermore, the process manager 214 may also execute a simulation 254 from the digital model representation 226. In this manner, the operator 230 may implement the process 204 through a visual process in which the operator 230 interacts with the display of the quantum computer component 228 of the digital model representation 226 on the graphical user interface 232.
[0056] Therefore, in this embodiment, the process manager 214 can operate in various modes to enable more efficient and accurate quantum computing than using prior art. For example, the process manager 214 can execute a simulation 254 using a digital model representation 226 that embodies the process 204. In this example, when the simulation 254 is executed and even when the simulation 254 is completed, the results of the simulation 254 can be displayed through the human-machine interface 240. The simulation 254 of the digital simmodel representation 226 can enable the operator 230 to examine the behavior of the quantum algorithm implemented in the process 204. In this manner, the operator 230 can determine whether the quantum algorithm operates as desired. The simulation 254 enables the operator 230 to change the digital model representation 226 and re-execute the simulation 254 with that change. As a result, the operator 230 can modify and improve the digital model representation 226 until the operator 230 is satisfied with the results of the simulation 254 of the digital model representation 226.
[0057] When the digital model representation 226 reaches its final version, this model can be used to generate instructions 218 for the set of quantum computers 202 using the quantum language translator 212. By using the quantum language translator 212, the generation of the instructions 218 can be executed steadily and with fewer errors than in the prior art where program code is generated separately for each different quantum computer.
[0058] In the quantum processing system 208, the identification of optimal quantum algorithms can be simulated and explored. This feature in the quantum processing system 208 can be useful in a decision-making process for identifying a certain physical system (e.g., a specific quantum computer among a plurality of quantum computers 202 that provides desirable performance for a specific application). By generating a plurality of instructions 218 suitable for various computer types of the quantum computer 202 from a single source (e.g., the digital model representation 226), the time required to generate the instructions 218 for the quantum computer 202 of various computer types can be reduced. Further, the quality of the instructions 218 generated for the quantum computer 202 of various computer types can be improved as compared with the prior art.
[0059] Next, referring to FIG. 3, an example of a block diagram of a quantum language translator according to an exemplary embodiment is illustrated. In the examples, the same reference numbers may be used in more than one figure. Such reference numbers repeatedly used in separate figures represent the same elements in such separate figures.
[0060] The illustrated quantum language translator 244 is configured to provide a conversion between the instruction 218 of FIG. 2 and the digital model representation 226 of FIG. 2 for one quantum programming language 242 among a plurality of quantum programming languages 222. Each of the quantum language translators in the plurality of quantum language translators 212 can be for different quantum programming languages in the plurality of quantum programming languages 222. In some examples, there may be more than one quantum language translator for the same quantum language (depending on the use of a specific quantum language translator).
[0061] In this example, the quantum language translator 244 can include several different components. The illustrated quantum language translator 244 includes a translator input unit 300 and a translator output unit 302.
[0062] The illustrated translator input unit 300 is configured to receive instructions 218 of the quantum programming language 242 for the quantum language translator 244. In response to receiving the instructions 218, the translator input unit 300 outputs a digital model representation 226 that includes quantum computer components 228. The quantum computer components 228 can be gates, memories, operations, subroutines, state information, circuits, memories, or other hardware or software components.
[0063] In this embodiment, the translator output unit 302 is configured to receive the digital model representation 226 of the quantum computer components 228 transmitted to the quantum language translator 244. The translator output unit 302 uses the digital model representation 226 to output instructions 218 for the process 220 of the quantum programming language 242. Further, the output instructions 218 may be executed using a universal gate set 248. The universal gate set 248 can be received from a selection made by the process manager 214. In other embodiments, the universal gate set 248 can be the default gate set used by the quantum language translator 244.
[0064] Next, referring to FIG. 4, an example of a block diagram of quantum computer components of a digital model representation according to an exemplary embodiment is illustrated. This figure shows an example of an execution form of the digital model representation 226 of FIG. 2.
[0065] The illustrated digital model representation 226 includes several different quantum computer components defined by the model and other information. The quantum computer component 228 of FIG. 2 within the illustrated digital model representation 226 can be defined by the gate model 400 within the model 401. The quantum computer component 228 may also be defined by a model 401 selected from at least one of a qubit model 402 or a memory model 404. The digital model representation 226 may also include information selected from at least one of a memory state 406, a quantum program 408, or other suitable information.
[0066] In this example, the gate model 400 defines the quantum computer component 228 in the form of a gate 412. In this example, the gate 412 represents a process that can be executed in a quantum process. The gate 412 is a quantum logic gate that is referred to as "gates" in the example. Each gate defined in the gate model 400 can execute a process on one or more qubits.
[0067] The gate 412 can be configured to represent the quantum computer component 228. This configuration includes the connections of the gates 412 to each other, whereby the configuration of the gates 412 enables the process 220 for the process 204 of FIG. 2 to be executed. Examples of the gate 412 defined by the gate model 400 include at least one of a Hadamard gate, a Pauli gate, a rotation gate, a control-U gate, a phase gate, or other suitable types of gates.
[0068] In addition, the gate model 400 may also include a set of supergate models 410 that define supergates 414. One supergate defined within a plurality of supergates 414 may be used to represent more complex processing. A supergate 414 is a gate configuration defined by a supergate model 410. For example, a supergate can be a subroutine, a function, or some other suitable structure. One supergate of the set of supergates 414 includes two or more gates 412. In an embodiment, these two or more gates 412 are in a permutation sequence. In other words, a supergate is a representation of two or more gates having connections between the gates, whereby this configuration of the gates in the supergate executes processing related to routines, subroutines, functions, or other processing in process 204.
[0069] In this embodiment, the supergate model 410 can be used to remove the encoding of instructions that may involve cumbersome and error-prone operations. Further, the use of the supergate model 410 enables the reuse of at least one of the program instructions or circuit configurations represented as a supergate as a subroutine unit.
[0070] For example, the quantum algorithm in process 204 of FIG. 2 can use the quantum phase estimation (QPE) algorithm as a single step within a larger algorithm for problem solving. However, implementing such an algorithm each time it is needed, either for an operator to encode instructions or to arrange the use of individual gates within the digital model representation 226, can itself be more difficult and time-consuming.
[0071] In this embodiment, a supergate may exist for subroutines (such as quantum phase estimation). By having a supergate for quantum phase estimation, an operator can quickly identify the use of quantum phase estimation applied to a subset of qubits of a single qubit unitary gate, and this supergate can automatically generate instructions for quantum phase estimation. Examples of other types of processes related to subroutines that can be implemented as supergates include quantum Fourier transform (QFT), inverse quantum Fourier transform, and other suitable types of subroutines or processes.
[0072] In this embodiment, the qubit model 402 defines qubits 416 used in a quantum computer. A qubit is the basic unit of information in a quantum computer and can take various forms.
[0073] In this embodiment, the qubit model 402 can define one or more types of qubits 416 that can be used within a quantum computer. For example, the qubit model 402 can include qubit types of qubits 416 selected from at least one of idealized qubits, ion trap qubits, neutral atom qubits, superconducting qubits, electron spin qubits, photon polarization qubits, dot spin qubits, or any other suitable type of qubit.
[0074] The memory model 404 defines the memory 418 used in a quantum computer. For example, the memory model can define at least one of the type of memory, the memory size, or other information about the memory 418. The memory 418 is used to store information (such as qubits 416). The memory 418 can take several different forms defined by the memory model 404. For example, the memory 418 can be selected from at least one of auxiliary memory, temporary memory, working memory, noisy memory, superposition state, entangled state, or other suitable types of quantum memory or combinations of quantum memories.
[0075] The illustrated memory state 406 is information indicating the initial states of various quantum computer components (such as the memory within a quantum computer). For example, the memory state 406 can indicate the initial states of the qubits in the memory 418. Further, the quantum program 408 is a set of information composed of digital model representations 226 of components that represents the set of processes 220 to be executed on a quantum computer.
[0076] Thus, instruction 218 can be executed by a set 202 of quantum computers for process 204, where instruction 218 exists in the desired form (e.g., in a particular quantum programming language) within the set 202 of quantum computers. In other words, each quantum computer in the set 202 of quantum computers can execute the same process, even if the architectures of the set 202 of quantum computers are heterogeneous. In other words, the set 202 of quantum computers may have different hardware architectures and may support different quantum programming languages. By using process manager 214, a single process can be realized and distributed across multiple quantum computers and quantum computer 202 in a more efficient manner than in the prior art where processes can be realized independently or separately in different languages. By using quantum language translator 212 in process manager 214, process 204 can be distributed across separate quantum computers having different computer types among the plurality of quantum computers 202.
[0077] Next, referring to FIG. 5, an example of a diagram for generating instructions of a target quantum programming language according to an exemplary embodiment is illustrated. In this example, instruction 500 is a code line of quantum assembly language (QASM). Instruction 500 includes Hadamard processing 502 and control-NOT processing 504. In this example, process manager 214 may apply translator input section 300 of quantum language translator 244 for QASM to obtain digital model representation 506. In this example, digital model representation 506 includes two quantum computer components (Hadamard gate 508 and control-NOT gate 510).
[0078] In this example, instructions 512 can be generated by sending the digital model representation 506 to the translator output section 302 of the quantum language translator 244 for QASM. In this example, a universal gate set different from the universal gate set used by instruction 500 to obtain the digital model representation 506 is selected. In this example, instruction 500 uses a universal gate set that includes only gates in the form of rotations and is processed by the quantum language translator. As a result, instructions 512 are in the form of code where each line of code is a rotation. In this embodiment, a universal gate set common to ion trap computers is also selected. This selection can be made using the hardware database 249, taking into account the specification that ion trap hardware will be used in a quantum computer (in this quantum computer, instructions 512 will be executed using the corresponding entry in the database indicating that the {Rx, Ry} universal gate set is used for ion trap hardware).
[0079] In another example, circuit layout code can be an example of another type of output that can be generated by the quantum language translator for circuit layout using the digital model representation 506 of FIG. 5. In this example, the instructions are in a form suitable for the circuit layout code, which is used to define a circuit layout that defines a circuit for executing the process. The circuit layout code can be for a circuit simulation program or can be used to select the actual circuit used in the quantum computer to execute the process. The circuit layout code form of the instructions does not necessarily have a one-to-one correspondence with the program code in the instructions generated for the digital model representation. In other words, the instructions can take the form of code of at least one of a programming language or a code that defines a circuit.
[0080] The diagram of the data structure of FIG. 5 is presented as an example of a state in which an instruction is converted into a digital model representation and can be returned to the instruction. This diagram is not intended to limit the manner in which other embodiments are implemented. For example, instruction 500 in FIG. 5 is shown as having two lines of code in this embodiment only to avoid obscuring the explanation of how data is converted between the instruction and the digital model representation of the quantum computer components. In other embodiments, there may be hundreds or thousands of lines of code within instruction 500. Similarly, digital model representation 506 can be much more complex than that shown in this embodiment.
[0081] In one embodiment, there are one or more technical solutions that overcome the technical problems associated with quantum processing to execute processing for processes in multiple quantum computers. As a result, one or more technical solutions can present a technical effect of enabling the distribution of a process (such as a quantum algorithm) to multiple quantum computers having different hardware architectures more efficiently and accurately than the prior art.
[0082] Computer system 210 can be configured to execute at least one of the steps, processes, or actions described in various embodiments using software, hardware, firmware, or a combination thereof. As a result, computer system 210 operates as a special-purpose computer system in which process manager 214 in computer system 210 enables improvement in the performance of quantum computer 202 within computer system 210. Specifically, compared to a general-purpose computer system currently available without process manager 214, process manager 214 converts computer system 210 into a special-purpose computer system.
[0083] In this embodiment, by using the process manager 214 in the computer system 210, the process is integrated into the actual application of quantum computing, thereby improving the performance of the computer system 210. In other words, the process manager 214 in the computer system 210 is for integrating the actual application of the process into the process manager 214 in the computer system 210, which enables generating instructions 218 for the quantum computer 202 in a more steady and accurate manner than the prior art. In this embodiment, the process manager 214 in the computer system 210 uses a digital model representation and a quantum language translator to perform conversions between different quantum programming languages. By doing so, one computer can have various hardware in a more steady and reproducible manner than the prior art. The process manager 214 in the computer system 210 provides the actual application of quantum computing in such a way that the process for the quantum computer can be realized and automatically converted into instructions for quantum computers with various computer types. Such instructions may include at least one of circuit code identifying program code or circuit arrangement for the process.
[0084] The various features in the embodiment provide the ability to execute processes on quantum computers with various computer types with improved accuracy and consistency compared to the prior art. In this embodiment, a process (such as one related to a quantum algorithm) can be represented in a digital model. This digital model representation can be used to automatically generate instructions (such as program code or code for circuit arrangements for various computer types of quantum computers). In other words, different computer types may have different arrangements and different constraints regarding how processing can be performed.
[0085] Furthermore, in one embodiment, a supergate may be used to enable at least one of quickly implementing or easily implementing the process of forming a routine, subroutine, or function in the process. By using a supergate, not only can cumbersome and error-prone operations be removed, but also instruction reuse becomes possible. In this embodiment, a process represented as a digital model representation may enable the generation of instructions for a specific type of hardware within a quantum computer. For one digital model representation of the process of selecting a universal gate set for a particular type of quantum computer, one universal gate set may be identified. In this manner, in an embodiment, the conversion of the digital model representation may be customized for a specific type of quantum computer using a quantum language translator. Furthermore, in this embodiment, by using a quantum language translator, the number of conversions of the programming language required to create instructions for quantum computers having various computer types may be reduced.
[0086] The diagram of the quantum computing environment 200 of FIG. 2 is not intended to suggest physical or architectural limitations to the manner in which an exemplary embodiment may be implemented. In addition to or instead of the illustrated components, other components may also be used. Some components may not be necessary. Also, blocks are presented to illustrate some functional components. When implemented in an exemplary embodiment, one or more of these blocks may be combined, divided into different blocks, or combined and divided. For example, the quantum computer 202 may be a separate component external to the computer system 210.
[0087] Next, referring to FIG. 6, an example of a flowchart of a process for quantum processing according to an exemplary embodiment is illustrated. The process of FIG. 6 can be implemented in hardware, software, or both. When implemented in software, the process can take the form of program code executed by one or more processor units disposed within one or more hardware devices in one or more computer systems. For example, the process can be implemented in the process manager 214 in the computer system 210 of FIG. 2.
[0088] The process begins by identifying a target quantum programming language for the process for the quantum computer (process 600). The process selects one universal gate set from a plurality of universal gate sets based on the computer type of the quantum computer (process 602). Using some of the gates in the universal gate set selected in process 602, any process executable for a particular quantum computer can be executed.
[0089] The process sends the instructions for the process in the source quantum programming language to one of the set of quantum language translators, a source quantum language translator (process 604). The source quantum language translator in process 604 outputs a digital model representation of the quantum computer components configured to execute the process using the instructions.
[0090] The process sends the digital model representation of the quantum computer components and the selected universal gate set to a target quantum language translator, whereby this quantum language translator uses the digital model representation of the quantum computer components and the universal gate set selected according to the computer type of the quantum computer to output the instructions for the process in the target quantum programming language. The process then ends.
[0091] Next, referring to FIG. 7, another example of a flowchart of a process for quantum processing according to an exemplary embodiment is illustrated. The process of FIG. 7 can be implemented in hardware, software, or both. When implemented in software, the process can take the form of program code executed by one or more processor units disposed within one or more hardware devices in one or more computer systems. For example, the process can be implemented in the process manager 214 in the computer system 210 of FIG. 2.
[0092] The process begins by identifying the process to be executed on the set of quantum computers (process 700). The process generates a digital model representation of the process (process 702). In this example, the digital model representation generated in process 702 can be generated in several different ways.
[0093] For example, the process can be in the form of quantum language instructions that are converted to a digital model representation using a quantum language translator. In another example, the digital model representation can be created by user input received from a human-machine interface.
[0094] In yet another example, the digital model representation can be generated from an initial digital model representation created by the conversion of quantum programming language instructions. The initial digital model representation can be modified through user input to the human-machine interface to create a digital model representation of the process to be executed on the set of quantum computers.
[0095] The process selects one quantum computer from the set of quantum computers (process 704). The process identifies one quantum programming language (process 706). The process identifies one universal gate set for the particular quantum computer and quantum programming language (process 708).
[0096] The process uses a digital model representation, a quantum programming language, and a universal gate set selected to be used to generate instructions for a quantum computer (process 710). The process determines whether there exists another quantum computer for which the instructions have not been generated (process 712). If there exists another quantum computer, the process returns to process 704 described above. If not, the process ends.
[0097] Next, referring to FIG. 8, another example of a flowchart of a process for quantum processing according to an exemplary embodiment is illustrated. The process of FIG. 8 can be implemented in hardware, software, or both. When implemented in software, the process can take the form of program code executed by one or more processor units disposed within one or more hardware devices in one or more computer systems. For example, the process can be implemented in the process manager 214 in the computer system 210 of FIG. 2.
[0098] The process of FIG. 8 is an example of additional processing that can be executed with the process of the flowchart of FIG. 8.
[0099] In this example, the process begins by sending instructions to a set of quantum computers (process 800). The process then executes the instructions on the set of quantum computers (process 802).
[0100] The process receives the results resulting from the processing of the instructions in the set of quantum computers (process 804). The process then ends.
[0101] The processes of the flowchart of FIG. 8 can be executed for several different purposes. For example, these processes may be executed for a benchmarking process, in which multiple instructions for the same process are executed on various quantum computers. If this process is part of a benchmarking process, the instructions may be for a benchmarking test. Various parameters for the process may include at least one of processor execution time, memory used, processor resources used, accuracy compared to known methods, probability of a correct solution compared to known methods, errors, noise, circuit execution time, or other suitable parameters.
[0102] In another example, a process distributed across a set of quantum computers is executed on this set of quantum computers to solve a part of a problem. In this example, the quantum computers may be part of a grid computing system where the processes executed on the quantum computers provide results as solutions to the problem.
[0103] Referring now to FIG. 9, an example of a flowchart of a process for benchmarking a quantum computer according to an exemplary embodiment is illustrated. The process of FIG. 9 can be implemented in hardware, software, or both. If the process is implemented in software, it can take the form of program code executed by one or more processor units disposed within one or more hardware devices in one or more computer systems. For example, the process may be implemented in the process manager 214 in the computer system 210 of FIG. 2.
[0104] The process of FIG. 9 can be used to generate a set of instructions for a set of benchmark problems that are executed by a set of quantum computers. The set of benchmark problems can be one or more benchmark problems, depending on the implementation form. This process can be executed to benchmark one quantum computer or a plurality of quantum computers. If there is one computer, the results can be compared with the results of previous benchmark tests.
[0105] The instructions can be executed to obtain the results of comparisons between quantum computers. In this example, the translator output section of a quantum language translator is used to generate instructions to be executed on a quantum computer from the digital model representation of the process of implementing the benchmark problem.
[0106] The process begins by receiving a set of benchmark problems (process 900). In this embodiment, the benchmark problems in process 900 can be at least one of a benchmark optimization problem, a quantum chemical phenomenon problem, a materials problem, a minimum eigenvalue problem, or other problems that can be executed on a quantum computer. The process also receives identification information for the set of quantum computers for the benchmark test (process 902). In process 902, if the set of quantum computers is a number of quantum computers greater than one, these quantum computers can be of the same computer type with different hardware, different computer types, or some combination thereof.
[0107] The process determines whether all benchmark problems in the set of benchmark problems have been processed (process 904). If not all benchmark problems have been processed, the process selects an unprocessed benchmark problem (process 906). The process generates a digital model representation of this benchmark problem (process 908).
[0108] The process then determines whether all quantum computers in the set of quantum computers have been processed (process 910). If all quantum computers have been processed, the process returns to process 904. If not, the process selects an unprocessed quantum computer for processing (process 912). The process identifies a quantum language translator for this quantum computer and a desired universal gate set (process 914). This quantum language translator is a quantum language translator for a particular language or a particular computer type of a quantum computer.
[0109] For example, the selection of the quantum language translator can be done using the hardware database 249 of FIG. 2, similar to the universal gate set. The hardware database 249 can include entries that map a certain type of ion trap computer to both a universal gate set and a quantum programming language. In this illustrated example, when a circuit layout is generated, a universal gate set can be looked up and used. If the digital model representation is to be converted to code in a programming language, the quantum programming language associated with the computer type of the quantum computer type is looked up and used. Further, a list of programming languages supported by this computer system can be made available for selection.
[0110] In another example, a worker may want to see the corresponding instructions for a particular programming language. In this case, instead of using the hardware database 249, the worker can generate a user input that selects the programming language used to output the instructions.
[0111] The process uses a quantum language translator (process 916) to generate instructions for a quantum computer using a digital model representation of a benchmark problem. In this example, the instructions can be at least one of program code of a programming language or circuit design code that defines a circuit. In process 916, a universal gate set can be input to the quantum language translator.
[0112] The process then sends the instructions to the quantum computer (process 918). In process 918, the quantum computer can be an actual physical computer or a simulation. The process receives the results resulting from the execution of the instructions on the quantum computer (process 920). The process saves this result (process 922). The process then returns to process 910.
[0113] Referring back to process 904, if all benchmark problems have been processed, the process analyzes the results of executing the instructions on the set of benchmark problems on the quantum computer (process 924). The process then ends.
[0114] The flowcharts and block diagrams in the various illustrated embodiments illustrate the architecture, functionality, and processing of some possible implementations of an apparatus and method in one exemplary embodiment. In this regard, each block in the flowchart or block diagram can represent at least one of a module, a segment, a function, or a portion of a process or step. For example, one or more of the blocks can be implemented as program code, hardware, or a combination of program code and hardware. When implemented in hardware, the hardware can take the form of, for example, an integrated circuit manufactured or configured to execute one or more of the processes in the flowchart or block diagram. When implemented as a combination of program code and hardware, this implementation can take the form of firmware. Each block in the flowchart or block diagram can be implemented using a dedicated hardware system that performs various processes or various combinations of dedicated hardware and program code executed by this dedicated hardware.
[0115] In some alternative implementations of the exemplary embodiment, one or more of the functions described in the block may be performed out of the order described in the figure. For example, in some cases, depending on the related functions, two blocks shown consecutively may be performed substantially simultaneously, or sometimes these blocks may be performed in reverse order. Also, in addition to the blocks shown in the flowchart or block diagram, other blocks may be added.
[0116] Referring now to FIG. 10, an example of a block diagram of a data processing system according to an exemplary embodiment is illustrated. The data processing system 1000 can be used to implement the server computers 104 and 106 and the client device 110 of FIG. 1. The data processing system 1000 can also be used to implement the computer system 210 of FIG. 2. In this example, the data processing system 1000 includes a communication framework 1002. The communication framework 1002 provides communication between a processor unit 1004, a memory 1006, a fixed storage device 1008, a communication unit 1010, an input / output (I / O) unit 1012, and a display 1014. In this example, the communication framework 1002 is in the form of a bus system.
[0117] The processor unit 1004 serves to execute instructions for software that can be loaded into the memory 1006. The processor unit 1004 includes one or more processors. For example, the processor unit 1004 can be selected from at least one of a multi-core processor, a central processing unit (CPU), a graphics processing unit (GPU), a physics processing unit (PPU), a digital signal processor (DSP), a network processor, or any other suitable type of processor. Further, the processor unit 1004 may be implemented using one or more heterogeneous processor systems in which a primary processor and a secondary processor coexist on a single chip. As another example, the processor unit 1004 can be a symmetric multi-processor system in which a plurality of processors of the same type are included on a single chip.
[0118] Memory 1006 and fixed storage device 1008 are examples of storage devices 1016. A storage device is any hardware capable of storing information, such as, but not limited to, at least one of data, program code in functional form, or other suitable information, either temporarily, permanently, or both temporarily and permanently. Storage device 1016 may also be referred to as a computer-readable storage device in these embodiments. In these examples, memory 1006 can be, for example, random access memory or any other suitable volatile or non-volatile storage device. Fixed storage device 1008 can take various forms depending on the particular implementation.
[0119] For example, fixed storage device 1008 can include one or more components or devices. For example, fixed storage device 1008 can be a hard drive, a solid state drive (SSD), flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above. The medium used by fixed storage device 1008 may be removable. For example, a removable hard drive can be used for fixed storage device 1008.
[0120] In these embodiments, communication unit 1010 provides communication with other data processing systems or devices. In these embodiments, communication unit 1010 is a network interface card.
[0121] Input / output unit 1012 enables the input and output of data between the data processing system 1000 and another device that can be connected thereto. For example, input / output unit 1012 can provide a connection for user input through at least one of a keyboard, a mouse, or some other suitable input device. Further, input / output unit 1012 can send output to a printer. Display 1014 provides a mechanism for displaying information to the user.
[0122] Instructions for at least one of an operating system, an application, or a program may be disposed within a storage device 1016 that communicates with a processor unit 1004 through a communication framework 1002. The processes of various embodiments may be executed by a processor unit 1004 using computer-implemented instructions that may be disposed within a memory (such as memory 1006).
[0123] Such instructions are referred to as program code, computer-usable program code, or computer-readable program code that may be read and executed by a processor within a processor unit 1004. In various embodiments, the program code may be embodied on various physical or computer-readable storage media (such as memory 1006 and fixed storage device 1008).
[0124] Program code 1018 may be disposed in functional form on a selectively removable computer-readable medium 1020 and may be loaded or transmitted to a data processing system 1000 for execution by a processor unit 1004. In these examples, the program code 1018 and the computer-readable medium 1020 form a computer program product 1022. In this example, the computer-readable medium 1020 is a computer-readable storage medium 1024.
[0125] In these examples, the computer-readable storage medium 1024 is a physical or tangible storage device used to store the program code 1018, rather than a medium that propagates or transmits the program code 1018. In this book, the computer-readable storage medium 1024 should not be construed as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (such as an optical pulse passing through an optical fiber cable), or, in this book, an electrical signal transmitted through a wire should not be construed as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (such as an optical pulse passing through an optical fiber cable), nor should it be construed as an electrical signal transmitted through a wire.
[0126] Alternatively, the program code 1018 can be transmitted to the data processing system 1000 using a computer-readable signal medium. The computer-readable signal medium can be, for example, a propagated data signal that includes the program code 1018. For example, the computer-readable signal medium can be at least one of an electromagnetic signal, an optical signal, or any other suitable type of signal. Such a signal can be transmitted via a connection, such as a wireless connection, an optical fiber cable, a coaxial cable, a wire, or any other suitable type of connection.
[0127] Further, as used in this book, "computer-readable media 1020" can be singular or plural. For example, program code 1018 can be arranged within computer-readable media 1020 in the form of a single storage device or storage system. In another example, program code 1018 can be arranged within computer-readable media 1020 that is distributed across multiple data processing systems. In other words, some of the instructions in program code 1018 can be arranged within one data processing system, while other instructions in program code 1018 can be arranged within one data processing system. For example, a portion of program code 1018 can be arranged within computer-readable media 1020 of a server computer, while another portion of program code 1018 can be arranged within computer-readable media 1020 arranged within a set of client computers.
[0128] The various components illustrated with respect to data processing system 1000 are not intended to impose architectural limitations on the manner in which various embodiments can be implemented. In some embodiments, one or more of the components can be incorporated into another component or otherwise formed as part of another component. For example, in some embodiments, memory 1006 or a portion thereof can be integrated within processor unit 1004. Various exemplary embodiments can be implemented in a data processing system that includes components additional to or alternative to the components illustrated with respect to data processing system 1000. The other components shown in FIG. 10 may be different from the illustrated embodiments. Various embodiments can be implemented using any hardware device or system capable of executing program code 1018.
[0129] Therefore, the embodiments provide a method, an apparatus, a system, and program code for quantum computing. In one embodiment, there is a method for quantum processing. A target quantum programming language for a process for a quantum computer is identified by a computer system. Based on the computer type of the quantum computer, the computer system selects one universal gate set from a plurality of universal gate sets, and any process executable for a particular quantum computer can be executed using some of the gates in this universal gate set. Instructions for the process in the source quantum programming language are sent by the computer system to one source quantum language translator of a set of quantum language translators, and this source quantum language translator outputs a digital model representation of a quantum computer component configured to execute the process using the instructions. The computer system sends the digital model representation of the quantum computer component and the selected universal gate set to a target quantum language translator, whereby this target quantum language translator uses the digital model representation of the quantum computer component and the universal gate set selected according to the computer type of the quantum computer to output instructions for the process in the target quantum programming language.
[0130] The various features in the embodiments provide the ability to execute processes on quantum computers of various computer types with improved accuracy and consistency over the prior art. In this embodiment, a process (such as one related to a quantum algorithm) can be represented in a digital model. This digital model representation can be used to automatically generate instructions (such as program code, or code for circuit arrangements for various computer types of quantum computers). In other words, different computer types can have different arrangements and different constraints regarding how a process can be executed.
[0131] Furthermore, embodiments include supergates that enable the rapid and easy implementation of routines, subroutines, or functions in a process. In another embodiment, the process representation of a digital model representation may enable the generation of instructions for a particular type of hardware in a quantum computer. In this embodiment, one universal gate set may be identified for one digital model representation of the process. In this manner, in an embodiment, the conversion of the digital model representation may be customized for a particular type of quantum computer using a quantum language translator.
[0132] The descriptions of the various exemplary embodiments are presented for purposes of illustration and description and are not intended to be exhaustive or to limit the embodiments to the disclosed forms. Components that execute actions or processes are described by various embodiments. In one embodiment, a component may be configured to execute the actions and processes described. For example, a component may have a configuration or structural design that provides the component with the ability to execute the actions or processes described as being executed by the component in an embodiment. Further, as used herein, the terms "includes", "has", "contains", and variations thereof are intended to be open transitional terms that do not exclude any additional or other elements and are intended to be inclusive in the same manner as the term "comprises".
[0133] Furthermore, the present disclosure includes embodiments according to the following clauses.
[0134] Clause 1. A quantum processing system (208), a computer system (210), A set (212) of quantum language translators in a computer system (210), which converts instructions (218) for processing (220) in a quantum programming language (222) into a digital model representation (226) of a quantum computer component (228) configured to execute the processing (220), and converts the digital model representation (226) of the quantum computer component (228) configured to execute the processing (220) into instructions (218) for processing (220) in a quantum programming language (222) to be executed on a quantum computer (202), and each quantum language translator (244) in the set (212) of quantum language translators is for a specific quantum programming language among a plurality of quantum programming languages (222), the set (212) of quantum language translators and A plurality of universal gate sets (246), wherein any process executable for a particular quantum computer can be executed using some gates (250) in one universal gate set (248) of the universal gate sets (246), the universal gate set (246) and A process manager (214) in a computer system (210), which sending instructions (218) of a quantum programming language (242) to one source quantum language translator (244) of the set (212) of quantum language translators, wherein the quantum language translator (244) is configured to process the quantum programming language (242) and outputs a digital model representation (226) of a quantum computer component (228), sending the instructions (218) and To send a digital model representation (226) of a quantum computer component (228) to a quantum language translator (244), whereby the quantum language translator (244) uses a universal gate set (248) selected according to the computer type (252) of a specific quantum computer to output instructions (218) for processing (220) in a quantum programming language (242), and to perform the sending of the digital model representation (226), a process manager (214) is provided, A quantum processing system (208).
[0135] Clause 2. The process manager 214 is configured to identify one universal gate set (248) from among a plurality of selected universal gate sets (246), and the selected universal gate set (248) provides a desired level of performance for a specific quantum computer. The quantum processing system (208) according to Clause 1.
[0136] Clause 3. The selection of the universal gate set (248) is sent to the quantum language translator (244) together with the instructions (218). The quantum processing system (208) according to Clause 1 or 2.
[0137] Clause 4. The universal gate set (246) is selected from at least one of the Hadamard gate, phase (S) gate, controlled-X (CNOT) gate, and Toffoli gate; Hadamard gate, phase (S) gate, π / 8 (T) gate, and controlled-X (CNOT) gate; Barenco gate (B); Deutsch gate (D_θ) gate; rotation gates R_x(θ), R_y(θ); rotation gates R_x(θ), R_y(θ); or controlled-Z (CZ) gate. The quantum processing system (208) according to any one of Clauses 1 to 3.
[0138] Clause 5. The quantum language translator (244) configured to receive instructions (218) of a quantum programming language (242) sent to a quantum language translator (244) of a set of quantum language translators (212), and to output a digital model representation (226) of a quantum computer component (228), a translator input unit (300); a translator output unit (302) configured to receive a digital model representation (226) of a quantum computer component (228) sent to the quantum language translator (244), and to output instructions (218) of the quantum programming language (242) for processing (220), the quantum processing system (208) according to any one of clauses 1 to 4, comprising:
[0139] Clause 6. A quantum processing system (208), a computer system (210), a set of quantum language translators (212) in the computer system (210), configured to convert instructions (218) of a quantum programming language (222) for processing (220) into a digital model representation (226) of a quantum computer component (228) configured to execute the processing (220), and to convert a digital model representation (226) of a quantum computer component (228) configured to execute the processing (220) into instructions (218) of a quantum programming language (222) for processing (220) to be executed by a quantum computer (202), each of the quantum language translators in the set of quantum language translators (212) being for a particular quantum programming language among a plurality of quantum programming languages (222), a set of quantum language translators (212); a process manager (214) in the computer system (210), receiving instructions (218) of one quantum programming language (242) among a plurality of quantum programming languages (222), To send an instruction (218) of a quantum programming language (242) to one of the quantum language translators (244) in a set of quantum language translators (212), where the quantum language translator (244) is configured to process the quantum programming language (242) and output a digital model representation (226) of a quantum computer component (228), and to send the instruction (218). To send a digital model representation (226) of a quantum computer component (228) to the quantum language translator (244), whereby the quantum language translator (244) outputs an instruction (218) of the quantum programming language (242) for processing (220), and a process manager (214) configured to perform the sending of the digital model representation (226). A quantum processing system (208).
[0140] Clause 7. The quantum processing system (208) according to clause 6, further comprising a plurality of universal gate sets (246), where any process executable for a particular quantum computer can be executed using some of the gates (250) in one of the universal gate sets (248) of the universal gate sets (246).
[0141] Clause 8. The quantum processing system (208) according to clause 7, wherein the process manager 214 is configured to select one of the universal gate sets (248) of the plurality of universal gate sets (246), and the selected universal gate set (248) provides a desired level of performance for a particular quantum computer.
[0142] Clause 9. The quantum processing system (208) according to clause 8, wherein the identification information of the selected universal gate set (248) is sent to the quantum language translator together with the instruction (218).
[0143] Clause 10. The quantum processing system (208) according to clause 7, wherein the universal gate set (246) is selected from at least one of: a Hadamard gate, a phase (S) gate, a controlled-X (CNOT) gate, and a Toffoli gate; a Hadamard gate, a phase (S) gate, a π / 8 (T) gate, and a controlled-X (CNOT) gate; a Barenco gate (B); a Deutsch gate (D_θ) gate; rotation gates R_x(θ), R_y(θ); rotation gates R_x(θ), R_y(θ); or a controlled-Z (CZ) gate.
[0144] Clause 11. The quantum processing system (208) according to any one of clauses 6 to 10, wherein the process manager (214) is configured to simulate the processing of the digital model representation (226) of the quantum computer component (228) configured to execute the processing (220).
[0145] Clause 12. A quantum language translator (244) is configured such that a translator input unit (300) receives instructions (218) of a quantum programming language (242) sent to one of the quantum language translators (244) of the set of quantum language translators (212), and outputs the digital model representation (226) of the quantum computer component (228); and a translator output unit (302) is configured to receive the digital model representation (226) of the quantum computer component (228) sent to the quantum language translator (244), and output instructions (218) for the processing (220) of the quantum programming language. The quantum processing system (208) according to any one of clauses 6 to 11 comprises the above.
[0146] Clause 13. The quantum processing system (208) according to any one of clauses 6 to 12, wherein the quantum computer component (228) includes a gate (250).
[0147] Clause 14. The quantum processing system (208) according to clause 13, wherein the quantum computer component (228) further includes at least one of a qubit model (402), a memory model (404), a memory state (406), or quantum programming (408).
[0148] Clause 15. The quantum processing system (208) according to clause 13, wherein the gate (250) includes several supergates (414).
[0149] Clause 16. The quantum processing system (208) according to any one of clauses 6 to 15, wherein the quantum computer is selected from one of a superconducting quantum computer and an ion trap quantum computer.
[0150] Clause 17. The quantum processing system (208) according to any one of clauses 6 to 16, wherein the instruction (218) is for one of an application, a program, and a subroutine.
[0151] Clause 18. A method for quantum processing, identifying (600), by a computer system (210), a target quantum programming language for a process (204) for a quantum computer; and selecting (602), by a computer system (210), one universal gate set (248) from a plurality of universal gate sets (246) based on the computer type (252) of the quantum computer, wherein any process executable for a particular quantum computer can be executed using some gates in the universal gate set (248). The computer system (210) transmits (604) to one source quantum language translator of a set of quantum language translators (212) the instructions (218) for the process (204) in the source quantum programming language, where the source quantum language translator is configured to use the instructions (218) to execute the process (204) and output a digital model representation (226) of a quantum computer component (228), transmitting the instructions (218). The computer system (210) transmits (606) to the target quantum language translator the digital model representation (226) of the quantum computer component (228) and a selected universal gate set (248), whereby the quantum language translator outputs the instructions (218) for the processing (220) of the process (204) in the target quantum programming language using the digital model representation (226) of the quantum computer component (228) and the universal gate set (248) selected according to the computer type (252) of the quantum computer, including transmitting (606). Method.
[0152] Clause 19. It is possible to select one universal gate set (248) from a plurality of universal gate sets (246) based on the computer type (252) of the quantum computer. The method according to clause 18, including selecting one universal gate set (248) from a plurality of universal gate sets (246) by the computer system (210) to provide a desired level of performance for the computer type (252) of the quantum computer.
[0153] Clause 20. The method according to clause 18 or 19, wherein the universal gate set (246) is selected from at least one of: a Hadamard gate, a phase (S) gate, a controlled-X (CNOT) gate, and a Toffoli gate; a Hadamard gate, a phase (S) gate, a π / 8 (T) gate, and a controlled-X (CNOT) gate; a Barenco gate (B); a Deutsch gate (D_θ) gate; rotation gates R_x(θ), R_y(θ); rotation gates R_x(θ), R_y(θ); or a controlled-Z (CZ) gate.
[0154] Clause 21. The method according to any one of clauses 18 to 20, further comprising executing, by a computer system (210) on a quantum computer, an instruction (218) of a target quantum programming language.
[0155] Clause 22. A quantum language translator (244) is configured as a translator input unit (300) to receive an instruction (218) of a quantum programming language (242) sent to the quantum language translator (244) of the set of quantum language translators (212) and to output a digital model representation (226) of a quantum computer component (228), and configured as a translator output unit (302) to receive a digital model representation (226) of a quantum computer component (228) sent to the quantum language translator (244) and to output an instruction (218) of the quantum programming language (242) for processing (220). The method according to any one of clauses 18 to 21.
[0156] Clause 23. The method according to any one of clauses 18 to 22, wherein the quantum computer component (228) includes a gate (250).
[0157] Clause 24. The method according to clause 23, wherein the quantum computer component (228) further includes at least one of a qubit model (402), a memory model (404), a memory state (406), or quantum programming (408).
[0158] Clause 25. The method according to clause 23, wherein the gate (250) includes several supergates (414).
[0159] Clause 26. The method according to any one of clauses 18 to 25, wherein the quantum computer is selected from one of a superconducting quantum computer and an ion trap quantum computer.
[0160] Clause 27. The method according to any one of clauses 18 to 26, wherein the instruction (218) is for one of an application, a program, and a subroutine.
[0161] Clause 28. A computer program product (1022) for quantum processing, a computer-readable storage medium (1024), and a first program code stored in the computer-readable storage medium and executable by the computer system (210) to cause the computer system (210) to identify a target quantum programming language for a process (204) for a quantum computer, a second program code stored in the computer-readable storage medium (1024) and executable by the computer system (210) to cause the computer system (210) to select one universal gate set (248) from a plurality of universal gate sets (246) based on the computer type (252) of the quantum computer, wherein any process executable for a particular quantum computer can be executed using some of the gates in the universal gate set (248). A third program code stored in a computer-readable storage medium (1024) and executable by a computer system (210), causing the computer system (210) to send instructions (218) for a process (204) in a source quantum programming language to one of a set (212) of source quantum language translators, wherein the source quantum language translator is configured to output a digital model representation (226) of a quantum computer component (228) that uses the instructions (218) to execute the process (204). A fourth program code stored in a computer-readable storage medium (1024) and executable by a computer system (210), causing the computer system (210) to send the digital model representation (226) of the quantum computer component (228) and a selected universal gate set (248) to a target quantum language translator, whereby the target quantum language translator (244) uses the digital model representation (226) of the quantum computer component (228) and the universal gate set (248) selected according to the computer type (252) of the quantum computer to output instructions (218) for a process (220) for the process (204) in the target quantum programming language. The computer program product (1022) comprises: A computer program product (1022).
[0162] Clause 29. The second program code is The computer program product (1022) according to clause 28, comprising program code stored in a computer-readable storage medium (1024) and executable by a computer system (210), causing the computer system (210) to select one of a plurality of universal gate sets (246) that provides a desired level of performance for the computer type (252) of the quantum computer as the universal gate set (248).
[0163] Clause 30. The universal gate set (246) is selected from at least one of the Hadamard gate, phase (S) gate, controlled-X (CNOT) gate, and Toffoli gate; the Hadamard gate, phase (S) gate, π / 8 (T) gate, and controlled-X (CNOT) gate; the Barenco gate (B); the Deutsch gate (D_θ) gate; the rotation gates R_x(θ), R_y(θ); the rotation gates R_x(θ), R_y(θ); or the controlled-Z (CZ) gate, for the computer program product (1022) according to clause 28 or 29.
[0164] Numerous modifications and variations will be apparent to those skilled in the art. Further, different features may be provided by various exemplary embodiments that are different from other desired embodiments. The selected one or more embodiments are selected and described so as to best explain the principles of the embodiments, the practical applications, and so that others skilled in the art may understand the various modifications suitable for the particular uses contemplated with the disclosure of the various embodiments.
Claims
1. A quantum processing system (208), a computer system (210), a set of quantum language translators (212) in the computer system (210), which converts instructions (218) for processing (220) of a quantum programming language (222) into a digital model representation (226) of a quantum computer component (228) configured to execute the processing (220), and converts the digital model representation (226) of the quantum computer component (228) configured to execute the processing (220) into the instructions (218) for the processing (220) of the quantum programming language (222) to be executed on a quantum computer (202), and each quantum language translator (244) in the set of quantum language translators (212) is for a specific quantum programming language among the plurality of quantum programming languages (222), a set of quantum language translators (212), a plurality of universal gate sets (246), wherein any process executable for a specific quantum computer can be executed using some gates (250) in one of the universal gate sets (248) of the universal gate sets (246), a universal gate set (246), a process manager (214) in the computer system (210), sending the instructions (218) of the quantum programming language (242) to one of the quantum language translators (244) in the set of quantum language translators (212), wherein the quantum language translator (244) is configured to process the quantum programming language (242) and outputs the digital model representation (226) of the quantum computer component (228), sending the instructions (218), simulating the processing of the digital model representation of the quantum computer component configured to execute the processing, and Transmitting the digital model representation (226) of the quantum computer component (228) to the quantum language translator (244), whereby the quantum language translator (244) uses the universal gate set (248) selected according to the computer type (252) of the specific quantum computer to output the instruction (218) of the quantum programming language (242) for the processing (220), and setting the process manager (214) to perform the transmission of the digital model representation (226). A quantum processing system (208). **Claim 2** The process manager (214) is set to identify one of the selected universal gate sets (248) from a plurality of the universal gate sets (246), and the selected universal gate set (248) provides a desired level of performance for a specific quantum computer. The quantum processing system (208) according to claim 1. **Claim 3** The selection of the universal gate set (248) is transmitted to the quantum language translator (244) together with the instruction (218). The quantum processing system (208) according to claim 1 or 2. **Claim 4** The universal gate set (246) is selected from at least one of a Hadamard gate, a phase (S) gate, a control-X (CNOT) gate, and a Toffoli gate; a Hadamard gate, a phase (S) gate, a π / 8 (T) gate, and a control-X (CNOT) gate; a Barenco gate (B); a Deutsch gate (D_θ) gate; rotation gates R_x(θ), R_y(θ); rotation gates R_x(θ), R_y(θ); or a control-Z (Cz) gate. The quantum processing system (208) according to any one of claims 1 to 3. **Claim 5** The quantum language translator (244) receives the instruction (218) of the quantum programming language (242) transmitted to the quantum language translator (244) among the set of quantum language translators (212), and outputs the digital model representation (226) of the quantum computer component (228). A translator input unit (300) set to perform the above. Receiving, by the quantum language translator (244), the digital model representation (226) of the quantum computer component (228) transmitted thereto, and outputting, by the quantum programming language (242), the instruction (218) for the processing (220); a translator output unit (302) configured to perform the above; a quantum processing system (208) according to any one of claims 1 to 4.
6. A method for quantum processing, comprising: Identifying (600), by a computer system (210), a target quantum programming language for a process (204) for a quantum computer; Selecting (602), by the computer system (210), one universal gate set (248) from a plurality of universal gate sets (246) based on the computer type (252) of the quantum computer, wherein any process executable for a particular quantum computer can be executed using some gates (250) in the universal gate set (248); selecting the universal gate set (248); Transmitting (604), by the computer system (210), an instruction (218) for the process (204) of a source quantum programming language to one source quantum language translator of a set (212) of quantum language translators, wherein the source quantum language translator outputs a digital model representation (226) of a quantum computer component (228) configured to execute the process (204) using the instruction (218); transmitting the instruction (218); Simulating, by a process manager in the computer system, the processing of the digital model representation of the quantum computer component configured to execute the process. The computer system (210) transmits the digital model representation (226) of the quantum computer component (228) and the selected universal gate set (248) to the target quantum language translator (606), whereby the quantum language translator uses the digital model representation (226) of the quantum computer component (228) and the universal gate set (248) selected according to the computer type (252) of the quantum computer to output and transmit the instructions (218) for the processing (220) of the process (204) in the target quantum programming language, including Method. **Claim 7** Selecting one of the plurality of universal gate sets (246) based on the computer type (252) of the quantum computer, The method according to claim 6, including selecting, by the computer system (210), one of the universal gate sets (246) of the plurality of universal gate sets (246) that provides a desired level of performance for the computer type (252) of the quantum computer. **Claim 8** The universal gate set (246) is selected from at least one of a Hadamard gate, a phase (S) gate, a controlled-X (CNOT) gate, and a Toffoli gate; a Hadamard gate, a phase (S) gate, a π / 8 (T) gate, and a controlled-X (CNOT) gate; a Barenco gate (B); a Deutsch gate (D_θ) gate; rotation gates R_x(θ), R_y(θ); rotation gates R_x(θ), R_y(θ); or a controlled-Z (CZ) gate, The method according to claim 6 or 7, wherein the universal gate set (246) is selected from at least one of the above. **Claim 9** The method according to any one of claims 6 to 8, further including, by the computer system (210), executing the instructions (218) of the target quantum programming language on the quantum computer. **Claim 10** The quantum language translator (244) is Receiving the instruction (218) of the quantum programming language (242) transmitted to the quantum language translator (244) among the set (212) of the quantum language translators, and outputting the digital model representation (226) of the quantum computer component (228), a translator input unit (300) configured to perform the above; Receiving the digital model representation (226) of the quantum computer component (228) transmitted to the quantum language translator (244), and outputting the instruction (218) for the processing (220) of the quantum programming language (242), a translator output unit (302) configured to perform the above, the method according to any one of claims 6 to 9.
11. The method according to any one of claims 6 to 10, wherein the quantum computer component (228) includes a gate (250).
12. The method according to claim 11, wherein the quantum computer component (228) further includes at least one of a quantum bit model (402), a memory model (404), a memory state (406), or quantum programming (408).
13. The method according to claim 11, wherein the gate (250) includes some supergates (414).
14. The method according to any one of claims 6 to 13, wherein the quantum computer is selected from one of a superconducting quantum computer and an ion trap quantum computer.
15. The method according to any one of claims 6 to 14, wherein the instruction (218) is for one of an application, a program, and a subroutine.
16. A computer-readable storage medium storing program code, wherein when the program code is executed by a computer system (210), the computer system (210) is caused to execute the method according to any one of claims 6 to 15, the computer-readable storage medium.
Citation Information
Patent Citations
Quantum program conversion apparatus, its method and program, and recording medium
JP2006331249A
Server-based code compilation
JP2011501325A
Memory offloading a problem using accelerators
US10671550B1