Control program, control method, and information processing device

The control program dynamically adjusts parallel processes based on protein size to efficiently distribute energy minimization calculations, addressing inefficiencies in conventional techniques by minimizing incomplete calculations and optimizing resource utilization.

JP2026092513APending Publication Date: 2026-06-05FUJITSU LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
FUJITSU LTD
Filing Date
2024-11-26
Publication Date
2026-06-05

Smart Images

  • Figure 2026092513000001_ABST
    Figure 2026092513000001_ABST
Patent Text Reader

Abstract

To efficiently perform calculations of protein structures. [Solution] The information processing device determines a first parallelism of nodes that perform calculations on the structural information of a polymer based on the number of atoms contained in the polymer. The information processing device submits jobs to multiple nodes that associate the structural information of the polymer with the first parallelism. The information processing device performs calculations on the structural information of the polymer on a number of nodes corresponding to the first parallelism for the structural information of the polymer. If the calculation time for the calculation of the structural information of the polymer exceeds a certain time, the information processing device updates the parallelism for the polymer on the node that performed the calculation from the first parallelism to the second parallelism.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This invention relates to control programs, etc. [Background technology]

[0002] Traditionally, molecular dynamics (MD) simulations have been used to determine the structure of proteins.

[0003] In MD simulations, an energy minimization calculation is performed as a preprocessing step before the actual simulation. This calculation involves gradually changing the protein's structure to find the structure that minimizes its energy. The lower the protein's energy, the more stable its structure becomes.

[0004] Furthermore, in order to determine the structures of numerous proteins, or to predict the binding of numerous compounds to proteins, it is necessary to perform MD simulations (energy minimization calculations) multiple times.

[0005] In conventional techniques, when performing multiple MD simulations, a job is submitted to a supercomputer, which then performs the energy minimization calculation. For example, the job is configured with a protein frame fx. Frame fx contains information about the protein's structure at elapsed time x.

[0006] Figure 12 is a diagram illustrating the prior art. The example shown in Figure 12 describes the case where jobs (1) to (5) are submitted to the supercomputer's job scheduler 10. Job (1) contains frame f1 of protein A. Job (2) contains frame f2 of protein A. Job (3) contains frame f3 of protein A. Job (4) contains frame f4 of protein A. Job (5) contains frame f1 of protein B.

[0007] When the job scheduler 10 receives jobs (1) to (5), it assigns jobs (1) to (5) sequentially to each node n1 to n5 of the supercomputer. For example, node n1 is assigned job (1) and performs the energy minimization calculation. Node n2 is assigned job (2) and performs the energy minimization calculation. Node n3 is assigned job (3) and performs the energy minimization calculation. Node n4 is assigned job (4) and performs the energy minimization calculation. Node n5 is assigned job (5) and performs the energy minimization calculation.

[0008] In Figure 12, the length of the boxes for each job shown in nodes n1 to n5 represents the time required for the energy minimization calculation. In the example shown in Figure 12, it is shown that the calculation time required for job (5) executed by node n5 is longer than the calculation time required for jobs executed by the other nodes n1 to n4.

[0009] When a node finishes its energy minimization calculation, the job scheduler 10 assigns a new job to that node. [Prior art documents] [Patent Documents]

[0010] [Patent Document 1] Special Publication No. 2007-508643 [Patent Document 2] Japanese Patent Publication No. 2017-37377 [Patent Document 3] U.S. Patent Application Publication No. 2003 / 0187585 [Patent Document 4] U.S. Patent Application Publication No. 2010 / 0023473 [Overview of the project] [Problems that the invention aims to solve]

[0011] However, the conventional techniques described above have the drawback of not being able to efficiently perform calculations of protein structures.

[0012] For example, there is an upper limit to the number of jobs that can be submitted to the job scheduler 10. As explained in Figure 12, if one job is to perform an energy minimization calculation for a single protein frame, then the number of jobs corresponding to each frame of each protein will be submitted to the job scheduler 10. If there are many types of proteins or many frames, the number of jobs submitted will exceed the upper limit that can be submitted to the job scheduler 10, making it impossible to perform calculations efficiently.

