Quantum processing system

By using a quantum language translator and process manager in a quantum processing system, the problem of the complexity of implementing quantum algorithms in quantum computers is solved, enabling efficient and accurate instruction generation and process management across different architectures.

CN113807523BActive Publication Date: 2025-11-25THE BOEING CO
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202110672106.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-06-17
Filing Date
2021-06-17
Publication Date
2025-11-25
Estimated Expiration
2041-06-17

AI Technical Summary

Technical Problem

The process of creating and implementing quantum algorithms in quantum computers using existing technologies is complex and time-consuming, and different types of quantum computers may lead to differences in benchmark results, making it difficult to effectively manage and compare their performance.

Method used

A quantum processing system, including a computer system, a quantum language translator, and a process manager, is used to achieve unified instruction generation across different quantum computer architectures by converting instructions of a quantum programming language into digital model representations of quantum computer components and selecting appropriate general-purpose gate sets.

Benefits of technology

It improves the execution efficiency and accuracy of quantum algorithms on different quantum computers, reduces repetitive work and errors, improves the quality and consistency of instruction generation, and simplifies process management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113807523B_ABST
    Figure CN113807523B_ABST
Patent Text Reader

Abstract

A quantum processing system is disclosed. The disclosure relates to a method, apparatus, system, and computer program product (1022) for quantum processing. Target quantum programming for a process (204) is identified. A universal gate set (248) is selected based on a computer type (252) of the quantum computer. The universal gate set (248) can be used to perform for any possible operation of the particular quantum computer. Instructions (218) for the process (204) in a source quantum programming language are sent to a source quantum language translator, which outputs a digital model representation (226) of a quantum computer component (228) arranged to perform the process (204) using the instructions (218). The digital model representation (226) of the quantum computer component (228) and the universal gate set (248) are sent to a target quantum language translator, which outputs instructions (218) for operations (220) of the process (204) in a target quantum programming language using the digital model representation (226) of the quantum computer component (228) and the universal gate set (248) for the computer type (252) of the quantum computer.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure relates generally to an improved computer system, and in particular, to a method, apparatus, system, and computer program product for managing quantum process execution of a quantum computer. BACKGROUND

[0002] A quantum computer is a computer that executes sequences of instructions in quantum-mechanical systems. The instructions are for processes also known as quantum algorithms. The processes involve quantum-mechanical phenomena such as superposition and entanglement to perform computations. Quantum computers can employ sophisticated programming to use processing power efficiently for solving problems.

[0003] Quantum computers can provide computational advantages for tasks including such as optimization, machine learning, cryptography, and other tasks. There are different types of quantum computers. For example, a computer can take the form of an ion-trap quantum computer, a superconducting quantum computer, a topological quantum computer, or other types of quantum computer architectures. These different architectures can have different development tools, stacks, and programming languages.

[0004] Because there are multiple computer types, development tools, and programming languages for quantum computers, creating processes such as quantum algorithms and implementing them in different languages and hardware can be time-consuming and challenging.

[0005] Therefore, it is desirable to have a method and apparatus that takes into account at least some of the issues discussed above, as well as possibly other issues. For example, it is desirable to have a method and apparatus that overcomes technical problems of quantum processing in quantum computers. SUMMARY

[0006] Embodiments of the present disclosure provide a quantum processing system comprising a computer system; a set of quantum language translators in the computer system; universal gate sets; and a process manager in the computer system. The set of quantum language translators are configured to convert instructions in a quantum programming language for an operation into a digital model representation of quantum computer components arranged to perform the operation, and convert the digital model representation of quantum computer components arranged to perform the operation into instructions in the quantum programming language for the operation for execution in a quantum computer. Each quantum language translator in the set of quantum language translators is for a particular quantum programming language in the quantum programming languages. Any possible operation for a particular quantum computer can be performed using a number of gates in a universal gate set of the plurality of universal gate sets. The process manager is configured to send instructions in a quantum programming language to a quantum language translator in the set of quantum language translators. The quantum language translator is configured to handle the quantum programming language and output the digital model representation of quantum computer components. The process manager is configured to send the digital model representation of quantum computer components to the quantum language translator such that the quantum language translator outputs instructions in the quantum programming language for the operation using universal gates selected for 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 are configured to convert instructions in a quantum programming language for an operation into a digital model representation of quantum computer components arranged to perform the operation, and convert the digital model representation of quantum computer components arranged to perform the operation into instructions in the quantum programming language for the operation for execution in a quantum computer. Each quantum language translator in the set of quantum language translators is for a particular quantum programming language in the quantum programming languages. The process manager is configured to receive instructions in a quantum programming language of a plurality of quantum programming languages. The process manager is configured to send instructions in the quantum programming language to a quantum language translator in the set of quantum language translators. The quantum language translator is configured to handle the quantum programming language and output the digital model representation of quantum computer components. The process manager is configured to send the digital model representation of quantum computer components to the quantum language translator such that the quantum language translator outputs instructions in the quantum programming language for the operation.

[0008] Another embodiment of the present disclosure provides a method for quantum processing. Target quantum programming for a process of a quantum computer is identified by a computer system. A set of universal gates is selected by the computer system from a plurality of sets of universal gates, where a number of gates in the set of universal gates can be used to perform for any possible operation of the particular quantum computer. An instruction for the process in a source quantum programming language is sent by the computer system to a source quantum language translator in a set of quantum language translators, where the source quantum language translator outputs a digital model representation of a quantum computer component arranged to perform the process using the instruction. The digital model representation of the quantum computer component and the selected set of universal gates are sent by the computer system to a target quantum language translator, such that the quantum language translator outputs an instruction for the operation in a target quantum programming language using the digital model representation of the quantum computer component and the set of universal gates selected for 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 first, second, third, and fourth program code stored on a computer-readable storage medium. The first program code is executable by a computer system to cause the computer system to identify a target quantum programming language for a process of a quantum computer. The second program code is executable by the computer system to cause the computer system to select a set of universal gates from a plurality of sets of universal gates based on a computer type of the quantum computer. A number of gates in the set of universal gates can be used to perform for any possible operation of the particular quantum computer. The third program code is executable by the computer system to cause the computer system to send an instruction for the process in a source quantum programming language to a source quantum language translator in a set of quantum language translators. The source quantum language translator outputs a digital model representation of a quantum computer component arranged to perform the process using the instruction. 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 set of universal gates to a target quantum language translator, such that the quantum language translator outputs an instruction for the operation in a target quantum programming language using the digital model representation of the quantum computer component and the set of universal gates selected for the computer type of the quantum computer.

[0010] The features and functionalities can be implemented independently in various embodiments of the present disclosure, or can be combined in other embodiments, where further details are visible with reference to the following description and drawings. BRIEF DESCRIPTION OF DRAWINGS

[0011] The novel features believed characteristic of the illustrative embodiments are set forth in the appended claims. The illustrative embodiments, and the preferred modes of use thereof, however, best can be understood by reference to the following detailed description of the illustrative embodiments of the present disclosure taken in conjunction with the accompanying drawings, in which:

[0012] Figure 1 is a pictorial representation of a network of data processing systems in which illustrative embodiments can be implemented;

[0013] Figure 2 is a block diagram of a quantum computing environment in accordance with an illustrative embodiment;

[0014] Figure 3 is an illustration of a block diagram of a quantum language translator in accordance with an illustrative embodiment;

[0015] Figure 4 is an illustration of a block diagram of a quantum computer component in a digital model representation in accordance with an illustrative embodiment;

[0016] Figure 5 is an illustration of a pictorial representation of instruction generation in a target quantum programming language in accordance with an illustrative embodiment;

[0017] Figure 6 is an illustration of a flow diagram of a quantum processing procedure in accordance with an illustrative embodiment;

[0018] Figure 7 is another illustration of a flow diagram of a quantum processing procedure in accordance with an illustrative embodiment;

[0019] Figure 8 is yet another illustration of a flow diagram of a quantum processing procedure in accordance with an illustrative embodiment;

[0020] Figure 9 is an illustration of a flow diagram of a procedure for benchmarking a quantum computer in accordance with an illustrative embodiment; and

[0021] Figure 10 is an illustration of a block diagram of a data processing system in accordance with an illustrative embodiment. DETAILED DESCRIPTION

[0022] The illustrative embodiments recognize and take into account one or more different considerations. For example, the illustrative embodiments recognize and take into account that current techniques for implementing procedures in a quantum computer can be more difficult than desired. For example, the illustrative embodiments recognize and take into account that current techniques manually build individual instructions in instructions for a quantum program, where each program is in a separate stack or hardware in a programming language for a particular computer. Those embodiments recognize and take into account that the complexity of these implementations can be error prone and time consuming.

[0023] Illustrative embodiments also recognize and take into account that two different programs for a quantum computer can implement the same process in different ways. These different implementations of the same process can result in differences in benchmarking when comparing different types of quantum computers that can be evaluated.

