Job scheduling program, job scheduling method, and information processing device
The job scheduling method addresses inefficiencies in quantum multiprogramming by separating preprocessing and execution queues, enabling immediate execution of jobs based on available quantum bits, thus enhancing efficiency and preventing accuracy losses from crosstalk and error rate variations.
Patent Information
- Application Number
- PCT/JP2023/026491
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-07-20
- Publication Date
- 2025-01-23
AI Technical Summary
Conventional quantum multiprogramming does not account for preprocessing time, leading to inefficiencies in job execution efficiency due to waiting times for all jobs to complete preprocessing before parallel execution can begin.
A job scheduling method that separates jobs into two queues: one for preprocessing and another for immediate execution, where available quantum bits are determined based on predetermined criteria to execute jobs that can proceed without waiting for all preprocessing to finish, allowing for immediate execution of jobs that meet specific criteria.
This approach enhances the efficiency of quantum computing job execution by eliminating waiting times and optimizing the use of quantum bits, thereby improving throughput and preventing decreases in accuracy due to crosstalk and error rate variations.
Smart Images

Figure JP2023026491_23012025_PF_FP_ABST
Abstract
Description
Job scheduling program, job scheduling method, and information processing device
[0001] The present invention relates to a job scheduling program, a job scheduling method, and an information processing device.
[0002] Quantum computers can be accessed, for example, via cloud computing services. Hereinafter, a computer system that provides quantum computing services using a quantum computer will be referred to as a quantum computing system. A quantum computing system is, for example, a hybrid system that combines a classical computer (von Neumann computer) and a quantum computer.
[0003] A user uses a terminal device to create a quantum circuit corresponding to the problem to be solved. The terminal device sends an execution request to the quantum computing system for a job that performs quantum computing based on the quantum circuit. In the quantum computing system, a classical computer submits (queues) the job indicated in the received execution request to an execution queue. The classical computer performs job scheduling for the jobs submitted to the execution queue and causes the quantum computer to execute the jobs in an order based on the job scheduling results. The quantum computer performs quantum computing corresponding to the specified job and sends the execution results to the classical computer. The classical computer sends the results of the quantum computing to the terminal device used by the user.
[0004] In job scheduling in a quantum computing system, multiple jobs can be executed in parallel using multiple quantum bits in a quantum processing unit (QPU). The job scheduling method for executing multiple jobs in parallel on a quantum computer is called quantum multiprogramming.
[0005] With quantum multiprogramming, a classical computer allocates quantum bits within a QPU to each job to be executed in parallel so that the quantum bits used by the jobs do not overlap. This enables parallel execution of jobs, improving the throughput of job execution requests.
[0006] Techniques for managing the execution of quantum computations have been proposed, including programs that cause classical computers to perform selection steps, such as selecting a computer to perform a given task based on required qubits or quantum volume. A quantum computer task manager has also been proposed, which maintains and collects data about a quantum computing system and provides that data on request to other tasks running on the quantum computing system. A system for facilitating the scheduling of quantum computing jobs has also been proposed.
[0007] International Publication No. 2021 / 125189 US Patent Application Publication No. 2020 / 0201655 Specification JP 2022-511613
[0008] Quantum circuits created for the problem to be solved can be made executable after undergoing preprocessing, which involves conversions to suit the quantum computer's hardware. Preprocessing includes converting the quantum gates in the quantum circuit to quantum gates supported by the quantum computer, converting the structure of the quantum circuit so that the gate operations satisfy the hardware constraints, optimizing it, and converting it into an instruction sequence that operates on qubits.
[0009] Conventional quantum multiprogramming does not take into account the time required for preprocessing. As a result, there may be waiting times until the preprocessing of all jobs that are to be parallelized is completed, and it cannot be said that the efficiency of job execution through parallelization is being appropriately improved.
[0010] In one aspect, the present invention aims to enable quantum computing jobs to be performed efficiently.
[0011] In one proposal, the following job scheduling program is provided: a computer inputs jobs indicating that quantum computation is to be performed into a first queue; the computer converts the quantum computation procedures to be executed for the jobs in the first queue into an instruction sequence executable by a quantum computer; the computer inputs the converted jobs into a second queue; the computer proceeds from the top of the second queue and determines, for each job, based on predetermined criteria, the utilized quantum bit to be used during execution and whether or not to execute the job immediately; and the computer then instructs the quantum computer to execute quantum computation using the utilized quantum bit based on the instruction sequence corresponding to the job determined to be executed immediately.
[0012] According to one aspect, quantum computing jobs can be efficiently performed. These and other objects, features and advantages of the present invention will become apparent from the following description taken in conjunction with the accompanying drawings illustrating preferred embodiments of the present invention by way of example.
[0013] 1 is a diagram illustrating an example of a job scheduling method according to a first embodiment. FIG. 1 is a diagram illustrating an example of the configuration of a quantum computing system. FIG. 2 is a diagram illustrating an example of hardware of a device that constitutes a quantum computing system. FIG. 3 is a diagram illustrating a relationship between a quantum circuit and NN constraints. FIG. 4 is a diagram illustrating an example of an error for each quantum bit. FIG. 5 is a diagram illustrating an example of job scheduling without considering pre-processing. FIG. 6 is a diagram illustrating an example of quantum multiprogramming. FIG. 7 is a diagram illustrating an example of quantum multiprogramming on the user side. FIG. 8 is a diagram illustrating an example of quantum multiprogramming realized on the service provider side. FIG. 9 is a block diagram illustrating an example of a quantum multiprogramming function according to a second embodiment. FIG. 10 is a diagram illustrating an example of job queuing. FIG. 11 is a flowchart illustrating a processing procedure when a job execution request is obtained. FIG. 12 is a flowchart illustrating an example of a procedure for pre-processing execution processing. FIG. 13 is a diagram illustrating an example of avoiding conflicts in used quantum bits during pre-processing. FIG. 14 is a flowchart illustrating an example of a procedure for selecting an execution job. FIG. 15 is a diagram illustrating an example of a determination regarding the "first criterion". FIG. 16 is a diagram illustrating an example of a determination regarding the "second criterion". FIG. 17 is a diagram illustrating an example of a case where a determination regarding the "second criterion" is made by limiting the range of subsequent jobs. FIG. 18 is a diagram illustrating an example of a case where conflicts in used quantum bits with subsequent jobs are allowed. FIG. 19 is a diagram illustrating an example of a case where a range to be considered as a subsequent job is set based on the execution time of pre-processing. FIG. 19 is a diagram illustrating an example of a determination regarding the "third criterion". 10A and 10B are diagrams illustrating an example of a determination regarding the "fourth criterion" and "fifth criterion," respectively.
[0014] The present embodiment will be described below with reference to the drawings. Note that each embodiment can be implemented by combining multiple embodiments within a consistent range. [First Embodiment] The first embodiment is a job scheduling method that can efficiently execute quantum computing jobs using a quantum computer.
[0015] Fig. 1 is a diagram showing an example of a job scheduling method according to a first embodiment. Fig. 1 shows an information processing device 10 that implements the job scheduling method. The information processing device 10 can implement the job scheduling method by, for example, executing a job scheduling program.
[0016] The information processing device 10 is, for example, a computer called a von Neumann computer or a classical computer. The information processing device 10 has a memory unit 11 and a processing unit 12. The memory unit 11 is, for example, a memory or storage device included in the information processing device 10. The processing unit 12 is, for example, a processor or an arithmetic circuit included in the information processing device 10.
[0017] The storage unit 11 is provided with a first queue 1 and a second queue 2. The first queue 1 stores jobs 4a to 4d waiting for conversion before preprocessing is performed. The second queue 2 stores jobs 5a to 5d waiting for execution after preprocessing has been completed.
[0018] The processing unit 12 performs job scheduling. For example, when the processing unit 12 acquires jobs 3a to 3d that indicate the execution of quantum computation, the processing unit 12 inputs the jobs 3a to 3d into the first queue 1 as jobs 4a to 4d waiting for conversion.
[0019] The processing unit 12 performs preprocessing on the jobs 4a to 4d waiting for conversion in the first queue 1. For example, the processing unit 12 converts the quantum computation procedures to be executed in the jobs 4a to 4d waiting for conversion into an instruction sequence executable by the quantum computer 6. The instruction sequence is a sequence of instructions for realizing the operation of quantum gates shown in the quantum circuit. The processing unit 12 inputs the jobs 4a to 4d waiting for conversion, for which conversion has been completed, into the second queue 2 as jobs 5a to 5d waiting for execution.
[0020] The processing unit 12 determines, starting from the top of the second queue 2, for each of the jobs 5a-5d waiting for execution, based on predetermined criteria, the quantum bits to be used during execution and whether to execute the job immediately. For example, the processing unit 12 determines whether a first criterion is met regarding whether the job is currently executable using the hardware resources of the quantum computer 6. The first criterion is, for example, whether a combination of available quantum bits exists that satisfies constraints regarding the connection relationships of the quantum bits required to execute the jobs 5a-5d waiting for execution and that are not being used by other jobs currently being executed.
[0021] The processing unit 12 then instructs the quantum computer 6 to execute quantum computation using the determined utilization quantum bit based on the instruction sequence corresponding to the waiting job that has been determined to be executed immediately.
[0022] In this way, the processing unit 12 inputs jobs for which preprocessing has been completed into the second queue 2, and determines a job to be immediately executed and a quantum bit to be used to execute that job from the second queue 2. The processing unit 12 then immediately outputs an execution instruction for the determined job. This eliminates the need to wait for the completion of preprocessing for jobs that can be executed immediately, allowing jobs to be executed efficiently.
[0023] 1, the QPU 7 of the quantum computer 6 has eight quantum bits 7a to 7h. Two quantum bits 7a and 7b are assumed to be in use for quantum computation of another job. The processing unit 12 determines whether to immediately execute each job waiting for execution, starting with the job 5a at the top of the second queue 2.
[0024] For example, suppose three quantum bits are used to execute job 5a. A hardware constraint requires that one of the three quantum bits be connected to each of the other two quantum bits. The processing unit 12 determines whether a combination of quantum bits capable of executing job 5a can be generated by combining available quantum bits within QPU 7. For example, using a combination of quantum bits 7e, 7g, and 7h allows job 5a to be executed immediately. Therefore, the processing unit 12 determines that job 5a should be executed immediately and that the quantum bits to be used are quantum bits 7e, 7g, and 7h.
[0025] The processing unit 12 then deletes the waiting job 5a from the second queue 2 and instructs the quantum computer 6 to execute the waiting job 5a. The quantum computer 6 then manipulates the quantum bits 7e, 7g, and 7h based on an instruction sequence corresponding to the quantum computation procedure of the waiting job 5a. This performs quantum computation. In this example, if the waiting job 5a is determined to be executable, it is executed immediately without waiting for the pre-processing of other jobs to be completed. This allows jobs to be executed efficiently.
[0026] The processing unit 12 can also determine whether a waiting job 5a-5d satisfies a second criterion, for example, using information about a subsequent job, as a criterion for determining whether to immediately execute the waiting job 5a-5d. The jobs 3a-3d input from the terminal devices 8a and 8b may specify the quantum bit to be used. For example, this may be the case when the use of the quantum bit with the lowest error rate is specified. In this case, the quantum bit to execute the job is determined before job scheduling, regardless of the status of available quantum bits. For example, the processing unit 12 determines whether the waiting job being determined satisfies a second criterion, that is, whether the order in which the immediate execution of the job to be determined can satisfy the first criterion without using the quantum bit scheduled to be used by the subsequent job.
[0027] This makes it possible to avoid competition for the quantum bits to be used with subsequent jobs. By avoiding such competition, subsequent jobs whose quantum bits to be used have been determined can also be executed efficiently.
[0028] The processing unit 12 can also set a limit on the range of jobs that it considers as subsequent jobs. For example, when the processing unit 12 arranges the jobs 4a-4d waiting for conversion registered in the first queue 1 behind the jobs 5a-5d waiting for execution registered in the second queue 2, it considers the jobs within M positions (M is a natural number) from the top as subsequent jobs. In this case, the subsequent jobs are jobs waiting for execution other than the job waiting for execution being judged, or jobs waiting for conversion. By limiting the range of jobs that it considers as subsequent jobs in this way, it is not necessary to judge whether or not there is a conflict for quantum bits that are scheduled to be used in a job that clearly requires a considerable amount of time to be executed. This allows it to appropriately determine whether or not to execute a job immediately.
[0029] The processing unit 12 may determine whether to consider a conversion-awaiting job as a subsequent job based on the time until preprocessing is completed. For example, the processing unit 12 may determine, as a subsequent job, a conversion-awaiting job 4a-4d included in the first queue 1, for which conversion of the quantum computing procedure to be executed into an instruction sequence is completed within the execution time required for the execution of the conversion-awaiting job being determined from the current time. In this case, other execution-awaiting jobs other than the conversion-awaiting job being determined are also included as subsequent jobs. This eliminates the need to consider the influence of the quantum bits planned to be used in the conversion-awaiting job even in cases where the execution of the conversion-awaiting job being determined can be completed before the preprocessing of the conversion-awaiting job is completed. As a result, the accuracy of the determination of whether or not the conversion-awaiting job can be executed immediately is improved.
[0030] Furthermore, the processing unit 12 may flexibly determine whether to execute a subsequent job without strictly applying the second criterion. For example, if the use of a quantum bit scheduled for use in a subsequent job is avoided, there may be no pending jobs that can be determined to be executed immediately other than the subsequent job for which the quantum bit scheduled for use is set. In this case, the processing unit 12 may allow the pending jobs that do not satisfy the second criterion to be determined to be executed immediately. This can prevent inequality, such as the execution of a preceding job being delayed relative to a subsequent job due to the existence of a subsequent job that uses a large number of quantum bits.
[0031] The processing unit 12 may determine the quantum bits to be used for a pending job determined to be immediately executed so as to leave as many free quantum bits as possible. For example, there may be multiple combinations of free quantum bits that satisfy the first criterion. In this case, the processing unit 12 counts the number of consecutive connections of the remaining free quantum bits excluding the free quantum bits included in each combination. The processing unit 12 then determines the quantum bits to be used for the pending job to be determined based on a third criterion related to the number of consecutive free quantum bits remaining for each of the multiple combinations of quantum bits. For example, the processing unit 12 determines the quantum bits of the combination with the largest number of consecutive free quantum bits as the quantum bits to be used. This can improve the parallelism of the job.
[0032] The processing unit 12 may determine whether to immediately execute a pending job based on the predicted output reliability of the quantum computation result. For example, the processing unit 12 generates multiple combinations of quantum bits that can be used for the pending job to be determined. Next, the processing unit 12 calculates, for each combination, a predicted output reliability indicating the reliability of the computation result when quantum computation is performed using the corresponding quantum bits based on the error rate during operation of the multiple quantum bits 7a-7h in the quantum computer 6. The processing unit 12 then determines whether to immediately execute the pending job to be determined based on a fourth criterion related to the predicted output reliability. For example, the processing unit 12 determines to immediately execute a pending job when a combination of quantum bits is used in which the decrease in predicted output reliability compared to when parallel execution is not performed is equal to or less than a predetermined threshold. This prevents a decrease in reliability due to parallel execution.
[0033] The processing unit 12 can also determine whether or not to execute a job immediately, taking into account the effects of crosstalk. For example, the processing unit 12 identifies, among available quantum bits not being used to execute other currently running jobs, quantum bits that are at least a certain distance from the quantum bits being used to execute other currently running jobs. The processing unit 12 then uses the identified quantum bits to determine whether or not the pending job to be determined satisfies a fifth criterion, which is that the first criterion can be satisfied. By applying such a fifth criterion, the job to be determined is immediately executed only if the effects of crosstalk are relatively small. As a result, a decrease in accuracy due to the effects of crosstalk is suppressed.
[0034] Second Embodiment The second embodiment is a quantum computing system that efficiently executes quantum computation by linking a classical computer and a quantum computer.
[0035] FIG. 2 is a diagram showing an example of the configuration of a quantum computing system. The quantum computing system 300 is a computer system using quantum devices. The quantum computing system 300 includes a classical computer 100 and multiple quantum computers 210, 220, etc. Terminal devices 401, 402, etc. are connected to the classical computer 100 via a network 20. The terminal devices 401, 402, etc. are computers used by users who request quantum computing by the quantum computing system 300. The classical computer 100 receives computation requests including quantum circuits from the terminal devices 401, 402, etc. A quantum circuit indicates the order of operations on quantum bits by the arrangement of elements such as gates. A quantum bit is a bit that can represent a superposition of a "0" state and a "1" state.
[0036] The classical computer 100 instructs the quantum computers 210, 220, ... to execute quantum computations in accordance with the quantum circuits received from the terminal devices 401, 402, .... The classical computer 100 also acquires measurement results of each quantum bit from the quantum computers 210, 220, ....
[0037] The quantum computers 210, 220, etc. have a plurality of quantum bits and devices for manipulating each of the plurality of quantum bits. The plurality of quantum bits possessed by the quantum computers 210, 220, etc. can be realized, for example, by a superconducting system, an ion trap system, a diamond spin system, or the like.
[0038] 3 is a diagram showing an example of hardware of a device that constitutes a quantum computing system. A classical computer 100 is entirely controlled by a processor 101. A memory 102 and multiple peripheral devices are connected to the processor 101 via a bus 109. The processor 101 may be a multiprocessor. The processor 101 is, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or a DSP (Digital Signal Processor). At least some of the functions realized by the processor 101 executing a program may be realized by an electronic circuit such as an ASIC (Application Specific Integrated Circuit) or a PLD (Programmable Logic Device).
[0039] The memory 102 is used as the main storage device of the classical computer 100. The memory 102 temporarily stores at least a portion of the OS (Operating System) program and application programs to be executed by the processor 101. The memory 102 also stores various data used in processing by the processor 101. As the memory 102, for example, a volatile semiconductor storage device such as a RAM (Random Access Memory) is used.
[0040] The peripheral devices connected to the bus 109 include a storage device 103, a GPU (Graphics Processing Unit) 104, an input interface 105, an optical drive device 106, a device connection interface 107, and network interfaces 108a and 108b.
[0041] The storage device 103 electrically or magnetically writes and reads data to and from a built-in recording medium. The storage device 103 is used as an auxiliary storage device for the classical computer 100. The storage device 103 stores the OS program, application programs, and various data. Note that the storage device 103 may be, for example, a hard disk drive (HDD) or a solid state drive (SSD).
[0042] The GPU 104 is an arithmetic unit that performs image processing. The GPU 104 is an example of a graphics controller. A monitor 21 is connected to the GPU 104. The GPU 104 displays an image on the screen of the monitor 21 in accordance with an instruction from the processor 101. The monitor 21 may be a display device using organic electroluminescence (EL) or a liquid crystal display device.
[0043] The input interface 105 is connected to a keyboard 22 and a mouse 23. The input interface 105 transmits signals sent from the keyboard 22 and the mouse 23 to the processor 101. The mouse 23 is an example of a pointing device, and other pointing devices can also be used. Examples of other pointing devices include a touch panel, a tablet, a touch pad, and a trackball.
[0044] The optical drive device 106 uses a laser beam or the like to read data recorded on an optical disc 24 or write data to the optical disc 24. The optical disc 24 is a portable recording medium on which data is recorded so that it can be read by reflected light. Examples of the optical disc 24 include a DVD (Digital Versatile Disc), a DVD-RAM, a CD-ROM (Compact Disc Read Only Memory), and a CD-R (Recordable) / RW (Rewritable).
[0045] The device connection interface 107 is a communication interface for connecting peripheral devices to the classical computer 100. For example, a memory device 25 or a memory reader / writer 26 can be connected to the device connection interface 107. The memory device 25 is a recording medium equipped with a function for communicating with the device connection interface 107. The memory reader / writer 26 is a device for writing data to a memory card 27 or reading data from the memory card 27. The memory card 27 is a card-type recording medium.
[0046] The network interface 108a is connected to the network 20. The network interface 108a transmits and receives data to and from other computers or communication devices via the network 20. The network interface 108a is a wired communication interface connected by a cable to a wired communication device such as a switch or a router. The network interface 108a may also be a wireless communication interface connected by radio waves to a wireless communication device such as a base station or an access point.
[0047] The network interface 108b is an interface for connecting to the quantum computers 210, 220, etc. The processor 101 transmits quantum circuits to the quantum computers 210, 220, etc. via the network interface 108b, and causes the quantum computers 210, 220, etc. to execute quantum computations. The processor 101 also obtains the results of the quantum computations via the network interface 108b.
[0048] The classical computer 100 can realize the processing functions of the second embodiment with the hardware described above. Note that the information processing device 10 shown in the first embodiment can also be realized with hardware similar to that of the classical computer 100 shown in FIG.
[0049] The classical computer 100 realizes the processing functions of the second embodiment by executing a program recorded on, for example, a computer-readable recording medium. The program describing the processing to be executed by the classical computer 100 can be recorded on various recording media. For example, the program to be executed by the classical computer 100 can be stored in the storage device 103. The processor 101 loads at least a portion of the program in the storage device 103 into the memory 102 and executes the program. The program to be executed by the classical computer 100 can also be recorded on a portable recording medium such as the optical disk 24, the memory device 25, or the memory card 27. The program stored on the portable recording medium becomes executable after being installed on the storage device 103, for example, under the control of the processor 101. The processor 101 can also read and execute the program directly from the portable recording medium.
[0050] Quantum computer 210 includes a control device 211 and a QPU 212. Control device 210 executes gate operations on quantum bits in a quantum device according to a quantum circuit. QPU 212 includes multiple quantum bits. Other quantum computers 210, etc. also include control devices and QPUs.
[0051] A request to execute a quantum computing job is sent from the terminal devices 401, 402, ... to the quantum computing system 300. The content of the quantum computing to be performed is indicated by a quantum circuit. A quantum circuit is a type of representation of a process to be executed on a quantum computer.
[0052] The quantum circuit indicated in the execution request is converted to satisfy physical constraints that depend on the hardware of the quantum computers 210, 220, .... One of the physical constraints is the Nearest Neighbor (NN) constraint, which states that the operation of a two-qubit gate can only be performed on two adjacent qubits in the hardware.
[0053] FIG. 4 is a diagram showing the relationship between quantum circuits and NN constraints. In quantum circuit 41, the quantum bit numbers "q1, q2, q3" of the quantum bits to be operated on are arranged vertically. In quantum circuit 41, the processing for each quantum bit is described in chronological order from left to right. Each processing is called a quantum gate. A quantum gate that operates on N quantum bits (N is a natural number) is called an N-qubit gate.
[0054] In the quantum circuit 41 illustrated in FIG. 4, a Hadamard gate 41a is first placed on the quantum bit with quantum bit number "q1." Next, a CNOT gate 41b is placed with the quantum bit with quantum bit number "q1" as the control bit and the quantum bit with quantum bit number "q2" as the target bit. Next, a CNOT gate 41c is placed with the quantum bit with quantum bit number "q2" as the control bit and the quantum bit with quantum bit number "q3" as the target bit. Finally, measurement operations 41d to 41f are shown for each of the quantum bits with quantum bit numbers "q1, q2, and q3." Measurement operations 41d to 41f are operations for reading the state of the quantum bits.
[0055] A guest graph 42 is defined that indicates the connection relationships required for the execution of the quantum circuit 41 based on the quantum bit pairs on which the two-qubit gate operates in such a quantum circuit 41. The guest graph 42 has nodes corresponding to the quantum bits with quantum bit numbers "q1, q2, q3." Each node in the guest graph 42 indicates the quantum bit number of the quantum bit corresponding to that node. In the guest graph 42, lines connect the nodes corresponding to the quantum bit pairs that are the targets of operation by the two-qubit gate.
[0056] On the other hand, the connection relationships between quantum bits within the QPUs of quantum computers 210, 220, ... are represented by a host graph 43. The host graph 43 has nodes corresponding to each of the eight quantum bit numbers "Q1 to Q8" within the QPU. The nodes indicated by arrows from the quantum bit numbers are the nodes corresponding to the quantum bit of that quantum bit number. In the host graph 43, lines connect the nodes corresponding to quantum bits that have a connection relationship within the QPU.
[0057] In order to execute a job that targets the quantum circuit 41, it is necessary to determine in advance which quantum bits on the QPU to use. In order to execute the quantum circuit 41, it is required to assign quantum bits connected in the host graph 43 to quantum bits in the quantum circuit 41 that correspond to nodes connected in the guest graph 42.
[0058] When the host graph 43 indicates the connection relationships of quantum bits within the QPU 212 of the quantum computer 210, whether the quantum circuit 41 can be executed on the quantum computer 210 can be determined by whether the guest graph 42 can be embedded in the host graph 43. Embedding the guest graph 42 in the host graph 43 means making an assignment that satisfies the condition that nodes in the host graph 43 assigned to nodes connected in the guest graph 42 are also connected on the host graph 43.
[0059] Another factor to consider when selecting the quantum bit to execute a job is the variability of errors per quantum bit. That is, when a quantum circuit is executed on a QPU, it is affected by various noises, which causes errors in the calculation results. The frequency and magnitude of errors differ for each quantum bit.
[0060] 5 is a diagram showing an example of errors for each quantum bit. In the example of Fig. 5, the measurement operation error rate of the corresponding quantum bit is shown within each node of the host graph 43. Beside the lines connecting the nodes, the two-qubit gate operation error rates of operations targeting the quantum bits corresponding to each of the two nodes connected by the lines are shown.
[0061] As shown in Figure 5, the error rate of each quantum bit varies. When executing a quantum circuit, it is desirable to select an area (a set of quantum bits used for quantum computation) with a small error rate in order to obtain a more accurate result. In other words, when executing a quantum circuit on quantum computers 210, 220, etc., it is necessary to allocate appropriate quantum bits taking the error rate into consideration.
[0062] In this way, to execute a job that is specified as an execution target for a quantum circuit, it is necessary to take various conditions into consideration and execute it with the appropriate quantum bit. Therefore, various pre-processing steps are performed before the job is executed. This pre-processing step is called pre-processing. Examples of pre-processing steps include the following:
[0063] (a) Conversion process of quantum gates in a quantum circuit into quantum gates (native gates) supported by the QPU. Different types of quantum gates can be executed by different types of QPUs. Therefore, in the preprocessing, if a quantum circuit contains a quantum gate that cannot be executed on a QPU, the quantum gate is converted into an equivalent circuit that combines quantum gates that can be executed on a QPU.
[0064] (b) Structure conversion process to quantum circuit satisfying NN constraints If a quantum circuit contains a quantum gate that cannot satisfy the NN constraints, a process is performed in pre-processing to convert the quantum circuit so that the quantum gate operations satisfy the NN constraints. For example, by inserting a swap gate, the states of the two qubits operated by a two-qubit gate are moved to adjacent qubits in the quantum circuit.
[0065] (c) Optimization Processing By converting one quantum gate or a combination of quantum gates in a quantum circuit into another quantum gate or a combination of quantum gates, various improvements can be achieved. For example, there is an optimization process that selects quantum bits to use or changes the configuration of quantum gates in a quantum circuit to reduce the impact of errors based on the specific error rate of the quantum bit. Such optimization processing aimed at reducing the error rate is called noise-adaptive optimization.
[0066] (d) Conversion into an instruction sequence for manipulating quantum bits In pre-processing, the quantum gate sequence in the quantum circuit is converted into an instruction sequence for manipulating quantum bits. For example, in the case of a superconducting quantum computer, the quantum gate is converted into a microwave pulse irradiation instruction sequence (pulse instruction sequence) for manipulating quantum bits.
[0067] The quantum gate conversions in (a) to (c) may be equivalent or approximate. Thus, various pre-processing steps are performed to execute the quantum computation of the submitted job. Performing quantum multiprogramming without considering the pre-processing steps may result in inefficient execution of the job. The following explains the difficulty of performing appropriate quantum multiprogramming.
[0068] 6 is a diagram showing an example of job scheduling that does not take preprocessing into consideration. For example, the terminal devices 401, 402, ... use a quantum program to generate a quantum circuit corresponding to the problem to be solved. The terminal devices 401, 402, ... then send execution requests for jobs 51, 52, ... that execute the generated quantum circuits to the classical computer 100.
[0069] A job scheduler 100a is running on the classical computer 100. The classical computer 100 submits jobs 51, 52, ... to an execution queue 100b owned by the job scheduler 100a. The job scheduler 100a generates an execution schedule for the jobs submitted to the execution queue 100b, and transmits job execution requests to the quantum computers 210, 220, ... in accordance with the generated execution schedule.
[0070] Each quantum computer 210, 220, ... can execute multiple jobs in parallel within the range of the quantum bits possessed by the QPU. Therefore, if there are unused quantum bits in a QPU currently executing a job, the job scheduler 100a uses those unused quantum bits to execute another job (quantum multiprogramming). Quantum multiprogramming can improve the utilization rate of the QPU.
[0071] 7 is a diagram showing an example of quantum multiprogramming. For example, assume a QPU 53 with a quantum bit count of 25. The quantum bits 53a in the QPU 53 are shown as circles, and quantum bits 53a that have a connection relationship are connected by lines.
[0072] When job scheduling is performed without quantum multiprogramming, for example, job 54a corresponding to one quantum circuit is executed independently within QPU 53. Job 54a uses four quantum bits. In this case, the QPU utilization rate is 16%.
[0073] When job execution is parallelized using quantum multiprogramming, for example, jobs 54b to 54d, which correspond to multiple quantum circuits, are executed in parallel in QPU 53. Job 54b uses four quantum bits. Job 54c uses six quantum bits. Job 54d uses four quantum bits. In this case, the QPU utilization rate is 56%.
[0074] In this way, quantum multiprogramming allows jobs corresponding to multiple quantum circuits to be assigned to and executed on the QPU 53 so that the quantum bits used by the jobs do not overlap, thereby improving the throughput of job execution.
[0075] In quantum multiprogramming, there is a trade-off between parallelism and accuracy. Parallelism is the number of jobs that can be executed simultaneously in parallel. Accuracy is the low error rate.
[0076] For example, as shown in Figure 5, each quantum bit in a QPU has a different error rate. When a job is run independently, the quantum bit with the lowest error rate is selected and the selected quantum bit is used to run that job. In contrast, when multiple jobs are run in parallel, not all jobs can use the area on the QPU with the lowest error rate. While one job J1 is using the area with the lowest error rate, another job J2 cannot use that area (it will use an area with a higher error rate). This results in a lower accuracy of the output results of job J2 than when job J2 is run independently.
[0077] Quantum multiprogramming also reduces the accuracy of jobs due to crosstalk between jobs. Crosstalk occurs when the operation of one quantum bit affects the state of another quantum bit. Crosstalk causes errors in the calculation results.
[0078] The more parallelism is increased by quantum multiprogramming, the more crosstalk occurs between jobs, and the accuracy of the job output results decreases. Therefore, if the parallelism is increased too much, accuracy decreases and meaningful results may not be obtained.
[0079] In this way, quantum multiprogramming does not simply improve the utilization rate of the QPU, but rather involves selecting jobs to be executed in parallel, taking into account the balance between parallelism and accuracy.
[0080] Quantum multiprogramming can be performed on the user side or on the service provider side. Figure 8 shows an example of quantum multiprogramming on the user side. For example, assume that a user generates five jobs J1 to J5 on their terminal device 401. The terminal device 401 determines a combination of jobs that can be executed in parallel and combines them into a single job. In Figure 8, the number of quantum bits used to execute that job is shown in a rectangle below the job name.
[0081] For example, assume that the number of quantum bits of the QPU 212 in the quantum computer 210 is "8." In this case, a user who wishes to have the quantum computer 210 execute quantum computation uses the terminal device 401 to determine a combination of jobs so that the total number of quantum bits is 8 or less. In the example of FIG. 8, the jobs are grouped into three jobs K1 to K3. Job K1 includes two jobs J1 and J3. Job K2 includes one job J2. Job K3 includes two jobs J4 and J5.
[0082] The terminal device 401 transmits three jobs K1 to K3 to the classical computer 100. Then, the jobs K1 to K3 are entered into the execution queue 100b of the classical computer 100. The classical computer 100 then instructs the quantum computer 210, for each of the jobs K1 to K3, to execute in parallel the combination of jobs included in that job.
[0083] When parallelization is attempted on the user side in this way, the quantum computing system 300 cannot achieve sufficient efficiency because it has to wait for the completion of preprocessing of other jobs to be executed in parallel. In other words, preprocessing is performed to make a job executable. When parallelization of jobs is attempted on the user side, the terminal device 401 determines the combination of jobs to be executed in parallel, performs part of the preprocessing (e.g., (a) to (c) above), and then sends the job to the classical computer 100.
[0084] When preprocessing is performed by the terminal device 401, the terminal device 401 will submit the job after completing preprocessing for all jobs being executed in parallel. At this time, since the preprocessing time differs for each job, submission of a job with a shorter preprocessing time will have to wait until the preprocessing for the job with the longest preprocessing time is completed. This may result in a delay in the time it takes to complete the job or a decrease in accuracy.
[0085] For example, suppose jobs J1 and J3 are combined into one job and executed in parallel. A situation may arise where the preprocessing time for job J3 is long, and while waiting for job J3 to finish, the preprocessing and execution of job J1 can be completed. In this case, there is no benefit to combining jobs and executing them in parallel.
[0086] In other words, it is more efficient to execute job J1 independently, followed by job J3. In this case, job J3 will be executed without waiting after entering the execution queue. Parallel execution is intended to shorten queue waiting times, but if there is no waiting time, there is no point in executing in parallel. Unnecessary parallel execution reduces accuracy due to differences in error rates for each quantum bit and the effects of crosstalk. Therefore, from the perspective of accuracy, independent execution is preferable.
[0087] For example, the preprocessing time for job J1 is 5 seconds and that for job J3 is 2 minutes. The execution time for job J1 is 0.5 seconds and that for job J3 is 2 seconds.
[0088] In contrast to single execution, in the case of parallel execution, job J1 has to wait until the preprocessing of job J3 is completed. The waiting time at that time is "1 minute 55 seconds." During this waiting time, the preprocessing and execution of job J1 can be completed.
[0089] Next, we will explain an example of quantum multiprogramming implemented on the service provider side that operates the quantum computing system 300. Fig. 9 is a diagram showing an example of quantum multiprogramming implemented on the service provider side. Jobs J1 to J4 sent to the classical computer 100 from multiple terminal devices 401, 402, ... are placed in an execution queue 100b. The classical computer 100 determines an execution schedule 100c for the jobs in the execution queue 100b so as to increase throughput.
[0090] Schedule 100c shows the execution times of jobs and the quantum bit numbers of the quantum bits assigned for execution. The row labels of schedule 100c are quantum bit numbers, and the column labels are time slice numbers. At the intersections of each quantum bit number and each time slice number in schedule 100c, jobs are shown that will be executed during the time period indicated by the corresponding time slice number, using the quantum bit with the corresponding quantum bit number.
[0091] For example, the classical computer 100 first estimates the execution time of each job J1 to J4 as a quantum multiprogramming algorithm. Next, based on the execution time and the number of quantum bits used, the classical computer 100 uses a bin-packing algorithm to determine the optimal execution order that minimizes the time slice number. The classical computer 100 then instructs the quantum computer 210 to execute the jobs according to the determined schedule 100c.
[0092] This method of collectively scheduling jobs accumulated in the execution queue 100b is not suitable for situations where jobs with short execution times arrive intermittently. That is, new jobs constantly arrive intermittently at the quantum computing system 300. Furthermore, quantum computers 210, 220, and so on are required to complete calculations within the time (coherence time) that quantum bits can maintain their quantum properties, but this coherence time is very short. Therefore, the execution time of quantum computing jobs is generally very short.
[0093] In the job scheduling shown in Figure 9, the optimal execution order changes every time a new job arrives. To increase parallelism, it is important to accumulate a certain number of jobs before calculating the execution order, but there is a possibility that some jobs may be executed while waiting for jobs to accumulate.
[0094] Furthermore, as the number of jobs and the number of qubits in the QPU increase, it takes a long time to calculate the optimal execution order, and it is possible that some jobs may be executed while the schedule is being generated.
[0095] In the example of Figure 9, assume that the jobs arrive at the quantum cloud service in the following order: job J1 → job J2 → job J3 → job J4. The optimal execution order, such as schedule 100c in Figure 9, can be determined only after all jobs J1 to J4 have arrived. In other words, to generate the optimal schedule 100c, job J1 must wait to be executed until job J4 arrives. If the time difference between the submission of jobs J1 and J4 is equal to or greater than the execution time of job J1, job J1 can be executed during the waiting time until job J4 arrives.
[0096] The waiting time of subsequent jobs is also affected by preprocessing. That is, a job submitted earlier is scheduled after waiting for the preprocessing of subsequent jobs to be completed, and if the preprocessing of subsequent jobs takes a long time, the waiting time of the submitted job will also be longer.
[0097] For example, to determine the optimal execution order for jobs J1 to J4, it is necessary to wait until all preprocessing for jobs J1 to J4 is completed before executing them in the determined execution order. In the example of Figure 9, it is possible to start execution of job J1 before the preprocessing for job J2 is completed, but there is a possibility that the preprocessing for job J2 will not be completed when the execution start time (T3) for job J2 arrives. If schedule 100c is generated without waiting for the preprocessing for job J2 to be completed, job J2 will not be able to be executed in the determined schedule 100c.
[0098] Therefore, the classical computer 100 selects jobs for which preprocessing has been completed one by one and executes them on the quantum computers 210, 220, ... without waiting for the completion of preprocessing of other subsequent jobs. This eliminates the wait time required to calculate the optimal execution order. The classical computer 100 also determines the next job and the quantum bits to be used, taking into account execution constraints, parallelism, accuracy of output results, and the like. This improves parallelism while preventing a decrease in accuracy. The classical computer 100 also aims to further improve parallelism by avoiding quantum bit contention during preprocessing.
[0099] For example, the classical computer 100 repeatedly selects and executes the next job to be executed as a job scheduling method suitable for quantum multiprogramming. In this case, the classical computer 100 performs job scheduling that distinguishes between jobs awaiting preprocessing completion and jobs awaiting execution. For example, the computer 100 searches for an appropriate combination of the next job and the quantum bit to be used, starting from the top of the jobs awaiting execution in the ready queue.
[0100] Furthermore, the classical computer 100 uses at least one of the following five criteria when determining the next job and the quantum bit to be used. The "first criterion" is a criterion related to execution constraints. The "second criterion" is a criterion related to information about the subsequent job. The "third criterion" is a criterion related to the free space left for the subsequent job. The "fourth criterion" is a criterion related to the predicted output reliability of the output result. The "fifth criterion" is a criterion related to crosstalk between jobs. The free space is an area that includes quantum bits that are not being used to execute a job.
[0101] When using the "first criterion" (criterion related to execution constraints), the classical computer 100 selects the quantum bit to be used for the execution of the next job so that the NN constraint is satisfied. When using the "second criterion" (criterion related to information about subsequent jobs), the classical computer 100 selects the quantum bit to be used for the execution of the next job while avoiding, as much as possible, competition with the quantum bit used by the subsequent job in order to improve parallelism. Furthermore, the classical computer 100 can more effectively avoid competition for the quantum bit to be used with the subsequent job by predicting the preprocessing time and the execution time of the job. For example, the classical computer 100 predicts the preprocessing time to select the quantum bit to be used for the execution of the next job so that there is no competition for the quantum bit to be used between jobs with close preprocessing completion times. In this case, the classical computer 100 can also select the quantum bit to be used for the execution of the next job while taking into account the accuracy of the job's output results.
[0102] "Third Criterion" When using the free space left for the subsequent job, the classical computer 100 selects quantum bits to use for executing the next job so that a larger contiguous free space remains on the QPU to improve parallelism.
[0103] When using the "fourth criterion" regarding the predicted output reliability of the output result, the classical computer 100 calculates the predicted output reliability of the job for each quantum bit region to ensure the accuracy of the job output result. The classical computer 100 then selects quantum bits to be used for executing the next job so that the reliability satisfies the criterion.
[0104] When using the "Fifth Criterion" regarding the criterion regarding crosstalk between jobs, the classical computer 100 selects the quantum bit to be used to execute the next job so that the impact of crosstalk between jobs is below the criterion, in order to ensure the accuracy of the job output results.
[0105] The above five criteria can be classified into required criteria that must always be met by the job to be executed, and other optional criteria. The "first criterion" is classified as a required criterion. The "third criterion" is a criterion for selecting a quantum bit when there are multiple combination patterns of quantum bits to be assigned, and is not a criterion required for determining whether or not a job can be executed. The "second criterion," "fourth criterion," and "fifth criterion" may be either required criteria or optional criteria. In the following explanation, the "fourth criterion" and "fifth criterion" are required criteria, and the "second criterion" is optional criteria.
[0106] Furthermore, the classical computer 100 can further improve scheduling performance by combining a job scheduling algorithm for classical computers. For example, the classical computer 100 can perform an aging process to raise the priority of pending jobs that will not be executed within a certain time frame. This prevents jobs from starving.
[0107] The classical computer 100 may also predict the execution time of jobs and arrange the pending jobs in order of shortest execution time, thereby shortening the turnaround time. This type of job scheduling is called shortest job first scheduling.
[0108] Furthermore, the classical computer 100 may classify users into groups or subgroups and adjust the priority of jobs waiting to be executed so that the quantum computer usage time is equal among groups. This improves fairness. This type of job scheduling is called fair share scheduling.
[0109] 10 is a block diagram showing an example of a quantum multiprogramming function according to the second embodiment. A classical computer 100 includes a preprocessing completion waiting queue 110, a ready queue 120, a job execution request acquisition unit 130, a preprocessing time prediction unit 140, a preprocessing execution unit 150, an execution time prediction unit 160, an order adjustment unit 170, and an execution job selection unit 180.
[0110] The pre-processing completion waiting queue 110 is a queue for registering jobs (jobs awaiting conversion) that have not yet been pre-processed among submitted jobs. The pre-processing completion waiting queue 110 is an example of the first queue 1 described in the first embodiment.
[0111] The ready queue 120 is a queue for registering jobs that have completed preprocessing and are executable but not yet executed (jobs waiting for execution). The ready queue 120 is an example of the second queue 2 described in the first embodiment.
[0112] The job execution request acquisition unit 130 acquires job execution requests from the terminal devices 401, 402, .... The job execution request acquisition unit 130 registers the job indicated in the execution request in the preprocess completion waiting queue 110. Furthermore, when the job execution request acquisition unit 130 acquires the job execution result from the execution job selection unit 180, it transmits the execution result to the terminal device that sent the execution request for the job.
[0113] The preprocessing time prediction unit 140 predicts the time required for preprocessing of jobs registered in the preprocessing completion waiting queue 110. The preprocessing time prediction unit 140 notifies the preprocessing execution unit 150 and the execution job selection unit 180 of the prediction result of the time required for preprocessing.
[0114] The pre-process execution unit 150 executes pre-processing of the job registered in the pre-process completion waiting queue 110. The pre-process execution unit 150 registers the job for which pre-processing has been completed in the ready queue 120.
[0115] The execution time prediction unit 160 predicts the time required to execute a job registered in the ready queue 120. The execution time prediction unit 160 notifies the order adjustment unit 170 and the execution job selection unit 180 of the predicted execution time of the job.
[0116] The order adjustment unit 170 rearranges the jobs in the ready queue 120 according to their predicted execution times. For example, the order adjustment unit 170 uses a job scheduling algorithm for classical computers to determine the priority in the ready queue 120 and rearranges the jobs in descending order of priority.
[0117] The execution job selection unit 180 selects the next job to be executed from the ready queue 120, and sends an execution instruction for the selected job to one of the quantum computers 210, 220, .... The execution job selection unit 180 also sends the execution result of the job to the job execution request acquisition unit 130.
[0118] The function of each element shown in Fig. 10 can be realized, for example, by having the processor 101 execute a program module corresponding to that element. As shown in Fig. 10, the classical computer 100 has two queues for managing jobs. Jobs input to the classical computer 100 are executed by the quantum computers 210, 220, ... via a pre-processing completion waiting queue 110 and a ready queue 120.
[0119] 11 is a diagram showing an example of job queuing. For example, when the job execution request acquisition unit 130 receives an execution request for job J9 from the terminal device 401, it places job J9 in the preprocess completion waiting queue 110. The preprocess execution unit 150 executes preprocessing on the jobs registered in the preprocess completion waiting queue 110, for example, sequentially from the top. Note that the preprocess execution unit 150 may execute preprocessing on multiple jobs in parallel to the extent permitted by the resources of the processor 101.
[0120] The preprocess execution unit 150 places the job for which preprocessing has been completed in the ready queue 120. The execution job selection unit 180 searches for the next job to be executed from among the jobs input to the ready queue 120.
[0121] For example, the execution job selection unit 180 searches from the top of the ready queue 120 to the bottom for a suitable next job. For example, assume that the only available quantum computer is the quantum computer 210. The QPU 212 of the quantum computer 210 has eight quantum bits. The QPU 212 is executing job Ja using quantum bit numbers "Q1, Q2." In this case, another job can be executed using the remaining six quantum bits. Note that in FIG. 11 , the remaining processing time for job Ja is indicated by the width of the rectangle representing job Ja.
[0122] Therefore, a suitable job is searched for in the order of job J1 → job J2 → .... When a suitable next job is found, the execution job selection unit 180 stops the search and immediately sends an execution instruction for the found job to the quantum computer 210.
[0123] In this way, the job scheduling process suitable for quantum multiprogramming can be roughly divided into the process when a job execution request is acquired, the process when preprocessing is performed, and the process when the job is executed.
[0124] 12 is a flowchart showing the processing steps when a job execution request is acquired. The processing shown in FIG. 12 will be explained below in order of step number. [Step S101] The job execution request acquisition unit 130 receives a job execution request from one of the terminal devices 401, 402, .... The job execution request includes the quantum circuit to be executed. The job execution request may also specify the quantum bit to be used for executing the job.
[0125] [Step S102] The job execution request acquisition unit 130 places the job indicated in the received job execution request at the end of the preprocess completion waiting queue 110. [Step S103] The preprocess time prediction unit 140 predicts the time required for preprocessing the job placed in the preprocess completion waiting queue 110.
[0126] The time required for preprocessing can be predicted, for example, using a trained regression model. For example, the classical computer 100 creates a regression model that predicts the preprocessing time in advance. The training data used to train the regression model can be prepared, for example, by generating a large number of quantum circuits such as the following:
[0127] (1) Random Circuits For example, quantum circuits that randomly combine various quantum gates can be used as training data.
[0128] (2) Quantum circuits that are components of quantum algorithms For example, typical quantum circuits that are components of quantum algorithms (such as quantum Fourier transform circuits) can be used as training data as they are. Alternatively, quantum circuits that are partly modified from typical quantum circuits that are components of quantum algorithms can also be used as training data. A partial modification can be, for example, changing a quantum gate to a different type of quantum gate. Quantum circuits that are any combination of typical quantum circuits that are components of quantum algorithms and partially modified quantum circuits can also be generated and used as training data.
[0129] (3) Typical ansatz circuits used in variational quantum algorithms In variational quantum algorithms, ansatz circuits are used as quantum circuits, and these ansatz circuits can be used as training data.
[0130] When predicting the execution time of preprocessing, features such as the number of quantum bits to be operated in the quantum circuit to be executed, the number of gates included in the quantum circuit, the optimization level, and other compilation options can be used.
[0131] The job execution time can also be predicted using a trained regression model. In the regression model for predicting job execution time, the pulse irradiation time to the quantum bit, the data volume of the pulse instruction sequence to be transferred to the control device 210 that controls the quantum bit, and the like can be used as feature quantities. These values can be calculated by compiling the quantum circuit into a pulse instruction sequence.
[0132] In this way, the received job is temporarily queued in the preprocess completion waiting queue 110. The job queued in the preprocess completion waiting queue 110 is the target for preprocessing.
[0133] 13 is a flowchart showing an example of the procedure for executing preprocessing. The process shown in FIG. 13 will be described below in order of step number. [Step S201] The preprocessing execution unit 150 takes out jobs from the top of the preprocessing completion waiting queue 110 in order.
[0134] [Step S202] The pre-processing execution unit 150 executes pre-processing. In pre-processing, the quantum bits to be used are also allocated for some jobs. For example, the pre-processing execution unit 150 determines the quantum bits to be used during pre-processing for jobs for which noise-adaptive optimization is specified. When determining the quantum bits to be used in pre-processing, the pre-processing execution unit 150 executes pre-processing while avoiding competition for the quantum bits to be used between jobs that take approximately the same amount of time to complete pre-processing.
[0135] [Step S203] The preprocess execution unit 150 places the job for which preprocessing has been completed in the ready queue 120. [Step S204] The execution time prediction unit 160 predicts the time required to execute the job placed in the ready queue 120.
[0136] [Step S205] The order adjustment unit 170 adjusts the priority and order of jobs in the ready queue 120 using a job scheduling algorithm for classical computers. Pre-processing is performed in this manner, and jobs for which pre-processing has been completed are input to the ready queue 120. For jobs for which the quantum bits to be used are determined in the pre-processing, competition for the quantum bits to be used with other jobs is avoided.
[0137] FIG. 14 is a diagram showing an example of conflict avoidance of used quantum bits during preprocessing. In the example of FIG. 14, it is assumed that jobs J7 and J8 require noise-adaptive optimization. The preprocessing execution unit 150 determines the quantum bits to be used for jobs J7 and J8, which require noise-adaptive optimization, during preprocessing. For example, the preprocessing execution unit 150 prevents the quantum bits to be used from overlapping between jobs that take approximately the same amount of time to complete preprocessing (jobs that are candidates for parallel execution at the same time). This improves the degree of parallelism.
[0138] For example, the predicted time until preprocessing is completed for both jobs J7 and J8 is 5 minutes. The predicted time until preprocessing is completed for a job that has not yet started preprocessing is the sum of the time required for preprocessing and the waiting time until preprocessing for that job begins. The waiting time until preprocessing for a job begins is calculated, for example, based on the time required for preprocessing for a preceding job that is registered before the job in the preprocessing completion queue 110. For example, if preprocessing is not performed in parallel, the waiting time until preprocessing for the target job begins is the sum of the time required for preprocessing for the preceding jobs.
[0139] Because jobs J7 and J8 are predicted to be input to the ready queue 120 at approximately the same time, competition for the quantum bits to be used is avoided. For example, the pre-processing execution unit 150 assigns quantum bits with quantum bit numbers "Q1, Q2, Q3" to job J7 as the quantum bits to be used. The pre-processing execution unit 150 also assigns quantum bits with quantum bit numbers "Q7, Q8" to job J8 as the quantum bits to be used. This prevents the parallel execution of jobs J7 and J8 from being hindered. Without this competition avoidance, for example, jobs J7 and J8 would both be assigned quantum bits in the area with the smallest error rate (e.g., quantum bit numbers "Q1, Q2"). This type of allocation reduces the degree of parallelism.
[0140] In avoiding conflicts among quantum bits used during preprocessing, the preprocessing execution unit 150 also takes into account the accuracy of the output results of the jobs. For example, the preprocessing execution unit 150 allocates quantum bits in a way that minimizes the decrease in accuracy of the output results due to parallel execution, taking into account the predicted output reliability of the output results or crosstalk between jobs. Details of quantum bit allocation that takes into account the predicted output reliability of the output results or crosstalk between jobs will be described later.
[0141] Jobs that have completed preprocessing are queued in a ready queue 120. The priorities and orders of the jobs in the ready queue 120 are adjusted using a job scheduling algorithm for classical computers. Available job scheduling algorithms for classical computers include the following algorithms:
[0142] For example, the order adjustment unit 170 can use an algorithm called aging. When aging is applied, the order adjustment unit 170 increases the execution priority of a job waiting to be executed in the ready queue 120 if it is not executed within a certain time. If a high-priority job exists, the execution job selection unit 180 preferentially selects and executes the high-priority job as the next job, even if it means lowering the degree of parallelism. This makes it possible to prevent jobs from becoming starved (a state in which they cannot be executed for a long time).
[0143] The order adjustment unit 170 can also use an algorithm called shortest job priority scheduling. When shortest job priority scheduling is applied, the order adjustment unit 170 sorts the jobs waiting to be executed in the ready queue 120 in order of shortest execution time based on the predicted execution time of the jobs. This reduces the turnaround time.
[0144] Furthermore, the order adjustment unit 170 can also use an algorithm called fair share scheduling. When fair share scheduling is applied, the order adjustment unit 170 classifies users into groups and subgroups. The order adjustment unit 170 then adjusts the priority of jobs waiting to be executed in the ready queue 120 so that the quantum computer usage time is equal among the groups. This improves fairness among users.
[0145] Combining scheduling algorithms for classical computers in this way can further improve scheduling performance. The execution job selector 180 searches from the top to the bottom of the ready queue 120 for a suitable job to be executed next. If the jobs registered in the ready queue 120 are as shown in Figure 14, it determines whether or not each job is suitable as the next job to be executed in the order of J1 → J2 → ...
[0146] When the execution job selection unit 180 finds a suitable next job, it stops the search and immediately outputs an instruction to execute the found job to one of the quantum computers 210, 220, .... When the execution job selection unit 180 does not find a suitable next job, it restarts the search process from the top of the ready queue 120.
[0147] As time passes while the search is repeated, the number of jobs being executed by the QPU decreases. Therefore, by repeating the search, a suitable next job will eventually be found. For example, even if it is determined that the free space in the QPU is small and job J1 cannot be executed during the first search, there is a possibility that the free space in the QPU will be large enough to allow job J1 to be executed during the second search.
[0148] 15 is a flowchart showing an example of the procedure for the execution job selection process. The process shown in FIG. 15 will be described below in order of step number. [Step S301] The execution job selection unit 180 repeatedly executes the processes of steps S302 to S311 while the quantum computing system is running.
[0149] [Step S302] The execution job selection unit 180 selects the variable J cand [Step S303] The job selection unit 180 selects the job J to be judged from the jobs waiting to be executed in the ready queue 120 in order from the top. i and the selected job J to be judged is i The processes of steps S303 to S308 are executed for each of them.
[0150] [Step S304] The execution job selection unit 180 selects the job J to be judged. i The execution job selection unit 180 determines whether the job J satisfies all of the required criteria. The required criteria are, for example, a "first criterion" regarding execution constraints, a "fourth criterion" regarding predicted output reliability of the output result, and a "fifth criterion" regarding crosstalk between jobs. In this case, the execution job selection unit 180 determines whether the job J satisfies all of the required criteria. i can assign quantum bits that satisfy the NN constraint, the predicted output reliability of the output result meets a predetermined criterion, and the accuracy due to crosstalk meets a criterion, it is determined that all the required criteria are met.
[0151] If all the required criteria are met, the execution job selection unit 180 proceeds to step S305. If at least one of the required criteria is not met, the execution job selection unit 180 proceeds to step S309.
[0152] [Step S305] The job selection unit 180 selects the job J to be judged. i The execution job selection unit 180 determines whether the job J satisfies all of the arbitrary criteria. The arbitrary criteria is, for example, a "second criterion" regarding information on the subsequent job. In this case, the execution job selection unit 180 determines whether the job J satisfies all of the arbitrary criteria. i If the quantum bit used to execute a job can avoid conflict with the quantum bit used by the subsequent job, it is determined that the arbitrary criterion is met.
[0153] If all the arbitrary criteria are met, the execution job selection unit 180 proceeds to step S306. If at least one arbitrary criterion is not met, the execution job selection unit 180 proceeds to step S307.
[0154] [Step S306] The execution job selection unit 180 selects the job J to be judged from one of the quantum computers 210, 220, . . . i The execution of the job is instructed, and the job is deleted from the ready queue 120. At this time, the execution job selection unit 180 selects the quantum bits to be assigned to the job to be executed so as to satisfy the "third criterion" regarding the free space left for the subsequent job. In other words, the execution job selection unit 180 selects the quantum bits to be used for job execution so as to leave a larger contiguous free space on the QPU. After that, the execution job selection unit 180 exits the repeated processing of steps S304 to S308 and proceeds to step S312.
[0155] [Step S307] The execution job selection unit 180 cand If the job selection unit 180 determines that the job list is empty, the process proceeds to step S308. If the job selection unit 180 determines that the job list is not empty, the process proceeds to step S309.
[0156] [Step S308] The execution job selection unit 180 cand Job J to be judged i [Step S309] When the job selection unit 180 has completed checking up to the last job in the ready queue 120, the process proceeds to step S310.i If the job has not reached the end of the ready queue 120, the next job is the job J to be judged. i Then, the processes of steps S304 to S308 are carried out.
[0157] [Step S310] The execution job selection unit 180 selects the variable J cand The execution job selection unit 180 determines whether a job has been set in the job list. If a job has been set, the execution job selection unit 180 proceeds to step S311. If a job has not been set, the execution job selection unit 180 proceeds to step S312.
[0158] [Step S311] The execution job selection unit 180 assigns a variable J cand and deletes the job from the ready queue 120. At this time, the execution job selection unit 180 selects the quantum bits to be assigned to the job to be executed so as to satisfy the "third criterion."
[0159] [Step S312] If the system is running, the execution job selection unit 180 continues to repeat steps S302 to S311. In this way, of the jobs waiting to be executed that have been submitted to the ready queue 120, the most appropriate job at that time is selected and executed one by one. It is then determined whether the selected job satisfies each criterion.
[0160] 16 is a diagram illustrating an example of a determination regarding the "first criterion." For example, assume that a job to be executed by an 8-qubit QPU 212 is selected. Of the qubits with qubit numbers "Q1 to Q8" possessed by the QPU 212, two qubits with qubit numbers "Q1 and Q2" are currently executing quantum computation for job Ja.
[0161] The execution job selection unit 180 selects a job to be judged, starting from the top of the ready queue 120. In the example of Fig. 16, job J1 is selected first. The execution job selection unit 180 judges whether job J1 satisfies the NN constraint as a necessary criterion.
[0162] The number of quantum bits operated by the quantum circuit executed in job J1 is "3", and the connection relationship shown in guest graph 44 is obtained between the three quantum bits with quantum bit numbers "q6 to q8". Of the quantum bits with quantum bit numbers "Q1 to Q8" shown in host graph 43 of QPU 212, the quantum bits with quantum bit numbers "Q3 to Q8" are free. In this case, it is possible to embed the structure of guest graph 44 in the free space in host graph 43 (it can be executed immediately). In other words, job J1 satisfies the "first criterion" regarding the execution constraints.
[0163] FIG. 17 is a diagram showing an example of a determination regarding the "second criterion." When determining the quantum bits to be used for the next job, the execution job selection unit 180 prevents a decrease in parallelism by avoiding, as much as possible, competition with the quantum bits to be used for subsequent jobs. In other words, "subsequent job = job that has the potential to be executed after the next job." The execution job selection unit 180 determines that a job is appropriate as the next job if the job being determined can be executed using the remaining quantum bits excluding the quantum bits that the subsequent job plans to use.
[0164] In the example of FIG. 17 , it is determined that job J4 will use a quantum bit with quantum bit number "Q5." Furthermore, it is determined that job J7 will use quantum bits with quantum bit numbers "Q1, Q2, Q3." When job J1 is designated as the target for determination, it is determined whether or not there are any quantum bits available for executing job J1 from among the quantum bits other than quantum bit numbers "Q1, Q2, Q3, Q5." In the example of FIG. 17 , job J1 is determined to be suitable as the next job because it can be executed with quantum bits with quantum bit numbers "Q6, Q7, Q8." Similarly, for example, job J2 is determined to be suitable as the next job if it can be executed with quantum bits with quantum bit numbers "Q6, Q7."
[0165] In this way, by preventing overlap of the used quantum bits with subsequent jobs, parallelism is improved. In other words, if a quantum bit used by a subsequent job is used, parallelism will decrease. For example, if job J1 uses a quantum bit with quantum bit number "Q5," job J4 will not be able to execute until job J1 has completed execution. As a result, parallelism will decrease. In contrast, by preventing overlap of the used quantum bits with subsequent jobs, job J1 is prevented from using the quantum bit with quantum bit number "Q5," and it becomes possible to start execution of job J4 before job J1 has completed execution.
[0166] In addition, when avoiding conflicts with the utilization quantum bits of subsequent jobs, it is also possible to limit the range of jobs to be considered as subsequent jobs. FIG. 18 is a diagram showing an example of limiting the range of subsequent jobs to determine the "second criterion." In the example of FIG. 18, the range of jobs to be considered as subsequent jobs is limited to only jobs that are expected to be executed soon. For example, the execution job selection unit 180 considers the first M jobs (M is a natural number). This prevents appropriate job selection from being hindered by considering the utilization quantum bits of jobs that will not be executed soon.
[0167] For example, when M=3, the job selection unit 180 determines whether the next job can be executed while avoiding the quantum bits that jobs J1 to J3 are scheduled to use. When M=7, the job selection unit 180 determines whether the next job can be executed while avoiding the quantum bits that jobs J1 to J7 are scheduled to use.
[0168] Regarding the "second criterion," if a conflict over the used quantum bits with a subsequent job cannot be avoided, the conflict may be allowed. Fig. 19 is a diagram showing an example of a case where a conflict over the used quantum bits with a subsequent job is allowed. For example, only when avoiding the used quantum bits of the subsequent job would result in no candidates for the next job to be executed, the execution job selection unit 180 allows the subsequent job to be determined as the next job even if the used quantum bits overlap with those of the subsequent job.
[0169] For example, assume M=4. Job J4 is scheduled to use quantum bits with quantum bit numbers "Q1 to Q8." Jobs J1, J2, and J3 cannot be executed if they avoid the quantum bits with quantum bit numbers "Q1 to Q8" that job J4 is scheduled to use. In such a case, the job selection unit 180 determines the suitability of the next job by allowing overlap with the quantum bits used by job J4. For example, the job selection unit 180 determines that job J1 satisfies the "second criterion" for suitability as the next job by using quantum bits with quantum bit numbers "Q5, Q7, Q8" as the quantum bits used.
[0170] The execution job selection unit 180 can also more appropriately set the range to be considered as a succeeding job by predicting the execution time of the job and the execution time of the preprocess. FIG. 20 is a diagram showing an example of setting the range to be considered as a succeeding job based on the execution time of the preprocess. For example, the execution job selection unit 180 imposes a condition that a job must be executable (can be placed in the ready queue 120) within the predicted execution time of the job to be judged, in addition to the condition that the job must be M jobs from the top, as a condition for being considered as a succeeding job. This makes it possible to more accurately determine the possibility of competition between used quantum bits.
[0171] For example, let us consider a case where it is determined whether job J1 is appropriate as the next job. Here, M=7. The predicted execution time of job J1 is "1 second." In this case, the execution job selection unit 180 considers jobs J1 to J5 that will enter the ready queue 120 within "1 second" and are within M jobs J1 to J7 from the top as the succeeding jobs.
[0172] In other words, if job J1 is executed immediately, it will occupy the QPU for 1 second. Therefore, jobs J6 to J8, which take longer than 1 second to become executable, will not compete with job J1 for the quantum bits they use. Therefore, jobs J1 to J5 will be considered as the successor jobs.
[0173] Of the subsequent jobs J1 to J5, only job J4 has a fixed quantum bit to use. Job J4 uses the quantum bit with quantum bit number "Q5." Therefore, the execution job selection unit 180 determines whether job J1 can be executed while avoiding the use of the quantum bit with quantum bit number "Q5."
[0174] 21 is a diagram showing an example of a determination regarding the "third criterion." When there are multiple candidate quantum bit regions to be used by a job, the execution job selection unit 180 determines the quantum bit region to be used so that a larger contiguous free region remains. In other words, leaving a larger contiguous region increases the possibility of executing subsequent jobs in parallel. Therefore, the execution job selection unit 180 determines the quantum bits to be used to execute the job to be determined so that a larger contiguous region remains.
[0175] For example, suppose job J2 is selected as the job to be judged. The guest graph 45 of job J2 indicates that it uses two connected quantum bits. In this case, suppose areas A, B, and C are candidates for the execution area of job J2 in the host graph 43.
[0176] If job J2 uses area A or area C, one free area of 4 quantum bits remains. On the other hand, if job J2 uses area B, two free areas of 2 quantum bits remain. Therefore, the execution job selection unit 180 determines that the "third criterion" is met when the execution of job J2 uses quantum bits in area A or area C, which leaves a larger contiguous free area.
[0177] For example, suppose that the execution of job Jx, which is the successor to job J2, requires three consecutive quantum bits as shown in guest graph 46. In this case, if area B is selected as the area of quantum bits to be used for the execution of job J2, jobs J2 and Jx cannot be executed in parallel. In contrast, if area A or area C is selected as the area of quantum bits to be used for the execution of job J2, there remains a possibility that jobs J2 and Jx can be executed in parallel. In other words, the degree of parallelism can be improved.
[0178] FIG. 22 is a diagram showing an example of a determination based on the "fourth criterion." The "fourth criterion" is a criterion aimed at keeping the decrease in accuracy of the output result due to parallel execution within a certain range. There is a trade-off between parallelism and accuracy. In other words, parallel execution reduces the accuracy of the output result of some jobs. Therefore, the execution job selection unit 180 calculates the predicted output reliability (a value reflecting the accuracy of the output result) of the job to be determined. If the predicted output reliability of the job to be determined meets a certain criterion, the execution job selection unit 180 determines that the job to be determined is appropriate as the next job.
[0179] For example, the job selection unit 180 compares the predicted output reliability when using the area with the smallest error rate (when parallel execution is not performed) with the predicted output reliability when parallel execution is performed. If the degree of decrease in reliability is equal to or less than a threshold, the job selection unit 180 determines that the job satisfies the "fourth criterion" for determining whether the job to be judged is appropriate as the next job.
[0180] The job selection unit 180 may use the following criteria instead of the above criteria, more simply: For example, if the predicted output reliability is equal to or greater than a predetermined threshold, the job selection unit 180 determines that the job to be judged is appropriate as the next job.
[0181] The predicted output reliability can be calculated based on the number of gates in the quantum circuit and the error rate of the quantum bits used. For example, the execution job selection unit 180 calculates the predicted output reliability using the following formula: Predicted output reliability = r 2q #2q_gates ×r 1q #1q_gates ×r ro #qubits r 1q is the average reliability of one-qubit gate operations in the qubit domain used by the job. 2q is the average reliability of two-qubit gate operations in the qubit domain used by the job. ro is the average reliability of measurement operations in the quantum bit domain used by the job. The average reliability of each operation is (100 - error rate of each operation) / 100.
[0182] #2q_gates is the number of 2-qubit gates in the quantum circuit to be calculated. #1q_gates is the number of 1-qubit gates in the quantum circuit to be calculated. #qubits is the number of qubits in the quantum circuit to be calculated. The formula for calculating the value equivalent to the predicted output reliability is not limited to the above formula, and other formulas may be used.
[0183] For example, suppose the job to be judged is job J1. The number of quantum bits in the quantum circuit to be calculated by job J1 is "#qubits = 3". The number of 1-qubit gates included in the quantum circuit to be calculated by job J1 is "#1q_gates = 10". Furthermore, the number of 2-qubit gates included in the quantum circuit to be calculated by job J1 is "#2q_gates = 4".
[0184] Assume that the error rate for one-qubit gate operations for each of the quantum bits with quantum bit numbers "Q1 to Q8" is "0". The error rate for measurement operations for the quantum bit with quantum bit number "Q1" is "0.2". The error rate for measurement operations for the quantum bit with quantum bit number "Q2" is "0.5". The error rate for measurement operations for the quantum bit with quantum bit number "Q3" is "0.7". The error rate for measurement operations for the quantum bit with quantum bit number "Q4" is "1.2". The error rate for measurement operations for the quantum bit with quantum bit number "Q5" is "2.1". The error rate for measurement operations for the quantum bit with quantum bit number "Q6" is "1.9". The error rate for measurement operations for the quantum bit with quantum bit number "Q7" is "1.4". The error rate for measurement operations for the quantum bit with quantum bit number "Q8" is "1.5".
[0185] The error rate for a two-qubit gate operation between qubits with quantum bit numbers "Q1, Q2" is "0.7". The error rate for a two-qubit gate operation between qubits with quantum bit numbers "Q1, Q3" is "1.2". The error rate for a two-qubit gate operation between qubits with quantum bit numbers "Q2, Q4" is "0.9". The error rate for a two-qubit gate operation between qubits with quantum bit numbers "Q3, Q4" is "0.7". The error rate for a two-qubit gate operation between qubits with quantum bit numbers "Q3, Q5" is "5.2". The error rate for a two-qubit gate operation between qubits with quantum bit numbers "Q4, Q6" is "3.0". The error rate for a two-qubit gate operation between qubits with quantum bit numbers "Q5, Q6" is "2.5". The error rate for a two-qubit gate operation between qubits with quantum bit numbers "Q5, Q7" is "0.9". The error rate in a two-qubit gate operation between qubits with qubit numbers "Q6, Q8" is "1.1". The error rate in a two-qubit gate operation between qubits with qubit numbers "Q7, Q8" is "1.2".
[0186] For example, when quantum bits with quantum bit numbers "Q1, Q2, Q3" are used to execute job J1, the predicted output reliability can be calculated as follows: The average reliability of a 1-qubit gate operation is "r 1q = 1". The average reliability of a two-qubit gate operation is "r 2q = {(100-0.7) / 100 + (100-1.2) / 100} / 2 = 0.991. The average reliability of the measurement operation is "r ro = {(100-0.2) / 100 + (100-0.5) / 100 + (100-0.7) / 100} / 3 = 0.995. The predicted output reliability is "1 10 ×0.991 4 ×0.995 3 = 0.950".
[0187] Similarly, when the predicted output reliability is calculated for other quantum bit regions, for example, when Q5, Q7, and Q8 are used, it is "0.912", when Q6, Q7, and Q8 are used, it is "0.912", and when Q3, Q4, and Q6 are used, it is "0.894".
[0188] 22, the predicted output reliability is highest when using quantum bits with quantum bit numbers "Q1, Q2, Q3," and the value is "0.950." This value is the predicted output reliability when parallel execution is not performed.
[0189] When parallel execution is not performed, the quantum bits with quantum bit numbers "Q1, Q2, Q3" can be used, but the quantum bits with quantum bit numbers "Q1, Q2" are currently being used by job Ja. Therefore, the quantum bit areas with quantum bit numbers "Q1, Q2, Q3" cannot be used to execute job J1.
[0190] When using the quantum bits with quantum bit numbers "Q5, Q7, Q8" and when using the quantum bits with quantum bit numbers "Q6, Q7, Q8," the predicted output reliability is "0.912." Compared to when parallel execution is not performed, the decrease in predicted output reliability is "0.950 - 0.912 = 0.038."
[0191] When using quantum bits with quantum bit numbers "Q3, Q4, Q6," the predicted output reliability is "0.894." Compared to when parallel execution is not performed, the decrease in predicted output reliability is "0.950 - 0.894 = 0.056."
[0192] For example, the threshold for the decrease in predicted output reliability is set to "0.04." In this case, the execution job selection unit 180 determines that a job to be determined is appropriate as the next job if the decrease in predicted output reliability of the job to be determined is "0.04" or less. In the example of FIG. 22 , the execution job selection unit 180 determines that job J1 satisfies the "fourth criterion" when using either the quantum bit combination of quantum bit numbers "Q5, Q7, Q8" or the quantum bit combination of quantum bit numbers "Q6, Q7, Q8." The execution job selection unit 180 determines that job J1 is not appropriate as the next job when using the quantum bit combination of quantum bit numbers "Q3, Q4, Q6."
[0193] 23 is a diagram showing an example of a determination based on the "fifth criterion." When multiple circuits are executed in parallel, crosstalk reduces accuracy. Basically, the closer the circuits are executed, the greater the impact of crosstalk.
[0194] For example, manipulating the qubits in a region where job Ja is being executed may unintentionally affect the qubits in region A. Typically, region A adjacent to job Ja is more susceptible to crosstalk than region C, which is further away from job Ja.
[0195] Therefore, if a job can be executed using quantum bits in an area where the influence of crosstalk is considered small, the execution job selection unit 180 determines that the job is appropriate as the next job to be executed. For example, the execution job selection unit 180 determines that the influence of crosstalk is small if the job can be executed using quantum bits in an area that is N quantum bits or more away from the area of the quantum bits used in the currently used job.
[0196] 23, the influence of crosstalk is considered small when the distance between the quantum bits is two or more quantum bits. Job J1 can be executed using, for example, quantum bits with quantum bit numbers "Q5, Q7, Q8," which are at least two quantum bits away from the quantum bits with quantum bit numbers "Q1, Q2" used to execute job Ja. Therefore, the execution job selection unit 180 determines that job J1 satisfies the "fifth criterion" for determining whether job J1 is suitable as the next job to be executed.
[0197] Instead of using the "fifth criterion" of being separated by N or more quantum bits, the job selection unit 180 can also make a determination using the following method. For example, the job selection unit 180 measures the strength of crosstalk for each quantum bit pair in advance. The strength of crosstalk can be expressed, for example, by the magnitude of the error (error rate) caused to another quantum bit when a quantum bit is manipulated. The job selection unit 180 calculates the average value of the crosstalk strength for each of multiple quantum bit pairs that can be generated between each quantum bit used in the job currently being executed and each quantum bit to be used in the job being evaluated. For example, if the average value of the crosstalk strength is equal to or less than a threshold, the job selection unit 180 determines that the influence of crosstalk is small.
[0198] In the example of Figure 23, it is assumed that the measurement results of the strength of crosstalk between quantum bits with quantum bit numbers "Q1, Q2" used to execute job Ja are as follows: The strength of crosstalk between quantum bits with quantum bit numbers "Q1, Q3" is "0.20". The strength of crosstalk between quantum bits with quantum bit numbers "Q1, Q4" is "0.18". The strength of crosstalk between quantum bits with quantum bit numbers "Q2, Q4" is "0.25". The strength of crosstalk between quantum bits with quantum bit numbers "Q2, Q3" is "0.21". The strength of crosstalk between quantum bits with quantum bit numbers "Q1, Q5" is "0.01". The strength of crosstalk between quantum bits with quantum bit numbers "Q2, Q6" is "0.01". It is assumed that no crosstalk occurs with other quantum bit pairs (error rate "0").
[0199] For example, if the average error rate due to crosstalk is 0.05 or less, the execution job selection unit 180 determines that the impact of crosstalk is small. In this case, the average error rate due to crosstalk in the region of quantum bit numbers "Q5 to Q8" is 0.05 or less. Therefore, when using quantum bits in the region of quantum bit numbers "Q5 to Q8," the execution job selection unit 180 determines that job J1 satisfies the "fifth criterion" for determining whether it is appropriate to be the next job to be executed.
[0200] As described above, in the second embodiment, executable jobs are selected one by one as jobs to be judged, and if the job to be judged is deemed suitable as the next job to be executed, that job is executed immediately. This eliminates the need to wait for the completion of preprocessing for other jobs. Furthermore, if the job to be judged is judged one by one as to whether it is suitable as the next job to be executed, the amount of calculation required is smaller than, for example, when a packing algorithm is executed for multiple jobs. Therefore, the judgment of whether the job to be judged is suitable as the next job to be executed can be executed in a short time, and there is no wait time required to calculate the optimal execution order.
[0201] Moreover, the suitability of a job to be executed next is determined after taking into account various criteria such as execution constraints, which allows for improved parallelism while preventing a decrease in accuracy. Furthermore, competition for the quantum bits used with subsequent jobs is also prevented. Therefore, a decrease in parallelism due to the existence of a job with a predetermined quantum bit to be used is prevented.
[0202] The foregoing merely illustrates the principles of the present invention. Further, since numerous modifications and changes will be apparent to those skilled in the art, the present invention is not limited to the exact construction and application shown and described above, and all corresponding modifications and equivalents are deemed to be within the scope of the present invention as defined by the appended claims and their equivalents.
[0203] REFERENCE SIGNS LIST 1 First queue 2 Second queue 3a to 3d Jobs 4a to 4d Jobs waiting for conversion 5a to 5d Jobs waiting for execution 6 Quantum computer 7 QPU 7a to 7h Quantum bits 8a, 8b, ... Terminal device 10 Information processing device 11 Storage unit 12 Processing unit
Claims
1. A job scheduling program that causes a computer to execute the following process: inputting a job indicating that a quantum computation is to be performed into a first queue; converting the quantum computation procedures to be executed by the jobs in the first queue into an instruction sequence executable by a quantum computer; inputting the jobs after conversion into a second queue; determining, starting from the top of the second queue, for each of the jobs based on predetermined criteria, the utilized quantum bit to be used during execution and whether or not to execute immediately; and instructing the quantum computer to execute a quantum computation using the utilized quantum bit based on the instruction sequence corresponding to the jobs determined to be executed immediately.
2. A job scheduling program as described in claim 1, wherein the process of determining the quantum bits to be used and whether or not to execute immediately determines whether or not a first criterion is met that satisfies constraints regarding the connection relationships of the quantum bits for executing the job included in the second queue and that there is a combination of available quantum bits that is not being used in the execution of other jobs currently being executed.
3. A job scheduling program as described in claim 2, wherein the process of determining the quantum bit to be used and whether or not to execute immediately determines whether the job to be determined in the second queue satisfies a second criterion that the order in which the job to be determined whether or not to execute immediately can satisfy the first criterion without using the quantum bit to be used in a subsequent job.
4. A job scheduling program as described in claim 3, wherein in the process of determining whether to immediately execute the utilized quantum bit, when the job contained in the first queue is arranged after the job contained in the second queue, a job other than the job to be determined that is contained in the second queue and within M positions (M is a natural number) from the top, or a job contained in the first queue, is determined to be the subsequent job.
5. A job scheduling program as described in claim 3, wherein in the process of determining whether to execute the utilized quantum bit immediately, the subsequent jobs are the jobs included in the first queue in which conversion of the quantum computing procedure to be executed into an instruction sequence is completed within the execution time required for the execution of the job to be determined in the second queue from the present time, and other jobs other than the job to be determined in the second queue.
6. A job scheduling program as described in claim 3, wherein in the process of determining the quantum bit to be used and whether to execute immediately, if there is no job in the second queue other than the subsequent job in which the quantum bit to be used is set and which can be determined to be executed immediately by avoiding the use of the quantum bit to be used in the subsequent job, the job that does not satisfy the second criterion and is included in the second queue is allowed to be determined to be executed immediately.
7. A job scheduling program as described in claim 2, wherein, in the process of determining the utilized quantum bit and whether to execute immediately, if there are multiple combinations of free quantum bits that satisfy the first criterion, the number of consecutive connections of the remaining free quantum bits excluding the free quantum bits included in the combination is counted for each of the combinations, and the utilized quantum bit is determined based on a third criterion regarding the number of consecutive remaining free quantum bits in each of the combinations.
8. A job scheduling program as described in claim 1, wherein the process of determining the utilized quantum bits and whether or not to execute immediately generates multiple combinations of quantum bits that can be used for the job to be determined and included in the second queue, calculates a predicted output reliability indicating the reliability of the calculation result when a quantum calculation is performed using the associated quantum bits for each combination based on the error rate when operating on multiple quantum bits in the quantum computer, and determines whether or not to execute the job to be determined and included in the second queue immediately based on a fourth criterion related to the predicted output reliability.
9. A job scheduling program as described in claim 2, wherein the process of determining the quantum bit to be used and whether or not to execute immediately uses quantum bits that are free and not being used in the execution of other jobs currently being executed, and that are a certain distance away from the quantum bits being used in the execution of the other jobs currently being executed, to determine whether the job to be determined that is included in the second queue satisfies a fifth criterion that the job can satisfy the first criterion.
10. A job scheduling method comprising: inputting a job indicating that a quantum computation is to be performed into a first queue; converting the quantum computation procedures to be executed by the jobs in the first queue into an instruction sequence executable by a quantum computer; inputting the jobs after conversion into a second queue; determining, starting from the top of the second queue, for each of the jobs based on predetermined criteria, the utilized quantum bit to be used during execution and whether or not to execute immediately; and instructing the quantum computer to execute a quantum computation using the utilized quantum bit based on the instruction sequence corresponding to the jobs determined to be executed immediately.
11. An information processing device having a processing unit that inputs a job indicating that a quantum computation is to be performed into a first queue, converts the quantum computation procedures to be executed by the jobs in the first queue into an instruction sequence that can be executed by a quantum computer, inputs the jobs after conversion into a second queue, and, starting from the top of the second queue, determines for each of the jobs based on predetermined criteria the utilized quantum bit to be used during execution and whether or not to execute immediately, and instructs the quantum computer to execute a quantum computation using the utilized quantum bit based on the instruction sequence corresponding to the jobs determined to be executed immediately.
Citation Information
Patent Citations
Collaborative Scheduling of Quantum Computing Jobs
JP2022511613A
Program, computer system, and computer
WO2021125189A1
Scheduling services for quantum computing
US20200125402A1
US2002201655A1