[0013] In one aspect, the present invention aims to provide a control program, a control method, and an information processing device that can efficiently perform calculations of protein structures. [Means for solving the problem]

[0014] In the first plan, the control program instructs the computer to perform the following processes: The control program instructs the computer to determine the first number of parallel processes for nodes that perform calculations on the polymer's structural information, based on the number of atoms contained in the polymer. The control program instructs the computer to submit jobs to multiple nodes that associate the polymer's structural information with the first number of parallel processes. The control program instructs the computer to perform calculations on the polymer's structural information on a number of nodes corresponding to the first number of parallel processes for the polymer's structural information. If the calculation time for the calculation of the polymer's constituent information exceeds a certain time, the control program instructs the computer to update the number of parallel processes for the polymer from the first number of parallel processes to the second number of parallel processes at the node that performed the calculation. [Effects of the Invention]

[0015] It allows for efficient calculation of protein structures. [Brief explanation of the drawing]

[0016] [Figure 1] FIG. 1 is a diagram for supplementarily explaining the energy minimization calculation. [Figure 2] FIG. 2 is a diagram for explaining the first proposal. [Figure 3] FIG. 3 is a diagram for explaining the second proposal. [Figure 4] FIG. 4 is a diagram for explaining the third proposal. [Figure 5] FIG. 5 is a diagram showing an example of the data structure of the execution waiting list. [Figure 6] FIG. 6 is a diagram for explaining the processing of the information processing apparatus according to this embodiment. [Figure 7] FIG. 7 is a functional block diagram showing the configuration of the information processing apparatus according to this embodiment. [Figure 8] FIG. 8 is a diagram showing an example of the data structure of the protein basic information. [Figure 9] FIG. 9 is a diagram showing an example of the calculation result of the updated number of parallel processes. [Figure 10] FIG. 10 is a flowchart showing the processing procedure of the information processing apparatus according to this embodiment. [Figure 11] FIG. 11 is a diagram showing an example of the hardware configuration of a computer that realizes the same functions as the information processing apparatus of this embodiment. [Figure 12] FIG. 12 is a diagram for explaining the prior art.

BEST MODE FOR CARRYING OUT THE INVENTION

[0017] Hereinafter, embodiments of the control program, control method, and information processing apparatus disclosed in the present application will be described in detail based on the drawings. Note that the present invention is not limited by this embodiment.

EXAMPLE

[0018] Before describing this embodiment, let's explain the energy minimization calculation for proteins. The initial structure of a protein may have high energy. High energy in a protein indicates structural instability. Energy minimization calculations are performed to stabilize the protein structure.

[0019] Figure 1 is a diagram that provides supplementary explanation of the energy minimization calculation. In the graph G1 shown in Figure 1, the vertical axis corresponds to energy, and the horizontal axis corresponds to time. In the energy minimization calculation, the energy is calculated while updating the coordinates of the protein atoms, and the local minimum energy value is searched for. Algorithms used for energy minimization include the steepest descent method and the conjugate gradient method.

[0020] The results of the energy minimization calculation (the protein structure with minimized energy) are then subjected to various calculations, including production runs and training of the High-Dimensional Neural Network Potential (HDNNP), a machine learning potential that estimates energy from structural information.

[0021] Next, I will explain, in order, the first, second, and third proposals for efficiently performing protein structure calculations.

[0022] First, let me explain the first proposal. Since there is an upper limit to the number of jobs that can be submitted to the job scheduler 10, the first proposal reduces the number of jobs by setting up multiple protein frames for a single job.

[0023] Figure 2 is a diagram illustrating the first proposal. In the first proposal, a job list 5 is generated in which multiple protein frames are set for a single job, and this is submitted to the job scheduler 10. For example, in job list 5, frames f1 and f3 for protein A, frames f2 and f4 for protein A, frames f1 and f3 for protein B, and frames f2 and f4 for protein B are set.

[0024] For example, job scheduler 10 assigns frames f1 and f3 of protein A to node n1, and frames f2 and f4 of protein A to node n2. Job scheduler 10 assigns frames f1 and f3 of protein B to node n3, and frames f2 and f4 of protein B to node n4.