[0024] Reference is now made to the drawings, and in particular to Figure 1 A pictorial representation of a network of data processing systems in which illustrative embodiments can be implemented is depicted. Network data processing system 100 is a network of computers in which illustrative embodiments can be implemented. Network data processing system 100 contains network 102, which is the medium used to provide communications links between various devices and computers connected together within network data processing system 100. Network 102 can include connections, such as wire, wireless communication links, or fiber optic cables.

[0025] In the depicted example, server computer 104 and server computer 106 are connected to network 102 along with storage unit 108. In addition, client device 110 is connected to network 102. As depicted, client device 110 includes quantum computer 112, quantum computer 114, and client computer 116. Client device 110 can be, for example, a computer, a workstation, or a network computer. In the depicted example, server computer 104 provides information, such as boot files, operating system images, and application programs, to client device 110. In addition, 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 illustrative example, server computer 104, server computer 106, storage unit 108, and client device 110 are network devices connected to network 102, where network 102 is the communication medium for these network devices. Some or all of client device 110 can form the Internet of Things (IoT), where these physical devices can connect to network 102 and exchange information with each other through network 102.

[0026] In this example, client device 110 is a client of server computer 104. Network data processing system 100 can include additional server computers, client computers, and other devices not shown. Client device 110 connects to network 102 using at least one of wired, fiber optic, or wireless connections.

[0027] Program code located in network data processing system 100 can be stored on a computer recordable storage medium and downloaded to a data processing system or other device for use. For example, program code can be stored on a computer recordable storage medium on server computer 104 and downloaded to client device 110 over network 102 for use on client device 110.

