IP Library Granted Patent US 11,880,745
Granted Patent B1
US 11,880,745 · App. 17/899,266 · Granted Jan 23, 2024

Noisy intermediate-scale quantum service analysis for cloud based support

Inventors: Leigh Griffin (Waterford, IE); Stephen Coady (Waterford, IE)
Assignee: Red Hat, Inc.
G06N10/80G06F11/3409
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,880,745
App. No.
17/899,266
Granted
Jan 23, 2024
Kind
B1
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 (68)

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.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2023
From: GRIFFIN, LEIGH; COADY, STEPHEN
To: RED HAT, INC.
Reel/Frame 065432/0838 →