[0025] As shown in Figure 2, in the first proposal, by submitting a job list 5, which sets multiple protein frames in a single job, to the job scheduler 10, the node can perform multiple energy minimization calculations, thereby reducing the number of jobs. This solves the problem that if there are many types of proteins or many frames, the number of jobs that can be submitted will exceed the upper limit that can be submitted to the job scheduler 10.

[0026] Here, in addition to the condition that there is an upper limit to the number of jobs that can be submitted to the job scheduler 10, there is also a condition that there is an upper limit to the execution time of jobs executed on each node. If the execution limit is reached during job execution, the energy minimization calculation will be terminated midway.

[0027] In Figure 2, the length of the protein frames shown in nodes n1 to n4 represents the time required for the energy minimization calculation, and the execution limit is time ta. Then, at node n1, the energy minimization calculation for protein A's frame f3 is terminated midway. At node n2, the energy minimization calculation for protein A's frame f4 is terminated midway. At node n3, the energy minimization calculation for protein B's frame f3 is terminated midway. At node n4, the energy minimization calculation for protein B's frame f4 is terminated midway.

[0028] In other words, the first proposal has the problem that if the execution limit is reached during job execution, the energy minimization calculation is terminated midway.

[0029] The second and third proposals address the issues raised in the first proposal mentioned above.

[0030] Let me explain the second proposal. In the second proposal, in addition to the first proposal, the number of node parallelisms is determined in advance based on the size of the protein, so that more energy minimization calculations can be completed in a single job.

[0031] Figure 3 is a diagram illustrating the second proposal. Here, we will use protein A and protein B for explanation. The number of parallel processes predetermined according to the size of protein A will be set to "1", and the number of parallel processes predetermined according to the size of protein B will be set to "2". The device that performs the processing of the second proposal will be referred to as "information processing device 100". The specific method for calculating the number of parallel processes will be described later.

[0032] The parallel processing count for protein A is "1". Therefore, the information processing device 100 assigns frames f1 and f3 of protein A to node n1. The information processing device 100 assigns frames f2 and f4 of protein A to node n2.

[0033] The parallel processing count for protein B is "2". Therefore, the information processing device 100 assigns protein B frames f1, f2, f3, and f4 to nodes n3 and n4.

[0034] In Figure 3, the length of the protein frames shown in nodes n1 to n4 represents the time required for the energy minimization calculation, and the execution limit is time ta. Then, at node n1, the energy minimization calculation for protein A's frame f3 is terminated midway. At node n2, the energy minimization calculation for protein A's frame f4 is terminated midway. At nodes n3 and n4, the energy minimization calculation for protein B's frame f4 is terminated midway.

[0035] Figure 2 compares the job assignments in the first proposal with those in the second proposal. In the first proposal, the energy minimization calculations for four frames are terminated prematurely, while in the second proposal, the number of frames for which the energy minimization calculations are terminated is reduced to three.

[0036] In other words, the second proposal, compared to the first proposal, can reduce the number of jobs while also reducing the number of frames in which the energy minimization calculation is terminated prematurely.

[0037] Next, I will explain the third proposal. In the second proposal described above, the number of node parallelisms was determined in advance according to the size of the protein, but in the third proposal, this number of node parallelisms is changed dynamically. In the third proposal, if the energy minimization calculation for one frame of a protein executed on a node exceeds a reference time, the number of node parallelisms for that protein is increased. The reference time is set in advance.

[0038] Figure 4 is a diagram illustrating the third proposal. Here, we will use protein A and protein B for the explanation. The number of parallel processes corresponding to the predetermined size of protein A will be set to "1", and the number of parallel processes corresponding to the size of protein B will be set to "2". The device that performs the processing of the third proposal will be referred to as "information processing device 100".

[0039] The parallelism of protein A is "1". Therefore, the information processing device 100 assigns frame f1 of protein A to node n1. The information processing device 100 assigns frame f2 of protein A to node n2. The information processing device 100 determines that the time taken for energy minimization calculations for frame f1 of protein A by node n1 and frame f2 of protein A by node n2 is equal to the reference time t. th Therefore, the number of parallel processes for protein A will be updated to "2".

