IP Library Granted Patent US 11,416,228
Granted Patent B2
US 11,416,228 · App. 17/273,938 · Granted Aug 16, 2022

System and method of optimizing instructions for quantum computers

Inventors: Frederic T. Chong (Chicago, IL); Yunong Shi, I (Chicago, IL); Nelson Leung (Chicago, IL); Pranav Gokhale (Chicago, IL); Henry Hoffmann (Chicago, IL); David Schuster (Chicago, IL)
Assignee: THE UNIVERSITY OF CHICAGO
G06F8/443G06F9/48G06N10/00G06F8/41G06F8/47H03K3/00H03K5/00
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,416,228
App. No.
17/273,938
Granted
Aug 16, 2022
Kind
B2
Abstract

A quantum computing system includes a quantum processor having a plurality of qubits, a classical memory, and a classical processor. The classical processor is configured to compile a quantum program into logical assembly instructions in an intermediate language, aggregate the logical assembly instructions together into a plurality of logical blocks of instructions, generate a logical schedule for the quantum program based on commutativity between the plurality of logical blocks, generate a tentative physical schedule based on the logical schedule, the tentative physical schedule includes a mapping of the logical assembly instructions in the logical schedule onto the plurality of qubits of the quantum processor, aggregate instructions together within the tentative physical schedule that do not reduce parallelism, thereby generating an updated physical schedule; generate optimized control pulses for the aggregated instructions, and execute the quantum program on the quantum processor with the optimized control pulses and the updated physical schedule.

Claims (89)

1. A quantum computing system for compiling and executing instructions on a quantum processor, the quantum computing system comprising:

the quantum processor including a plurality of qubits;

a classical memory including a quantum program, the quantum program defines a plurality of instructions in a source language; and

a classical processor communicatively coupled to the classical memory, the classical memory including computer-executable instructions that, when executed by the classical processor, cause the classical processor to:

compile the quantum program into logical assembly instructions in an intermediate language;

aggregate the logical assembly instructions together into a plurality of logical blocks of instructions;

generate a logical schedule for the quantum program based on commutativity between the plurality of logical blocks;

generate a tentative physical schedule based on the logical schedule, the tentative physical schedule includes a mapping of the logical assembly instructions in the logical schedule onto the plurality of qubits of the quantum processor;

aggregate instructions together within the tentative physical schedule that do not reduce parallelism, thereby generating an updated physical schedule;

generate optimized control pulses for the aggregated instructions of the quantum program; and

execute the quantum program on the quantum processor with the optimized control pulses and the updated physical schedule.

2. The quantum computing system of claim 1 , wherein the instructions further cause the classical processor to:

generate a gate dependence graph for the quantum program from the logical assembly instructions,

wherein aggregating sets of logical assembly instructions together further includes determining commutativity in the gate dependency graph, wherein the aggregating is based on aggregation rules defined on the gate dependence graph.

3. The quantum computing system of claim 2 , wherein determining commutativity in the gate dependency graph includes forming one or more intermediate aggregated instructions within the gate dependency graph.

4. The quantum computing system of claim 2 , wherein the instructions further cause the classical processor to:

determine priority values for each instruction in the quantum program by:

identifying, for a particular instruction, each parent of the particular instruction from the gate dependency graph;

for each identified parent of the particular instruction, subtracting a latency of the parent from a priority value of the parent, thereby identifying a potential priority value for the particular instruction; and

assigning a minimal potential priority value to the particular instruction from the identified potential priority values of the identified parents; and

schedule each instruction in the quantum program based on the assigned priority value.

5. The quantum computing system of claim 2 , wherein aggregating instructions together in the tentative physical schedule comprises:

identifying a monotonic action involving aggregation of two or more instructions within the gate dependence graph that does not delay critical paths within the gate dependence graph;

aggregating the two or more instructions within the gate dependence graph;

updating a latency of each aggregated instruction; and

scheduling a circuit of aggregated instructions based on the gate dependence graph.

6. The quantum computing system of claim 5 , wherein executing the quantum program further includes transmitting control pulse sequences to the quantum processor based on the circuit of aggregated instructions.

7. The quantum computing system of claim 1 , wherein aggregating the logical assembly instructions further includes aggregating a first set of logical assembly instructions, a product of which are diagonal unitaries.

8. A computer-implemented method for compiling instructions for a quantum computer, the method is implemented using a classical processor in communication with a classical memory, the computer-implemented method comprising:

receiving a quantum program from a user, the quantum program defining a plurality of instructions in a source language;

compiling the quantum program into logical assembly instructions in an intermediate language;

aggregating the logical assembly instructions together into a plurality of logical blocks of instructions;

generating a logical schedule for the quantum program based on commutativity between the plurality of logical blocks;

generating a tentative physical schedule based on the logical schedule, the tentative physical schedule including a mapping of the logical assembly instructions in the logical schedule onto a plurality of qubits of a quantum processor;

aggregating instructions together in the tentative physical schedule that do not reduce parallelism, thereby generating an updated physical schedule;

generating optimized control pulses for the aggregated instructions of the quantum program; and

executing the quantum program on the quantum processor with the optimized control pulses and the updated physical schedule.

9. The computer-implemented method of claim 8 , further

comprising:

generating a gate dependence graph for the quantum program from the logical assembly instructions,

wherein aggregating sets of logical assembly instructions together further includes determining commutativity in the gate dependency graph, wherein the aggregating is based on aggregation rules defined on the gate dependency graph.

10. The computer-implemented method of claim 9 , wherein determining commutativity in the gate dependency graph includes forming one or more intermediate aggregated instructions within the gate dependency graph.