[0028] In the depicted example, network data processing system 100 is the Internet with the network 102 representing a collection of networks and gateways that use the Transmission Control Protocol / Internet Protocol (TCP / IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, governmental, educational, and other computer systems that route data and messages. Of course, network data processing system 100 also can be implemented to include a number of different types of networks, such as for example, an intranet, a local area network (LAN), a metropolitan area network (MAN), or a wide area network (WAN). Figure 1 is intended to be an example and not a limitation of the architecture of different illustrative embodiments.

[0029] As used herein, "a number of," when used with respect to a quantity, means one or more of the quantity. For example, "a number of different types of networks" is one or more different types of networks.

[0030] Further, the phrase "at least one of' when used with respect to a list of items indicates that a combination of one or more of the listed items can be used and that only one of each of the listed items can be needed. In other words, "at least one of' indicates that any combination of items from the list and any quantity of the items can be used, but not all of the items in the list. The item can be a specific object, thing, or category.

[0031] For example, without limitation, "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 illustrative examples, "at least one of" can be, for example, without limitation, two of item A; one of item B; and ten of item C; four of item B and seven of item C; or other suitable combinations.

[0032] In this illustrative example, quantum computer 112 and quantum computer 114 are client devices 110 that can run processes such as quantum algorithms. As depicted, 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 illustrative example, quantum computer 112 is a superconducting quantum computer, while quantum computer 114 is an ion-trap quantum computer.

[0033] A quantum program can run on both quantum computers, and the performance of the computers can be compared. These comparisons can be part of a benchmarking process to compare the performance of different hardware architectures used to implement quantum computer 112 and quantum computer 114. Through the benchmarking process, the program is expected to perform the same process in both of these quantum computers to obtain information for comparing the performance of quantum computer 112 and quantum computer 114.

[0034] Further, in other illustrative examples, both quantum computers can be used to process tasks. If both quantum computers are used to process the same type of task, these quantum computers can be part of a shared or grid computing system. When both quantum computers are used for distributed processing to solve a problem, the program can be distributed to quantum computer 112 and quantum computer 114 that execute the process using different programming languages. These programming languages can be based on the computer type of the quantum computer.

[0035] In this illustrative example, process manager 130 is located in server computer 104. As depicted, process manager 130 can operate to manage processes. For example, process manager 130 can manage the running of quantum process 132 on quantum computer 112 and quantum process 134 running on quantum computer 114.

[0036] In this illustrative example, quantum process 132 and quantum process 134 are composed of instructions in one or more quantum processing languages. As depicted, instructions 136 for quantum process 132 can be in a different quantum programming language than instructions 138 for quantum process 134.

[0037] In managing quantum process 132 and quantum process 134, process manager 130 can assign the same process to these quantum computers. The same process can run on the quantum computers for determining the performance of these quantum computers running the same process. As another example, the same process can be used to perform tasks for shared processing such as grid computing.

[0038] However, instructions 136 and instructions 138 for the same process can be different. The different instructions can be caused by at least one of different programming languages in quantum computer 112 and quantum computer 114 or different hardware components.

[0039] In this illustrative example, the process manager 130 utilizes digital model representations 140 of hardware components arranged to perform process operations. In this illustrative example, the process manager 130 can use a translator system 142 to translate digital model representations in the digital model representations 140 for a process into instructions 136 and instructions 138. In this way, a single process can be turned into instructions for execution on different hardware systems, such as the quantum computer 112 and the quantum computer 114, which can have different computer types.

[0040] In one illustrative example, a process can be developed using instructions. When the process is ready to be assigned to systems, such as the quantum computer 112 and the quantum computer 114, the instructions can be turned into digital model representations by the process manager 130 using a quantum program translator in the translator system 142. This digital model representation can then be used to generate instructions 136 and instructions 138 assigned to the quantum computer 112 and the quantum computer 114, respectively, for execution. In this way, the need to duplicate work to derive programs in different languages or for different implementations can be reduced. Moreover, through the process manager 130, the overall quality of processes assigned to different hardware systems in different languages can be improved from a uniform source for generating instructions consistently using the process manager 130.

[0041] Reference is now made to Figure 2 a block diagram of a quantum computing environment is depicted in accordance with an illustrative embodiment. In this illustrative example, the quantum computing environment 200 includes components that can be implemented in hardware, such as Figure 1 the hardware shown in the network data processing system 100 in

[0042] In this illustrative example, the quantum computers 202 in the quantum computing environment 200 can each run a process 204. The quantum computers 202 can take several different forms. For example, the quantum computers 202 can have computer types 203 that are the same as or different from each other. In other words, a quantum computer in the quantum computers 202 can have at least one of different physical hardware, architecture, or other features that can have limitations on how operations can be performed compared to other quantum computers in the quantum computers 202 that have a different one of the computer types 203. In illustrative examples, the computer types 203 can be selected from at least one of the following: 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 that combines one or more types of quantum computers, or some other type of quantum computer.

[0043] As depicted, the process 204 can be an operation performed for at least one of a quantum algorithm, a subroutine, a function, or some other type of process. For example, the process 204 can be a single quantum algorithm or multiple quantum algorithms or subroutines.

[0044] In this illustrative example, the quantum processing by the quantum computer 202 can be managed by a quantum processing system 208. In this illustrative example, the quantum processing system 208 includes a computer system 210, a set of quantum language translators 212, and a process manager 214.

[0045] As used herein, a “set,” when used in reference to items, means one or more items. For example, “a set of different types of quantum language translators 212” is one or more different types of quantum language translators 212.

[0046] As depicted, the set of quantum language translators 212 is in the computer system 210. The set of quantum language translators 212 is configured to convert the instructions 218 in the quantum programming language 222 for the operation 220 to the digital model representation 226 of the quantum computer components 228 arranged to perform the operation 220. The set of quantum language translators 212 is further configured to convert the quantum computer components 228 in the digital model representation 226 to the instructions 218 in the quantum programming language 222 for the operation 220 for execution in the quantum computer 202. In this illustrative example, the quantum computer components 228 are components in the quantum computer 202 that operate to perform the operation 220 for the process 204.

[0047] In this illustrative example, the operation 220 is an operation performed for the process 204.

[0048] In this illustrative example, each quantum language translator in the set of quantum language translators 212 is for a particular quantum programming language of a plurality of quantum programming languages 222. As depicted, the quantum computer components 228 in the digital model representation 226 are connected to each other in such a way that the arrangement of the quantum computer components 228 (including their connections) performs the operation 220 for the process 204.

[0049] In this illustrative example, the digital model representation 226 is a data structure used by the process manager 214. In other illustrative examples, the digital model representation 226 can be displayed to a human operator 230 in a graphical user interface 232 in a display system 234.

[0050] The display system 234 is a physical hardware system and includes one or more display devices on which the graphical user interface 232 can be displayed. The display devices 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 heads-up display (HUD), or some other suitable device that can output information for visual presentation of information.

[0051] The human operator 230 is a person that can interact with the graphical user interface 232 through user inputs 236 generated by an input system 238 for 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 touchscreen, a stylus, a motion-sensing input device, a gesture-detecting device, a data / network glove, or some other suitable type of input device. The display system 234 and the input system 238 form a human-machine interface (HMI) 240.

[0052] As depicted, the process manager 214 can be implemented in software, hardware, firmware, or a combination thereof. When using software, the operations performed by the process manager 214 can be implemented in program code configured to run on hardware such as a processor unit. When using firmware, the operations performed by the process manager 214 can be implemented in program code and data stored in persistent memory for execution on a processor unit. When employing hardware, the hardware can include circuitry that operates to perform the operations in the process manager 214.

[0053] In the illustrative example, the hardware can take the form of at least one selected from circuitry, an integrated circuit, an application-specific integrated circuit (ASIC), a programmable logic device, or some other suitable type of hardware configured to perform a number of operations. For a programmable logic device, the device can be configured to perform a number of operations. The device can be reconfigured at a later time, or can be permanently configured to perform a number of operations. 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. In addition, processes can be implemented in organic components that integrate with inorganic components and can consist entirely of organic components (excluding a human being). For example, the processes can be implemented in a computer made entirely of organic semiconductor components.

[0054] The computer system 210 is a physical hardware system and includes one or more data processing systems. When there is more than one data processing system in the computer system 210, those data processing systems communicate with each other using a communication medium. The communication medium can be a network. The data processing system can be selected from at least one of the following: a computer, a server computer, a tablet computer, or some other suitable data processing system.

[0055] During operation, the process manager 214 can send instructions 218 in a quantum programming language 242 of a plurality of quantum programming languages 222 to a quantum language translator 244 of the set of quantum language translators 212. The quantum language translator 244 is configured to handle the quantum programming language 242 and output a digital model representation 226 of a quantum computer component 228.

[0056] 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 such that the quantum language translator 244 outputs instructions 218 in the quantum programming language 242 for the operation 220.

[0057] In this illustrative example, the quantum processing system 208 can also include a plurality of universal gate sets 246. The plurality of universal gate sets 246 can be selected from at least one of the following: a Hadamard gate, a phase (S) gate, a controlled X (CNOT) gate, and a Toffoli gate; a Hadamard gate, a phase (S) gate, a p / 8 (T) gate, and a controlled X (CNOT) gate; a Barenco gate (B); a Deutsch gate (D_0) gate; a rotation gate R_x(0), R_y(0); a rotation gate R_x(0), R_y(0), a controlled Z (CZ) gate, or some other suitable type of gate set. In some illustrative examples, two or more of the plurality of universal gate sets 246 can be combined. These combinations of the plurality of universal gate sets 246 can be performed using mathematical operations such as intersection and union to obtain a combination of the plurality of universal gate sets 246 that can be used to perform a desired operation.

[0058] A universal gate set 248 of the plurality of universal gate sets 246 includes different types of gates 250. Through the gates 250 in the universal gate set 248, any possible operation for a particular quantum computer in the quantum computer 202 can be performed using several gates 250 in the universal gate set 248 of the plurality of universal gate sets 246. In an illustrative example, the order of the gates 250 can be selected to perform the operation for the process 204. The several gates 250 can be an ordered sequence of gates 250, where the ordered sequence is a contiguous order of the gates 250 that are selected to perform the operation for the process 204.

[0059] Through the availability of the plurality of universal gate sets 246, the quantum language translator 244 can output instructions 218 in the quantum programming language 242 for the operations 220 using the digital model representation 226 and a universal gate set 248 selected for use with the digital model representation 226 for a particular quantum computer of the quantum computers 202. The selection of the universal gate set 248 can be based on a computer type 252 of the computer types 203 for the particular quantum computer of the quantum computers 202. As depicted, the process manager 214 can determine the universal gate set 248 of the plurality of universal gate sets 246 to select for use using the hardware database 249.

[0060] In the illustrative example, the hardware database 249 can contain information identifying a plurality of universal gate sets 246 related to a plurality of computer types 203 for the quantum computers 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 universal gate sets that are optimal for a particular computer type, as well as universal gate sets that are not fully supported by a particular computer type. The optimal universal gate set 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. Thus, depending on the selected performance parameter or parameters, a different universal gate set can be selected for a quantum computer having a particular computer type.

[0061] Thus, the universal gate set 248 can be selected by the process manager 214 using the hardware database 249 to provide a desired level of performance for the particular quantum computer. The performance can be selected from at least one of: accuracy, speed, hardware support, circuit depth, noise or error rate, gate performance, or other performance factors.

[0062] In the illustrative example, the process manager 214 can send the selection of the plurality of universal gate sets 246 to the quantum language translator 244 along with the digital model representation 226.

[0063] In the illustrative example, the digital model representation 226 containing the quantum computer components 228 can be created using a mechanism other than sending instructions 218 to the quantum language translator 244. For example, the digital model representation 226 of the quantum computer components 228 can be created from user input 236 generated by a human operator 230 interacting with the human-machine interface 240. In response to the user input 236 generated by the human operator 230 operating the human-machine interface 240, the quantum computer components 228 in the digital model representation 226 can be displayed in a graphical user interface 232 in the display system 234. In this way, a visualization of the digital model representation 226 can be displayed in the graphical user interface 232.

[0064] Further, the process manager 214 can also perform a simulation 254 from the digital model representation 226. In this way, the human operator 230 can visualize the process development process 204 by interacting with a display of the quantum computer components 228 in the digital model representation 226 in the graphical user interface 232.

[0065] Thus, in the illustrative example, the process manager 214 can operate in various modes to enable more efficient and accurate quantum computing compared to current techniques. For example, the process manager 214 can perform a simulation 254 using the digital model representation 226 embodying the process 204. In this example, the results of the simulation 254 can be displayed through the human-machine interface 240 as the simulation 254 is performed and upon completion of the simulation 254. The simulation 254 of the digital model representation 226 can enable the human operator 230 to check the behavior of the quantum algorithm implemented in the process 204. In this way, the human operator 230 can determine whether the quantum algorithm is operating as desired. Through the simulation 254, the human operator 230 can make changes to the digital model representation 226 and rerun the simulation 254 with the changes. Thus, the human operator 230 can modify and refine the digital model representation 226 until the human operator 230 is satisfied with the results from the simulation 254 of the digital model representation 226.

[0066] Through the final version of the digital model representation 226, the model can be used to generate instructions 218 for a set of quantum computers 202 using the plurality of quantum language translators 212. The generation of instructions 218 can be more consistent and reduce errors using the plurality of quantum language translators 212 compared to current techniques of generating program code for different quantum computers individually.

[0067] Through 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 aid the decision-making process to identify physical systems, such as particular quantum computers in the quantum computers 202, that provide desired performance for particular uses. By generating instructions 218 for different computer types in the quantum computers 202 from a single source, such as the digital model representation 226, the time required to generate instructions 218 for different types of quantum computers 202 can be reduced. Further, the quality of the instructions 218 generated for different types of quantum computers 202 can be improved compared to current techniques.

[0068] Reference is next made to Figure 3 , which depicts an illustration of a block diagram of a quantum language translator, in accordance with illustrative embodiments. In the illustrative example, the same reference numbers can be used in more than one figure. Such repetition of reference numbers in different figures represents the same element in different figures.

[0069] As depicted, the quantum language translator 244 is configured to provide a translation between the instructions 218 in the Figure 2 and the digital model representation 226 in the Figure 2 for a quantum programming language 242 of the plurality of quantum programming languages 222. Each of the plurality of quantum language translators 212 can be used for a different quantum programming language of the plurality of quantum programming languages 222. In some examples, there can be more than one quantum language translator for the same quantum language, depending on the use of the particular quantum language translator.

[0070] In the illustrative example, the quantum language translator 244 can include several different components. As depicted, the quantum language translator 244 includes a translator input 300 and a translator output 302.

[0071] As depicted, the translator input 300 is configured to receive the instructions 218 in the quantum programming language 242 for the quantum language translator 244. In response to receiving the instructions 218, the translator input 300 outputs the digital model representation 226 including the quantum computer component 228. The quantum computer component 228 can be a gate, a memory, an operation, a subroutine, state information, a circuit, a memory, or other hardware or software component.

[0072] In this illustrative example, the translator output 302 is configured to receive the digital model representation 226 of the quantum computer component 228 sent to the quantum language translator 244. The translator output 302 outputs the instructions 218 in the quantum programming language 242 for the operation 220 using the digital model representation 226. In addition, the outputted instructions 218 can also be executed using the universal gate set 248. The universal gate set 248 can be received from a selection made by the process manager 214. In other illustrative examples, the universal gate set 248 can be a default gate set used by the quantum language translator 244.

[0073] Reference is next made to Figure 4 which depicts an illustration of a block diagram of a quantum computer component in a digital model representation, according to one illustrative embodiment. Depicted in this figure is an example of one implementation of the digital model representation 226 in Figure 2 .

[0074] As shown, the digital model representation 226 includes several different quantum computer components defined by the model and other information. As depicted, the digital model representation 226 includes a quantum computer component 310, a quantum computer component 312, a quantum computer component 314, and a quantum computer component 316. Figure 2The quantum computer component 228 in the digital model representation 226 can be defined by a gate model 400 in the model 401. The quantum computer component 228 can also be defined by the model 401 selected from at least one of a qubit model 402 or a memory model 404. The digital model representation 226 can also include information selected from at least one of a memory state 406, a quantum program 408, or other suitable information.

[0075] In this illustrative example, the gate model 400 defines the quantum computer component 228 in the form of gates 412. In this illustrative example, the gates 412 represent operations that can be performed in a quantum process. The gates 412 are quantum logic gates, which in the illustrative example are referred to as “gates.” Each gate defined in the gate model 400 can perform an operation on one or more qubits.

[0076] The gates 412 can be arranged to represent the quantum computer component 228. This arrangement includes connections between the gates 412 to each other such that the arrangement of gates 412 can perform the operations 220 for the process 204 in the digital model representation 226. Figure 2 Examples of gates 412 defined by the gate model 400 include at least one of a Hadamard gate, a Pauli gate, a rotation gate, a controlled U gate, a phase gate, or other suitable type of gate.

[0077] In addition, the gate model 400 can also include a set of super gate models 410 that define super gates 414. The super gates defined in the super gates 414 can be used to represent more complex operations. The super gates 414 are arrangements of gates defined by the super gate models 410. For example, a super gate can be a subroutine, a function, or some other suitable structure. A super gate in the set of super gates 414 includes two or more gates 412. In the illustrative example, the two or more gates 412 are in an ordered sequence. In other words, a super gate is a representation of two or more gates with connections between the gates such that the arrangement of gates in the super gate performs the operations of a routine, a subroutine, a function, or other operation within the process 204.

[0078] In this illustrative example, the super gate models 410 can be employed to eliminate the encoding of instructions that can involve tedious and error-prone manipulations. In addition, the use of the super gate models 410 allows for the reusability of subroutine units that are represented as at least one of program instructions or circuit arrangements of the super gates.

[0079] For example, Figure 2 A quantum phase estimation (QPE) algorithm can be used as a single step in a larger algorithm to solve a problem in the quantum algorithm in the process 204. However, the implementation of such an algorithm itself can be more difficult and time consuming for a human operator to encode the instructions or make the arrangement using individual gates in the digital model representation 226 whenever the quantum phase estimation algorithm is needed.

[0080] Through the illustrative example, there can be a super gate for a subroutine such as quantum phase estimation. Through the super gate for quantum phase estimation, a human operator can quickly specify the use of quantum phase estimation applied to a subset of qubits of a single-qubit unary gate, and through the super gate, instructions for quantum phase estimation can be automatically generated. Examples of other types of processes that can be implemented as super gates for subroutines include quantum Fourier transforms (QFT), inverse quantum Fourier transforms, and other suitable types of subroutines or processes.

[0081] In this illustrative example, the qubit model 402 defines qubits 416 used in a quantum computer. Qubits are the basic units of information in a quantum computer and can take different forms.

[0082] In this illustrative example, 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 a qubit type for the qubits 416 selected from at least one of an idealized qubit, an ion-trap qubit, a neutral atom qubit, a superconducting qubit, an electron spin qubit, a photon polarization qubit, a point spin qubit, or some other suitable type of qubit.

[0083] The memory model 404 defines memory 418 used in a quantum computer. For example, the memory model can define at least one of a type of memory, a size of memory, or other information about the memory 418. The memory 418 is used to store information, such as the 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 a secondary memory, a temporary memory, a working memory, a noisy memory, a superposition state, an entangled state, or other suitable types or combinations of quantum memory.

[0084] As depicted, the memory state 406 is information indicating an initial state of different quantum computer components, such as memory in a quantum computer. For example, the memory state 406 can indicate initial states of qubits in the memory 418. Further, the quantum program 408 is a set of information consisting of component digital model representations 226 that represent a set of operations 220 to be performed in a quantum computer.

[0085] Accordingly, the instructions 218 can be executed by a set of quantum computers 202 for the process 204, where the instructions 218 are in a desired form, such as in a particular quantum programming language. In other words, each quantum computer in the set of quantum computers 202 can run the same process even when the set of quantum computers 202 is heterogeneous in architecture. In other words, the set of quantum computers 202 can have different hardware architectures and can support different quantum programming languages. Through the use of the process manager 214, a single process can be developed and distributed to many quantum computers and quantum computers 202 in a more efficient manner than current techniques, in which the process can be developed independently or separately in different languages. Through the use of the process manager 214 with multiple quantum language translators 212, the process 204 can be distributed to different quantum computers in the quantum computers 202 with different computer types.

[0086] Turning next to Figure 5 , a diagram of a drawing depicting instruction generation in a target quantum programming language is depicted in accordance with an illustrative embodiment. In this illustrative example, the instructions 500 are lines of code in quantum assembly language (QASM). The instructions 500 include a Hadamard operation 502 and a controlled-not operation 504. In this illustrative example, the process manager 214 can apply the translator input 300 from the quantum language translator 244 for QASM to obtain a digital model representation 506. In this illustrative example, the digital model representation 506 includes two quantum computer components, namely a Hadamard gate 508 and a controlled-not gate 510.

[0087] In this example, the instructions 512 can be generated by sending the digital model representation 506 to the translator output 302 of the quantum language translator 244 for QASM. In this example, a different set of universal gates is selected to obtain the digital model representation 506 compared to the set of universal gates used in the instructions 500. In this example, the instructions 500 are processed by the quantum language translator using a set of universal gates that only includes rotation forms of gates. Accordingly, the instructions 512 are code where each line of code is a rotation. In this illustrative example, a common set of universal gates for ion-trap computers is selected. This selection can be made using the hardware database 249, given the specification that ion-trap hardware is used in the quantum computers where the instructions 512 are to be executed, where the corresponding entry in the database indicates that the set of universal gates of {Rx, Ry} is used for ion-trap hardware.

[0088] In another illustrative example, the circuit layout code is an example of another type of output that can be used by a quantum language translator for circuit layout Figure 5The digital model representation 506 in the instruction is generated. In this illustrative example, the instructions are in the form of circuit layout code that defines a circuit layout that defines a circuit for performing an operation. The circuit layout code can be used in a circuit simulation program, or to select an actual circuit for use in a quantum computer to perform an operation. The circuit layout code form of the instructions does not necessarily correspond one-to-one with the program code in the instructions that are generated for the digital model representation. In other words, the instructions can take the form of code in at least one of the programming languages or code that defines a circuit.

[0089] Figure 5 The diagram of the data structures in FIG. 6 is provided as an example of one way in which the instructions can be converted to the digital model representation and converted back to the instructions. This diagram is not meant to limit the ways in which the other illustrative examples can be implemented. For example, Figure 5 The instructions 500 in FIG. 5 are shown as having only two lines of code to avoid obscuring the description of the way in which the data is transformed between the instructions and the digital model representation in the quantum computer components in the illustrative examples. In other illustrative examples, there can be hundreds or thousands of lines of code in the instructions 500. In a similar manner, the digital model representation 506 can be much more complex than shown in this illustrative example.

[0090] In one illustrative example, there is one or more technical solutions that overcome the technical problem of quantum processing to perform operations for a process in multiple quantum computers. Thus, the one or more technical solutions can provide the technical effect of enabling more efficient and accurate allocation of a process, such as a quantum algorithm, to multiple quantum computers having different hardware architectures as compared to current technology.

[0091] The computer system 210 can be configured to use software, hardware, firmware, or a combination thereof to perform at least one of the steps, operations, or actions described in the different illustrative examples. Thus, the computer system 210 operates as a special purpose computer system, where the process manager 214 in the computer system 210 results in improved performance of the quantum computers 202 within the computer system 210. In particular, the process manager 214 transforms the computer system 210 into a special purpose computer system as compared to a general purpose computer system that is currently available without the process manager 214.

[0092] In the illustrative example, the process manager 214 in the computer system 210 integrates processes into practical applications of quantum computing that improve the performance of the computer system 210. In other words, the process manager 214 in the computer system 210 for practical applications of processes integrated into the process manager 214 in the computer system 210 enables the generation of instructions 218 for the quantum computer 202 in a more consistent and accurate manner than current techniques. In this illustrative example, the process manager 214 in the computer system 210 uses a digital model representation and a quantum language translator to translate different quantum programming languages in a consistent and repeatable manner than current techniques, where one computer can have different hardware. In this way, the process manager 214 in the computer system 210 provides practical applications of quantum computing where processes for quantum computers can be developed and automatically converted into instructions for quantum computers with different computer types. These instructions can include at least one of program code or circuit code that identifies a circuit layout for the process.

[0093] The different features in the illustrative example provide the ability to run processes on quantum computers with different computer types with improved accuracy and consistency than current techniques. In the illustrative example, a process such as a process for a quantum algorithm can be a digital model representation. This digital model representation can be used to automatically generate instructions such as program code or code for a circuit layout for different computer types in a quantum computer. In other words, different computer types can have different layouts and constraints on how operations can be performed.

[0094] Further, in the illustrative example, super gates can be used to make it at least one of fast or easy to implement operations that form routines, subroutines, or functions in a process. The use of super gates can eliminate tedious and error-prone manipulations and provide reusability of instructions. In the illustrative example, a process represented as a digital model representation can enable the generation of instructions for a particular type of hardware in a quantum computer. A universal gate set can be specified for the digital model representation of the process, where the universal gate set is selected for a particular type of quantum computer. In this way, the translation of the digital model representation can be customized for the particular type of quantum computer using the quantum language translator in the illustrative example. Further, in the illustrative example, the use of the quantum language translator can reduce the number of program language translations needed to create instructions for quantum computers with different computer types.

[0095] Figure 2The illustration of quantum computing environment 200 does not imply any physical or architectural limitations on how the illustrative embodiments can be implemented. Other components may be used in addition to those illustrated, or components may be substituted for those illustrated. Some components may be unnecessary. Furthermore, the boxes are presented to illustrate certain functional components. When implemented in the illustrative embodiments, one or more of these boxes may be combined, divided, or combined and divided into different boxes. For example, quantum computer 202 may be a separate component outside of computer system 210.

[0096] Next, turn to Figure 6 The illustration depicts a flowchart of a process for quantum processing according to an illustrative embodiment. Figure 6 The process can be implemented in hardware, software, or both. When implemented in software, the process can take the form of program code, which is executed by one or more processor units in one or more hardware devices located in one or more computer systems. For example, the process can be implemented in... Figure 2 It is implemented in the process manager 214 of the computer system 210.

[0097] The process begins by identifying a target quantum programming language for the process used on the quantum computer (Operation 600). This process then selects a universal gate set from several universal gate sets based on the type of quantum computer (Operation 602). In Operation 602, any possible operation for a particular quantum computer can be performed using several gates from the selected universal gate set.

[0098] The process sends instructions in the source quantum programming language to the source quantum language translator (operation 604) in a set of quantum language translators. The output of the source quantum language translator in operation 604 is arranged as a digital model representation of the quantum computer component that uses the instructions to execute the process.

[0099] The process sends a digital model representation of the quantum computer components and a selected set of general gates to the target quantum language translator, which then uses the digital model representation of the quantum computer components and the general gates selected for the type of quantum computer to output instructions for operation in the target quantum programming language (operation 606). The process then terminates.

[0100] Next, turn to Figure 7 According to an illustrative embodiment, another illustration depicts a flowchart of a process for quantum processing. Figure 7 The process can be implemented in hardware, software, or both. When implemented in software, the process can take the form of program code, which is executed by one or more processor units in one or more hardware devices located in one or more computer systems. For example, the process can be implemented in...Figure 2 implemented in the process manager 214 of the computer system 210 in

[0101] The process begins by identifying a process for execution on a set of quantum computers (operation 700). The process generates a digital model representation of the process (operation 702). In this illustrative example, the digital model representation generated in operation 702 can be generated in several different ways.

[0102] For example, the process can be in the form of instructions in a quantum language that are translated into the digital model representation using a quantum language translator. In another illustrative example, the digital model representation can be created from user input received from a human interface.

[0103] In yet another illustrative example, the digital model representation can be generated from an initial digital model representation created by translating instructions in a quantum programming language. The initial digital model representation can be modified by user input to a human interface to create the digital model representation of the process to be run on the set of quantum computers.

[0104] The process selects a quantum computer from the set of quantum computers (operation 704). The process identifies a quantum programming language (operation 706). The process identifies a universal gate set for the particular quantum computer and quantum programming language (operation 708).

[0105] The process generates instructions for the quantum computer using the digital model representation, the quantum programming language, and the universal gate set selected for use (operation 710). The process determines whether there is another quantum computer for which instructions have not yet been generated (operation 712). If another quantum computer exists, the process returns to operation 704 as described above. Otherwise, the process terminates.

[0106] Turning next to Figure 8 , another diagram depicting a flowchart of a process for quantum processing is set forth in accordance with an illustrative embodiment. Figure 8 The process in Figure 2 implemented in the process manager 214 of the computer system 210 in

[0107] Figure 8 The operations in Figure 8 are examples of additional operations that can be performed by the process of the flowchart in

[0108] In this example, the process begins with sending instructions to a set of quantum computers (operation 800). The process then executes the instructions on the set of quantum computers (operation 802).

[0109] The process receives results from processing the instructions at the set of quantum computers (operation 804). Thereafter, the process terminates.

[0110] Figure 8 The operations in the flowcharts of FIGS. 1-3 can be performed for several different purposes. For example, the operations can be performed for a benchmarking process, where instructions for the same process are run on different quantum computers. When the process is part of a benchmarking process, the instructions can be used for benchmarking. Different parameters for the process can include at least one of: processor execution time, memory used, processor resources used, accuracy compared to a known solution, probability of a correct solution compared to a known solution, errors, noise, circuit execution time, or other suitable parameters.

[0111] In another illustrative example, a process assigned to the set of quantum computers is executed in the set of quantum computers to solve a portion of a problem. By way of this example, the quantum computers can be part of a grid computing system, where processes running on the quantum computers provide results for a solution to a problem.

[0112] Referring now to the drawings Figure 9 , a diagram depicting a flowchart of a process for benchmarking quantum computers is depicted in accordance with an illustrative embodiment. Figure 9 The processes in FIGS. 1-3 can be implemented in hardware, software, or both. When implemented in software, the processes can take the form of program code that is run by one or more processor units in one or more hardware devices located in one or more computer systems. For example, the processes can be implemented in the process manager 214 in the computer system 210 in FIG. 2. Figure 2 The processes in FIGS. 1-3 can be implemented in hardware, software, or both. When implemented in software, the processes can take the form of program code that is run by one or more processor units in one or more hardware devices located in one or more computer systems. For example, the processes can be implemented in the process manager 214 in the computer system 210 in FIG. 2.

[0113] Figure 9 The processes in FIGS. 1-3 can be used to generate a set of instructions for a set of benchmark problems, which are run by a set of quantum computers. The set of benchmark problems can be one or more benchmark problems, depending on the implementation. The processes can be run to benchmark one quantum computer or multiple quantum computers. For one computer, the results can be compared to results from a previous benchmarking.

[0114] The instructions can be run to obtain results for comparing quantum computers. In this example, the translation output of a quantum language translator is used to generate instructions for execution on a quantum computer from a digital model representation of a process that implements a benchmark problem.

[0115] The process begins by receiving a set of benchmark problems (operation 900). In this illustrative example, the benchmark problems in operation 900 can be at least one of a benchmark optimization problem, a quantum chemistry problem, a material problem, a minimum eigenvalue problem, or other problems that can be run in a quantum computer. The process also receives an identification of a set of quantum computers for benchmarking (operation 902). In operation 902, when the set of quantum computers is more than one quantum computer, the quantum computers can be of the same computer type with hardware differences, different computer types, or some combination thereof.

[0116] The process determines whether all of the benchmark problems in the set of benchmark problems have been processed (operation 904). If not all of the benchmark problems have been processed, the process selects an unprocessed benchmark problem (operation 906). The process generates a digital model representation for the benchmark problem (operation 908).

[0117] The process then determines whether all of the quantum computers in the set of quantum computers have been processed (operation 910). If all of the quantum computers have been processed, the process returns to operation 904. Otherwise, the process selects an unprocessed quantum computer for processing (operation 912). The process identifies a quantum language translator and a desired set of universal gates for the quantum computer (operation 914). The quantum language translator is a quantum language translator for the specific language or computer type of the quantum computer.

[0118] For example, the selection of the quantum language translator can be made using a hardware database 249 in Figure 2 similar to the set of universal gates. The hardware database 249 can include entries that map a certain type of ion-trap computer to both a set of universal gates and a quantum programming language. In this depicted example, when generating a circuit layout, the set of universal gates can be queried 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 for that quantum computer type can be queried and used. In addition, a list of programming languages supported by the computer system can be used for selection.

[0119] In another example, a human operator can want to see the corresponding instructions in a specific programming language. In this case, the human operator can generate user input that selects the programming language for the output instructions, rather than using the hardware database 249.

[0120] The process uses a quantum language translator to generate instructions for a quantum computer using the numerical model representation of the benchmark problem (operation 916). In this illustrative example, the instructions can be at least one of program code in a programming language or circuit design code that defines a circuit. In operation 916, a universal gate set can be input into the quantum language translator.

[0121] The process then sends the instructions to a quantum computer (operation 918). In operation 918, the quantum computer can be an actual physical computer or a simulation. The process receives results from execution of the instructions on the quantum computer (operation 920). The process saves the results (operation 922). The process then returns to operation 910.

[0122] Referring again to operation 904, if all of the benchmark problems have been processed, the process analyzes the results of running the instructions on the quantum computer for the set of benchmark problems (operation 924). The process thereafter terminates.

[0123] The flow and block diagrams in the various depicted embodiments illustrate the architecture, functionality, and operations of some possible implementations of devices and methods in the illustrative embodiments. In this regard, each block in the flow or block diagrams can represent at least one of a module, segment, function, or portion of code, or a part of an operation 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 an integrated circuit that is manufactured or configured to perform one or more of the operations in the flow or block diagrams. When implemented in a combination of program code and hardware, the implementation can take the form of firmware. Each block in the flow or block diagrams can be implemented by a dedicated hardware system that performs the operations therein or a combination of dedicated hardware and program code that the dedicated hardware system runs.

[0124] In some alternative implementations of the illustrative embodiments, one or more of the functions indicated in the blocks can not occur in the order indicated in the figure. For example, two blocks that are shown in succession can in some cases be executed substantially concurrently, or the blocks can sometimes be executed in reverse order, depending on the functionality involved. Also, additional blocks can be added to the flow or block diagrams.

[0125] Turning now to Figure 10 a diagram of a block diagram of a data processing system is depicted in accordance with the illustrative embodiments. Data processing system 1000 can be used to implement server computer 104, server computer 106, client device 110 in Figure 1 Data processing system 1000 can also be used to implement server computer 104, server computer 106, client device 110 in Figure 2the computer system 210 in FIG. 1. In this illustrative example, the data processing system 1000 includes a communication framework 1002 that provides communications between the processor unit 1004, the memory 1006, the persistent storage device 1008, the communication unit 1010, the input / output (I / O) unit 1012, and the display 1014. In this example, the communication framework 1002 takes the form of a bus system.

[0126] The processor unit 1004 is configured to execute instructions for software that can be loaded into the memory 1006. Processor unit 1004 can be or include one or more processors. Processor unit 1004 can be, for example, selected from at least one of a group consisting 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 some other suitable type of processor. Further, processor unit 1004 can be implemented using one or more heterogeneous processor systems, in which a primary processor is present on a single chip with a secondary processor. As another illustrative example, processor unit 1004 can be a symmetric multi-processor system that contains multiple processors of the same type on a single chip.

[0127] The memory 1006 and the persistent storage device 1008 are examples of storage that are included in the storage 1016. Storage is any hardware able to store information such as, for example, without limitation, data, program code in functional form, or other appropriate information either on a temporary basis or permanently. Storage 1016 can also be referred to in these illustrative examples as computer-readable storage. Memory 1006, in these examples, can be, for example, a random access memory or any other suitable volatile or non-volatile storage device. Persistent storage device 1008 can take a variety of forms, depending on the particular implementation.

[0128] For example, persistent storage device 1008 can include one or more components or devices. For example, persistent storage device 1008 can be a hard disk drive, a solid-state drive (SSD), flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above. The media used by persistent storage device 1008 can also be removable. For example, a removable hard disk drive can be used for persistent storage device 1008.

[0129] In these illustrative examples, communication unit 1010 provides communication with other data processing systems or devices. In these illustrative examples, communication unit 1010 is a network interface card.

[0130] Input / output unit 1012 allows for input and output of data with other devices that can be connected to data processing system 1000. For example, input / output unit 1012 can provide a connection for user input through a keyboard, mouse, or some other suitable input device. Further, input / output unit 1012 can send output to a printer. Display 1014 provides a mechanism to display information to a user.

[0131] Instructions for operating at least one of the system, application, or program can be located in storage 1016, which is in communication with processor unit 1004 through communication framework 1002. The processes of the different embodiments can be performed by processor unit 1004 using computer implemented instructions, which can be located in a memory, such as memory 1006.

[0132] These instructions are referred to as program code, computer-usable program code, or computer-readable program code that can be read and executed by a processor in processor unit 1004. The program code in the different embodiments can be embodied on different physical or computer readable storage media, such as memory 1006 or permanent storage device 1008.

[0133] Program code 1018 is located in function form on computer readable media 1020, which is selectively removable and can be loaded onto or transferred to data processing system 1000 for execution by processor unit 1004. In these illustrative examples, program code 1018 and computer-readable media 1020 form computer program product 1022. In these illustrative examples, computer-readable media 1020 is computer-readable storage media 1024.

[0134] In these illustrative examples, computer-readable storage media 1024 is a physical or tangible storage device used to store program code 1018 rather than a medium that propagates or transmits program code 1018. Computer-readable storage media 1024, as used in this description, is not to be construed as being an artificially constructed mechanism, such as signals, per se. Thus, computer-readable storage media 1024 is not a transitory signal per se.

[0135] Alternatively, program code 1018 can be transferred to data processing system 1000 using a computer-readable signal medium. This computer-readable signal medium can be, for example, a propagated data signal containing program code 1018. For example, the computer-readable signal medium can be at least one of electromagnetic signals, optical signals, or any other suitable type of signal. These signals can be transmitted via a connection, such as a wireless connection, optical fiber, coaxial cable, wire, or any other suitable type of connection.

[0136] Furthermore, as used herein, "computer-readable medium 1020" can be singular or plural. For example, program code 1018 may be located in computer-readable medium 1020 in the form of a single storage device or system. In another example, program code 1018 may be located in computer-readable medium 1020 distributed across multiple data processing systems. In other words, some instructions in program code 1018 may be located in one data processing system, while other instructions in program code 1018 may be located in a data processing system. For example, a portion of program code 1018 may be located in computer-readable medium 1020 in a server computer, while another portion of program code 1018 may be located in computer-readable medium 1020 located in a group of client computers.

[0137] The different components shown for data processing system 1000 do not imply an architectural limitation on how different embodiments can be implemented. In some illustrative examples, one or more of the components may be incorporated into another component or otherwise form part of another component. For example, in some illustrative examples, memory 1006 or a portion thereof may be incorporated into processor unit 1004. Different illustrative embodiments may be implemented in data processing systems that include components other than or in lieu of those shown for data processing system 1000. Figure 10 The other components shown can vary from the illustrative example shown. Different embodiments can be implemented using any hardware device or system capable of running program code 1018.

[0138] Accordingly, illustrative examples provide a method, apparatus, system, and program code for quantum computing. In one illustrative example, there is a method for quantum processing. A target quantum programming language for a process of a quantum computer is identified by a computer system. A set of universal gates is selected by the computer system from a plurality of sets of universal gates, where a number of gates in the set of universal gates can be used to perform for any possible operation of a particular quantum computer. An instruction for the process in a source quantum programming language is sent by the computer system to a source quantum language translator in a set of quantum language translators, where the source quantum language translator outputs a digital model representation of a quantum computer component arranged to perform the process using the instruction. The digital model representation of the quantum computer component and the selected set of universal gates are sent by the computer system to a target quantum language translator, such that the quantum language translator outputs an instruction for the operation in a target quantum programming language using the digital model representation of the quantum computer component and the set of universal gates selected for the computer type of the quantum computer.

[0139] Different features in illustrative examples provide the ability to run processes on different computer types of quantum computers with improved accuracy and consistency compared to current technology. In illustrative examples, a process such as a process for a quantum algorithm can be a digital model representation. The digital model representation can be used to automatically generate instructions such as program code or code for circuit layouts in different computer types of quantum computers. In other words, different computer types can have different layouts and constraints as to how an operation can be performed.

[0140] Further, illustrative examples include super gates that make routines, subroutines, or functions fast and easy to implement in a process. In another illustrative example, a representation of a process in a digital model representation can be used for instruction generation for a particular type of hardware in a quantum computer. In illustrative examples, a set of universal gates can be specified for a digital model representation of a process. In this way, a translation of the digital model representation can be customized for a particular type of quantum computer using a quantum language translator in illustrative examples.

[0141] The description of the different illustrative embodiments has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the embodiments disclosed. The different illustrative embodiments describe components performing actions or operations. In the illustrative embodiments, the components can be configured to perform the described actions or operations. For instance, a component can have a configuration or design that provides the component with the ability to perform actions or operations described as being performed by the component in the illustrative examples. Further, where the terms “including,” “containing,” “comprising,” “having,” and variations thereof are used, such terms are intended to be equivalent to the term “comprising” as similar to the term “including” in that such terms do not exclude additional or other elements.

[0142] Further, the present disclosure includes embodiments in accordance with the following clauses:

[0143] Clause 1. A quantum processing system 208 comprising:

[0144] a computer system 210;

[0145] a set of quantum language translators 212 in the computer system 210, wherein the set of quantum language translators 212 are configured to convert instructions 218 in a plurality of quantum programming languages 222 for an operation 220 to digital model representations 226 of quantum computer components 228 arranged to perform the operation 220, and convert the digital model representations 226 of quantum computer components 228 arranged to perform the operation 220 to the instructions 218 in the plurality of quantum programming languages 222 for the operation 220 for execution in a quantum computer 202, wherein each quantum language translator 244 in the set of quantum language translators 212 is for a particular quantum programming language in the plurality of quantum programming languages 222;

[0146] a plurality of universal gate sets 246, wherein a number of gates 250 in a universal gate set 248 in the plurality of universal gate sets 246 can be used to perform any possible operation for a particular quantum computer; and

[0147] a process manager 214 in the computer system 210, wherein the process manager 214 is configured to:

[0148] send instructions 218 in a quantum programming language 242 to a quantum language translator 244 in the set of quantum language translators 212, wherein the quantum language translator 244 is configured to handle the quantum programming language 242 and output digital model representations 226 of quantum computer components 228; and

[0149] The digital model representation 226 of the quantum computer component 228 is sent to the quantum language translator 244 such that the quantum language translator 244 outputs instructions 218 in a quantum programming language 242 for the operation 220 using a universal gate set 248 selected for the computer type 252 of the particular quantum computer.

[0150] Clause 2. The quantum processing system 208 of clause 1, wherein the process manager 214 is configured to determine the universal gate set 248 of the selected plurality of universal gate sets 246, and wherein the selected universal gate set 248 provides a desired level of performance for the particular quantum computer.

[0151] Clause 3. The quantum processing system 208 of any preceding clause, wherein the selection of the universal gate set 248 is sent to the quantum language translator 244 along with the instructions 218.

[0152] Clause 4. The quantum processing system 208 of any preceding clause, wherein the plurality of universal gate sets 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 p / 8 (T) gate, and a controlled-X (CNOT) gate; a Barenco gate (B); a Deutsch gate (D_0) gate; a rotation gate R_x(0), R_y(0); a rotation gate R_x(0), R_y(0); or a controlled-Z (CZ) gate.

[0153] Clause 5. The quantum processing system 208 of any preceding clause, wherein the quantum language translator 244 comprises:

[0154] a translator input 300 configured to receive the instructions 218 in the quantum programming language 242 sent to the quantum language translator 244 of the set of quantum language translators 212 and output the digital model representation 226 of the quantum computer component 228; and

[0155] a translator output 302 configured to receive the digital model representation 226 of the quantum computer component 228 sent to the quantum language translator 244 and output the instructions 218 in the quantum programming language 242 for the operation 220.

[0156] Clause 6. A quantum processing system 208 comprising:

[0157] a computer system 210;

[0158] a set of quantum language translators 212 in the computer system 210, where the set of quantum language translators 212 are configured to convert instructions 218 in a plurality of quantum programming languages 222 for an operation 220 to digital model representations 226 of quantum computer components 228 arranged to perform the operation 220, and convert the digital model representations 226 of quantum computer components 228 arranged to perform the operation 220 to instructions 218 in the plurality of quantum programming languages 222 for the operation 220 for execution in the quantum computer 202, where each quantum language translator in the set of quantum language translators 212 is for a particular quantum programming language in the plurality of quantum programming languages 222; and

[0159] a process manager 214 in the computer system 210, where the process manager 214 is configured to:

[0160] receive instructions 218 in a quantum programming language 242 in the plurality of quantum programming languages 222;

[0161] send the instructions 218 in the quantum programming language 242 to a quantum language translator 244 in the set of quantum language translators 212, where the quantum language translator 244 is configured to handle the quantum programming language 242 and output digital model representations 226 of quantum computer components 228; and

[0162] send the digital model representations 226 of quantum computer components 228 to the quantum language translator 244, such that the quantum language translator 244 outputs instructions 218 in the quantum programming language 242 for the operation 220.

[0163] Clause 7. The quantum processing system 208 of clause 6, further comprising:

[0164] a plurality of universal gate sets 246, where a number of gates 250 in a universal gate set 248 in the plurality of universal gate sets 246 can be used to perform any possible operation for a particular quantum computer.

[0165] Clause 8. The quantum processing system 208 of clause 7, where the process manager 214 is configured to select a universal gate set 248 in the plurality of universal gate sets 246, and where the selected universal gate set 248 provides a desired level of performance for the particular quantum computer.

[0166] Clause 9. The quantum processing system 208 of clause 8, where an identification of the selected universal gate set 248 is sent to the quantum language translator with the instructions 218.

[0167] Clause 10. The quantum processing system 208 of clause 7, wherein the plurality of universal gate sets 246 are 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 p / 8 (T) gate, and a controlled-X (CNOT) gate; a Barenco gate (B); a Deutsch gate (D_0) gate; a rotation gate R_x(0), R_y(0); a rotation gate R_x(0), R_y(0); or a controlled-Z (CZ) gate.

[0168] Clause 11. The quantum processing system 208 of any one of clauses 6 to 10, wherein the process manager 214 is configured to simulate the operation of the digital model representation 226 of the quantum computer component 228 arranged to perform the operation 220.

[0169] Clause 12. The quantum processing system 208 of any one of clauses 6 to 11, wherein the quantum language translator 244 comprises:

[0170] a translator input 300 configured to receive the instruction 218 in the quantum programming language 242 sent to the quantum language translator 244 in the set of quantum language translators 212 and output the digital model representation 226 of the quantum computer component 228; and

[0171] a translator output 302 configured to receive the digital model representation 226 of the quantum computer component 228 sent to the quantum language translator 244 and output the instruction 218 in the quantum programming language for the operation 220.

[0172] Clause 13. The quantum processing system 208 of any one of clauses 6 to 12, wherein the quantum computer component 228 comprises a gate 250.

[0173] Clause 14. The quantum processing system 208 of clause 13, wherein the quantum computer component 228 further comprises at least one of a qubit model 402, a memory model 404, a memory state 406, or a quantum program 408.

[0174] Clause 15. The quantum processing system 208 of clause 13, wherein the gate 250 comprises a number of super gates 414.

[0175] Clause 16. The quantum processing system 208 of 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.

[0176] Clause 17. The quantum processing system 208 of any one of clauses 6 to 16, wherein the instruction 218 is for one of an application, a program, and a subroutine.

[0177] Clause 18. A method for quantum processing, the method comprising:

[0178] identifying 600, by the computer system 210, a target quantum programming language for the process 204 of the quantum computer;

[0179] selecting 602, by the computer system 210, a universal gate set 248 from a plurality of universal gate sets 246 based on the computer type 252 of the quantum computer, wherein the universal gate set 248 is capable of performing a number of gates for any possible operation of the particular quantum computer;

[0180] transmitting 604, by the computer system 210, the instructions 218 for the process 204 in the source quantum programming language to a source quantum language translator of the set of quantum language translators 212, wherein the source quantum language translator outputs a digital model representation 226 of a quantum computer component 228 arranged to perform the process 204 using the instructions 218; and

[0181] transmitting 606, by the computer system 210, the digital model representation 226 of the quantum computer component 228 and the selected universal gate set 248 to the target quantum language translator, such that the quantum language translator outputs the instructions 218 for the operations 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 for the computer type 252 of the quantum computer.

[0182] Clause 19. The method of clause 18, wherein selecting the universal gate set 248 from the plurality of universal gate sets 246 based on the computer type 252 of the quantum computer comprises:

[0183] selecting, by the computer system 210, the universal gate set 248 from the plurality of universal gate sets 246 that provides a desired level of performance for the computer type 252 of the quantum computer.

[0184] Clause 20. The method of any one of clauses 18-19, wherein the plurality of universal gate sets 246 are 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 p / 8 (T) gate, and a controlled-X (CNOT) gate; a Barenco gate (B); a Deutsch gate (D_0) gate; a rotation gate R_x(0), R_y(0); a rotation gate R_x(0), R_y(0); or a controlled-Z (CZ) gate.

[0185] Clause 21. The method of any one of clauses 18-20, further comprising:

[0186] executing instructions 218 in a target quantum programming language in a quantum computer by computer system 210.

[0187] Clause 22. The method of any one of clauses 18-21, wherein the quantum language translator 244 comprises:

[0188] a translator input 300 configured to receive instructions 218 in a quantum programming language 242 sent to the quantum language translator 244 in the set of quantum language translators 212 and output a digital model representation 226 of a quantum computer component 228; and

[0189] a translator output 302 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 in the quantum programming language 242 for an operation 220.

[0190] Clause 23. The method of any one of clauses 18-22, wherein the quantum computer component 228 comprises a gate 250.

[0191] Clause 24. The method of clause 23, wherein the quantum computer component 228 further comprises at least one of a qubit model 402, a memory model 404, a memory state 406, or a quantum program 408.

[0192] Clause 25. The method of clause 23, wherein the gate 250 comprises a number of super gates 414.

[0193] Clause 26. The method of any one of clauses 18-25, wherein the quantum computer is selected from one of a superconducting quantum computer and an ion-trap quantum computer.

[0194] Clause 27. The method of any one of clauses 18-26, wherein the instructions 218 are for one of an application, a program, and a subroutine.

[0195] Clause 28. A computer program product 1022 for quantum processing, the computer program product 1022 comprising:

[0196] a computer readable storage medium 1024;

[0197] first program code stored on the computer readable storage medium, 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;

[0198] second program code stored on the computer-readable storage medium 1024 and executable by the computer system 210 for causing the computer system 210 to select a set of universal gates 248 from a plurality of sets of universal gates 246 based on the computer type 252 of the quantum computer, wherein the set of universal gates 248 is capable of being used to perform a number of gates 250 for any possible operation of the particular quantum computer;

[0199] third program code stored on the computer-readable storage medium 1024 and executable by the computer system 210 for causing the computer system 210 to send the instructions 218 for the procedure 204 in the source quantum programming language to a source quantum language translator of the set of quantum language translators 212, wherein the source quantum language translator outputs a digital model representation 226 of a quantum computer component 228 arranged to perform the procedure 204 using the instructions 218; and

[0200] fourth program code stored on the computer-readable storage medium 1024 and executable by the computer system 210 for causing the computer system 210 to send the digital model representation 226 of the quantum computer component 228 and the selected set of universal gates 248 to the target quantum language translator, such that the quantum language translator 244 outputs the instructions 218 for the operations 220 of the procedure 204 in the target quantum programming language using the digital model representation 226 of the quantum computer component 228 and the set of universal gates 248 selected for the computer type 252 of the quantum computer.

[0201] Clause 29. The computer program product 1022 of clause 28, wherein the second program code comprises:

[0202] program code stored on the computer-readable storage medium 1024 and executable by the computer system 210 for causing the computer system 210 to select a set of universal gates 248 from a plurality of sets of universal gates 246 that provides a desired level of performance for the computer type 252 of the quantum computer.

[0203] Clause 30. The computer program product 1022 of any one of clauses 28 to 29, wherein the plurality of sets of universal gates 246 are 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 p / 8 (T) gate, and a controlled-X (CNOT) gate; a Barenco gate (B); a Deutsch gate (D_0) gate; a rotation gate R_x(0), R_y(0); a rotation gate R_x(0), R_y(0), or a controlled-Z (CZ) gate.

[0204] Many modifications and variations of this application can be apparent to those of ordinary skill in the art. In addition, it should be understood that different illustrative embodiments can provide different features and can provide different benefits than those described herein. The embodiments have been chosen and described in order to best explain the principles of the application and the practical application and to enable others skilled in the art to understand the application for various embodiments with various modifications as are suited to the particular use contemplated.

Claims

1. A quantum processing system (208), comprising: Computer system (210); A set of quantum language translators (212) in the computer system (210), wherein the set of quantum language translators (212) is configured to convert instructions (218) for operation (220) in a multi-source quantum programming language (222) into a digital model representation (226) of a quantum computer component (228) arranged to perform said operation (220), and to convert the digital model representation (226) of said quantum computer component (228) arranged to perform said operation (220) into said instructions (218) for said operation (220) in a multi-target quantum programming language (222) for execution in a quantum computer (202), wherein each quantum language translator (244) in the set of quantum language translators (212) is for a specific quantum programming language in the multi-source quantum programming language (222) and the multi-target quantum programming language (222); Multiple universal gate sets (246), wherein any possible operation for a particular quantum computer can be performed using several gates (250) of a universal gate set (248) within the multiple universal gate sets (246); and The process manager (214) in the computer system (210), wherein the process manager (214) is configured to: The instructions (218) in the source quantum programming language (242) are sent to the source quantum language translator (244) in the set of quantum language translators (212), wherein the quantum language translator (244) is configured to process the source quantum programming language (242) and output the digital model representation (226) of the quantum computer component (228); The operation of the digital model representation (226) of the quantum computer component (228) arranged to perform the operation (220) is simulated; and The digital model representation (226) of the quantum computer component (228) is sent to the target quantum language translator (244), such that the target quantum language translator (244) outputs the instructions (218) for the operation (220) in the target quantum programming language (242) using the general gate set (248) selected for the computer type (252) of the particular quantum computer.

2. The quantum processing system (208) of claim 1, wherein the process manager (214) is configured to determine the universal gate group (248) among the selected plurality of universal gate groups (246), and wherein the selected universal gate group (248) provides a desired performance level for a particular quantum computer.

3. The quantum processing system (208) according to any of the preceding claims, wherein the selection of the universal gate group (248) is sent together with the instruction (218) to the quantum language translator (244).

4. The quantum processing system (208) according to any one of claims 1 to 2, wherein the plurality of general gate groups (246) are selected from at least one of the following: Hadamard gate, phase (S) gate, controlled-X (CNOT) gate and Tofoli gate; Hadamard gate, phase (S) gate, π / 8 (T) gate and controlled-X (CNOT) gate; Barenco gate (B); Deutsch gate (D_θ) gate; rotation gate R_x(θ), R_y(θ); rotation gate R_x(θ), R_y(θ); or controlled-Z (CZ) gate.

5. The quantum processing system (208) according to any one of claims 1 to 2, wherein the quantum language translator (244) comprises: A translator input (300) configured to receive instructions (218) in the quantum programming language (242) sent to the quantum language translator (244) of the set of quantum language translators (212), and output the digital model representation (226) of the quantum computer component (228); and The translator output (302) is configured to receive the digital model representation (226) sent to the quantum computer component (228) of the quantum language translator (244) and output the instructions (218) in the quantum programming language (242) for the operation (220).

6. A method for quantum processing, the method comprising: The target quantum programming language for the process (204) of quantum computer is identified (600) by the computer system (210); The computer system (210) selects (602) a general gate group (248) from a plurality of general gate groups (246) based on the computer type (252) of the quantum computer, wherein any possible operation for a particular quantum computer can be performed using several gates in the general gate group (248); The computer system (210) sends (604) instructions (218) for the process (204) in the source quantum programming language to a source quantum language translator in a set of quantum language translators (212), wherein the output of the source quantum language translator is arranged to be a digital model representation (226) of a quantum computer component (228) that executes the process (204) using the instructions (218); The operation of the digital model representation (226) of the quantum computer component (228) arranged to perform the operation (220) is simulated (254) by the process manager (214) in the computer system (210); and The computer system (210) sends (606) the digital model representation (226) of the quantum computer component (228) and the selected general gate set (248) to the target quantum language translator, such that the quantum language translator uses the digital model representation (226) of the quantum computer component (228) and the general gate set (248) selected for the computer type (252) of the quantum computer to output the instructions (218) in the target quantum programming language for the operation (220) of the process (204).

7. The method of claim 6, wherein selecting the general gate group (248) from the plurality of general gate groups (246) based on the computer type (252) of the quantum computer comprises: The computer system (210) selects from the plurality of general gate groups (246) the general gate group (248) that provides the desired performance level for the computer type (252) of the quantum computer.

8. The method according to any one of claims 6 to 7, wherein the plurality of general gate groups (246) are selected from at least one of the following: Hadamard gate, phase (S) gate, controlled-X (CNOT) gate and Tofoli gate; Hadamard gate, phase (S) gate, π / 8 (T) gate and controlled-X (CNOT) gate; Barenco gate (B); Deutsch gate (D_θ) gate; rotating gate R_x(θ), R_y(θ); rotating gate R_x(θ), R_y(θ); or controlled-Z (CZ) gate.

9. The method according to any one of claims 6 to 7, further comprising: The computer system (210) executes the instructions (218) in the target quantum programming language in the quantum computer.

10. The method according to any one of claims 6 to 7, wherein the quantum language translator (244) comprises: The translator input (300) is configured to receive the instructions (218) in the quantum programming language (242) sent to the quantum language translator (244) of the set of quantum language translators (212), and output the digital model representation (226) of the quantum computer component (228); and The translator output (302) is configured to receive the digital model representation (226) sent to the quantum computer component (228) of the quantum language translator (244) and output the instructions (218) in the quantum programming language (242) for the operation (220).

11. The method according to any one of claims 6 to 7, wherein the quantum computer component (228) comprises a gate (250).

12. The method of claim 11, wherein the quantum computer component (228) further comprises at least one of a qubit model (402), a memory model (404), a memory state (406), or quantum programming (408).

13. The method of claim 11, wherein the gate (250) comprises a plurality of supergates (414).

14. The method according to any one of claims 6 to 7, wherein the quantum computer is selected from a superconducting quantum computer and an ion trap quantum computer, or optionally, wherein the instructions (218) are used for an application program, a program, and a subroutine.

15. A computer program product (1022) for quantum processing, said computer program product (1022) comprising: Computer-readable storage medium (1024); as well as The program code, stored on the computer-readable storage medium, is executable by the computer system (210) to cause the computer system (210) to perform the method according to any one of claims 6 to 14.