[0040] The information processing device 100 assigns frames for protein A from frame f3 onwards by setting the number of parallel processes for protein A to "2". For example, the information processing device assigns frames f3 and f4 of protein A to nodes n1 and n2.

[0041] The parallel processing count for protein B is "2". Therefore, the information processing device 100 assigns protein B frames f1, f2, f3, and f4 to nodes n3 and n4. The information processing device 100 calculates the energy minimization for protein B frame f1 for node n3, based on the reference time t. th Since the result is less than 2, the number of parallel instances of protein B will remain at "2".

[0042] In Figure 4, the length of the protein frames shown in nodes n1 to n4 represents the time required for the energy minimization calculation, and the execution limit is time ta. In this case, at nodes n1 and n2, the energy minimization calculation for protein A's frame f4 is terminated midway. At nodes n3 and n4, the energy minimization calculation for protein B's frame f4 is terminated midway.

[0043] Figure 3 compares the job assignments in the second proposal with those in the third proposal. In the second proposal, the energy minimization calculations for three frames are terminated prematurely, while in the third proposal, the number of frames for which the energy minimization calculations are terminated is reduced to two.

[0044] The third proposal reduces the number of jobs in the same way as the second proposal, but it can reduce the number of frames in which the energy minimization calculation is terminated prematurely compared to the second proposal.

[0045] Next, the processing of the information processing device 100 according to this embodiment will be described in more detail. Basically, the information processing device 100 performs processing based on the third proposal described above.

[0046] As a premise, the threshold number of atoms in the standard protein is set to "1000". Standard time t th Let this be "4h". Let the execution limit time ta be "9h". Assume that when the number of nodes used doubles, the time required for energy minimization calculation becomes "1 / 2". Also, the system (number of atoms) of proteins A, B, and C is as follows.

[0047] Protein A system = 900 Protein B system = 1200 Protein C system = 500

[0048] The information processing device 100 determines the number of parallel processes to assign to each protein based on the number of atoms in each protein A, B, and C. For example, the information processing device 100 calculates a division value (rounded down to the nearest whole number) by dividing the number of atoms in a protein by Threshold Atoms, and determines the number of parallel processes for the protein by adding 1 to this division value. As a result, the number of parallel processes for proteins A, B, and C are as follows:

[0049] Protein A = 1 + 900 / 1000 ≈ 1 Protein B = 1 + 1200 / 1000 ≈ 2 Protein C = 1 + 500 / 1000 ≈ 1

[0050] The information processing device 100 creates an execution waiting list. Figure 5 shows an example of the data structure of the execution waiting list. For example, the information processing device 100 arranges proteins A, B, and C one frame each from the beginning of the execution waiting list 30, and then proceeds randomly. The number of parallel processes is set for each protein frame in the execution waiting list 30. For example, "frame f1, 1 for protein A" indicates that the number of parallel processes for protein A is "1". "frame f1, 2 for protein B" indicates that the number of parallel processes for protein B is "2". "frame f1, 1 for protein C" indicates that the number of parallel processes for protein C is "1".

[0051] Figure 6 is a diagram illustrating the processing of the information processing device according to this embodiment. The information processing device 100 submits jobs to nodes n1 to n4 in order from the beginning of the execution waiting list 30.

[0052] The information processing device 100 inputs frame f1 of protein A into node n1. The information processing device 100 inputs frame f1 of protein B into nodes n2 and n3. The information processing device 100 inputs frame f1 of protein C into node n4. For example, the completion time for the energy minimization calculation for each protein frame is as follows.

[0053] Execution time for protein A frame f1: 4h Execution time for protein B frame f1: 3h Execution time for protein C frame f1: 6h

[0054] The information processing device 100 determines that, of the above execution time, the execution time of frame f1 of protein C is 6h, and the reference time t th This concludes the explanation. In this case, the information processing device 100 updates the number of parallel processes for protein C to "2". For example, the information processing device 100 updates the number of parallel processes for protein C frames from frame f1 onwards in the execution waiting list 30 to 2.

