Noisy intermediate-scale quantum service analysis for cloud based support
Abstract
A system and method of selectively distributing blocks of a quantum assembly language (QASM) file over resources of a quantum computing environment to optimize performance of the quantum computing environment. The method includes receiving a quantum assembly language (QASM) file comprising a plurality of blocks. The method includes calculating a plurality of complexity scores each indicative of a degree of complexity to process a respective block of the plurality of blocks. The method includes calculating a plurality of risk scores associated with a pool of quantum computers, each risk score is indicative of a likelihood of a respective quantum computer of the pool of quantum computers entering an undesired state responsive to processing a respective block of the plurality of blocks. The method includes selectively distributing, based on the plurality of risk scores, each of the plurality of blocks to a single quantum computer of the pool of quantum computers.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method comprising:
receiving a quantum assembly language (QASM) file and a performance setting for the QASM file, the QASM file comprising a plurality of blocks;
calculating, for each block of the plurality of blocks, a respective complexity score of a plurality of complexity scores, each complexity score of the plurality of complexity scores is indicative of a degree of complexity to process a respective block of the plurality of blocks based on the performance setting;
calculating, by a processing device of a classical computer based on the plurality of complexity scores, a plurality of risk scores associated with a pool of quantum computers, each risk score is indicative of a likelihood of a respective quantum computer of the pool of quantum computers entering an undesired state responsive to processing the respective block of the plurality of blocks; and
selectively distributing, based on the plurality of risk scores, each of the plurality of blocks to a single quantum computer of the pool of quantum computers to cause the single quantum computer to generate a block output by processing the block and send the block output to the processing device.
2. The method of claim 1 , wherein calculating the plurality of complexity scores that are each indicative of the degree of complexity to process the respective block of the plurality of blocks based on the performance setting comprises:
parsing the QASM file to identify each block of the plurality of blocks; and
determining, for each block of the plurality of blocks, resource requirements for processing the block according to the performance setting.
3. The method of claim 1 , further comprising:
polling, for each quantum computer of the pool of quantum computers, one or more application programming interfaces (API) of the quantum computer to obtain a plurality of snapshots associated with the pool of quantum computers, wherein each snapshot of the plurality of snapshots indicates a current status of one or more resources of a respective quantum computer of the pool of quantum computers,
wherein the calculating, based on the plurality of complexity scores, the plurality of risk scores associated with the pool of quantum computers is further based on the plurality of snapshots associated with the pool of quantum computers.
4. The method of claim 3 , wherein the current status of one or more resources of the quantum computer is indicative of at least one of a current qubit availability, a current system noise, a current error count, a current temperature, a current processing load, or a current availability of services.
5. The method of claim 1 , wherein the performance setting is indicative of at least one of a processing speed, a processing accuracy, or a processing efficiency.
6. The method of claim 3 , wherein calculating, based on the plurality of complexity scores, the plurality of risk scores associated with the pool of quantum computers comprises:
determining, for a first quantum computer of the pool of quantum computers, a first potential impact to the current status of the first quantum computer responsive to processing a first block of the plurality of blocks; and
determining, for a second quantum computer of the pool of quantum computers, a second potential impact to the current status of the second quantum computer responsive to processing the first block of the plurality of blocks.
7. The method of claim 6 , further comprising:
calculating a first future status information of the first quantum computer based on the first potential impact to the current status of the first quantum computer;
calculating a first risk score of the plurality of risk scores by comparing the first future status information of the first quantum computer to a first risk criteria threshold associated with the first quantum computer;
calculating a second future status information of the second quantum computer based on the second potential impact to the current status of the second quantum computer;
calculating a second risk score of the plurality of risk scores by comparing the second future status information of the second quantum computer to a second risk criteria threshold associated with the second quantum computer; and
determining, based on the first risk score and the second risk score, to send the first block of the plurality of blocks to the first quantum computer instead of the second quantum computer.
8. The method of claim 6 , further comprising:
generating a list indicating the plurality of risk scores associated with the pool of quantum computers; and
causing an application to present the list on a display.
9. The method of claim 1 , further comprising:
receiving the plurality of block outputs from the pool of quantum computers;
aggregating the plurality of block outputs into an aggregated block output; and
sending the aggregated block output to an application executing on the processing device of the classical computer or on a second classic computer.
10. The method of claim 9 , wherein aggregating the block outputs into the aggregated block output comprises:
determining an order of the plurality of blocks within the QASM file; and
arranging the block outputs within the aggregated block output based on the order.
11. A system comprising:
a memory; and
a processing device, operatively coupled to the memory, to:
receive a quantum assembly language (QASM) file and a performance setting for the QASM file, the QASM file comprising a plurality of blocks;
calculate, for each block of the plurality of blocks, a respective complexity score of a plurality of complexity scores, each complexity score of the plurality of complexity scores is indicative of a degree of complexity to process a respective block of the plurality of blocks based on the performance setting;
calculate, based on the plurality of complexity scores, a plurality of risk scores associated with a pool of quantum computers, each risk score is indicative of a likelihood of a respective quantum computer of the pool of quantum computers entering an undesired state responsive to processing the respective block of the plurality of blocks; and
selectively distribute, based on the plurality of risk scores, each of the plurality of blocks to a single quantum computer of the pool of quantum computers to cause the single quantum computer to generate a block output by processing the block and send the block output to the processing device.
12. The system of claim 11 , wherein to calculate the plurality of complexity scores that are each indicative of the degree of complexity to process the respective block of the plurality of blocks based on the performance setting, the processing device to:
parse the QASM file to identify each block of the plurality of blocks; and
determine, for each block of the plurality of blocks, resource requirements for processing the block according to the performance setting.
13. The system of claim 11 , wherein the processing device to:
poll, for each quantum computer of the pool of quantum computers, one or more application programming interfaces (API) of the quantum computer to obtain a plurality of snapshots associated with the pool of quantum computers, wherein each snapshot of the plurality of snapshots indicates a current status of one or more resources of a respective quantum computer of the pool of quantum computers,
wherein to calculate, based on the plurality of complexity scores, the plurality of risk scores associated with the pool of quantum computers is further based on the plurality of snapshots associated with the pool of quantum computers.
14. The system of claim 13 , wherein the current status of one or more resources of the quantum computer is indicative of at least one of a current qubit availability, a current system noise, a current error count, a current temperature, a current processing load, or a current availability of services.
15. The system of claim 11 , wherein the performance setting is indicative of at least one of a processing speed, a processing accuracy, or a processing efficiency.
16. The system of claim 13 , wherein to calculate, based on the plurality of complexity scores, the plurality of risk scores associated with the pool of quantum computers comprises:
determine, for a first quantum computer of the pool of quantum computers, a first potential impact to the current status of the first quantum computer responsive to processing a first block of the plurality of blocks; and
determine, for a second quantum computer of the pool of quantum computers, a second potential impact to the current status of the second quantum computer responsive to processing the first block of the plurality of blocks.
17. The system of claim 16 , wherein the processing device to:
calculate a first future status information of the first quantum computer based on the first potential impact to the current status of the first quantum computer;
calculate a first risk score of the plurality of risk scores by comparing the first future status information of the first quantum computer to a first risk criteria threshold associated with the first quantum computer;
calculate a second future status information of the second quantum computer based on the second potential impact to the current status of the second quantum computer;
calculate a second risk score of the plurality of risk scores by comparing the second future status information of the second quantum computer to a second risk criteria threshold associated with the second quantum computer; and
determine, based on the first risk score and the second risk score, to send the first block of the plurality of blocks to the first quantum computer instead of the second quantum computer.
18. The system of claim 11 , wherein the processing device to:
receive the plurality of block outputs from the pool of quantum computers;
aggregate the plurality of block outputs into an aggregated block output; and
send the aggregated block output to an application executing on the processing device of the classical computer or on a second classic computer.
19. The system of claim 18 , wherein to aggregate the block outputs into the aggregated block output, the processing device to:
determine an order of the plurality of blocks within the QASM file; and
arrange the block outputs within the aggregated block output based on the order.
20. A non-transitory computer-readable medium storing instructions that, when executed by a processing device, cause the processing device to:
receive a quantum assembly language (QASM) file and a performance setting for the QASM file, the QASM file comprising a plurality of blocks;
calculate, for each block of the plurality of blocks, a respective complexity score of a plurality of complexity scores, each complexity score of the plurality of complexity scores is indicative of a degree of complexity to process a respective block of the plurality of blocks based on the performance setting;
calculate, by the processing device of a classical computer based on the plurality of complexity scores, a plurality of risk scores associated with a pool of quantum computers, each risk score is indicative of a likelihood of a respective quantum computer of the pool of quantum computers entering an undesired state responsive to processing the respective block of the plurality of blocks; and
selectively distribute, based on the plurality of risk scores, each of the plurality of blocks to a single quantum computer of the pool of quantum computers to cause the single quantum computer to generate a block output by processing the block and send the block output to the processing device.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.