# US 12,182,667 B2 · Noisy intermediate-scale quantum service analysis for cloud based support

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,182,667 B2
- Document ID: US12182667B2
- Status: Granted
- Kind: B2
- Application number: 18/534,380
- Filed: 2023-12-08
- Published: 2024-04-04
- Granted: 2024-12-31
- Earliest claimed: 2022-08-30
- Assignees: Red Hat, Inc.
- Applicants: Red Hat, Inc.
- Inventors: Leigh Griffin; Stephen Coady
- Web page: https://patentgrep.com/patent/US12182667B2

## CPC

- G06N 10/80: Quantum programming, e.g. interfaces, languages or software-development kits for creating or handling programs capable of running on quantum computers; Platforms for simulating or accessing quantum computers, e.g. cloud-based quantum computing
- G06F 11/3409: {for performance assessment}
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system and method including calculating a plurality of risk scores associated with a pool of quantum computers, 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.

## Claims

### Claim 1

A method comprising:
calculating, by a processing device, a plurality of risk scores associated with a pool of quantum computers; and
selectively distributing, based on the plurality of risk scores, each of a 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 at least one block of the plurality of blocks.

### Claim 2 (depends on 1)

The method of claim 1, wherein 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.

### Claim 3 (depends on 1)

The method of claim 1, further comprising receiving a quantum assembly language (QASM) file and a performance setting for the QASM file, the QASM file comprising a plurality of blocks.

### Claim 4 (depends on 3)

The method of claim 3, further comprising 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, wherein calculating the plurality of risk scores is based on the plurality of complexity scores.

### Claim 5 (depends on 1)

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.

### Claim 6 (depends on 3)

The method of claim 3, wherein the performance setting is indicative of at least one of a processing speed, a processing accuracy, or a processing efficiency.

### Claim 7 (depends on 6)

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.

### Claim 8 (depends on 6)

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.

### Claim 9 (depends on 1)

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.

### Claim 10 (depends on 9)

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.

### Claim 11

A system comprising:
a memory; and
a processing device, operatively coupled to the memory, to:
calculate a plurality of risk scores associated with a pool of quantum computers; and
selectively distribute, based on the plurality of risk scores, each of a 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 at least one block of the plurality of blocks.

### Claim 12 (depends on 11)

The system of claim 11, wherein 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.

### Claim 13 (depends on 11)

The system of claim 11, wherein the processing device further to receive a quantum assembly language (QASM) file and a performance setting for the QASM file, the QASM file comprising a plurality of blocks.

### Claim 14 (depends on 13)

The system of claim 13, wherein the processing device further to 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, wherein calculating the plurality of risk scores is based on the plurality of complexity scores.

### Claim 15 (depends on 11)

The system of claim 11, wherein the processing device further 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.

### Claim 16 (depends on 13)

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.

### Claim 17 (depends on 11)

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.

### Claim 18 (depends on 11)

The system of claim 11, wherein the processing device further 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.

### Claim 19

A non-transitory computer-readable medium storing instructions that, when executed by a processing device, cause the processing device to:
calculate, by the processing device, a plurality of risk scores associated with a pool of quantum computers; and
selectively distribute, based on the plurality of risk scores, each of a 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 at least one block of the plurality of blocks.

### Claim 20 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein 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.