[0055] Next, the information processing device 100 inputs frame f2 of protein B into nodes n2 and n3. The information processing device 100 then inputs frame f2 of protein A into node n1. When there are two or more free nodes, the information processing device 100 inputs frame f2 of protein C into nodes n3 and n4.

[0056] Nodes n1 to n4 terminate their jobs when they reach the execution time limit ta. In the example shown in Figure 6, the energy minimization calculation for each protein frame is completed without being interrupted.

[0057] Next, an example configuration of the information processing device 100 that performs the processing described in Figure 6 will be explained. Figure 7 is a functional block diagram showing the configuration of the information processing device according to this embodiment. As shown in Figure 7, the information processing device 100 has a communication unit 110, an input unit 120, a display unit 130, a storage unit 140, a control unit 150, and a processing unit 160.

[0058] The communication unit 110 performs data communication with external devices, etc., via a network. The communication unit 110 is a NIC (Network Interface Card), etc. For example, the communication unit 110 may obtain basic protein information 141 from an external device, etc.

[0059] The input unit 120 is an input device that inputs various types of information to the control unit 150 of the information processing device 100. For example, the input unit 120 can be a keyboard, mouse, touch panel, etc. For example, the user can operate the input unit 120 to input the threshold number of atoms of a reference protein and the reference time t th You may enter this.

[0060] The display unit 130 is a display device that displays information output from the control unit 150.

[0061] The memory unit 140 contains an execution waiting list 30 and basic protein information 141. The memory unit 140 is a memory or the like.

[0062] The execution waiting list 30 is configured with frames for each protein. Further explanations regarding the execution waiting list 30 are the same as those given in Figure 5.

[0063] Protein Basic Information 141 holds various information about the protein. Figure 8 shows an example of the data structure of Protein Basic Information. As shown in Figure 8, Protein Basic Information 141 contains type, number of atoms, structural information, and parallelism. Type is the type of protein. Number of atoms is the number of atoms in the corresponding protein. Structural information is the structural information of the corresponding protein. For example, structural information includes time-series frames. Parallelism is the number of parallelisms calculated in advance.

[0064] Next, we will move on to the explanation of the control unit 150. The control unit 150 has a pre-processing unit 151 and a job submission unit 152. The control unit 150 is a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), etc.

[0065] The preprocessing unit 151 determines the number of parallel processes for each protein based on the number of atoms in the protein's basic information 141 and the threshold atoms specified in advance. The preprocessing unit 151 registers the determined number of parallel processes in the protein's basic information 141.

[0066] Furthermore, the pre-processing unit 151 obtains the frame for each protein from the protein basic information 141 and generates an execution waiting list 30. The pre-processing unit 151 sets the number of parallel processes for the protein frame according to the type of protein. The pre-processing unit 151 registers the execution waiting list 30 in the storage unit 140.

[0067] The job submission unit 152 is a processing unit that submits the execution waiting list 30 as a job to the processing unit 160.

[0068] The processing unit 160 has nodes n1 to n4. Nodes n1 to n4 are CPUs, etc. When nodes n1 to n4 receive a job submission, they obtain one frame of protein from the execution waiting list 30 and perform an energy minimization calculation on the obtained frame.

[0069] Note that if the number of parallel processes for the corresponding protein is 1, one node (nodes n1-n4) will perform the energy minimization calculation for the protein frame. If the number of parallel processes for the corresponding protein is 2, two nodes (nodes n1-n4) will perform the energy minimization calculation for the same protein frame.

[0070] When the energy minimization calculation is completed, nodes n1 to n4 output the calculation results to the control unit 150, etc.

[0071] Nodes n1 to n4 have a time required for energy minimization calculations that corresponds to a reference time t. th If the above conditions are met, access the execution waiting list 30 and add 1 to the number of parallel processes for the corresponding protein frame. Nodes n1 to n4 will terminate the energy minimization calculation if the time required for the calculation exceeds the execution limit time ta.

[0072] For example, a node can calculate the time required to minimize a certain protein for a frame fx (Processed_Time) based on a reference time t. th If the above occurs, the number of parallel processes (N_Nodes) for a certain protein may be updated as shown in equation (1). The updated number of parallel processes is denoted as N_Nodes'. However, the decimal part of the value calculated by equation (1) is rounded up.