11. The computer-implemented method of claim 9 , further comprising:

determining priority values for each instruction in the quantum program by:

identifying, for a particular instruction, each parent of the particular instruction from the gate dependency graph;

for each identified parent of the particular instruction, subtracting a latency of the parent from a priority value of the parent, thereby identifying a potential priority value for the particular instruction; and

assigning a minimal potential priority value to the particular instruction from the identified potential priority values of the identified parents; and

scheduling each instruction in the quantum program based on the assigned priority value.

12. The computer-implemented method of claim 9 , wherein aggregating instructions together in the tentative physical schedule comprises:

identifying a monotonic action involving aggregation of two or more instructions within the gate dependence graph that does not delay critical paths within the gate dependence graph;

aggregating the two or more instructions within the gate dependence graph;

updating a latency of each aggregated instruction; and

scheduling a circuit of aggregated instructions based on the gate dependence graph.

13. The computer-implemented method of claim 12 , wherein executing the quantum program further includes transmitting control pulse sequences to the quantum processor based on the circuit of aggregated instructions.

14. The computer-implemented method of claim 8 , wherein aggregating the logical assembly instructions further includes aggregating a first set of logical assembly instructions, a product of which are diagonal unitaries.

15. A non-transitory computer-readable storage media having computer executable instructions embodied thereon, wherein when executed by at least one classical processor, the computer-executable instructions cause the classical processor to:

receive a quantum program from a user, the quantum program defining a plurality of instructions in a source language;

compile the quantum program into logical assembly instructions in an intermediate language;

aggregate the logical assembly instructions together into a plurality of logical blocks of instructions;

generate a logical schedule for the quantum program based on commutativity between the plurality of logical blocks;

generate a tentative physical schedule based on the logical schedule, the tentative physical schedule including a mapping of the logical assembly instructions in the logical schedule onto a plurality of qubits of a quantum processor;

aggregate instructions together in the tentative physical schedule that do not reduce parallelism, thereby generating an updated physical schedule;

generate optimized control pulses for the aggregated instructions of the quantum program; and

execute the quantum program on the quantum processor with the optimized control pulses and the updated physical schedule.

16. The non-transitory computer-readable storage media of claim 15 , wherein the computer-executable instructions further cause the classical processor to:

generate a gate dependence graph for the quantum program from the logical assembly instructions,

wherein aggregating sets of logical assembly instructions together further includes determining commutativity in the gate dependency graph, wherein the aggregating is based on aggregation rules defined on the gate dependency graph.

17. The non-transitory computer-readable storage media of claim 16 , wherein determining commutativity in the gate dependency graph includes forming one or more intermediate aggregated instructions within the gate dependency graph.

18. The non-transitory computer-readable storage media of claim 16 , wherein the computer-executable instructions further cause the classical processor to:

determine priority values for each instruction in the quantum program by:

identifying, for a particular instruction, each parent of the particular instruction from the gate dependency graph;

for each identified parent of the particular instruction, subtracting a latency of the parent from a priority value of the parent, thereby identifying a potential priority value for the particular instruction;

assigning a minimal potential priority value to the particular instruction from the identified potential priority values of the identified parents; and

schedule each instruction in the quantum program based on the assigned priority value.

19. The non-transitory computer-readable storage media of claim 16 , wherein aggregating instructions together in the tentative physical schedule comprises:

identifying a monotonic action involving aggregation of two or more instructions within the gate dependence graph that does not delay critical paths within the gate dependence graph;

aggregating the two or more instructions within the gate dependence graph;

updating a latency of each aggregated instruction; and

scheduling a circuit of aggregated instructions based on the gate dependence graph.

20. The non-transitory computer-readable storage media of claim 15 , wherein aggregating the logical assembly instructions further includes aggregating a first set of logical assembly instructions, a product of which are diagonal unitaries.

21. A quantum compilation engine for compiling a quantum program to be executed on quantum processor that includes a plurality of qubits, the quantum compilation engine comprising:

a classical memory including the quantum program, the quantum program defines a plurality of instructions in a source language; and

a classical processor communicatively coupled to the classical memory, the classical memory including computer-executable instructions that, when executed by the classical processor, cause the classical processor to:

compile the quantum program into logical assembly instructions in an intermediate language;

aggregate the logical assembly instructions together into a plurality of logical blocks of instructions;

generate a logical schedule for the quantum program based on commutativity between the plurality of logical blocks;

generate a tentative physical schedule based on the logical schedule, the tentative physical schedule includes a mapping of the logical assembly instructions in the logical schedule onto the plurality of qubits of the quantum processor;

aggregate instructions together within the tentative physical schedule that do not reduce parallelism, thereby generating an updated physical schedule; and

generate a pulse specification based on the updated physical schedule.

Assignments (3)
CONFIRMATORY LICENSE Recorded Feb 23, 2022
From: UNIVERSITY OF CHICAGO
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 059353/0565 →
CONFIRMATORY LICENSE Recorded Feb 17, 2022
From: UNIVERSITY OF CHICAGO
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 059034/0554 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2021
From: CHONG, FREDERIC; GOKHALE, PRANAV; HOFFMANN, HENRY; LEUNG, NELSON; SCHUSTER, DAVID; SHI, YUNONG
To: THE UNIVERSITY OF CHICAGO
Reel/Frame 055508/0463 →
Continuity (3)
Provisional Application 62773581 · Nov 30, 2018
Provisional Application 62730813 · Sep 13, 2018
Related Publication 20210334081A1 · Oct 28, 2021
Cited By (1)
US 12,271,715