Node allocation program for quantum simulation execution, node allocation method for quantum simulation execution, and information processing device.
The node allocation method for quantum simulations addresses resource inefficiencies by predicting execution times and optimizing node allocation based on similar quantum circuits, reducing downtime and improving utilization efficiency.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- FUJITSU LTD
- Filing Date
- 2022-09-29
- Publication Date
- 2026-07-23
Smart Images

Figure 0007894014000001 
Figure 0007894014000002 
Figure 0007894014000003
Abstract
Description
Technical Field
[0001] The present invention relates to a node allocation program during quantum simulation execution, a node allocation method during quantum simulation execution, and an information processing apparatus.
Background Art
[0002] In recent years, in preparation for the emergence of quantum computers, simulations are performed on conventional computers for technology development for quantum computing. Quantum simulation reproduces a quantum state on an ordinary computer and performs quantum computing by calculating the interaction of qubits (state-vector method).
[0003] As a related prior art, for example, a program executed by parallel calculation using a plurality of nodes is executed by a plurality of jobs, the calculation results of each job are analyzed at regular intervals, and based on the remaining execution time of each job obtained from the analysis results, there is one that adjusts the parallelism of each job so that all jobs are completed.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] However, in the prior art, it is difficult to efficiently use a group of computers (nodes) shared by a plurality of users when executing a plurality of quantum simulations.
[0006] In one aspect, an object of the present invention is to improve the utilization efficiency of a group of nodes during quantum simulation execution.
Means for Solving the Problems
[0007] In one embodiment, a node allocation program for quantum simulation execution is provided, which, for each quantum circuit used in the quantum simulation, refers to a first memory unit that stores the communication feature quantities of the said quantum circuit to identify a second quantum circuit whose communication feature quantities are similar to those of the first quantum circuit used in the first quantum simulation, refers to a second memory unit that stores the measured execution time for each number of nodes allocated to past quantum simulations using the identified second quantum circuit to calculate the predicted execution time of the first quantum simulation for each of the multiple number of nodes, and determines the number of nodes to be allocated to the first quantum simulation from the multiple number of nodes based on the calculated predicted execution time, according to the allocation status of quantum simulations in the group of nodes available for the first quantum simulation. [Effects of the Invention]
[0008] According to one aspect of the present invention, it is possible to improve the utilization efficiency of node groups when executing quantum simulations. [Brief explanation of the drawing]
[0009] [Figure 1] Figure 1 is an explanatory diagram illustrating one example of a node allocation method during quantum simulation execution. [Figure 2] Figure 2 is an explanatory diagram illustrating an example of scaling out a quantum simulation. [Figure 3] Figure 3 is an explanatory diagram showing an example of the system configuration of the scheduling system 300. [Figure 4] Figure 4 is a block diagram showing an example of the hardware configuration of the scheduling device 301. [Figure 5] Figure 5 is an explanatory diagram showing an example of the contents of the execution time record table 320. [Figure 6]Figure 6 is an explanatory diagram showing an example of the contents of the circuit feature table 330. [Figure 7] Figure 7 is a block diagram showing an example of the functional configuration of the scheduling device 301. [Figure 8A] Figure 8A is an explanatory diagram (part 1) showing an example of the contents of the predicted execution time table 800. [Figure 8B] Figure 8B is an explanatory diagram (part 2) showing an example of the contents of the predicted execution time table 800. [Figure 9] Figure 9 is a flowchart (part 1) showing an example of the node allocation process procedure when the scheduling device 301 is running a quantum simulation. [Figure 10] Figure 10 is a flowchart (part 2) showing an example of the node allocation process procedure when the scheduling device 301 is running a quantum simulation. [Modes for carrying out the invention]
[0010] Embodiments of the node allocation program for quantum simulation execution, the node allocation method for quantum simulation execution, and the information processing device according to the present invention will be described in detail below with reference to the drawings.
[0011] (Embodiment) Figure 1 is an explanatory diagram illustrating one embodiment of a node allocation method during quantum simulation execution. In Figure 1, the information processing device 101 is a computer that determines the number of nodes to be allocated to the quantum simulation. The nodes are ordinary computers (calculators), so-called classical computers.
[0012] Quantum simulation simulates quantum computing by holding the states of qubits in the memory of a computer (classical computer). In quantum simulation, when the number of qubits to be simulated increases by one, the required memory amount doubles. Therefore, when the required number of qubits is large, multiple computers are operated in parallel to execute the quantum simulation. The required number of qubits varies depending on, for example, the application.
[0013] Also, computer clusters for performing quantum simulation are often shared by multiple users. In a system where multiple users share a computer cluster, the required number of computers is allocated to each user for the required time. Also, a situation where as many computers as possible are operating is desirable in terms of the utilization efficiency of the equipment.
[0014] Conventionally, supercomputers and other massively parallel computers are equipped with, for example, a job scheduler for sharing by multiple users. When a user uses a computer, a "job" that describes the operation of a series of programs is submitted. Jobs are queued and executed as soon as the computer becomes available. The number of occupied nodes and the expected processing time are set for each job.
[0015] Quantum simulation is also, in essence, a program that operates on a parallel computer. Therefore, an existing scheduler may be used for the scheduling of quantum simulation. In an existing scheduler, for example, scheduling is performed in a FIFO (First In First Out) manner in which the submitted jobs are executed in the order of submission.
[0016] Also, existing schedulers have a function called backfill for executing a job submitted later earlier than a job submitted earlier. In backfill, a job with a low priority is executed by cutting in only when it does not interfere with a job with a high priority.
[0017] For example, if jobs are executed in the order they are submitted (in order of highest priority), depending on the number of nodes occupied by the job, it may not be possible to use all of the computing resources, and some computers may be left in a waiting (available) state. This time when some computers are in a waiting state is called downtime. Backfill, based on the predicted completion time of a job (estimated processing time), can insert the job into the current downtime and process it if it is determined that it can be executed within that downtime.
[0018] If processing is not completed by the predicted completion time, the process will be terminated. Therefore, if the prediction accuracy is low, for example, the predicted completion time may be set to be longer. On the other hand, the longer the predicted completion time, the less likely backfill will occur, so it should not be set unnecessarily long.
[0019] Backfill is an effective function for improving the utilization efficiency of a computing cluster. However, quantum simulations, depending on the application, tend to require large-scale utilization compared to conventional supercomputers. Large-scale utilization refers to, for example, running a quantum simulation using all of the computing cluster (total utilization).
[0020] Therefore, quantum simulations tend to be constrained by the amount of available backfill time. Consequently, existing schedulers do not effectively perform backfilling when running multiple quantum simulations, making it difficult to improve the utilization efficiency of computing resources during quantum simulation execution.
[0021] Here, the scalability of parallel applications varies depending on the processing content. Scalability refers to the degree of performance improvement when the number of computers used is increased. For example, if the performance increases eightfold when ten times the number of computers are used, it can be said to have an 80% scalability.
[0022] Quantum simulations calculate interactions within quantum circuits, and communication patterns and other parameters are determined according to the defined circuit. Therefore, quantum simulations offer more predictable scalability compared to conventional applications.
[0023] For example, with typical applications, changing the number of computers can alter the boundaries that divide the problem (computation), making it difficult to predict their characteristics. On the other hand, quantum simulations depend on a given quantum circuit rather than changes in input, making it easier to predict scalability for each quantum circuit.
[0024] Therefore, in this embodiment, we will describe a node allocation method that improves the efficiency of node utilization during quantum simulation execution by utilizing the fact that the scalability in parallel execution of quantum simulations depends on the configuration of the quantum circuit. Here, we will describe an example of processing by the information processing device 101.
[0025] (1) The information processing device 101 refers to the first storage unit 110 and identifies a second quantum circuit whose communication feature quantities are similar to those of the first quantum circuit used in the first quantum simulation. Here, the first storage unit 110 stores the communication feature quantities of each quantum circuit used in the quantum simulation.
[0026] The first quantum simulation is the quantum simulation to be executed, for example, a quantum simulation requested by a user. The quantum circuit is a computational model for performing quantum computation. The quantum circuit is determined by the type of processing to be performed in the quantum simulation (for example, determining the energy of a molecule).
[0027] Quantum simulations make it easier to predict how performance will change when the number of nodes used is increased or decreased, because communication patterns and other characteristics are determined by the quantum circuit. Furthermore, quantum circuits with similar communication patterns and other characteristics to a given quantum circuit can be said to have similar scalability to quantum simulations using that same quantum circuit.
[0028] Therefore, the information processing device 101, for example, refers to the first memory unit 110 to identify a second quantum circuit among quantum circuits with known scalability that has similar communication-related features to the first quantum circuit. The communication-related features of the first quantum circuit may be stored in the first memory unit 110, for example, or they may be extracted from the first quantum circuit (computational model).
[0029] Feature quantities are index values that represent the characteristics of communication in quantum circuits. For example, the amount of communication between nodes required to run a quantum simulation tends to change depending on the communication pattern. Therefore, if the amount of communication between nodes required to run two quantum simulations is similar, it can be said that their communication patterns are similar.
[0030] Therefore, the feature may represent the amount of inter-node communication required to execute the quantum simulation. More specifically, for example, the feature may be the amount of inter-node communication when executing a quantum simulation with a specific number of nodes. Alternatively, the feature may be the amount of inter-node communication when executing a quantum simulation with each of several different node counts. Furthermore, the feature may be the average amount of inter-node communication when executing a quantum simulation with each of several different node counts. Note that the feature can be extracted by analyzing the contents of the quantum circuit (computational model) without actually executing the quantum simulation.
[0031] In the example in Figure 1, we assume that a second quantum circuit q2 has similar communication-related features to the first quantum circuit q1 used in the first quantum simulation.
[0032] (2) The information processing device 101 refers to the second storage unit 120 and calculates the predicted execution time of the first quantum simulation for each of the multiple node numbers when that number of nodes is allocated. Here, the multiple node numbers are set arbitrarily according to the number of nodes (maximum number of nodes) of the node group available for the first quantum simulation.
[0033] For example, if the maximum number of nodes is set to "5", the number of nodes can be "1, 2, 3, 4, 5". Also, if the maximum number of nodes is set to "10", the number of nodes can be "1, 2, 4, 6, 8, 10". Also, if the maximum number of nodes is set to "32", the number of nodes can be "1, 2, 4, 8, 16, 32".
[0034] Furthermore, the second memory unit 120 stores the measured execution time for each number of nodes allocated to the second quantum simulation using the second quantum circuit. The measured execution time is the execution time measured when a certain number of nodes are allocated to the second quantum simulation and the second quantum simulation is executed. The second memory unit 120 stores two or more pairs of the number of nodes and the measured execution time.
[0035] The predicted execution time of the first quantum simulation is calculated, for example, by linear or curved approximation based on the measured execution time. Here, the number of nodes is set to "1, 2, 4, 8, 16, 32". Furthermore, the second memory unit 120 is assumed to store the measured execution time when 2 nodes are assigned to the second quantum simulation and the measured execution time when 8 nodes are assigned to the second quantum simulation.
[0036] In this case, the information processing device 101 calculates the predicted execution time of the first quantum simulation for each number of nodes "1, 2, 4, 8, 16, 32" by linear approximation or curve approximation, based on the measured execution time for the number of nodes "2" and the measured execution time for the number of nodes "8".
[0037] In the example in Figure 1, we assume that a predicted execution time of 130 has been calculated. The predicted execution time of 130 represents the predicted execution time of the first quantum simulation when each node number "1, 2, 4, 8, 16, 32" is allocated.
[0038] (3) The information processing device 101 determines the number of nodes to be allocated to the first quantum simulation from a number of nodes based on the calculated predicted execution time, according to the allocation status of quantum simulations in the node group. In this case, the information processing device 101 determines the number of nodes to be allocated to the first quantum simulation in such a way that the start time of the execution of the first quantum simulation is brought forward.
[0039] Here, the node group refers to the group of computers available for the first quantum simulation (for example, nodes N1 to Nn shown in Figure 3). The start time of the first quantum simulation is the scheduled time when the execution of the first quantum simulation will begin. The start time of the first quantum simulation changes depending on the allocation status of other quantum simulations (jobs) in the node group.
[0040] For example, downtime may occur depending on the allocation status of other quantum simulations. If the first quantum simulation fits within this downtime, backfilling is performed, resulting in an earlier start time compared to when it does not. However, depending on the number of nodes allocated to the first quantum simulation and the predicted execution time, the first quantum simulation may or may not fit within this downtime.
[0041] Therefore, the information processing device 101 notifies the scheduler 102, for example, of the number of nodes to be allocated to the first quantum simulation and the predicted execution time, and queries the start time of the first quantum simulation. The scheduler 102 then schedules the quantum simulation according to the availability of the node group.
[0042] For example, scheduler 102 has the same functionality as existing job schedulers. Specifically, scheduler 102 performs scheduling using a FIFO method, executing submitted quantum simulations (jobs) in the order they were submitted. Scheduler 102 also has a backfill function.
[0043] Specifically, for example, the information processing device 101 refers to the predicted execution time 130 and notifies the scheduler 102 of the pair of node number and predicted execution time for each of the multiple node numbers "1, 2, 4, 8, 16, 32". As a result, the information processing device 101 queries the execution start time of the first quantum simulation according to the allocation status of quantum simulations in the node group for each pair of node number and predicted execution time. The information processing device 101 may then decide to allocate the number of nodes to the first quantum simulation that results in the earliest execution start time of the first quantum simulation from among the multiple node numbers "1, 2, 4, 8, 16, 32".
[0044] In the example shown in Figure 1, we assume that out of several node counts "1, 2, 4, 8, 16, 32", the node count "16" that results in the earliest start time for the first quantum simulation is determined to be the number of nodes to be allocated to the first quantum simulation. In this case, the information processing device 101 allocates the determined node count "16" and executes the first quantum simulation.
[0045] Specifically, for example, the information processing device 101 instructs the scheduler 102 to use the determined number of nodes "16" and submits the first quantum simulation (job). For example, suppose the number of nodes specified in the request to execute the first quantum simulation was "4". In this case, the number of nodes used for the first quantum simulation is scaled out from "4" to "16", and the first quantum simulation is executed.
[0046] The scheduler 102 may be implemented by the information processing device 101, or by a computer other than the information processing device 101.
[0047] Thus, the information processing device 101 can predict the scalability characteristics of the first quantum simulation (predicted execution time for each number of nodes) by utilizing the fact that the scalability in the parallel execution of quantum simulations depends on the configuration of the quantum circuit. Furthermore, even in cases where there is no track record of quantum simulation using the first quantum circuit, the information processing device 101 can predict the scalability characteristics of the first quantum simulation by utilizing the track record of quantum simulation using a second quantum circuit that has similar scalability characteristics to the first quantum circuit.
[0048] Furthermore, the information processing device 101 can determine the number of nodes to allocate to the first quantum simulation based on the predicted scalability characteristics, so that the start time of the first quantum simulation is accelerated. This allows the information processing device 101 to increase the backfill rate and improve the utilization efficiency of the node group during quantum simulation execution.
[0049] Here, we will explain an example of scaling out quantum simulations using Figure 2.
[0050] Figure 2 is an explanatory diagram illustrating an example of scaling out a quantum simulation. In Figure 2, Graph 200 shows the allocation status of other quantum simulations (jobs) to the group of nodes available for the first quantum simulation. The vertical axis represents the number of nodes. The horizontal axis represents the passage of time.
[0051] Here, the first quantum simulation is referred to as "Job J4". Jobs J1 to J3 represent other quantum simulations distinct from the first one. In Figure 2, the numbers within each of Jobs J1 to J4 indicate the input order. The earlier the input order, the higher the priority.
[0052] Here, we assume that job J1 is executed using 10 nodes (total utilization). Job J2 is executed using 2 nodes. Job J3 is executed using 10 nodes (total utilization). As a result, a gap of time 210 occurs between time t1 and time t2.
[0053] The idle time 210 indicates that the 8 nodes are idle for 100 seconds. The size of idle time 210 is "number of nodes 8 × 100 seconds". Here, let's assume that the number of nodes specified in the execution request for job J4 (first quantum simulation) is "3". The number of nodes "3" is the minimum number of nodes required to execute job J4, which is determined, for example, by memory usage.
[0054] Furthermore, let's assume the predicted execution time for job J4 is "150 seconds" when the number of nodes is "3". In this case, job 4 does not fit within the gap time of 210. Therefore, the existing scheduler will not perform backfill, and the start time of job J4 will be, for example, the time t3 when job J3 is completed.
[0055] In response, the information processing device 101 calculates the predicted execution time for job J4 (the first quantum simulation) based on the number of nodes. Then, based on the calculated predicted execution time, the information processing device 101 determines the number of nodes to allocate to job J4 so that the start time of job J4 is earlier.
[0056] Here, we assume the predicted execution time for job J4 with 8 nodes is "90 seconds". In this case, scaling out the number of nodes used for job J4 from "3" to "8" reduces the predicted execution time from "150 seconds" to "90 seconds" (the aspect ratio is altered), allowing job J4 to fit into the available time of 210.
[0057] Therefore, the scheduler 102 can obtain the execution start time t1 when the number of nodes is "8" and the predicted execution time is "90 seconds". The execution start time t1 is earlier than the execution start time t3 of job J4 when the number of nodes is "3".
[0058] The information processing device 101 determines that the number of nodes to be allocated to job J4 is "8". As a result, for example, when the information processing device 101 instructs the scheduler 102 to use the number of nodes "8" and submits job J4, backfill occurs and job J4 overtakes job J3 in execution.
[0059] (Example of system configuration for scheduling system 300) Next, an example of the system configuration of the scheduling system 300, including the information processing device 101 shown in Figure 1, will be described. Here, the example will be described using the case where the information processing device 101 shown in Figure 1 is applied to the scheduling device 301 within the scheduling system 300. The scheduling system 300 is applied, for example, to a supercomputer that performs quantum simulations.
[0060] Figure 3 is an explanatory diagram showing an example of the system configuration of the scheduling system 300. In Figure 3, the scheduling system 300 includes a scheduling device 301, a client device 302, and a group of nodes N1 to Nn (n: a natural number greater than or equal to 2). In the scheduling system 300, the scheduling device 301, the client device 302, and the group of nodes N1 to Nn are connected via a wired or wireless network 310. The network 310 is, for example, the Internet, a LAN (Local Area Network), or a WAN (Wide Area Network).
[0061] In the following explanation, any node among the node group N1 to Nn may be referred to as "node Ni" (i=1,2,…,n).
[0062] Here, the scheduling device 301 is a computer that has an execution time record table 320 and a circuit feature table 330, and determines the number of nodes to allocate to the quantum simulation. The contents of the execution time record table 320 and the circuit feature table 330 will be described later with reference to Figures 5 and 6.
[0063] Furthermore, the scheduling device 301 has a scheduler SC. The scheduler SC is software that schedules quantum simulations. Specifically, for example, the scheduler SC schedules quantum simulations (jobs) in a FIFO (First-In, First-Out) manner, executing them in the order they were submitted. The scheduler SC also has a backfill function. The scheduler 102 shown in Figure 1 corresponds to the scheduler SC, for example. The scheduling device 301 is, for example, a server.
[0064] The client device 302 is a computer used by users of the scheduling system 300. For example, a user accesses the scheduling device 301 from the client device 302 to submit requests for the execution of quantum simulations (jobs). The client device 302 can be, for example, a PC (Personal Computer) or a tablet PC.
[0065] The node group N1 to Nn are computers to which quantum simulations will be assigned. The performance of each node in the N1 to Nn group is, for example, identical. Each node N1 to Nn is, for example, a server.
[0066] In this description, the scheduling device 301 is assumed to have a scheduler SC, but this is not limited to this configuration. For example, the scheduler SC may be located in another computer that can be connected to the scheduling device 301 via the network 310. Furthermore, the scheduling device 301 may be implemented by a client device 302. Also, the scheduling system 300 may include multiple client devices 302.
[0067] (Example of hardware configuration of scheduling device 301) Next, an example of the hardware configuration of the scheduling device 301 will be described.
[0068] Figure 4 is a block diagram showing an example of the hardware configuration of the scheduling device 301. In Figure 4, the scheduling device 301 includes a CPU (Central Processing Unit) 401, memory 402, disk drive 403, disk 404, communication interface 405, portable recording medium interface 406, and portable recording medium 407. Each component is connected by a bus 400.
[0069] Here, the CPU 401 is responsible for the overall control of the scheduling device 301. The CPU 401 may have multiple cores. The memory 402 includes, for example, ROM (Read Only Memory), RAM (Random Access Memory), and flash ROM. Specifically, for example, the flash ROM stores the OS program, the ROM stores the application program, and the RAM is used as the work area for the CPU 401. The program stored in the memory 402 is loaded into the CPU 401, causing the CPU 401 to execute the coded process.
[0070] The disk drive 403 controls the reading and writing of data to the disk 404 according to the control of the CPU 401. The disk 404 stores the data written under the control of the disk drive 403. Examples of disks 404 include magnetic disks and optical disks.
[0071] The communication interface 405 is connected to the network 310 via a communication line, and through the network 310, it is connected to external computers (for example, client device 302 and node groups N1 to Nn shown in Figure 3). The communication interface 405 manages the interface between the network 310 and the inside of the device, and controls the input and output of data from external computers. The communication interface 405 can be, for example, a modem or a LAN adapter.
[0072] The portable recording medium interface 406 controls the reading and writing of data to the portable recording medium 407 according to the control of the CPU 401. The portable recording medium 407 stores the data written under the control of the portable recording medium interface 406. Examples of portable recording media 407 include CD (Compact Disc)-ROM, DVD (Digital Versatile Disk), and USB (Universal Serial Bus) memory.
[0073] The scheduling device 301 may also have, in addition to the components described above, an input device, a display, etc. Furthermore, the scheduling device 301 does not necessarily have to have, among the components described above, a portable recording medium I / F 406 and a portable recording medium 407. The client device 302 and node groups N1 to Nn shown in Figure 3 can also be realized with the same hardware configuration as the scheduling device 301. However, the client device 302 may have, in addition to the components described above, an input device, a display, etc.
[0074] (Stored contents of the execution time record table 320 and the circuit feature table 330) Next, the contents of the execution time record table 320 and the circuit feature table 330 stored in the scheduling device 301 will be described using Figures 5 and 6. The execution time record table 320 and the circuit feature table 330 are implemented by storage devices such as the memory 402 and disk 404 shown in Figure 4.
[0075] Figure 5 is an explanatory diagram showing an example of the contents of the execution time record table 320. In Figure 5, the execution time record table 320 has fields for quantum circuit ID, number of computers used, execution time, and error coefficient, and by setting information in each field, execution time information (for example, execution time information 500-1 to 500-3) is stored as a record.
[0076] Here, the quantum circuit ID is an identifier that uniquely identifies the quantum circuit used in the quantum simulation. The number of computers used is the number of nodes (computers) used in the quantum simulation. The execution time is the time (measured value) taken to run the quantum simulation (unit: [seconds]).
[0077] The error coefficient is a coefficient used to correct the predicted execution time. The error coefficient includes the predicted error and the measured processing time error. The predicted error represents the ratio of the number of nodes (computers) specified when submitting the quantum simulation (job) to the number of computers actually used. The measured processing time error represents the error between the predicted execution time and the measured execution time. N / A indicates not applicable.
[0078] Figure 6 is an explanatory diagram showing an example of the contents of the circuit feature table 330. In Figure 6, the circuit feature table 330 has fields for quantum circuit ID and feature quantity, and by setting information in each field, circuit feature information (for example, circuit feature information 600-1, 600-2) is stored as a record.
[0079] Here, the quantum circuit ID is an identifier that uniquely identifies the quantum circuit used in the quantum simulation. The feature is a feature related to the communication of the quantum circuit. The feature is represented by one or more elements. The elements are, for example, values that represent the amount (or amount) of communication between nodes required to run the quantum simulation using the quantum circuit.
[0080] Furthermore, the elements may also represent values that indicate the degree of dependency between processes executed within the quantum simulation, for example, the degree of dependency between processes executed at each node. Note that inter-process dependency refers to a relationship where a node cannot proceed to the next process until it receives the processing results from another node.
[0081] (Example of functional configuration of scheduling device 301) Figure 7 is a block diagram showing an example of the functional configuration of the scheduling device 301. In Figure 7, the scheduling device 301 includes a reception unit 701, a specification unit 702, a calculation unit 703, a determination unit 704, an execution unit 705, a recording unit 706, and a storage unit 710. The reception unit 701 to the recording unit 706 are control units, and specifically, they realize their functions by having the CPU 401 execute a program stored in a storage device such as the memory 402, disk 404, or portable recording medium 407 shown in Figure 4, or by using a communication I / F 405. The processing results of each functional unit are stored in a storage device such as the memory 402 or disk 404. The storage unit 710 is also realized by a storage device such as the memory 402 or disk 404. Specifically, for example, the storage unit 710 stores the execution time recording table 320 shown in Figure 5 and the circuit feature quantity table 330 shown in Figure 6.
[0082] The reception unit 701 receives quantum simulation requests. Here, a quantum simulation request is a request to execute a quantum simulation. A quantum simulation request includes, for example, a quantum circuit ID and a specified number of nodes. The quantum circuit ID is an identifier that uniquely identifies the quantum circuit to be used in the quantum simulation.
[0083] The specified number of nodes is the number of nodes allocated to the quantum simulation, as specified by the user. The specified number of nodes is determined, for example, based on the amount of memory required for the quantum simulation. The quantum simulation request may also include a specified predicted execution time. The specified predicted execution time is the predicted execution time required for the quantum simulation, as specified by the user.
[0084] Specifically, for example, the reception unit 701 receives quantum simulation requests by receiving them from the client device 302 shown in Figure 3. Alternatively, the reception unit 701 may also receive quantum simulation requests through user input using an input device (not shown).
[0085] In the following explanation, the quantum simulation requested to be executed by a quantum simulation request (the first quantum simulation) may be referred to as the "quantum simulation to be executed." Furthermore, the quantum circuit used in the quantum simulation to be executed may be referred to as the "first quantum circuit."
[0086] The identification unit 702 refers to the storage unit 710 and identifies a second quantum circuit whose communication feature quantities are similar to those of the first quantum circuit used in the quantum simulation to be performed. The storage unit 710 stores the communication feature quantities of each quantum circuit used in the quantum simulation.
[0087] Feature vectors may include, for example, an index value representing the amount of communication between nodes required to run a quantum simulation. Alternatively, feature vectors may represent the degree of dependency between processes executed at each node in the quantum simulation. Feature vectors can be extracted, for example, by analyzing the contents of a quantum circuit (computational model).
[0088] Specifically, for example, the specific unit 702 refers to the circuit feature table 330 shown in Figure 5 and calculates the error in the feature quantities related to communication between the first quantum circuit and other quantum circuits. The error in the feature quantities can be expressed, for example, by the distance between the feature quantities (Euclidean distance, cosine similarity, etc.).
[0089] The features relating to the communication of the first quantum circuit may be stored, for example, in the circuit feature table 330. Alternatively, the features relating to the communication of the first quantum circuit may be extracted by the identification unit 702 by analyzing the contents of the first quantum circuit. The circuit feature table 330 is an example of the first storage unit 110 shown in Figure 1.
[0090] To explain in more detail, for example, the identification unit 702 compares the communication feature quantities of the first quantum circuit with the communication feature quantities of other quantum circuits in the circuit feature quantity table 330 and calculates the distance between the feature quantities. Then, the identification unit 702 identifies the other quantum circuit with the smallest calculated distance (the quantum circuit with the highest similarity) as the second quantum circuit. Alternatively, the identification unit 702 may identify any other quantum circuit whose calculated distance is below a threshold as the second quantum circuit.
[0091] The calculation unit 703 refers to the storage unit 710 and calculates the predicted execution time of the quantum simulation to be executed for each of the multiple node numbers, assuming that node number is assigned. The storage unit 710 stores the measured execution times for each node number assigned to past quantum simulations using the second quantum circuit.
[0092] The number of nodes is arbitrarily set according to the maximum number of nodes that can be allocated to the quantum simulation being run. The maximum number of assignable nodes corresponds, for example, to the number of nodes in the node group N1 to Nn shown in Figure 2. For example, if "n=32", the number of nodes may be "1, 2, 4, 8, 16, 32".
[0093] In the following explanation, multiple node counts will be denoted as "Node Count #1 to #m," and any node count among Node Counts #1 to #m will be denoted as "Node Count #i" (i = 1, 2, ..., m).
[0094] Specifically, for example, the calculation unit 703 obtains execution time information corresponding to the quantum circuit ID of the identified second quantum circuit from the execution time record table 320 shown in Figure 5. In this case, the calculation unit 703 obtains two or more pieces of execution time information corresponding to the quantum circuit ID of the second quantum circuit.
[0095] The number of computers used and the execution time indicated by the acquired execution time information show the measured execution time for each number of nodes allocated to past quantum simulations using the second quantum circuit. For example, execution time information 500-1 (see Figure 5) shows the measured execution time of "300 seconds" when four nodes were allocated to a quantum simulation using the quantum circuit with quantum circuit ID "0x0000". The execution time record table 320 is an example of the second storage unit 120 shown in Figure 1.
[0096] Then, the calculation unit 703 calculates the predicted execution time of the quantum simulation to be executed for each node number #i of node numbers #1 to #m, based on the number of computers used and the execution time of each acquired execution time information. The predicted execution time of the quantum simulation to be executed is calculated, for example, by existing linear approximation or curve approximation.
[0097] Furthermore, the identification unit 702 may determine whether the memory unit 710 stores the measured execution times for each number of nodes allocated to past quantum simulations using the first quantum circuit. Specifically, for example, the identification unit 702 searches the execution time record table 320 for execution time information corresponding to the quantum circuit ID of the first quantum circuit. The quantum circuit ID of the first quantum circuit is included, for example, in the quantum simulation request.
[0098] If two or more pieces of execution time information are found, the identification unit 702 determines that the measured execution times for each number of nodes allocated to past quantum simulations are stored. On the other hand, if two or more pieces of execution time information are not found, the identification unit 702 determines that the measured execution times for each number of nodes allocated to past quantum simulations are not stored.
[0099] Furthermore, if the specified unit 702 does not have a record of the measured execution time for each number of nodes allocated to past quantum simulations, it may identify a second quantum circuit whose communication-related feature quantities are similar to those of the first quantum circuit used for the quantum simulation to be executed.
[0100] As a result, if there is no track record of past quantum simulations using the same quantum circuit (first quantum circuit) as the quantum simulation to be executed, the scheduling device 301 can use the track record of quantum simulations using a second quantum circuit with similar features to the first quantum circuit to calculate the predicted execution time of the quantum simulation to be executed.
[0101] Furthermore, if the calculation unit 703 has stored the measured execution times for each number of nodes assigned to past quantum simulations using the first quantum circuit, it may calculate the predicted execution time of the target quantum simulation for each number of nodes #i, based on the measured execution times for each number of nodes stored in the storage unit 710, when each number of nodes #i is assigned.
[0102] Specifically, for example, the calculation unit 703 obtains execution time information corresponding to the quantum circuit ID of the first quantum circuit from the execution time record table 320. In this case, the calculation unit 703 obtains two or more pieces of execution time information corresponding to the quantum circuit ID of the first quantum circuit. The number of computers used and the execution time indicated by the obtained execution time information represent the measured execution time for each number of nodes allocated to past quantum simulations using the first quantum circuit.
[0103] Then, the calculation unit 703 calculates the predicted execution time of the quantum simulation to be executed for each node number #i, based on the number of computers used and the execution time of each acquired execution time information.
[0104] As a result, if the scheduling device 301 has a track record of past quantum simulations using the same quantum circuit (first quantum circuit) as the quantum simulation to be executed, it can use that track record to calculate the predicted execution time of the quantum simulation to be executed.
[0105] The calculated predicted execution time of the quantum simulation to be executed is stored in a predicted execution time table 800, as shown in Figures 8A and 8B, in association with, for example, the number of nodes. The predicted execution time table 800 is implemented using storage devices such as memory 402 and disk 404.
[0106] Figures 8A and 8B are explanatory diagrams showing an example of the contents of the predicted execution time table 800. In Figure 8A, the predicted execution time table 800 has fields for the number of computers, execution time, and prediction error amount, and by setting information in each field, it stores the predicted execution time information 800-1 to 800-6 as records.
[0107] Here, the number of computers is the number of nodes allocated to the quantum simulation (job). The execution time is the predicted execution time required to run the quantum simulation. The prediction error amount represents the magnitude of the error included in the execution time (predicted execution time). The prediction error amount is used, for example, when correcting the execution time (predicted execution time).
[0108] In Figure 8A (8-1), the execution time of "555" for a number of computers "2" and the execution time of "171" for a number of computers "8" are shown. The number of computers "2" and "8" are the number of computers for which the actual execution time during quantum simulation was measured. The execution times "555" and "171" for each number of computers "2" and "8" are the measured execution times identified from the execution time information. The number of computers for which the measurement was performed, "2" and "8", is underlined.
[0109] In Figure 8A (8-2), the execution times of "1,000, 308, 95, 52" for each computer count "1, 4, 16, 32" other than the number of computers for which actual measurements have been taken are shown. The execution times of "1, 4, 16, 32" are "1,000, 308, 95, 52" and were predicted based on the execution times of "555, 171" for the number of computers for which actual measurements have been taken, "2, 8".
[0110] Specifically, for example, the calculation unit 703 calculates the degree of performance improvement when the number of computers is quadrupled, based on the execution time of "555" for a measured number of computers "2" and the execution time of "171" for a measured number of computers "8". In this case, the degree of performance improvement when the number of computers is quadrupled is, for example, "555 / 171".
[0111] Next, the calculation unit 703 calculates the degree of performance improvement when the number of computers is doubled by taking the square root of the degree of performance improvement when the number of computers is quadrupled, which is "555 / 171". Here, the degree of performance improvement when the number of computers is doubled is, for example, "(555 / 171) 1 / 2 This is what it becomes.
[0112] Then, the calculation unit 703 calculates the degree of performance improvement when the number of computers is doubled (555 / 171). 1 / 2 Based on the above, the execution time for each number of computers "1, 4, 16, 32" is calculated. The execution time for computer "1" is calculated by multiplying the measured execution time for computer "2" ("555") by "(555 / 171)". 1 / 2 Multiplying by " results in "1000".
[0113] The execution time for "4" computers is calculated by multiplying the measured execution time for "2" computers ("555") by "(555 / 171)". 1 / 2 Dividing by " results in "308". The execution time for "16" computers is calculated by multiplying the measured execution time for "8" computers, "171", by "(555 / 171)". 1 / 2Dividing by " results in "95". The execution time for "32" computers is "52" by dividing the measured execution time of "171" for "8" computers by "(555 / 171)".
[0114] However, the execution times for each number of computers "1, 4, 16, 32" are examples only, and for explanatory purposes, the values shown in Figures 8A and 8B are used. Any existing method may be used to predict the unknown execution time (the execution time for each number of computers "1, 4, 16, 32") from the known execution time (the execution time for the measured number of computers "2, 8").
[0115] Returning to the explanation of Figure 7, the calculation unit 703 may also calculate the prediction error amount related to the predicted execution time of the calculated quantum simulation to be executed. Here, the prediction error amount represents the magnitude of the error included in the calculated predicted execution time. The error is the error between the predicted execution time and the actual execution time.
[0116] Here, it is assumed that the larger the difference between the number of nodes corresponding to the predicted execution time of the quantum simulation to be executed and the number of computers measured, the larger the error included in the predicted execution time. For this reason, the calculation unit 703 may calculate, for example, the distance between the number of nodes corresponding to the predicted execution time of the quantum simulation to be executed and the number of nodes (number of computers measured) corresponding to the measured execution time used to calculate the predicted execution time as the amount of prediction error.
[0117] Here, we will explain an example of calculating the prediction error using Figures 8A and 8B.
[0118] In the example shown in Figure 8A, the number of computers measured is "2,8". In this case, the calculation unit 703 sets the predicted error amount corresponding to the number of computers "2,8" to "1".
[0119] Next, the calculation unit 703 calculates the distance between each number of computers other than the measured number of computers ("1, 4, 16, 32") as the prediction error amount corresponding to each number of computers other than the measured number of computers. In calculating the distance, the calculation unit 703 uses the measured number of computers that is close to each measured number ("2, 8") from among the measured numbers of computers.
[0120] Furthermore, distance is expressed, for example, by the ratio of the number of computers to the number of computers measured. For example, if the number of computers is smaller than the number of computers measured, the distance is expressed as "number of computers measured / number of computers". On the other hand, if the number of computers is larger than the number of computers measured, the distance is expressed as "number of computers / number of computers measured".
[0121] Here, of the measured number of computers "2,8", the number of measured computers that is close to the number of computers "1" is "2". In this case, the calculation unit 703 calculates the prediction error amount "2" corresponding to the number of computers "1" by dividing the measured number of computers "2" by the number of computers "1".
[0122] Furthermore, of the measured number of computers "2,8", the number of measured computers closest to the number of computers "4" is "2". In this case, the calculation unit 703 calculates the prediction error amount "2" corresponding to the number of computers "4" by dividing the number of computers "4" by the measured number of computers "2".
[0123] Furthermore, of the measured number of computers "2,8", the number of measured computers closest to the number of computers "16" is "8". In this case, the calculation unit 703 calculates the prediction error amount "2" corresponding to the number of computers "16" by dividing the number of computers "16" by the measured number of computers "8".
[0124] Furthermore, of the measured number of computers "2,8", the number of measured computers closest to the number of computers "32" is "8". In this case, the calculation unit 703 calculates the prediction error amount "4" corresponding to the number of computers "32" by dividing the number of computers "32" by the measured number of computers "8".
[0125] A larger prediction error value indicates a larger error included in the predicted execution time. The calculated prediction error is stored in the prediction execution time table 800, for example, in association with the number of nodes. Figure 8B (8-3) shows the prediction error values of "2, 1, 2, 1, 2, 4" for each number of computers "1, 2, 4, 8, 16, 32".
[0126] The decision unit 704 determines the number of nodes to be allocated to the quantum simulation to be executed from node numbers #1 to #m, based on the calculated predicted execution time according to the allocation status of quantum simulations in node groups N1 to Nn. Here, the start time of execution of the quantum simulation to be executed is determined, for example, according to the allocation status of other quantum simulations in node numbers #1 to #m.
[0127] Therefore, the decision unit 704 determines, for example, the number of nodes to allocate to the quantum simulation to be executed, depending on the allocation status of other quantum simulations at node numbers #1 to #m, so that the execution start time of the quantum simulation to be executed is earlier. The execution start time of the quantum simulation to be executed can be determined, for example, by querying the scheduler SC shown in Figure 3.
[0128] Specifically, for example, the decision unit 704 queries the scheduler SC for the start time of the quantum simulation to be executed, specifying the node number #i and the predicted execution time calculated for each node number #i. The decision unit 704 may then decide to allocate the node number #i that results in the earliest execution start time among the node numbers #1 to #m to the quantum simulation to be executed.
[0129] To explain in more detail, for example, the decision unit 704 attempts to submit a job (quantum simulation to be executed) to the scheduler SC, specifying the number of nodes #i and the predicted execution time, starting with the smallest node number #i among the number of nodes #1 to #m. After this, if the decision unit 704 obtains the execution start time of the job from the scheduler SC, it cancels that job.
[0130] In this way, the execution start time is obtained for each node number #i by repeatedly performing the steps "submit a job → obtain the execution start time → cancel the job" in order from the smallest node number #i among the number of nodes #1 to #m. The decision unit 704 may then decide that the node number #i with the earliest execution start time among the number of nodes #1 to #m will be allocated to the quantum simulation to be executed.
[0131] In addition, when attempting to submit a job, depending on the allocation status of other quantum simulations on nodes #1 to #m, the job may be executed immediately. In this case, the scheduling device 301 determines that the job submission is complete and sets the current time as the start time of the job (the quantum simulation to be executed).
[0132] Furthermore, when the decision unit 704 obtains the execution start time for each node number #i, it may exclude nodes from node numbers #1 to #m that are less than the specified number of nodes. The specified number of nodes is, for example, included in the quantum simulation request. Specifically, for example, the decision unit 704 may query the scheduler SC for the execution start time of the quantum simulation to be executed, specifying each node number #i and the predicted execution time for each node number #i from node numbers #1 to #m that is equal to or greater than the specified number of nodes.
[0133] This prevents the scheduling device 301 from failing to secure the amount of memory required to execute the job (the quantum simulation to be executed), thus preventing the job from failing.
[0134] Furthermore, the decision unit 704 may determine the node number #i among node numbers #1 to #m whose execution start time is earlier than that of the specified number of nodes to be allocated to the quantum simulation to be executed. Specifically, for example, while sequentially acquiring the execution start time for each node number #i, the decision unit 704 may, at the point where it finds a node number #i whose execution start time is earlier than that of the specified number of nodes, determine that node number #i to be allocated to the quantum simulation to be executed.
[0135] Furthermore, the scheduling device 301 may be able to obtain the start time of job execution for each node number #i without submitting a job. For example, the decision unit 704 may cooperate with the scheduler SC to understand the allocation status of quantum simulations for nodes #1 to #m. Then, similar to the scheduler SC, the decision unit 704 may schedule the job (quantum simulation to be executed) based on the node number #i and predicted execution time, according to the allocation status of quantum simulations for nodes #1 to #m, and determine the start time of job execution.
[0136] The execution unit 705 assigns the determined node number #i to execute the quantum simulation to be run. Specifically, for example, the execution unit 705 submits a job (the quantum simulation to be run) to the scheduler SC, specifying the determined node number #i and the predicted execution time for that node number #i.
[0137] The recording unit 706 assigns the determined node number #i to the quantum simulation to be executed and, as a result, stores the measured execution time of the quantum simulation to be executed in the storage unit 710, in association with the determined node number #i and the first quantum circuit.
[0138] Specifically, for example, the recording unit 706 obtains the measured execution time of a job (the quantum simulation to be executed) from the scheduler SC when the execution of the job specified by node number #i is completed. The recording unit 706 then records the obtained measured execution time in the execution time recording table 320, associating it with the quantum circuit ID and node number #i of the first quantum circuit.
[0139] For example, suppose a quantum simulation is performed using the first quantum circuit with quantum circuit ID "0x0001" with the number of nodes specified as "4," and the measured execution time "500" is obtained. In this case, the recording unit 706 records the measured execution time "500" in the execution time recording table 320, associating it with the quantum circuit ID "0x0001" and the number of nodes "4." As a result, execution time information 500-3, as shown in Figure 5, is stored as a new record.
[0140] Furthermore, the recording unit 706 may assign the determined node number #i to the quantum simulation to be executed and, as a result, store the error coefficient for the first quantum circuit in the storage unit 710, in association with the determined node number #i and the first quantum circuit. Here, the error coefficient includes a first coefficient and a second coefficient.
[0141] The first coefficient represents the error between the measured execution time and the predicted execution time for a quantum simulation using the first quantum circuit, when a first number of nodes are assigned. The predicted execution time when a first number of nodes are assigned is the execution time predicted using the measured execution time when a second number of nodes, different from the first number of nodes, is assigned.
[0142] The first coefficient corresponds to the difference between the predicted execution time and the measured execution time. The second coefficient represents the error between the number of nodes in the first and the number of nodes in the second. The first coefficient can be calculated, for example, using the following formula (1). The second coefficient corresponds to the prediction error.
[0143] First coefficient = |Predicted execution time / Actual execution time - 1| ... (1)
[0144] As an example, for a quantum simulation using the quantum circuit with quantum circuit ID "0x0000", the measured execution time when a first number of nodes "8" is assigned is set to "180", and the predicted execution time when a first number of nodes "8" is assigned is set to "216". Furthermore, the predicted execution time of "216" is the execution time predicted using the measured execution time when a second number of nodes "4" is assigned. The predicted execution time is identified, for example, from the predicted execution time table 800.
[0145] In this case, the recording unit 706 can calculate the first coefficient "0.2" from the predicted execution time "216" and the actual execution time "180" using, for example, the above formula (1). The second coefficient is, for example, the value "2" obtained by dividing the first number of nodes "8" by the second number of nodes "4". The second coefficient (prediction error amount) is determined, for example, from the predicted execution time table 800 shown in Figure 8B.
[0146] The recording unit 706 then records the first coefficient "0.2" and the second coefficient "2" in the execution time recording table 320, associating them with the quantum circuit ID "0x0000" and the number of nodes "8". The first coefficient "0.2" corresponds to the measured processing time error. The second coefficient "2" corresponds to the predicted error amount. As a result, execution time information 500-2, as shown in Figure 5, is stored as a new record.
[0147] Execution time information 500-2 is used, for example, to calculate and correct the predicted execution time of a quantum simulation using the quantum circuit with quantum circuit ID "0x0000". Furthermore, execution time information 500-2 is also used, for example, to calculate and correct the predicted execution time of a quantum simulation using a quantum circuit whose communication-related features are similar to those of the quantum circuit with quantum circuit ID "0x0000".
[0148] Furthermore, the calculation unit 703 may correct the calculated predicted execution time of the quantum simulation to be executed. First, let's assume that the predicted execution time of the quantum simulation to be executed is calculated based on the measured execution time for each number of nodes assigned to past quantum simulations using a second quantum circuit whose features are similar to those of the first quantum circuit.
[0149] In this case, the calculation unit 703 corrects the predicted execution time of the quantum simulation to be executed based on the error coefficient related to the second quantum circuit stored in the storage unit 710. Specifically, for example, the calculation unit 703 corrects the predicted execution time using the error coefficient included in the execution time information corresponding to the quantum circuit ID of the second quantum circuit.
[0150] Furthermore, the calculation unit 703 may correct the calculated predicted execution time of the quantum simulation to be executed based on the error in the feature quantities relating to communication between the first quantum circuit and the second quantum circuit. Specifically, for example, the predicted execution time may be increased in proportion to the magnitude of the error in the feature quantities.
[0151] More specifically, the calculation unit 703 may, for example, pre-set a coefficient (a value of 1 or greater) corresponding to the magnitude of the error in the feature quantities. The calculation unit 703 may then correct the prediction execution time by multiplying the prediction execution time by a coefficient corresponding to the error in the feature quantities related to communication between the first quantum circuit and the second quantum circuit.
[0152] Next, let's consider a case where the predicted execution time of the quantum simulation to be executed is calculated based on the measured execution time for each number of nodes allocated to past quantum simulations using the first quantum circuit. In this case, the calculation unit 703 corrects the predicted execution time of the quantum simulation to be executed based on the error coefficient related to the first quantum circuit stored in the storage unit 710. Specifically, for example, the calculation unit 703 corrects the predicted execution time using the error coefficient included in the execution time information corresponding to the quantum circuit ID of the first quantum circuit.
[0153] Examples of corrections for the predicted execution time of the quantum simulation being performed will be discussed later.
[0154] Furthermore, the decision unit 704 may determine the number of nodes to be allocated to the quantum simulation to be executed from the number of nodes #1 to #m, based on the corrected predicted execution time, according to the allocation status of quantum simulations in the node group N1 to Nn.
[0155] (Example of correction for the predicted execution time of the quantum simulation being performed) Next, we will explain an example of correcting the predicted execution time of the quantum simulation to be performed.
[0156] Here, we assume a case where the predicted execution time of the quantum simulation to be executed is corrected using the error coefficient included in the execution time information corresponding to quantum circuit ID "0x0000" in the execution time record table 320. The quantum simulation to be executed is either a quantum simulation using the quantum circuit with quantum circuit ID "0x0000" (the first quantum circuit), or a quantum simulation using a quantum circuit (the first quantum circuit) whose features are similar to those of the quantum circuit with quantum circuit ID "0x0000" (the second quantum circuit).
[0157] First, the calculation unit 703 identifies the error coefficient (N,d) included in the execution time information corresponding to the quantum circuit ID "0x0000" in the execution time record table 320. Here, N corresponds to the prediction error (second coefficient), and d corresponds to the measured processing time error (first coefficient). Next, the calculation unit 703 calculates "D=d / N" from the identified error coefficient (N,d).
[0158] Furthermore, there may be multiple execution time information corresponding to the quantum circuit ID "0x0000", and multiple error coefficients (N,d) may be identified. In this case, the calculation unit 703 calculates the average value of "d / N" from the multiple identified error coefficients (N,d) and sets that value as D.
[0159] Here, assume a case where the error coefficient (2, 0.2) included in the execution time information 500-2 corresponding to the quantum circuit ID "0x0000" in the execution time recording table 320 is specified. In this case, the calculation unit 703 calculates "D = 0.2 / 2 = 0.1" from the error coefficient (2, 0.2).
[0160] Here, let the number of nodes #i assigned to the quantum simulation to be executed be "number of nodes X". Also, let the number of actually measured computers be "node Y". However, the number of actually measured computers is the number of actually measured computers closest to the number of nodes X.
[0161] In this case, when "X > Y", the calculation unit 703 calculates the margin rate α using, for example, the following formula (2). Also, when "X < Y", the calculation unit 703 calculates the margin rate α using, for example, the following formula (3). The margin rate α is a coefficient for multiplying the predicted execution time for correction.
[0162] α=(X / Y)*D + 1 ···(2) α=(Y / X)*D + 1 ···(3)
[0163] Note that the calculation unit 703 does not need to perform correction on the predicted execution time of the node number #i that is the same as the number of actually measured computers among the node numbers #1 to #m, for example.
[0164] Then, the calculation unit 703 corrects the predicted execution time by multiplying the calculated predicted execution time for the number of nodes X by the margin rate α. For example, let D be "D = 0.1", the number of nodes X be "X = 8", the number of nodes Y be "Y = 4", and the predicted execution time for the number of nodes X be "300 [seconds]".
[0165] In this case, the calculation unit 703 calculates the margin rate α using the above formula (2). Here, the margin rate α is "α = 1.2". Then, the calculation unit 703 corrects the predicted execution time by multiplying the calculated margin rate "1.2" by the predicted execution time. Here, the predicted execution time is "360 [seconds]".
[0166] However, in some cases, the error coefficient included in the execution time information corresponding to quantum circuit ID "0x0000" cannot be identified from the execution time record table 320. For example, if a job is executed with a predicted execution time specified for node number #i, and the actual measured value (actual execution time) is not obtained, the error coefficient will remain "N / A".
[0167] In this case, the calculation unit 703 may correct the predicted execution time by multiplying the predicted execution time for the number of nodes X by the margin rate β. The margin rate β is a predetermined coefficient. The margin rate β is a value greater than 1. For example, if the margin rate β is set to "β = 1.1" and the predicted execution time for the number of nodes X is set to "300 [seconds]", the calculation unit 703 corrects the predicted execution time by multiplying the predicted execution time by the margin rate "1.1". In this case, the predicted execution time becomes "330 [seconds]".
[0168] Furthermore, while equations (2) and (3) above consider both error coefficients (N, d) to correct the predicted execution time, this is not limited to this. For example, the calculation unit 703 may correct the predicted execution time according to N (prediction error) only. Alternatively, the calculation unit 703 may correct the predicted execution time according to d (actual processing time error) only.
[0169] Specifically, for example, the calculation unit 703 may correct the predicted execution time by multiplying the predicted execution time for the number of nodes X by a margin rate β if N (prediction error) is greater than or equal to a predetermined threshold. Alternatively, the calculation unit 703 may correct the predicted execution time by multiplying the predicted execution time for the number of nodes X by a margin rate β if d (actual processing time error) is greater than or equal to a predetermined threshold.
[0170] (Node allocation processing procedure when executing quantum simulation on scheduling device 301) Next, the node allocation process procedure during quantum simulation execution by the scheduling device 301 will be explained using Figures 9 and 10.
[0171] Figures 9 and 10 are flowcharts illustrating an example of the node allocation process procedure when the scheduling device 301 executes a quantum simulation. In the flowchart of Figure 9, first, the scheduling device 301 determines whether or not it has received a quantum simulation request (step S901).
[0172] Here, the scheduling device 301 waits to receive a quantum simulation request (step S901: No). If the scheduling device 301 receives a quantum simulation request (step S901: Yes), it searches the execution time record table 320 for execution time information corresponding to the quantum circuit ID of the first quantum circuit included in the quantum simulation request (step S902). The first quantum circuit is the quantum circuit used for the quantum simulation to be executed.
[0173] Then, the scheduling device 301 determines whether or not two or more execution time information items have been retrieved (step S903). If two or more execution time information items have not been retrieved (step S903: No), the scheduling device 301 refers to the circuit feature table 330 and identifies a second quantum circuit whose communication-related features are similar to those of the first quantum circuit (step S904).
[0174] The scheduling device 301 then determines whether or not the second quantum circuit has been identified (step S905). If the second quantum circuit has not been identified (step S905: No), the scheduling device 301 proceeds to step S908.
[0175] On the other hand, if a second quantum circuit is identified (step S905: Yes), the scheduling device 301 retrieves execution time information corresponding to the quantum circuit ID of the identified second quantum circuit from the execution time record table 320 (step S906).
[0176] Then, the scheduling device 301 determines whether or not two or more execution time information entries have been found (step S907). If two or more execution time information entries have not been found (step S907: No), the scheduling device 301 determines the number of nodes to be allocated for the quantum simulation to be executed from the number of specified nodes included in the quantum simulation request (step S908), and proceeds to step S1005 shown in Figure 10.
[0177] The number of allocated nodes is the number of nodes to be assigned to the quantum simulation to be executed. Specifically, for example, when the first execution of a quantum simulation using the first quantum circuit, the scheduling device 301 determines the number of allocated nodes to be the specified number of nodes. When the second execution of the quantum simulation using the first quantum circuit is performed, the scheduling device 301 determines the number of allocated nodes to be double the specified number of nodes.
[0178] Furthermore, if two or more execution time information entries are found in step S903 (step S903: Yes), the scheduling device 301 calculates the predicted execution time for each node number #i and the predicted error amount for the predicted execution time based on the number of computers used and the execution time of each acquired execution time information entry (step S909), and then proceeds to step S1001 shown in Figure 10.
[0179] The predicted execution time is the predicted execution time of the quantum simulation to be run when each node number #i is assigned. The calculated predicted execution time and prediction error for each node number #i are stored in a predicted execution time table 800, for example, as shown in Figures 8A and 8B.
[0180] Furthermore, if two or more execution time information entries are found in step S907 (step S907: Yes), the scheduling device 301 calculates the predicted execution time and the amount of prediction error for each node number #i based on the number of computers used and the execution time of each acquired execution time information entry (step S910), and then proceeds to step S1001 shown in Figure 10. The calculated predicted execution time and the amount of prediction error for each node number #i are stored, for example, in the predicted execution time table 800.
[0181] In the flowchart of Figure 10, first, the scheduling device 301 determines whether or not an error coefficient is included in the execution time information retrieved in step S902 or S906 (step S1001). If an error coefficient is included (step S1001: Yes), the scheduling device 301 corrects the predicted execution time for each node number #i using the error coefficient included in the execution time information (step S1002), and then proceeds to step S1004.
[0182] On the other hand, if no error coefficient is included (step S1001: No), the scheduling device 301 corrects the predicted execution time of each node number #i using a preset margin rate β (step S1003). Then, based on the corrected predicted execution time of each node number #i, the scheduling device 301 determines the number of nodes to allocate from node numbers #1 to #m such that the execution start time of the quantum simulation to be executed is earlier (step S1004). Specifically, for example, the scheduling device 301 determines the node number #i that results in the earliest execution start time from node numbers #1 to #m as the number of nodes to allocate.
[0183] Next, the scheduling device 301 submits a job (quantum simulation to be executed) to the scheduler SC, specifying the determined number of allocated nodes and the corrected predicted execution time for that number of allocated nodes (step S1005). At this time, the scheduling device 301 specifies the corrected predicted execution time for the determined number of allocated nodes. Alternatively, if the process has moved from step S908 shown in Figure 9, the scheduling device 301 may specify, for example, a specified predicted execution time included in the quantum simulation request as the predicted execution time. Alternatively, if the process has moved from step S908 shown in Figure 9, the scheduling device 301 may specify a predetermined predicted execution time.
[0184] Then, the scheduling device 301 determines whether or not the submitted job has been completed (step S1006). Here, the scheduling device 301 waits for the submitted job to be completed (step S1006: No). If the submitted job has been completed (step S1006: Yes), the scheduling device 301 obtains the actual execution time of the job from the scheduler SC (step S1007).
[0185] Next, the scheduling device 301 refers to the predicted execution time table 800 and calculates the measured processing time error (first coefficient) corresponding to the number of allocated nodes for the first quantum circuit based on the acquired measured execution time (step S1008). Next, the scheduling device 301 refers to the predicted execution time table 800 and identifies the predicted error amount (second coefficient) corresponding to the number of allocated nodes for the first quantum circuit (step S1009).
[0186] Then, the scheduling device 301 records the number of allocated nodes, the measured execution time, and the error coefficients (measured processing time error, predicted error amount) in the execution time recording table 320, in association with the quantum circuit ID of the first quantum circuit (step S1010), and ends the series of processes according to this flowchart. The number of allocated nodes corresponds to the number of computers used in the execution time recording table 320. The measured execution time corresponds to the execution time in the execution time recording table 320.
[0187] As a result, the scheduling device 301 can predict the scalability characteristics of the job (quantum simulation to be executed) (corresponding to the predicted execution time for each number of nodes), determine the number of nodes to allocate so that the execution start time is earlier, and submit the job.
[0188] As described above, according to the scheduling device 301 of this embodiment, a second quantum circuit whose communication features are similar to those of the first quantum circuit used for the quantum simulation to be executed can be identified by referring to the memory unit 710 (for example, the circuit feature table 330). The communication features of the quantum circuit represent, for example, the amount of communication between nodes required to execute the quantum simulation.
[0189] This allows the scheduling device 301 to identify a second quantum circuit that has similar scalability characteristics to the first quantum circuit used in the quantum simulation to be performed.
[0190] Furthermore, the scheduling device 301 can refer to a storage unit 710 (for example, an execution time record table 320) that stores the measured execution times for each number of nodes allocated to past quantum simulations using the second quantum circuit, and calculate the predicted execution time of the quantum simulation to be executed for each node number #i from node numbers #1 to #m, assuming that each node number #i is allocated.The scheduling device 301 can then determine the number of nodes to be allocated to the quantum simulation to be executed from node numbers #1 to #m based on the calculated predicted execution time, according to the allocation status of quantum simulations in node groups N1 to Nn.The scheduling device 301 can then allocate the determined number of nodes to execute the quantum simulation to be executed.
[0191] As a result, the scheduling device 301 can predict the scalability characteristics of the quantum simulation to be executed by utilizing the fact that the scalability in parallel execution of quantum simulations depends on the configuration of the quantum circuit. Furthermore, even if there is no track record of quantum simulation using the first quantum circuit, the scheduling device 301 can predict the scalability characteristics of the quantum simulation to be executed by utilizing the track record of quantum simulation using a second quantum circuit that has similar scalability characteristics to the first quantum circuit. In addition, the scheduling device 301 can determine the number of allocated nodes so that the execution start time of the quantum simulation to be executed is earlier, based on the predicted scalability characteristics. As a result, the scheduling device 301 can increase the backfill rate and improve the utilization efficiency of the node group N1 to Nn during quantum simulation execution.
[0192] Furthermore, according to the scheduling device 301, based on the calculated predicted execution time and the allocation status of quantum simulations in node groups N1 to Nn, the number of nodes from node numbers #1 to #m that will result in the earliest execution start time for the quantum simulation to be executed can be determined as the number of allocated nodes.
[0193] As a result, the scheduling device 301 can improve the utilization efficiency of the node group N1 to Nn during quantum simulation execution, and shorten the time required to complete the execution of the target quantum simulation.
[0194] Furthermore, the scheduling device 301 corrects the calculated predicted execution time based on the error coefficient for the second quantum circuit stored in the memory unit 710, and based on the corrected predicted execution time, it can determine the number of nodes to allocate from node numbers #1 to #m so that the execution start time of the quantum simulation to be executed is earlier. The error coefficient includes the measured processing time error (first coefficient) and the predicted error amount (second coefficient).
[0195] This allows the scheduling device 301 to improve the accuracy of its predictions for the execution time of the quantum simulation by taking into account the error (prediction accuracy) between the predicted execution time and the actual measured value during past predictions. For example, the scheduling device 301 can prevent the process from being forcibly terminated midway due to the predicted execution time being too short by correcting the prediction execution time to increase it according to the prediction accuracy. In this case, the scheduling device 301 can prevent the predicted execution time from becoming too long by determining the amount of increase in the predicted execution time according to the prediction accuracy.
[0196] Furthermore, the scheduling device 301 can correct the calculated predicted execution time based on the error in the feature quantities related to communication between the first quantum circuit and the second quantum circuit, and based on the corrected predicted execution time, it can determine the number of nodes to allocate from node numbers #1 to #m so that the execution start time of the quantum simulation to be executed is earlier.
[0197] This allows the scheduling device 301 to improve the accuracy of predicting the execution time of the quantum simulation by taking into account the magnitude of the error in the feature quantities related to communication between quantum circuits. For example, the scheduling device 301 can prevent the process from being forcibly terminated midway due to an insufficient predicted execution time by correcting the prediction so that the predicted execution time becomes longer as the error in the feature quantities increases.
[0198] Furthermore, the scheduling device 301 can determine whether or not the memory unit 710 stores the measured execution times for each number of nodes allocated to past quantum simulations using the first quantum circuit. If the scheduling device 301 stores the measured execution times for each number of nodes allocated to past quantum simulations, it can calculate the predicted execution time of the target quantum simulation when each number of nodes #i is allocated, based on the measured execution times for each number of nodes stored in the memory unit 710.
[0199] As a result, if the scheduling device 301 has a track record of past quantum simulations using the same quantum circuit (first quantum circuit) as the quantum simulation to be executed, it can use that track record to calculate the predicted execution time of the quantum simulation to be executed.
[0200] Furthermore, according to the scheduling device 301, after allocating the determined number of allocated nodes and executing the quantum simulation to be performed, the determined number of allocated nodes and the measured execution time of the quantum simulation to be performed can be stored in the storage unit 710 (for example, the execution time recording table 320) in association with the first quantum circuit.
[0201] This allows the scheduling device 301 to record the performance of quantum simulations using the first quantum circuit (measured execution time for each number of nodes).
[0202] Furthermore, the scheduling device 301 can correct the calculated predicted execution time based on the error coefficient for the first quantum circuit stored in the memory unit 710, and based on the corrected predicted execution time, it can determine the number of nodes to allocate from node numbers #1 to #m so that the execution start time of the quantum simulation to be executed is earlier.
[0203] This allows the scheduling device 301 to improve the accuracy of predicting the execution time of the quantum simulation by taking into account the error (prediction accuracy) between the predicted and actual values in past predictions.
[0204] Based on these findings, the scheduling device 301 can improve the utilization efficiency of node groups N1 to Nn and shorten the overall processing time by increasing the backfill rate when executing quantum simulations in node groups N1 to Nn.
[0205] The node allocation method for quantum simulation execution described in this embodiment can be implemented by executing a pre-prepared program on a computer such as a personal computer or workstation. This node allocation program for quantum simulation execution is recorded on a computer-readable recording medium such as a hard disk, flexible disk, CD-ROM, DVD, or USB memory, and is executed when read from the recording medium by the computer. Furthermore, this node allocation program for quantum simulation execution may be distributed via a network such as the Internet.
[0206] Furthermore, the information processing device 101 (scheduling device 301) described in this embodiment can also be implemented using application-specific ICs such as standard cells and structured ASICs (Application Specific Integrated Circuits), or PLDs (Programmable Logic Devices) such as FPGAs.
[0207] With regard to the embodiments described above, the following additional information is disclosed.
[0208] (Note 1) For each quantum circuit used in the quantum simulation, a second quantum circuit whose communication features are similar to those of the first quantum circuit used in the first quantum simulation is identified by referring to a first memory unit that stores the communication features of the said quantum circuit. By referring to a second memory unit that stores the measured execution time for each number of nodes assigned to past quantum simulations using the identified second quantum circuit, the predicted execution time of the first quantum simulation when that number of nodes is assigned is calculated for each of the multiple number of nodes. Based on the calculated predicted execution time, and according to the allocation status of quantum simulations among the node group available for the first quantum simulation, the number of nodes to be allocated to the first quantum simulation is determined from the number of nodes. A node allocation program for executing quantum simulations, characterized by having a computer perform the processing.
[0209] (Note 2) The process to be determined above is: The node allocation program for executing a quantum simulation according to Appendix 1, characterized in that, based on the calculated predicted execution time, the number of nodes among the plurality of nodes that will result in the earliest start time for executing the first quantum simulation is determined as the number of nodes to be allocated to the first quantum simulation.
[0210] (Note 3) The second memory unit stores the error coefficient relating to the second quantum circuit. The calculation process described above is: Based on the error coefficient for the second quantum circuit stored in the second memory unit, the calculated predicted execution time is corrected. The process for making the aforementioned decision is: Based on the corrected predicted execution time, the number of nodes to be allocated to the first quantum simulation is determined from the plurality of nodes. The error coefficient includes, for a quantum simulation using the second quantum circuit, a first coefficient representing the error between the measured execution time when a first number of nodes is assigned and the predicted execution time when a second number of nodes different from the first number of nodes is assigned, which is predicted using the measured execution time when a second number of nodes different from the first number of nodes is assigned; and a second coefficient representing the error between the first number of nodes and the second number of nodes. A node allocation program for executing quantum simulations as described in Appendix 1 or 2, characterized by the above.
[0211] (Note 4) The calculation process described above is: Based on the error in the feature quantities relating to communication between the first quantum circuit and the second quantum circuit, the calculated predicted execution time is corrected. The process for making the aforementioned decision is: Based on the corrected predicted execution time, the number of nodes to be allocated to the first quantum simulation is determined from the plurality of nodes. A node allocation program for executing quantum simulations, characterized by any one of the appendices 1 to 3.
[0212] (Note 5) The node allocation program for executing a quantum simulation according to any one of Notes 1 to 4, characterized in that the feature quantity relating to communication of the quantum circuit represents the amount of communication between nodes required to execute the quantum simulation.
[0213] (Appendix 6) A node allocation program for executing a quantum simulation according to any one of Appendix 1 to 5, characterized in that the computer is ordered to allocate the determined number of nodes and execute the first quantum simulation.
[0214] (Note 7) The computer is instructed to perform a process to determine whether the second memory unit has stored the measured execution times for each number of nodes allocated to past quantum simulations using the first quantum circuit. The calculation process described above is: A node allocation program for executing a quantum simulation according to any one of the appendices 1 to 6, characterized in that, if the measured execution time for each number of nodes allocated to the aforementioned past quantum simulation is stored in the second storage unit, the program calculates the predicted execution time of the first quantum simulation when that number of nodes is allocated to each of the plurality of nodes based on the measured execution time for each number of nodes stored in the second storage unit.
[0215] (Note 8) The node allocation program for executing a quantum simulation according to Note 7, characterized in that, as a result of assigning the determined number of nodes and executing the first quantum simulation, the computer is instructed to store the determined number of nodes and the measured execution time of the first quantum simulation in the second memory unit in association with the first quantum circuit.
[0216] (Note 9) The second memory unit stores the error coefficients relating to the first quantum circuit. The calculation process described above is: Based on the error coefficient for the first quantum circuit stored in the second memory unit, the calculated predicted execution time is corrected. The process for making the aforementioned decision is: Based on the corrected predicted execution time, the number of nodes to be allocated to the first quantum simulation is determined from the plurality of nodes. The node allocation program for executing a quantum simulation according to Appendix 8, characterized in that the error coefficient includes a first coefficient representing the error between the measured execution time when a first number of nodes is allocated for a quantum simulation using the first quantum circuit and the predicted execution time when a second number of nodes different from the first number of nodes is allocated, which is predicted using the measured execution time when a second number of nodes different from the first number of nodes is allocated, and a second coefficient representing the error between the first number of nodes and the second number of nodes.
[0217] (Note 10) For each quantum circuit used in the quantum simulation, a second quantum circuit whose communication features are similar to those of the first quantum circuit used in the first quantum simulation is identified by referring to a first memory unit that stores the communication features of the said quantum circuit. By referring to a second memory unit that stores the measured execution time for each number of nodes assigned to past quantum simulations using the identified second quantum circuit, the predicted execution time of the first quantum simulation when that number of nodes is assigned is calculated for each of the multiple number of nodes. Based on the calculated predicted execution time, and according to the allocation status of quantum simulations among the node group available for the first quantum simulation, the number of nodes to be allocated to the first quantum simulation is determined from the number of nodes. A method for allocating nodes during the execution of a quantum simulation, characterized in that the processing is performed by a computer.
[0218] (Note 11) For each quantum circuit used in the quantum simulation, a second quantum circuit whose communication features are similar to those of the first quantum circuit used in the first quantum simulation is identified by referring to a first memory unit that stores the communication features of the said quantum circuit. By referring to a second memory unit that stores the measured execution time for each number of nodes assigned to past quantum simulations using the identified second quantum circuit, the predicted execution time of the first quantum simulation when that number of nodes is assigned is calculated for each of the multiple number of nodes. Based on the calculated predicted execution time, and according to the allocation status of quantum simulations among the node group available for the first quantum simulation, the number of nodes to be allocated to the first quantum simulation is determined from the number of nodes. An information processing device characterized by having a control unit. [Explanation of symbols]
[0219] 101 Information Processing Device 102 Scheduler 110,120,710 Storage section 130 Estimated execution time 200 graphs 210 Spare time 300 Scheduling Systems 301 Scheduling device 302 Client Device 310 Network 320 Execution Time Record Table 330 Circuit Feature Table 400 bus 401 CPU 402 memory 403 Disk Drive 404 disk 405 Communication I / F 406 Portable recording medium interface 407 Portable recording media 701 Reception Department 702 Specific part 703 Calculation Unit 704 Decision Section 705 Execution Department 706 Records Department 800 Predicted Execution Time Table
Claims
1. For each quantum circuit used in the quantum simulation, a first memory unit that stores the communication-related feature quantities of the said quantum circuit is referenced to identify a second quantum circuit whose communication-related feature quantities are similar to those of the first quantum circuit used in the first quantum simulation. Referencing a second memory unit that stores the measured execution time for each number of nodes assigned to past quantum simulations using the identified second quantum circuit, the predicted execution time of the first quantum simulation when that number of nodes is assigned is calculated for each of the multiple number of nodes. Based on the calculated predicted execution time, and according to the allocation status of quantum simulations in the group of nodes available for the first quantum simulation, the number of nodes to be allocated to the first quantum simulation is determined from the plurality of nodes. A node allocation program for executing quantum simulations, characterized by having a computer perform the processing.
2. The process for making the aforementioned decision is: The node allocation program for executing a quantum simulation according to claim 1, characterized in that, based on the calculated predicted execution time, the number of nodes among the plurality of nodes that will result in the earliest execution start time of the first quantum simulation is determined as the number of nodes to be allocated to the first quantum simulation.
3. The second memory unit described above stores the error coefficients relating to the second quantum circuit described above. The calculation process described above is: Based on the error coefficient for the second quantum circuit stored in the second memory unit, the calculated predicted execution time is corrected. The process for making the aforementioned decision is: Based on the corrected predicted execution time, the number of nodes to be allocated to the first quantum simulation is determined from the plurality of nodes. The error coefficient includes, for a quantum simulation using the second quantum circuit, a first coefficient representing the error between the measured execution time when a first number of nodes is assigned and the predicted execution time when a second number of nodes different from the first number of nodes is assigned, which is predicted using the measured execution time when a second number of nodes different from the first number of nodes is assigned; and a second coefficient representing the error between the first number of nodes and the second number of nodes. The node allocation program for executing quantum simulations according to feature 1.
4. The calculation process described above is: Based on the error in the feature quantities relating to communication between the first quantum circuit and the second quantum circuit, the calculated predicted execution time is corrected. The process for making the aforementioned decision is: Based on the corrected predicted execution time, the number of nodes to be allocated to the first quantum simulation is determined from the plurality of nodes. The node allocation program for executing quantum simulations according to feature 1.
5. The node allocation program for executing a quantum simulation according to claim 1, characterized in that the feature quantity relating to communication of the quantum circuit represents the amount of communication between nodes required for executing the quantum simulation.
6. The node allocation program for executing a quantum simulation according to claim 1, characterized in that it causes the computer to perform the process of allocating the determined number of nodes to execute the first quantum simulation.
7. The computer is instructed to perform a process to determine whether the measured execution times for each number of nodes assigned to past quantum simulations using the first quantum circuit are stored in the second memory unit. The calculation process described above is: A node allocation program for executing a quantum simulation according to any one of claims 1 to 6, characterized in that, if the measured execution time for each number of nodes allocated to the aforementioned past quantum simulation is stored in the second storage unit, the program calculates the predicted execution time of the first quantum simulation when that number of nodes is allocated to each of the plurality of nodes based on the measured execution time for each number of nodes stored in the second storage unit.
8. For each quantum circuit used in the quantum simulation, a first memory unit that stores the communication-related feature quantities of the said quantum circuit is referenced to identify a second quantum circuit whose communication-related feature quantities are similar to those of the first quantum circuit used in the first quantum simulation. Referencing a second memory unit that stores the measured execution time for each number of nodes assigned to past quantum simulations using the identified second quantum circuit, the predicted execution time of the first quantum simulation when that number of nodes is assigned is calculated for each of the multiple number of nodes. Based on the calculated predicted execution time, and according to the allocation status of quantum simulations in the group of nodes available for the first quantum simulation, the number of nodes to be allocated to the first quantum simulation is determined from the plurality of nodes. A method for allocating nodes during the execution of a quantum simulation, characterized in that the processing is performed by a computer.
9. For each quantum circuit used in the quantum simulation, a first memory unit that stores the communication-related feature quantities of the said quantum circuit is referenced to identify a second quantum circuit whose communication-related feature quantities are similar to those of the first quantum circuit used in the first quantum simulation. Referencing a second memory unit that stores the measured execution time for each number of nodes assigned to past quantum simulations using the identified second quantum circuit, the predicted execution time of the first quantum simulation when that number of nodes is assigned is calculated for each of the multiple number of nodes. Based on the calculated predicted execution time, and according to the allocation status of quantum simulations in the group of nodes available for the first quantum simulation, the number of nodes to be allocated to the first quantum simulation is determined from the plurality of nodes. An information processing device characterized by having a control unit.