[0073] N_Nodes'=N_Nodes×Processed_Time / Reference time t th ...(1)

[0074] For example, if a node has executed frame f1 for protein A and there are still remaining frames f2 to f100, it will update the number of parallel processes (N_Node) for the remaining frames f2 to f100 with the updated N_Node'.

[0075] Nodes n1 to n4 repeatedly execute the above process until the execution wait list 30 becomes empty. In the example shown in FIG. 7, the processing unit 160 described an example including nodes n1 to n4, but the processing unit 160 may further include other nodes.

[0076] FIG. 9 is a diagram showing an example of the calculation result of the updated number of parallel processes. In FIG. 9, the item number, N_Nodes, Processed_Time, reference time, calculation of Expression (1), and N_Nodes’ are associated with each other. The item number is a number for distinguishing each row. N_Nodes is the number of parallel processes before the update. Processed_Time is the time required for the energy minimization calculation. The reference time is the above reference time t th as described above. The calculation of Expression (1) is the result of substituting N_Nodes, Processed_Time, and the reference time into Expression (1). N_Nodes’ is the number of parallel processes after the update.

[0077] For example, in item number 1, N_Nodes = 2, Processed_Time = 3, and the reference time = 4. By substituting these into Expression (1), the updated number of parallel processes obtained is N_Nodes’ = 2. Explanation regarding the other item numbers 2 to 7 is omitted.

[0078] Next, an example of the processing procedure of the information processing apparatus 100 according to the present embodiment will be described. FIG. 10 is a flowchart showing the processing procedure of the information processing apparatus according to the present embodiment. As shown in FIG. 10, the information processing apparatus 100 receives the number of atoms of the reference protein (Threshold Atoms) and the reference time t th (step S101).

[0079] The preprocessing unit 151 of the information processing apparatus 100 calculates the number of parallel processes of each protein based on the number of atoms of the reference protein and the protein basic information of 141 (step S102). The preprocessing unit 151 creates an execution wait list 30 (step S103).

[0080] The job input unit 152 inputs a job (execution waiting list 30) to the processing unit 160 (step S104). Each node of the processing unit 160 selects one frame from each protein in the execution waiting list 30 and performs as many energy minimization calculations as possible simultaneously (step S105).

[0081] Each node determines whether the time taken for the energy minimization calculation is less than the reference time (step S106). If the time taken for the energy minimization calculation is less than the reference time (step S107, Yes), each node proceeds to step S109.

[0082] Meanwhile, if each node is not below the reference time (step S107, No), it updates the number of parallel proteins based on equation (1) (step S108) and proceeds to step S109.

[0083] Each node terminates processing if the execution waiting list 30 is empty (step S109, Yes). On the other hand, if a node (an empty node) does not have the execution waiting list 30 empty (step S109, No), it selects one executable frame from the protein in the execution waiting list 30, performs the energy minimization calculation (step S110), and proceeds to step S106.

[0084] Next, the effects of the information processing device 100 according to this embodiment will be described. The control unit 150 of the information processing device 100 determines the number of parallel nodes that perform calculations on the protein frame based on the number of atoms contained in the protein, creates an execution waiting list 30, and submits it to the processing unit 160. In the processing unit 160, a number of nodes corresponding to the number of parallel nodes perform calculations on the protein frame. If the calculation time of a node exceeds a reference time, it updates the number of parallel nodes for the protein. This makes it possible to perform calculations on the protein structure efficiently.

[0085] For example, the information processing device 100 can complete the energy minimization calculation for each protein frame, as explained in Figure 6, etc.

[0086] The information processing device 100 calculates the number of parallel processes after updating based on the division value obtained by dividing the calculation time by the reference time and the number of parallel processes before updating. This allows for the dynamic updating of the appropriate number of parallel processes according to the scale (number of atoms) of the protein system.

[0087] The information processing device 100 determines the number of parallel nodes based on the result of dividing the number of atoms in the protein by the number of reference atoms. This allows the number of parallel nodes to be set in advance to match the scale of the protein, even if the time required for the energy minimization calculation is unknown.

