This disclosure relates to quantum computing and relates more specifically to a computing system for executing quantum programs on quantum computers which use different quantum computing models.
Quantum computing, i.e. using quantum computers, is gaining more and more interest as it is expected to solve some problems way faster than classical computing, i.e. using classical computers. However, some other problems are also solved more efficiently by classical computing, such that there is a need for hybrid architectures, i.e. architectures which use both classical computing resources and quantum computing resources.
An example of hybrid architecture is given by the patent application EP 3425497 A1, in which a classical computer is configured as a master which controls a quantum computer which is configured as a slave.
There exist different quantum computing resources providers, which allow remote access to quantum computers. However, the quantum computers which can be accessed remotely can be different in terms of e.g. number of qubits, connectivity between qubits, available quantum gates, etc.
More importantly, these quantum computers can also be different in terms of underlying quantum computing model, whether quantum gate-based (a.k.a. digital quantum computing) or non-quantum gate based (quantum annealing or adiabatic quantum computation, a.k.a. analog quantum computing).
Currently, a quantum program is developed specifically for a specific quantum computer and cannot be reused for another quantum computer.
However, developers of quantum programs may not require that a specific quantum computer is used for executing the program, as long as it can be executed on any quantum computer regardless e.g. digital or analog.
Also, analog and digital quantum frameworks may have respective advantages and, currently, it is not possible to benefit from the advantages of both environments when developing a quantum program.
The present disclosure aims at improving the situation. In particular, the present disclosure aims at overcoming at least some of the limitations of the prior art discussed above, by proposing a solution that enables unifying analog and digital quantum frameworks.
According to a first aspect, the present disclosure relates to a computing system for executing quantum programs, said computing system comprising a classical computer, an analog quantum computer configured to execute quantum programs expressed as temporal schedules and a digital quantum computer configured to execute quantum programs expressed as quantum circuits. Said computing system comprises:
The computing system further comprises a digital to analog converting, DAC, module, to be executed by the classical computer, configured to convert a quantum program expressed as a quantum circuit into a quantum program expressed as a temporal schedule, said DAC module comprising an input interface for receiving a quantum circuit to be converted and an output interface for outputting a corresponding temporal schedule, and wherein a same format is used on the input interfaces of both the digital quantum processing module and the DAC module, and a same format is used on both the output interface of the DAC module and the input interface of the analog quantum processing module.
Hence, thanks to the DAC module, a developer may construct a quantum program as a quantum circuit regardless which one among the digital quantum computer and the analog quantum computer will actually execute said quantum program. If the quantum program is executed by the digital quantum computer, it can be provided to the digital quantum computer as a quantum circuit via the digital quantum processing module. If the quantum program is executed by the analog quantum computer, the quantum circuit is first converted, by the DAC module, into a temporal schedule which can be provided to the analog quantum processing module. Since the digital quantum processing module and the DAC module use the same format on their input interfaces, this is transparent to the quantum program developer. In other words, a same application program interface (API) is used for quantum programs expressed as quantum circuits, regardless which one among the digital quantum computer and the analog quantum computer will actually execute said quantum program.
Also, the DAC module uses on its output interface the same format as the input interface of the analog quantum processing module. In other words, the output of the DAC module uses the API of the input of the analog quantum processing module, such that the DAC module can be connected to the analog quantum processing module in a transparent manner, without requiring any changes to the analog quantum processing module used to receive quantum programs expressed as temporal schedules for the analog quantum computer.
In specific embodiments, the computing system can further comprise one or more of the following features, considered either alone or in any technically possible combination.
In specific embodiments, the computing system comprises an analog to digital converting, ADC, module, to be executed by the classical computer, configured to convert a quantum program expressed as a temporal schedule into a quantum program expressed as a quantum circuit, said ADC module comprising an input interface for receiving a temporal schedule to be converted and an output interface for outputting a corresponding quantum circuit, wherein a same format is used on the input interfaces of both the analog quantum processing module and the ADC module, and a same format is used on both the output interface of the ADC module and the input interface of the digital quantum processing module.
Hence, a same API is used for quantum programs expressed as temporal schedule, regardless which one among the digital quantum computer and the analog quantum computer will actually execute said quantum program. The computing system is therefore adapted to execute a same quantum program expressed as a temporal schedule by using any one of the analog quantum computer and the digital quantum computer via the ADC module.
Also, the computing system is adapted to execute a quantum program expressed as a quantum circuit by using the digital quantum computer via the DAC module connected to the ADC module. Hence, a quantum program expressed as a quantum circuit may be processed by algorithms aiming at optimizing the quantum program, which algorithms can operate in the digital quantum framework or in the analog quantum framework, or both. Hence, this enables to take advantage in the digital quantum framework (of the original quantum circuit) of algorithms which are specific to the analog quantum framework (e.g. quantum optimal control, QOC, analog algorithms, etc.).
In specific embodiments:
In specific embodiments, the computing system comprises an analog to analog converting, AAC, module, to be executed by the classical computer, configured to optimize a temporal schedule with respect to a predetermined performance criterion, said AAC module comprising an input interface for receiving a temporal schedule and an output interface for outputting a corresponding optimized temporal schedule, wherein the input interface and the output interface of the AAC module use the same format as the input interface of the ADC module.
In such embodiments, the ADC or DAC module may therefore perform only the conversion, while the optimization of the temporal schedule is performed by a different module, i.e. the AAC module. Since common formats are used on the different interfaces, the computing system is adapted to execute a quantum program expressed as a quantum circuit by using the digital quantum computer via the DAC module connected to the AAC module connected to the ADC module connected to the digital quantum processing module.
Also, the computing system is adapted to execute a same quantum program expressed as a quantum circuit by using the digital quantum computer via any one of:
In other words, the AAC module can be included or not without impacting the other modules, in a transparent manner for the developer.
In specific embodiments, the DAC module is configured to perform a calibration phase wherein, for each possible quantum gate that can be included in a quantum circuit to be executed, the DAC module outputs a plurality of candidate elementary schedules to be executed by the analog quantum computer and determines an optimal elementary schedule for said quantum gate by comparing the results provided by the analog quantum computer with a reference result, and wherein the DAC module uses optimal elementary schedules determined for all possible quantum gates for converting a quantum circuit into a temporal schedule.
In specific embodiments, the DAC module is configured to:
According to a second aspect, the present disclosure relates to a method for executing a quantum program by a computing system according to any one of the previous embodiments of the first aspect of the present disclosure, said method comprising:
According to a third aspect, the present disclosure relates to a computing system for executing quantum programs, said computing system comprising a classical computer, an analog quantum computer configured to execute quantum programs expressed as temporal schedules and a digital quantum computer configured to execute quantum programs expressed as quantum circuits, wherein said computing system comprises:
The computing system further comprises an analog to digital converting, ADC, module, to be executed by the classical computer, configured to convert a quantum program expressed as a temporal schedule into a quantum program expressed as a quantum circuit, said ADC module comprising an input interface for receiving a temporal schedule to be converted and an output interface for outputting a corresponding quantum circuit, and wherein a same format is used on the input interfaces of both the analog quantum processing module and the ADC module, and a same format is used on both the output interface of the ADC module and the input interface of the digital quantum processing module.
According to a fourth aspect, the present disclosure relates to a method for executing a quantum program by a computing system according to any one of the previous embodiments of the third aspect of the present disclosure, said method comprising:
The invention will be better understood upon reading the following description, given as an example that is in no way limiting, and made in reference to the figures which show:
In these figures, references identical from one figure to another designate identical or analogous elements. For reasons of clarity, the elements shown are not to scale, unless explicitly stated otherwise.
As discussed above, the present disclosure relates to a computing system 10 for executing quantum programs.
As illustrated by
The classical quantum computing resources comprise one or more classical computers 11. In the non-limitative example illustrated by
The quantum computing resources comprise one or more digital quantum computers 12 and one or more analog quantum computers 13.
As discussed above, a digital quantum computer 12 is a quantum gate-based computer, while an analog quantum computer 13 is a non-quantum gate-based computer (i.e. quantum annealing or adiabatic quantum computation).
In the non-limitative example illustrated by
In preferred embodiments, all or part of the hardware resources are cloud computing resources. For instance, all or part of the classical computing resources may be cloud-based. Alternatively, or in combination, all or part of the hardware resources may be high performance computing, HPC, resources. For instance, all or part of the classical computing resources may be HPC-based.
The computing system 10 comprises also software resources to be executed on the hardware resources. In the example illustrated by
The hardware resources and the software resources of the computing system 10 may be accessed, for instance remotely, by a client device 30 used by a user willing to develop and execute a hybrid program.
The software resources, e.g. stored in the database 14 in the example of
The software resources comprise a digital quantum processing, DQP, module 22. The DQP module 22 comprises an input interface for receiving a quantum program expressed as a quantum circuit to be executed by a digital quantum computer 12 of the computing system 10. The DQP module 22 is the software resource which actually communicates with a digital quantum computer 12 for executing a quantum circuit received on its input interface. Such a DQP module 22 is executed at least in part by a digital quantum computer 12, but it can also be partly executed by a classical computer 11 which implements the input interface of the DQP module 22 and communicates with a remote or local target digital quantum computer 12 of the computing system 10.
The software resources comprise also an analog quantum processing, AQP, module 23. The AQP module 23 comprises an input interface for receiving a quantum program expressed as a temporal schedule to be executed by an analog quantum computer 13 of the computing system 10. The AQP module 23 is the software resource which actually communicates with an analog quantum computer 13 for executing a temporal schedule received on its input interface. Such an AQP module 23 is executed at least in part by an analog quantum computer 13, but it can also be partly executed by a classical computer 11 which implements the input interface of the AQP module 23 and communicates with a remote or local target analog quantum computer 13 of the computing system 10.
The computing system further comprises a digital to analog converting, DAC, module 24, to be executed by a classical computer 11.
The DAC module 24 is configured to convert a quantum program expressed as a quantum circuit into a quantum program expressed as a temporal schedule. For that purpose, the DAC module 24 comprises an input interface for receiving a quantum circuit to be converted and an output interface for outputting a corresponding temporal schedule. In the present disclosure, a same format is used on the input interfaces of both the DQP module 22 and the DAC module 24. Also, a same format is used on both the output interface of the DAC module 24 and the input interface of the analog quantum processing module. Hence, both the DQP module 22 and the DAC module 24 use the same (digital) API on their respective input interfaces, such that a same quantum circuit can be fed transparently to either the DQP module 22 or the DAC module 24. Also, the output interface of the DAC module 24 implements the (analog) API supported by the AQP module 23, such that the output of said DAC module 24 can be connected directly to the input of the AQP module 23.
Hence, as illustrated by
As discussed above, the DAC module 24 is configured to convert a quantum circuit into a corresponding temporal schedule, e.g. a temporal schedule that should yield the same results when executed on a target analog quantum computer 13 than the input quantum circuit when executed on a target digital quantum computer 12.
For instance, for each possible quantum gate (e.g. Pauli-X, Pauli-Y, Pauli-Z, Hadamard, CNOT, etc.) that can be included in a quantum circuit to be executed (and/or for each possible combination of quantum gates likely to be included in a quantum circuit to be executed), it is possible to determine beforehand a corresponding elementary schedule Hi(t). An elementary schedule Hi(t) (e.g. a time-dependent Hamiltonian operator) is for instance defined on a bounded time interval [0; ΔTi], with 1≤i≤N and N the number of possible quantum gates Ui. For a possible quantum gate Ui, the corresponding elementary schedule Hi(t) is typically such that:
U
i≈exp(−∫0ΔT
For instance, when receiving on the input interface a quantum circuit consisting in two consecutive quantum gates U1 and U2, the DAC module 24 may determine a temporal planning for the elementary schedules H1(t) and H2(t), based on the execution order of said quantum gates of the quantum circuit. With two consecutive quantum gates, the temporal planning may consist in executing the elementary schedule H1(t) at t1 and the elementary schedule at H2(t) at t2, with e.g. t2−t1≥ΔT1 if the quantum gates U1 and U2 are applied on the same qubit. Hence, based on the quantum gates U1 and U2 and based on the temporary planning t1 and t2, the elementary schedules to be executed correspond respectively to H1(t−t1) and H2(t−t2). Hence the quantum circuit may be converted into a temporal schedule H(t) (time-dependent Hamiltonian operator) obtained by adding these elementary schedules as follows:
H(t)=H1(t−t1)+H2(t−t2)
Of course, other simplifications or optimizations could apply. For instance, if the quantum gates act on different qubits, both elementary schedules could be applied simultaneously instead of sequentially, etc.
It should be noted that the precise form of the elementary schedules Hi(t) depends on the form of each possible quantum gate Ui and on the hardware constraints of the target analog quantum computer 13.
As discussed above, the elementary schedules may be determined beforehand and applied on the fly by the DAC module 24 when receiving a quantum circuit. In preferred embodiments, these elementary schedules may be determined by the DAC module 24 itself during a calibration phase. During this calibration phase, the DAC module 24 seeks for optimal elementary schedules associated respectively to the possible quantum gates. For each possible quantum gate Ui, the DAC module 24 may output a plurality of candidate elementary schedules {tilde over (H)}i(t) to be executed by the analog quantum computer 13, via the AQP module 23. The DAC module 24 compares the results provided by the analog quantum computer 13 with a reference result for each possible quantum gate Ui, and determines an optimal elementary schedule Hi(t) for said quantum gate Ui as the candidate elementary schedule {tilde over (H)}i(t) which minimizes the difference between Ui and exp(−∫0ΔT
During step S52, the determination may use e.g. an indication received with the quantum program (e.g. if the quantum developer wants its quantum program to be executed by a specific quantum computer). However, in some cases, the computing system 10 may decide to use one among a digital quantum computer 12 or an analog quantum computer 13 based on other constraints, for instance based on the respective loads of the different quantum computers, etc.
If the computing system 10 determines that the quantum program is to be executed by a digital quantum computer 12 (reference S52a in
If the computing system 10 determines that the quantum program is to be executed by an analog quantum computer 13 (reference S52b in
In preferred embodiments, the computing system 10 comprises an analog to digital converting, ADC, module 25, to be executed by the classical computer 11. Such an ADC module 25 is configured to convert a quantum program expressed as a temporal schedule H(t) into a quantum program expressed as a quantum circuit C. Said ADC module 25 comprises an input interface for receiving a temporal schedule H(t) to be converted and an output interface for outputting a corresponding quantum circuit C. In the present disclosure, a same format is used on the input interfaces of both the AQP module 23 and the ADC module 25. Also, a same format is used on both the output interface of the ADC module 25 and the input interface of the DQP module 22. Hence, both the AQP module 23 and the ADC module 25 use the same (analog) API on their respective input interfaces, such that a same temporal schedule can be fed transparently to either the AQP module 23 or the ADC module 25. Also, the output interface of the ADC module 25 implements the (digital) API supported by the DQP module 22, such that the output of said ADC module 25 can be connected directly to the input of the DQP module 22.
Hence, as illustrated by
The ADC module 25 performs basically the inverse processing of the processing applied by the DAC module 24. For instance, the temporal schedule to be converted may be composed of predetermined possible elementary schedules Hi(t) and, for each of these possible elementary schedules Hi(t), a corresponding quantum gate Ui (or a combination of quantum gates, i.e. a quantum sub-circuit) may be determined beforehand, and used to convert an input temporal schedule H(t) into a corresponding quantum circuit C e.g. via a Trotterization process or Trotter decomposition.
During step S62, the determination may use e.g. an indication received with the quantum program (e.g. if the quantum developer wants the quantum program to be executed by a specific quantum computer). However, in some cases, the computing system 10 may decide to use one among a digital quantum computer 12 or an analog quantum computer 13 based on other constraints, for instance based on the respective loads of the different quantum computers, etc.
If the computing system 10 determines that the quantum program is to be executed by an analog quantum computer 13 (reference S62a in
If the computing system 10 determines that the quantum program is to be executed by a digital quantum computer 12 (reference S62b in
It should be noted that, in a computing system 10 comprising both a DAC module 24 and an ADC module 25, the computing system 10 is also adapted to execute e.g. a quantum program expressed as a quantum circuit by using a digital quantum computer 12 via the DAC module 24 connected to the ADC module 25, as illustrated by
The optimization algorithms carried out by the ADC module 25 (or the DAC module 24) or by the AAC module 26 aim at converting the temporal schedule H(t) into an equivalent temporal schedule H′(t) having better properties with respect to a predetermined performance criterion. Examples of possible performance criteria include the total duration of the temporal schedule (to be minimized), the compliance with constraints such as a limited slope for the time-varying fields that enter into the definition of the temporal schedule, the compliance with the operation set available, the minimization of leakage of population to higher levels, the robustness to quantum noise, the use of parallel controls, etc. Such optimization algorithms are considered known to the skilled person. Different types of performance criteria/optimization algorithms may be considered in the present disclosure, and the choice of a specific type of performance criterion/optimization algorithm corresponds merely to a specific embodiment of the present disclosure.
It is emphasized that the present invention is not limited to the above exemplary embodiments. Variants of the above exemplary embodiments are also within the scope of the present invention.
For instance, the present disclosure has been provided by focusing on a computing system 10 comprising at least a DAC module 24. However, the present disclosure applies also to the case e.g. of a computing system 10 comprising an ADC module 25 and no DAC module 24. Such a computing system 10 may be used e.g. to implement an execution method 60 as described in reference to
| Number | Date | Country | Kind |
|---|---|---|---|
| 21306279.7 | Sep 2021 | EP | regional |