US 12,436,815 B2
Systems and methods for using distributed quantum computing simulators
Constantin Gonciulea, Upper Arlington, OH (US); Vitaliy Dorum, New York, NY (US); and Austin Gilliam, Columbus, OH (US)
Assigned to JPMORGAN CHASE BANK, N.A., New York, NY (US)
Filed by JPMORGAN CHASE BANK, N.A., New York, NY (US)
Filed on Feb. 18, 2021, as Appl. No. 17/179,114.
Claims priority of provisional application 62/978,263, filed on Feb. 18, 2020.
Prior Publication US 2022/0309374 A1, Sep. 29, 2022
Int. Cl. G06F 9/50 (2006.01); G06F 8/41 (2018.01); G06F 9/48 (2006.01); G06F 30/27 (2020.01); G06N 10/20 (2022.01); G06N 10/80 (2022.01); G06N 20/00 (2019.01)
CPC G06F 9/5066 (2013.01) [G06F 8/451 (2013.01); G06F 9/4881 (2013.01); G06F 9/5072 (2013.01); G06F 30/27 (2020.01); G06N 10/20 (2022.01); G06N 10/80 (2022.01); G06N 20/00 (2019.01); G06F 2209/5017 (2013.01)] 16 Claims
OG exemplary drawing
 
1. A method for executing quantum computing instructions using a distributed quantum-based computing simulator, comprising:
identifying, by a compiling service, a number of qubits in a prefix for the quantum computing instructions received from a client device;
identifying, by the compiling service, a plurality of target qubits in the prefix;
optimizing, by the compiling service, the number of qubits in the prefix and the number of target qubits in the prefix to maximize parallel processing of the quantum computing instructions;
compiling, by the compiling service, the quantum computing instructions into a set of operations, each operation associated with a location, wherein the number of locations is based on the number of qubits in the optimized prefix;
receiving, at a driver node executed by a computer processor and from the compiling service, the set of operations and a worker node for each operation;
generating, by the driver node, a declarative instantiation plan for the set of operations, the declarative instantiation plan identifying each of the worker nodes;
instantiating, by the driver node, the declarative instantiation plan, wherein the instantiation instantiates the worker nodes;
issuing, by the driver node, the operations to the worker node for each operation, wherein the worker nodes execute the operation;
receiving, by the driver node, results from each worker node;
aggregating, by the driver node, the results; and
returning, by the driver node, the aggregated results to the client device via the service.