[0088] The information processing device 100 generates an execution waiting list 30, and each node sequentially retrieves protein frames (structural information) from the execution waiting list 30 and performs energy minimization calculations. This allows each node to perform energy minimization calculations appropriately.

[0089] Next, an example of a computer hardware configuration that achieves the same functions as the information processing device 100 described above will be explained. Figure 11 shows an example of a computer hardware configuration that achieves the same functions as the information processing device in this embodiment.

[0090] As shown in Figure 11, the computer 200 includes a CPU 201 that performs various calculations, an input device 202 that receives data input from the user, and a display 203. The computer 200 also includes a communication device 204 and an interface device 205 that exchange data with external devices via a wired or wireless network. Furthermore, the computer 200 includes a RAM 206 for temporarily storing various information, a hard disk drive 207, and a processing unit 208. Each of these devices 201 to 208 is connected to a bus 209.

[0091] For example, the processing unit 208 corresponds to the processing unit 160 shown in Figure 7 and has multiple nodes. Each of these nodes is a CPU, etc.

[0092] The hard disk drive 207 has a pre-processing program 207a and a job submission program 207b. The CPU 201 reads programs 207a and 207b and loads them into RAM 206.

[0093] The pre-processing program 207a functions as the pre-processing process 206a. The job submission program 207b functions as the job submission process 206b.

[0094] The processing in the pre-processing process 206a corresponds to the processing in the pre-processing unit 151. The processing in the job submission process 206b corresponds to the processing in the job submission unit 152.

[0095] Furthermore, programs 207a and 207b do not necessarily have to be stored on the hard disk drive 207 from the beginning. For example, each program could be stored on a "portable physical medium" such as a flexible disk (FD), CD-ROM, DVD, magneto-optical disk, or IC card inserted into the computer 200. Then, the computer 200 could read and execute each program 207a and 207b.

[0096] With regard to embodiments including each of the above examples, the following additional information is disclosed.

[0097] (Note 1) Based on the number of atoms contained in the polymer, the first number of parallel nodes that perform calculations on the structural information of the polymer is determined. A job that associates the structural information of the polymer with the first number of parallelisms is submitted to multiple nodes. The number of nodes corresponding to the first parallelism for the structural information of the polymer are made to perform calculations on the structural information of the polymer. If the computation time for the calculation of the polymer's constituent information exceeds the reference time, the node performing the calculation will be instructed to update the number of parallel processes for the polymer from the first number of parallel processes to the second number of parallel processes. A control program characterized by causing a computer to perform a process.

[0098] (Note 2) The control program according to Note 1, characterized in that it causes the computer to further perform a process to calculate the second number of parallelisms after the update, based on the division value obtained by dividing the calculation time by the reference time and the first number of parallelisms before the update.

[0099] (Note 3) The control program according to Note 1, characterized in that the process for determining the first parallel number of the nodes is to determine the first parallel number of the nodes based on the result of dividing the number of atoms contained in the polymer by the reference number of atoms.

[0100] (Note 4) The control program according to Note 1, wherein the job includes structural information of multiple proteins, and the process of executing the calculation is characterized in that the multiple nodes sequentially acquire the structural information of the proteins from the job and execute the calculation.

[0101] (Note 5) Based on the number of atoms contained in the polymer, the first number of parallel nodes that perform calculations on the structural information of the polymer is determined, A job that associates the structural information of the polymer with the first parallelism is submitted to multiple nodes. Calculations on the structural information of the polymer are performed on a number of nodes corresponding to the first parallelism for the structural information of the polymer. If the computation time for the calculation of the polymer's constituent information exceeds the reference time, the node performing the calculation will update the number of parallel processes for the polymer from the first number of parallel processes to the second number of parallel processes. A control method characterized by having a computer perform the processing.

[0102] (Appendix 6) The control method according to Appendix 5, characterized in that the computer further performs a process to calculate the second parallel number after updating, based on the division value obtained by dividing the calculation time by the reference time and the first parallel number before updating.

[0103] (Note 7) The control method according to Note 5, characterized in that the process for determining the first number of parallel nodes is to determine the first number of parallel nodes based on the result of dividing the number of atoms contained in the polymer by the reference number of atoms.

[0104] (Note 8) The control method according to any one of Notes 5 to 7, wherein the job includes structural information of multiple proteins, and the process of performing the calculation is characterized in that the multiple nodes sequentially acquire the structural information of the proteins from the job and perform the calculation.

[0105] (Note 9) Based on the number of atoms contained in the polymer, the first number of parallel nodes that perform calculations on the structural information of the polymer is determined. A job that associates the structural information of the polymer with the first parallelism is submitted to multiple nodes. Calculations on the structural information of the polymer are performed on a number of nodes corresponding to the first parallelism for the structural information of the polymer. If the computation time for the calculation of the polymer's constituent information exceeds the reference time, the node performing the calculation will update the number of parallel processes for the polymer from the first number of parallel processes to the second number of parallel processes. An information processing device having a control unit that performs processing.

[0106] (Note 10) The information processing apparatus according to Note 9, characterized in that the control unit further performs a process to calculate the second parallel number after updating based on the division value obtained by dividing the calculation time by the reference time and the first parallel number before updating.

[0107] (Note 11) The information processing apparatus according to Note 9, characterized in that the process for determining the first number of parallel nodes is to determine the first number of parallel nodes based on the result of dividing the number of atoms contained in the protein by the reference number of atoms.

[0108] (Note 12) The information processing device according to Note 10 or 11, wherein the job includes structural information of multiple proteins, and the process for performing the calculation is characterized in that the multiple nodes sequentially acquire the structural information of the proteins from the job and perform the calculation. [Explanation of Symbols]

[0109] 30 Execution waiting list 100 Information Processing Devices 110 Communications Department 120 Input section 130 Display section 140 Storage section 150 Control Unit 151 Preprocessing 152 Job Submission Section 160 Processing Unit

Claims

1. Based on the number of atoms contained in the polymer, the first number of parallel nodes that perform calculations on the structural information of the polymer is determined. A job that associates the structural information of the polymer with the first number of parallelisms is submitted to multiple nodes. The number of nodes corresponding to the first parallelism for the structural information of the polymer are made to perform calculations on the structural information of the polymer. If the computation time for the calculation of the polymer's constituent information exceeds the reference time, the node performing the calculation will be instructed to update the number of parallel processes for the polymer from the first number of parallel processes to the second number of parallel processes. A control program characterized by causing a computer to perform a process.

2. The control program according to claim 1, characterized in that it causes the computer to further perform a process to calculate the second number of parallelisms after the update, based on the division value obtained by dividing the calculation time by the reference time and the first number of parallelisms before the update.

3. The control program according to claim 1, characterized in that the process for determining the first parallel number of the nodes is to determine the first parallel number of the nodes based on the result of dividing the number of atoms contained in the polymer by the reference number of atoms.

4. The control program according to any one of claims 1 to 3, wherein the job includes structural information of multiple proteins, and the process for performing the calculation involves sequentially obtaining the structural information of the proteins from the job and performing the calculation on the multiple nodes.

5. Based on the number of atoms contained in the polymer, the first number of parallel nodes that perform calculations on the structural information of the polymer is determined. A job that associates the structural information of the polymer with the first parallelism is submitted to multiple nodes. Calculations on the structural information of the polymer are performed on a number of nodes corresponding to the first number of parallelisms for the structural information of the polymer. If the computation time for the calculation of the polymer's constituent information exceeds the reference time, the node performing the calculation will update the number of parallel processes for the polymer from the first number of parallel processes to the second number of parallel processes. A control method characterized by having a computer perform the processing.

6. Based on the number of atoms contained in the polymer, the first number of parallel nodes that perform calculations on the structural information of the polymer is determined. A job that associates the structural information of the polymer with the first parallelism is submitted to multiple nodes. Calculations on the structural information of the polymer are performed on a number of nodes corresponding to the first number of parallelisms for the structural information of the polymer. If the computation time for the calculation of the polymer's constituent information exceeds the reference time, the node performing the calculation will update the number of parallel processes for the polymer from the first number of parallel processes to the second number of parallel processes. An information processing device having a control unit that performs processing.