Information processing system, information processing device, and command execution method
The system enables simultaneous execution of multiple MPI programs with a single command, improving user convenience by eliminating the need for manual intervention and supporting stream data processing, thus addressing the inefficiencies of traditional MPI program execution.
Patent Information
- Application Number
- JP2021099671
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-06-15
- Publication Date
- 2025-10-15
- Estimated Expiration
- 2041-06-15
AI Technical Summary
Existing information processing systems require users to manually change and wait for the completion of each MPI program when executing multiple programs, which is time-consuming and burdensome.
An information processing system and method that allows multiple MPI programs to be executed with a single command, enabling simultaneous execution and dynamic resource allocation without manual intervention, and supports stream data processing without additional libraries.
Enhances user convenience by allowing simultaneous execution of multiple MPI programs with a single command, reducing wait times and simplifying resource allocation, and facilitating stream data processing without additional programming effort.
Smart Images

Figure 0007753690000009 
Figure 0007753690000010 
Figure 0007753690000011
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to an information processing system, an information processing device, and a command execution method. [Background technology]
[0002] When performing natural science calculations that require large-scale calculations, distributed memory parallel computers are widely used, in which multiple computer devices are connected via a network and large-scale calculations are performed using the multiple computer devices. In distributed memory parallel computers, the processors of each computer device, called a node, run processes and perform large-scale calculations while exchanging messages between the computer devices. The computer devices included in distributed memory parallel computers exchange messages between the computer devices using a standardized specification called MPI (Message Passing Interface).
[0003] Furthermore, computer devices execute various processes using resources such as a central processing unit (CPU) used for general-purpose processing, a graphics processing unit (GPU) specialized for specific processing, and a vector processor, etc. Therefore, a user of a computer device can efficiently execute an MPI program, for example, by using a resource suitable for the process to be executed from among the various resources, thereby executing an MPI program that corresponds to the MPI.
[0004] In relation to the above content, Patent Document 1 discloses a cluster system that includes a plurality of computing nodes and executes a parallel program that is used simultaneously by the plurality of computing nodes and corresponds to an MPI program. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Japanese Patent Application Laid-Open No. 2012-252591 Summary of the Invention [Problem to be solved by the invention]
[0006] When an information processing device such as a computer executes multiple MPI programs, the user prepares an MPI program in which commands for executing each of the multiple programs are written. The user then executes the multiple MPI programs by having the information processing device execute the commands for executing the MPI programs. For example, if the user wants to change a command for one of the multiple programs, the user must change the contents of the MPI program that was prepared to execute the multiple programs, which is time-consuming for the user.
[0007] Therefore, even when a user causes an information processing device to execute multiple MPI programs, it is expected that the user will execute the multiple MPI programs one by one so that the user can easily change commands for any of the multiple MPI programs. However, when a user executes MPI programs one by one, the user must wait for the currently executing MPI program to complete execution before executing the next MPI program. This places a burden on the user, as the user must wait for the currently executing MPI program to complete execution. In this way, when a user executes multiple MPI programs, the user must change the programs and wait for each program to complete execution, which places a burden on the user. Therefore, there is a demand for an information processing device and an information processing system that are highly user-friendly and do not place a burden on the user, even when the user executes multiple MPI programs.
[0008] The present disclosure has been made to solve such problems, and aims to provide an information processing system, an information processing device, and a command execution method that can improve user convenience. [Means for solving the problem]
[0009] An information processing system according to one aspect of the present disclosure includes: A first information processing device and a second information processing device are provided, The first information processing device an input section for inputting execution commands instructing execution of a plurality of MPI (Message Passing Interface) programs; a first computing unit that classifies the plurality of MPI programs into a first MPI program executed in the first information processing device and a second MPI program executed in the second information processing device, and executes the first MPI program; a first communication unit that transmits information that identifies the execution content of the second MPI program to the second information processing device; The second information processing device a second communication unit that receives the information; and a second computing unit that executes the second MPI program based on the information.
[0010] An information processing device according to one aspect of the present disclosure includes: an input section for inputting execution commands instructing execution of a plurality of MPI (Message Passing Interface) programs; a computing unit that classifies the plurality of MPI programs into a first MPI program executed in the information processing device and a second MPI program executed in another information processing device, and executes the first MPI program; and a communication unit that transmits information that identifies the execution content of the second MPI program to the other information processing device.
[0011] An information processing device according to another aspect of the present disclosure includes: a communication unit that receives, from another information processing device to which an execution command instructing execution of a plurality of MPI (Message Passing Interface) programs has been input, information that specifies the execution content of a first MPI program to be executed in the information processing device among the plurality of MPI programs; and a computing unit that executes the first MPI program based on the information.
[0012] A command execution method according to one aspect of the present disclosure includes: A command execution method executed by an information processing device, comprising: Enter an execution command to run multiple MPI (Message Passing Interface) programs. classifying the plurality of MPI programs into a first MPI program executed in the information processing device and a second MPI program executed in another information processing device, and executing the first MPI program; Information specifying the execution content of the second MPI program is transmitted to the other information processing device.
[0013] A command execution method according to another aspect of the present disclosure includes: A command execution method executed by an information processing device, comprising: receiving, from another information processing device to which an execution command instructing execution of a plurality of MPI (Message Passing Interface) programs has been input, information specifying the execution content of a first MPI program to be executed in the information processing device among the plurality of MPI programs; Based on the information, the first MPI program is executed. [Effects of the Invention]
[0014] According to the present disclosure, it is possible to provide an information processing system, an information processing device, and a command execution method that can improve user convenience. [Brief explanation of the drawings]
[0015] [Figure 1] 1 is a block diagram illustrating a configuration example of an information processing system according to a first embodiment. [Figure 2] FIG. 10 is a block diagram illustrating a configuration example of an information processing system according to a second embodiment. [Figure 3] FIG. 10 is a diagram illustrating an example of the operation of the information processing system according to the second embodiment. [Figure 4] 10 is a flowchart illustrating an example of the operation of the information processing system according to the second embodiment. [Figure 5] FIG. 10 is a diagram illustrating an example of a setting file. [Figure 6] FIG. 10 is a diagram illustrating an example of the operation of the information processing device according to the second embodiment. [Figure 7] FIG. 10 is a diagram illustrating an example of the operation of the information processing device according to the second embodiment. [Figure 8] FIG. 10 is a diagram illustrating an example of the operation of the information processing device according to the second embodiment. [Figure 9] FIG. 10 is a diagram illustrating an example of the operation of the information processing device according to the second embodiment. [Figure 10] FIG. 10 is a diagram illustrating an example of an input command. [Figure 11] FIG. 10 is a diagram illustrating an example of an input command. [Figure 12] FIG. 1 is a block diagram illustrating a hardware configuration of an information processing device according to each embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0016] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. Note that the following description and drawings have been omitted and simplified as appropriate for clarity of explanation. In addition, in the following drawings, the same elements are given the same reference numerals, and duplicate explanations are omitted as necessary.
[0017] (Embodiment 1) An example of the configuration of an information processing system 1 according to the first embodiment will be described with reference to FIG. 1. FIG. 1 is a block diagram showing an example of the configuration of the information processing system according to the first embodiment. The information processing system 1 is an information processing system that executes an MPI program. The information processing system 1 includes an information processing device 10 and an information processing device 20. The information processing devices 10 and 20 are devices capable of executing an MPI program. The information processing devices 10 and 20 are connected to each other via a network and communicate with each other. The information processing device 10 may be referred to as a first information processing device in the information processing system 1. The information processing device 20 may be referred to as a second information processing device in the information processing system 1.
[0018] The information processing device 10 includes an input unit 11, a calculation unit 12, and a communication unit 13. The input unit 11 inputs execution commands that instruct the execution of a plurality of MPI programs.
[0019] The calculation unit 12 classifies the multiple MPI programs into a first MPI program executed in the information processing device 10 and a second MPI program executed in the information processing device 20. The calculation unit 12 executes the first MPI program executed in the information processing device 10. The communication unit 13 transmits to the information processing device 20 information specifying the execution content of the second MPI program executed in the information processing device 20.
[0020] The information processing device 20 includes a communication unit 21 and a calculation unit 22 . The communication unit 21 receives information specifying the execution content of the second MPI program executed in the information processing device 20 from the communication unit 13. In the information processing system 1, the communication unit 13 may be referred to as a first communication unit, and the communication unit 21 may be referred to as a second communication unit.
[0021] The calculation unit 22 executes the second MPI program based on the information received by the communication unit 21. In the information processing system 1, the calculation unit 12 may be referred to as a first calculation unit, and the calculation unit 22 may be referred to as a second calculation unit.
[0022] As described above, the information processing device 10 receives execution commands instructing the execution of multiple MPI programs and classifies the received commands into MPI programs executed by the information processing device 10 and MPI programs executed by the information processing device 20. The information processing device 10 transmits information specifying the execution content of the MPI programs executed by the information processing device 20 to the information processing device 20. The information processing device 20 executes the MPI programs based on the information specified the execution content of the MPI programs executed by the information processing device 20, received from the information processing device 10. As described above, the information processing system 1 enables a user to execute multiple MPI programs with a single execution command. Therefore, the information processing system 1 allows a user to use commands for executing multiple MPI programs, eliminating the need to prepare a single MPI program that combines multiple MPI programs. Furthermore, the information processing system 1 also eliminates the need for a user to wait for the completion of execution of each MPI program. Therefore, the information processing system 1 according to the first embodiment can improve user convenience.
[0023] (Embodiment 2) Next, a description will be given of embodiment 2. Embodiment 2 is an embodiment that embodies embodiment 1. Before describing the details of embodiment 2, a specific example will be given to summarize the issues of this embodiment.
[0024] A system that executes an MPI program is configured such that two information processing devices, named host1 and host2, are connected via a network and can communicate with each other. Each of the two information processing devices is configured to be able to input the execution commands shown below, and a specified MPI program is executed on the specified information processing device in accordance with the execution commands. Note that the execution command below is an example of an execution command that executes an MPI program corresponding to NECMPI, a message passing library corresponding to the system, on an NEC Aurora, which is an example of a system that executes an MPI program. In the following explanation, the execution command may be simply referred to as a "command." <Command example 1> TIFF0007753690000001.tif6114<Command example 2> TIFF0007753690000002.tif6114<Command example 3> TIFF0007753690000003.tif6116
[0025] Of the above commands, mpirun is a command to start an MPI execution program (MPI program), indicating that an MPI program will be started. -host is an argument specifying the host (information processing device) on which the MPI process will be started, indicating that the specified MPI program will be executed on the information processing device with the host name written after -host. -vh represents a vector host. -ve represents a vector engine. -np is an argument specifying the number of processes (MPI processes) that will execute the MPI program, indicating that the MPI program will be executed by the number of processes written after -np. In the following explanation, arguments may be referred to as options.
[0026] To summarize the above, Command Example 1 represents a command to execute a program named a.out in four processes on the vector host of the information processing device host1. Command Example 2 represents a command to execute a program named b.out in four processes on the vector engine of the information processing device host1. Command Example 3 represents a command to execute a program named c.out in four processes on the vector engine of the information processing device host2.
[0027] These commands are configured to be remotely executable by any of the information processing devices connected via the network. For example, when the above three commands are input to the information processing device of host1, the information processing device of host1 executes the programs (a.out and b.out) included in command examples 1 and 2. The information processing device of host1 sends a request to the information processing device of host2 to execute the program (c.out) included in command example 3. The information processing device of host2 executes c.out based on the content received from the information processing device of host1.
[0028] For example, when the above three commands are input to the information processing device of host2, the information processing device of host2 sends a request to execute the programs a.out and b.out included in command examples 1 and 2 to the information processing device of host1. The information processing device of host1 executes a.out and b.out based on the content received from the information processing device of host2. The information processing device of host2 executes the program (c.out) included in command example 3.
[0029] When a user wants to execute multiple MPI programs with a single command, the user prepares an MPI program that describes commands to execute each MPI program. Then, the user inputs the command to execute the MPI program into the information processing device host1 or host2, which executes the multiple MPI programs set in the executed MPI program. Specifically, for example, if the user wants to execute multiple MPI programs including a.out, b.out, and c.out with a single command, the user prepares a program called d.out that describes the three commands shown in command examples 1 to 3. Then, the user inputs a command to execute d.out into the information processing device host1 or host2, which executes a.out, b.out, and c.out.
[0030] As shown in the above command examples 1 to 3, the command for executing an MPI program requires specification of the host (information processing device) on which the MPI program will be executed, the hardware on that host, and the hardware resources. Generally, each internal process executed by a program has its own appropriate hardware resource, and efficient execution of the MPI program is achieved by processing the process on the appropriate hardware resource. Therefore, it is important to allocate optimal hardware resources to the execution of each MPI program. However, in a large-scale information processing system, it is not easy to allocate optimal hardware resources when executing each MPI program. Therefore, to easily change the hardware resources allocated to each MPI program, it is assumed that the user will execute each of the three programs (a.out, b.out, and c.out) one by one, without preparing a d.out containing the commands in command examples 1 to 3.
[0031] When a user executes a.out, b.out, and c.out one by one, the user inputs a command to execute a.out, waits for a.out to complete execution, and then inputs a command to execute b.out. The user then waits for b.out to complete execution and then inputs a command to execute c.out. In this case, the user must wait until each MPI program has completed execution before inputting a command to execute the next MPI program, which places a burden on the user. Therefore, this embodiment realizes a configuration that allows multiple MPI programs to be executed with a single command and also allows the hardware resources allocated to each MPI program to be easily changed.
[0032] Furthermore, if a user wants to execute b.out using the output results output when a.out is executed, for example, the user must specify the file to which the output results are to be output to a.out, and also specify the file to be input to b.out. In other words, the user must program a.out and b.out so that the file to which the output results of a.out are output matches the file to be input to b.out. Therefore, if a user wants to link input / output data between programs, such as when executing b.out using the output results output when a.out is executed, the user must change the contents of a.out and b.out, which places a burden on the user. Therefore, in this embodiment, a configuration is realized that allows input / output data to be specified (linked) between multiple MPI programs without changing the contents of the MPI programs.
[0033] Furthermore, in recent years, stream data (also referred to as streaming data), which is generated continuously in a time series, such as weather information, stock trading information, and IoT (Internet of Things) sensor information, has been attracting attention. Unlike batch data, in which all data is collected, stream data is data in which new data is generated continuously over time. Therefore, there is a growing need to process stream data using MPI programs, but MPI programs do not support stream data. To meet such needs, proposals (e.g., MPIStreams) are being considered, which implement libraries for handling stream data and use the libraries to perform programming under specific procedures. However, programming using such libraries is not easy and requires user proficiency, which requires a significant amount of time, making it difficult to implement MPI programs that support stream data. Therefore, in this embodiment, a configuration is realized in which an MPI program can execute stream data without implementing the above-mentioned library. In other words, in this embodiment, a configuration is realized in which an MPI program can process stream data without relying on the skills of the programming user.
[0034] <Example of information processing system configuration> An example of the configuration of an information processing system 100 according to the second embodiment will be described with reference to Fig. 2. Fig. 2 is a block diagram showing an example of the configuration of an information processing system according to the second embodiment. The information processing system 100 is an information processing system capable of executing an MPI program. The information processing system 100 includes an information processing device 30 and an information processing device 40. Note that the information processing system 100 is configured to include two information processing devices (information processing devices 30 and 40), but may include three or more information processing devices.
[0035] The information processing devices 30 and 40 are connected to each other via a network N. The information processing devices 30 and 40 are configured to be able to communicate with each other via the network N. The information processing devices 30 and 40 are information processing devices capable of executing an MPI program. The information processing devices 30 and 40 may be computer devices or server devices. The information processing devices 30 and 40 are configured to be able to input commands for executing an MPI program, and in order to execute the MPI program, the information processing devices 30 and 40 cooperate with each other to execute the MPI program included in the input command. In this embodiment, it is assumed that the name host1 is set for the information processing device 30, and the name host2 is set for the information processing device 40.
[0036] <Configuration example of information processing device> Next, configuration examples of the information processing devices 30 and 40 will be described. The configuration examples of the information processing devices 30 and 40 are basically the same. Therefore, using the configuration example of the information processing device 30, configuration examples of the information processing devices 30 and 40 when a command (execution command) instructing execution of an MPI program is input will be described. After that, using the configuration example of the information processing device 40, configuration examples of the information processing devices 30 and 40 when an MPI program is executed based on a command instructing execution of the MPI program will be described.
[0037] The information processing device 30 includes an input unit 31, a calculation unit 32, a communication unit 33, and a storage unit 34. The information processing device 30 is also connected to an input device 301 and an output device 302. The input device 301 and the output device 302 may be provided externally or internally to the information processing device 30.
[0038] The input unit 31 inputs a command input by a user via the input device 301. The input device 301 is configured to include, for example, a mouse, a keyboard, etc. When the user inputs a command to the input device 301, the input unit 31 acquires the command input by the user from the input device 301 and inputs it to the information processing device 30.
[0039] In this embodiment, in order to solve the above-mentioned problems, an extended option, which is a new argument (option), is introduced. The input unit 31 is configured to be able to input commands including the extended option. Below, the new option and an example configuration of the input unit 31 will be described in detail. In the following description, it is assumed that a.out, b.out, and c.out represent MPI programs, that a.out and b.out are stored in the storage unit 34 of the information processing device 30, and that c.out is stored in the storage unit 44 of the information processing device 40. Note that the extended option shown below is an example, and may be defined as another extended option.
[0040] First, a command that allows multiple MPI programs to be executed with a single command is introduced. Furthermore, an -alias extended option is introduced so that the execution of each of the multiple programs can be specified. For example, when a user inputs, into the input device 301, a command that instructs the execution of multiple MPI programs and that includes the -alias extended option, the input unit 31 inputs the command to the information processing device 30 via the input device 301. Note that, in this embodiment, the extended option for executing the MPI programs specified by each line is described as -alias, but the extended option is not limited to -alias, and a different extended option may be defined.
[0041] An example command for running multiple MPI programs, including the -alias extension option, is shown below. <Command example 4> TIFF0007753690000004.tif2372
[0042] In Command Example 4, each line with -alias indicates that a.out, b.out, and c.out will be executed, respectively. In Command Example 4, the top two lines with mpirun and -alias are marked with a "\". In this way, by adding a "\" to the end of the -alias lines indicating that mpirun, a.out, and b.out will be executed, a single command is realized that executes mpirun and also executes the MPI programs specified by the three -alias lines.
[0043] The -alias extended option represents an alias for the program execution unit, and executing "a" executes the command "mpirun -host host1 -vh -np 4 . / a.out". The line containing each -alias specifies the hardware resources to be allocated to each program, such as "-host host1 -vh -np 4 . / a.out". Therefore, the above command makes it possible to execute multiple MPI programs with a single command, while also changing the hardware resources allocated to each program.
[0044] Next, the -from extended option and the -to extended option are introduced to enable input / output data to be specified between multiple MPI programs. In other words, the -from extended option and the -to extended option link input / output data between multiple MPI programs. The -from extended option is an option that indicates that an MPI program is executed using the output result output by the MPI program described after -from. In other words, the -from extended option indicates that an MPI program is executed using the output result output by the MPI program described after -from as input data. The -to extended option is an option that specifies that the output result of the executed MPI program is input to the MPI program described after -to. In other words, the -to extended option is an option that indicates that the MPI program described after -to executes an MPI program using the output result of the executed MPI program. Note that in this embodiment, the extended options that specify input / output data between multiple MPI programs are described as -to and -from, but these extended options are not limited to -to and -from, and different extended options may be defined.
[0045] For example, when a user inputs, into the input device 301, a command instructing the execution of multiple MPI programs and including a -from extended option, the input unit 31 inputs the command to the information processing device 30 via the input device 301. For example, when a user inputs, into the input device 301, a command instructing the execution of multiple MPI programs and including a -to extended option, the input unit 31 inputs the command to the information processing device 30 via the input device 301.
[0046] An example of a command including the -from and -to extended options is shown below. <Command example 5> TIFF0007753690000005.tif2385
[0047] In Command Example 5, the two lines containing mpirun and -alias have a "\" set. Therefore, Command Example 5 indicates that it is a single command to execute a.out, b.out, and c.out. The line containing the first -alias contains "-to b." This indicates that the output result from a.out is to be input to b.out. In other words, the line containing the first -alias contains "-to b." This indicates that the output result from a.out is to be input to c.out as input data. In other words, the line containing the third -alias contains "-from a." This indicates that the output result from a.out is to be input to c.out as input data.
[0048] In addition, a -direct extended option related to the transmission process of output results related to -to and -from is introduced in addition to the -to extended option and the -from extended option. The -direct extended option is an option that specifies whether to transfer directly between buffers or via a file. In other words, the -direct extended option is an option that specifies whether to output output results related to -to and -from to a file. The -direct extended option is an option that specifies whether to enable or disable the option by setting a value after -direct. When "1" is set after -direct, this indicates that the -direct extended option is enabled, indicating that output results related to -to and -from are transferred directly between buffers. Furthermore, when "0" is set after -direct, this indicates that the -direct extended option is disabled, indicating that output results related to -to and -from are output to a file and data is transmitted and received based on the output file. Note that in this embodiment, the extended option that specifies whether to directly transfer output results related to -to and -from is described as -direct, but this extended option is not limited to -direct, and different extended options may be defined. In addition, in this embodiment, the setting value indicating whether -direct is enabled or disabled is described as being "1" or "0", but instead of "1" or "0", "ON" or "OFF" may be used, or a different setting value may be used.
[0049] For example, when a user inputs a command to the input device 301 that instructs the execution of multiple MPI programs and that includes the -direct extended option, the input unit 31 inputs the command to the information processing device 30 via the input device 301.
[0050] An example of a command including the -direct extended option is shown below. <Command example 6> TIFF0007753690000006.tif2385
[0051] In Command Example 6, a "\" is set on the two lines containing mpirun and -alias. This indicates that Command Example 6 is a single command that executes a.out, b.out, and c.out. The line containing the first -alias contains "-to b." This indicates that the output results of a.out are input to b.out. The line containing the third -alias contains "-from a." This indicates that the output results of a.out are input as input data for c.out. Additionally, Command Example 6 contains a "1" next to -direct, indicating that it is enabled. This indicates that the output results of a.out are transferred directly from the send buffer, where they are output, to the receive buffer, where the data to be input to b.out is stored. Similarly, Command Example 6 indicates that the output results of a.out are transferred directly from the send buffer, where they are output, to the receive buffer, where the data to be input to c.out is stored.
[0052] If "0" is set next to -direct, indicating that it is disabled, the output results of a.out are output to a file, and the specified output results from the output file are transferred to the receive buffers of b.out and c.out. In command example 6, -direct is set above the -alias line that specifies the execution of each MPI program. Therefore, command example 6 indicates that the -direct extended option is enabled for all MPI programs. Whether the -direct extended option is enabled or disabled may also be set for each MPI program.
[0053] Next, the -stream extension option is introduced so that the MPI program can execute stream data. The -stream extension option is an extension option that indicates whether the target data to be processed by the MPI program is stream data. The -stream extension option is an option that specifies whether it is enabled or disabled by setting a value after -stream. When "1" is set after -stream, this indicates that the -stream extension option is enabled, indicating that the target data to be processed by the MPI program is stream data. When "0" is set after -stream, this indicates that the -stream extension option is disabled, indicating that the target data to be processed by the MPI program is not stream data. In other words, when "0", indicating invalidity, is set after -stream, this indicates that the target data to be processed by the MPI program is batch data. Note that in this embodiment, the extension option that indicates whether the target data to be processed by the MPI program is stream data is described as -stream, but this extension option is not limited to -stream, and different extension options may be defined. In addition, in this embodiment, the setting value indicating whether -stream is enabled or disabled is described as being "1" or "0", but instead of "1" or "0", "ON" or "OFF" may be used, or a different setting value may be used.
[0054] For example, when a user inputs a command to the input device 301 that instructs the execution of multiple MPI programs and that includes the -stream extension option, the input unit 31 inputs the command to the information processing device 30 via the input device 301.
[0055] An example of a command including the -stream extended option is shown below. <Command example 7> TIFF0007753690000007.tif2372
[0056] In Command Example 7, a "\" is set between the two lines containing mpirun and -alias. Therefore, Command Example 7 indicates that it is a single command that executes a.out, b.out, and c.out. In Command Example 7, a "1" is set next to -stream, indicating that it is enabled. This indicates that the target data processed by a.out, b.out, and c.out is stream data. Note that if a "0" is set next to -stream, indicating that it is disabled, this indicates that the target data processed by a.out, b.out, and c.out is batch data, not stream data. Also, in Command Example 7, -stream is set above the -alias line that specifies the execution of each MPI program. Therefore, Command Example 7 indicates that the -stream extension option is enabled for all MPI programs. Note that whether the -stream extension option is enabled or disabled may be set for each MPI program.
[0057] The calculation unit 32 analyzes the command input to the input unit 31. The calculation unit 32 determines whether or not the command input to the input unit 31 includes an extended option. If the calculation unit 32 determines that the command input to the input unit 31 does not include an extended option, it executes one MPI program set in the command input to the input unit 31. If the calculation unit 32 determines that the command input to the input unit 31 includes an extended option, it executes processing according to the extended option.
[0058] When an input command includes an extended option, the calculation unit 32 generates a configuration file that sets the execution content of each MPI program included in the input command for each MPI program included in the input command. Using command example 4 as an example, command example 4 includes a.out, b.out, and c.out. Therefore, the calculation unit 32 generates a configuration file for a.out, a configuration file for b.out, and a configuration file for c.out. The calculation unit 32 may set arguments (options) including extended options and setting values for each argument in the configuration file for a.out. Alternatively, the calculation unit 32 may extract command content related to a.out from the input command, such as "-alias a -host host1 -vh -np 4 . / a.out," and set the extracted command content in the configuration file for a.out. The calculation unit 32 sets information that can identify the execution content in the configuration file for b.out and the configuration file for c.out in the same way as in the configuration file for a.out. The calculation unit 32 transmits a setting file for the MPI program executed in the information processing device 40 to the information processing device 40 via the communication unit 33.
[0059] Furthermore, the calculation unit 32 is configured to be able to output each setting file to the output device 302. The output device 302 is configured to include, for example, a display. When the calculation unit 32 receives a setting file output request from a user via, for example, the input device 301, it outputs the setting file to the output device 302.
[0060] When a command instructing the execution of multiple MPI programs is input, the calculation unit 32 classifies the MPI programs into an MPI program to be executed in the information processing device 30 and an MPI program to be executed in the information processing device 40. When the input command includes an -alias extension option, the calculation unit 32 may determine that multiple MPI programs are to be executed by one command.
[0061] The calculation unit 32 may set information identifying an MPI program to be executed in the information processing device 40, for example, in an execution program table. The information identifying an MPI program may be the file name of the MPI program. Alternatively, the calculation unit 32 may set information identifying an MPI program to be executed in the information processing device 30 in the execution program table. The calculation unit 32 may associate information identifying each MPI program set in a command with a host name (e.g., host1 or host2) that executes each MPI program, and set this in the execution program table. The calculation unit 32 transmits the execution program table to the information processing device 40 via the communication unit 33.
[0062] When a command including the -from extension option and the -to extension option is input, the calculation unit 32 identifies an information processing device on which an MPI program that links input / output data using the -from extension option and the -to extension option is executed. That is, the calculation unit 32 identifies an information processing device on which an MPI program that links input / output data using the -from extension option and the -to extension option is executed. The calculation unit 32 determines, based on the execution program table, whether the MPI programs related to -from and -to are included in the MPI programs executed by the information processing device 30 or the MPI programs executed by the information processing device 40.
[0063] When the link-source MPI program and the link-destination MPI program are executed on the information processing device 30, the calculation unit 32 sets a send buffer for the link-source MPI program and sets a receive buffer for the link-destination MPI program. When at least one of the link-source MPI program and the link-destination MPI program is executed on the information processing device 40, the calculation unit 32 requests the calculation unit 42 to set at least one of a send buffer and a receive buffer via the communication unit 33. The calculation unit 32 requests the calculation unit 42 to set at least one of a send buffer and a receive buffer by, for example, transmitting a buffer setting request to the information processing device 40 via the communication unit 33.
[0064] To explain this using command example 5, command example 5 includes the following: "-alias a -host host1 -vh -np 4 . / a.out -to b\". Therefore, the calculation unit 32 identifies that the MPI programs linked by -to are a.out and b.out. Based on the execution program table, the calculation unit 32 determines whether a.out and b.out are included in the MPI programs executed by the information processing device 30, which is host1.
[0065] In command example 5, the calculation unit 32 sets c.out in the execution program table, and therefore determines that a.out and b.out are included in the MPI program executed by the information processing device 30, which is host1. The calculation unit 32 sets a send buffer in the storage unit 34 for a.out, and sets a receive buffer in the storage unit 34 for b.out. The calculation unit 32 executes a.out so that the output result of a.out is output to the send buffer.
[0066] When the output result of a.out is output to the transmission buffer, the calculation unit 32 transmits the output result to the reception buffer. The calculation unit 32 executes b.out using data acquired from the reception buffer in which the output result is stored as input data. The calculation unit 32 waits for the output result to be transmitted from the transmission buffer to the reception buffer before executing the next process. The calculation unit 32 performs the transmission process of transmitting the output result of a.out to the reception buffer using the -direct extended option. The transmission process using the -diret extended option will be described later.
[0067] To explain this further using command example 5, command example 5 includes "-alias c -host host1 -ve -np 4 . / c.out -from a." Therefore, the calculation unit 32 identifies that the MPI programs linked by -from are a.out and c.out. The calculation unit 32 determines whether a.out and c.out are included in the MPI programs executed by the information processing device 30, which is host1, based on the contents of the execution program table.
[0068] In command example 5, the calculation unit 32 determines that a.out is included in the MPI program executed by the information processing device 30, which is host1, in order to set c.out in the execution program table. The calculation unit 32 determines that c.out is not included in the MPI program executed by the information processing device 30, which is host1. The calculation unit 32 sets a transmission buffer in the storage unit 34 for a.out. The calculation unit 32 transmits a buffer setting request to the information processing device 40 via the communication unit 33, requesting that a receive buffer be set for c.out. The calculation unit 32 executes a.out so that the output result of a.out is output to the transmission buffer.
[0069] When the output result of a.out is output to the send buffer, the calculation unit 32 transmits the output result to the receive buffer set by the information processing device 40 via the communication unit 33. In other words, the calculation unit 32 transmits the output result of a.out, which is the link-source MPI program, to the receive buffer set for the link-destination MPI program via the communication unit 33. The calculation unit 32 waits for the output result to be sent from the send buffer to the receive buffer, and then executes the next process.
[0070] When a command including the -direct extension option is input, the calculation unit 32 executes the transmission process of input / output data specified by the -from extension option and the -to extension option in accordance with whether -direct is enabled or disabled. When executing each MPI program, the calculation unit 32 checks the configuration file and determines whether the setting value of the -direct extension option is "1", which indicates that it is enabled.
[0071] When "1" is set after -direct, the extended option is enabled, and the receive buffer is set to the information processing device 30, the calculation unit 32 transfers data from the send buffer to the receive buffer. In other words, when the -direct extended option does not indicate that the output results are to be output to a file, the calculation unit 32 transfers the output results of the link-source MPI program from the send buffer to the receive buffer, and to the receive buffer into which the link-destination MPI program reads the results. When the -direct extended option is enabled and the receive buffer is set to the information processing device 40, the calculation unit 32 instructs the communication unit 33 to transfer data from the send buffer to the receive buffer using the RDMA (Remote Direct Memory Access) method. The RDMA method is a method that allows high-speed data transfer from memory to memory without going through an OS (Operating System).
[0072] When "0" is set after -direct, the -direct extension option is disabled, and the receive buffer is set to the information processing device 30, the calculation unit 32 obtains the output result of the link-source MPI program from the send buffer, writes the output result to a file, and outputs it. The calculation unit 32 specifies the output result data to be used as input data for the link-destination MPI program from the output file and transfers it from the send buffer to the receive buffer. In other words, the calculation unit 32 transmits only the data to be used by the link-destination MPI program from the output result of the link-source MPI program to the receive buffer. Note that when the -direct extension option is disabled and the receive buffer is set to the information processing device 30, the calculation unit 32 may transmit the output result output to the send buffer to the receive buffer. When executing the link-destination MPI program, the calculation unit 32 may obtain only the data to be input to the link-destination MPI program from the receive buffer and execute the link-destination MPI program.
[0073] When the -direct extension option is disabled and the receive buffer is set to the information processing device 40, the calculation unit 32 obtains the output result of the link-source MPI program from the send buffer, writes the output result to a file, and outputs it. The calculation unit 32 instructs the communication unit 33 which output result data from the output file is to be used as input data for the link-destination MPI program. The calculation unit 32 waits for the output result to be sent from the send buffer to the receive buffer and then executes the next process. Note that when the -direct extension option is disabled and the receive buffer is set to the information processing device 40, the calculation unit 32 may send the output result output to the send buffer to the receive buffer via the communication unit 33. Then, the calculation unit 32 may send, from the output result, a data range to be read by the link-destination MPI program to the information processing device 40 that executes the link-destination MPI program via the communication unit 33. In this case, the calculation unit 42 may obtain data within the received data range from the receive buffer and execute the link-destination MPI program.
[0074] When a command including the -stream extension option is input and "1" is set next to -stream, the calculation unit 32 determines that the target data to be processed by the MPI program executed in the information processing device 30 is stream data. In other words, when the -stream extension option is valid, the calculation unit 32 determines that the target data to be processed by the MPI program executed in the information processing device 30 is stream data. When executing each MPI program, the calculation unit 32 checks the configuration file and determines whether the set value of the -stream extension option is "1", which indicates that the option is valid.
[0075] When the -stream extension option is enabled, the calculation unit 32 inputs a predetermined amount of non-overlapping data from the target data to be processed by each MPI program as input data (processing data) to each MPI program and executes the MPI program.
[0076] When a command including the -stream extension option is input and "0" is set next to -stream, the calculation unit 32 recognizes that the target data to be processed by the MPI program executed in the information processing device 30 is batch data, not stream data. In other words, when the -stream extension option is invalid, the calculation unit 32 recognizes that the target data to be processed by the MPI program executed in the information processing device 30 is batch data.
[0077] When the -stream extension option is disabled, the calculation unit 32 inputs all target data to be processed by each MPI program into the MPI program executed in the information processing device 30, and executes the MPI program.
[0078] The communication unit 33 transmits to the information processing device 40 an execution program table and a setting file for the MPI program executed in the information processing device 40. In other words, by transmitting the execution program table and the setting file, the communication unit 33 transmits to the information processing device 40 information that specifies the execution content of the MPI program executed in the information processing device 40.
[0079] When the link-source MPI program is an MPI program executed by the information processing device 30 and the link-destination MPI program is an MPI program executed by the information processing device 40, the communication unit 33 transmits a buffer setting request to the information processing device 40. The buffer setting request is a signal requesting that a receive buffer be set for the link-destination MPI program.
[0080] When the source MPI program is an MPI program executed on the information processing device 30 and the destination MPI program is an MPI program executed on the information processing device 40, the communication unit 33 transfers the output results of the source MPI program to the receive buffer.
[0081] When the -direct extension option is enabled and a receive buffer is set in the information processing device 40, the communication unit 33 transfers the output results of the MPI program from which the link is made to the receive buffer set for the MPI program to which the link is made using the RDMA method.
[0082] When the -direct extension option is disabled and the receive buffer is set in the information processing device 40, the communication unit 33 transfers the data instructed by the calculation unit 32 from the send buffer to the receive buffer. In other words, the communication unit 33 transmits only the output results of the link-source MPI program that are used as input data for the link-destination MPI program to the receive buffer of the information processing device 40.
[0083] The storage unit 34 stores the MPI program executed in the information processing device 30. The storage unit 34 sets memory areas to be used as a send buffer and a receive buffer under the control of the calculation unit 32. The storage unit 34 stores target data to be processed by the MPI program executed in the information processing device 30. The storage unit 34 stores a file in which the target data is set. Note that the file in which the target data is set may be input by the input unit 31 via the input device 301 and stored in the storage unit 34, or may be stored in advance in the storage unit 34.
[0084] Next, an example configuration of the information processing device 40 will be described. The information processing device 40 executes an MPI program based on a command input in the information processing device 30. The information processing devices 30 and 40 basically have the same configuration. Therefore, the information processing device 30 also has the configuration of the information processing device 40 described below, and the information processing device 40 also has the configuration of the information processing device 30. In the following description, the description of the configuration of the information processing device 40 that is the same as that of the information processing device 30 will be omitted as appropriate.
[0085] The information processing device 40 includes an input unit 41, a calculation unit 42, a communication unit 43, and a storage unit 44. The input unit 41 has the same configuration as the input unit 31 of the information processing device 30, and therefore a description thereof will be omitted.
[0086] Next, before describing the configuration of the calculation unit 42, the communication unit 43 will be described. The communication unit 43 receives the execution program table and the setting file for the MPI program executed in the information processing device 40 from the communication unit 33 of the information processing device 30. In other words, by receiving the execution program table and the setting file, the communication unit 43 receives information specifying the execution content of the MPI program executed in the information processing device 40 from the information processing device 30.
[0087] When the link source MPI program is an MPI program executed by the information processing device 30 and the link destination MPI program is an MPI program executed by the information processing device 40, the communication unit 43 receives the output result of the link source MPI program.
[0088] When the -direct extension option is enabled and the receive buffer is set in the information processing device 40, the communication unit 43 receives the output result of the link source MPI program from the communication unit 33 using the RDMA method.
[0089] When the -direct extension option is disabled and the receive buffer is set in the information processing device 40, the communication unit 43 receives, from the communication unit 33, data specified by the calculation unit 32 from among the output results of the link-source MPI program. In other words, the communication unit 43 receives, from the communication unit 33, only the output results that are to be used as input data for the link-destination MPI program from among the output results of the link-source MPI program.
[0090] Next, the calculation unit 42 will be described. The calculation unit 42 executes an MPI program based on information that specifies the execution content of the MPI program to be executed in the information processing device 40. Specifically, the calculation unit 42 specifies the MPI program to be executed based on an execution program table. Furthermore, the calculation unit 42 specifies the execution content of the MPI program to be executed in the information processing device 40 based on a setting file of the specified MPI program. The calculation unit 42 executes the MPI program based on the specified execution content.
[0091] When the communication unit 43 receives a buffer setting request, the calculation unit 42 sets at least one of the transmission buffer and the reception buffer in the storage unit 44 based on the buffer setting request.
[0092] When the link-source MPI program is an MPI program executed by the information processing device 30 and the link-destination MPI program is an MPI program executed by the information processing device 40, the calculation unit 42 acquires the output result of the link-source MPI program from the receive buffer. The calculation unit 42 executes the link-destination MPI program using the acquired output result as input data.
[0093] When executing an MPI program, the calculation unit 42 determines whether the target data to be processed by the MPI program is stream data based on the contents of the configuration file. If the -stream extension option is enabled, the calculation unit 42 inputs a predetermined amount of non-overlapping data from the target data to be processed by the MPI program as input data (processing data) to the MPI program and executes the MPI program.
[0094] The storage unit 44 stores an MPI program executed in the information processing device 40. The storage unit 44 sets memory areas to be used as a send buffer and a receive buffer under the control of the calculation unit 42. The storage unit 44 stores target data to be processed by the MPI program executed in the information processing device 30. The storage unit 44 stores a file in which the target data is set. Note that the file in which the target data is set may be input by the input unit 41 via the input device 401 and stored in the storage unit 44, or may be stored in advance in the storage unit 44.
[0095] <Example of information processing system operation> Next, an example of the operation of the information processing system 100 will be described. First, an outline of the operation of the information processing system 100 will be described with reference to Fig. 3. Fig. 3 is a diagram for explaining an example of the operation of the information processing system according to the second embodiment.
[0096] The input unit 31 inputs a command entered by the user via the input device 301 (step S1). The user inputs, for example, command example 8 shown at the top of FIG. 3 to the input device 301. The input unit 31 of the information processing device 30, which is the host 1, inputs the command entered by the user via the input device 301.
[0097] The calculation unit 32 of the information processing device 30, which is host1, analyzes the input command (step S2). The calculation unit 32 determines whether the command input to the input unit 31 includes an extended option. The input command includes the -alias extended option. Therefore, the calculation unit 32 may determine that a single command instructs the execution of multiple MPI programs. The calculation unit 32 classifies the MPI programs into those executed on the information processing device 30, which is host1, and those executed on the information processing device 40, which is host2.
[0098] The calculation unit 32 of the information processing device 30, which is host1, executes the MPI program executed in the information processing device 30, and the calculation unit 42 of the information processing device 40, which is host2, executes the MPI program executed in the information processing device 40 (step S3). The calculation units 32 and 42 execute processing according to the extended options other than -alias included in the input command.
[0099] Next, an example of the operation of the information processing system 100 will be described in detail. 4 and 5, an example of operation from inputting a command to the information processing device 30, which is the host 1, until the MPI program is executed will be described. Fig. 4 is a flowchart showing an example of operation of the information processing system according to the second embodiment.
[0100] The input unit 31 inputs a command entered by the user via the input device 301 (step S11). The user inputs, for example, a command shown in command example 8 to the input device 301. The input unit 31 of the information processing device 30, which is the host 1, inputs the command entered by the user via the input device 301.
[0101] The calculation unit 32 analyzes the input command and determines whether there is an extended option (step S12). If there is an extension option (YES in step S12), the calculation unit 32 executes step S14 and subsequent steps. If there is no extended option (NO in step S12), the calculation unit 32 calls mpirun and executes one MPI program. Note that if the MPI program to be executed is an MPI program executed by the information processing device 40, the calculation unit 32 transmits information specifying the execution content of the MPI program to be executed to the information processing device 40 via the communication unit 33. The calculation unit 42 acquires the information specifying the execution content of the MPI program via the communication unit 43, and executes the MPI program according to the information.
[0102] In step S14, the calculation unit 32 generates a configuration file for each MPI program executed by the input command (step S14). In the case of command example 8, the MPI programs to be executed are a.out, b.out, and c.out, so a configuration file is generated for each of a.out, b.out, and c.out.
[0103] An example of the configuration file will now be described with reference to Fig. 5. Fig. 5 is a diagram showing an example of the configuration file. Fig. 5 shows an example of the a.out configuration file that is generated when command example 8 is input. In the configuration file, extended options related to a.out and the setting values of each extended option are set in association with each other. Also, in the configuration file, arguments (options) related to the execution content of a.out and the setting values of each argument are set in association with each other.
[0104] In command example 8, the extended options related to a.out are -stream, -direct, -alias, and -to, and their setting values are 1, 1, a, and b, respectively. Therefore, the calculation unit 32 associates each extended option with its setting value and sets it in the configuration file. Furthermore, the calculation unit 32 associates arguments (options) other than the extended options related to the execution content of a.out with their setting values and sets them. Note that for arguments that do not have a setting value, such as -vh, no setting value may be set, or a setting value indicating that no setting value is set may be set.
[0105] Furthermore, if the input command includes the -from extension option and the -to extension option, the calculation unit 32 adds information about the MPI program to be linked and the MPI program to be linked to the configuration file because there is an MPI program to which input and output data are linked. For example, using Command Example 8, the -to extension option is a command associated with a.out and b.out. Therefore, the calculation unit 32 sets, for example, "from a" in the configuration file for b.out so that it is clear that a.out is the MPI program to be linked and b.out is the MPI program to be linked. Similarly, the calculation unit 32 sets, for example, "from b" in the configuration file for c.out. If the input command includes the -from extension option, the calculation unit 32 sets, for example, "to c" in the configuration file for the MPI program to which the -from extension option is set, information about the MPI program to be linked.
[0106] Returning to FIG. 4, the explanation will continue. In step S15, the calculation unit 32 classifies the MPI programs (step S15). When multiple MPI programs are executed by one command, the calculation unit 32 classifies the multiple MPI programs included in the command into MPI programs executed in the information processing device 30 and MPI programs executed in the information processing device 40.
[0107] The calculation unit 32 generates an execution program table (step S16). The calculation unit 32 sets information for identifying the MPI program executed in the information processing device 40 in the execution program table. The information for identifying the MPI program may be the file name of the MPI program. Note that the calculation unit 32 may also set information for identifying the MPI program executed in the information processing device 30 in the execution program table.
[0108] The communication unit 33 transmits the execution program table and the configuration file of the MPI program set in the execution program table to the communication unit 43 of the information processing device 40 (step S17). By transmitting the execution program table and the configuration file of the MPI program set in the execution program table, the communication unit 33 transmits information specifying the execution content of the MPI program executed in the information processing device 40. When command example 8 is used, the calculation unit 32 sets c.out in the execution program table. Therefore, the communication unit 33 transmits the execution program table and the configuration file of c.out to the communication unit 43.
[0109] The calculation unit 32 and the calculation unit 42 set a sending buffer and a receiving buffer (step S19). When a command including the -from extended option and the -to extended option is input, the calculation unit 32 identifies an information processing device that executes an MPI program that links input and output data using the -from extended option and the -to extended option.
[0110] When the source MPI program and the destination MPI program are executed on the information processing device 30, the calculation unit 32 sets a transmission buffer in the memory unit 34 for the source MPI program and sets a reception buffer in the memory unit 34 for the destination MPI program.
[0111] When the link-source MPI program is executed on the information processing device 30 and the link-destination MPI program is executed on the information processing device 40, the calculation unit 32 sets up a send buffer for the link-source MPI program. The calculation unit 32 transmits a buffer setting request to the information processing device 40 via the communication unit 33, requesting that a receive buffer be set for the link-destination MPI program. The calculation unit 42 sets up the receive buffer based on the buffer setting request.
[0112] When the link-source MPI program and the link-destination MPI program are executed on the information processing device 40, the calculation unit 32 transmits a buffer setting request requesting the setting of a send buffer and a receive buffer to the information processing device 40 via the communication unit 33. That is, the calculation unit 32 transmits a request to set a send buffer for the link-source MPI program and a receive buffer for the link-destination MPI program to the calculation unit 42 via the communication units 33 and 43. The calculation unit 42 sets a send buffer for the link-source MPI program and a receive buffer for the link-destination MPI program.
[0113] When the link-source MPI program is executed on the information processing device 40 and the link-destination MPI program is executed on the information processing device 30, the calculation unit 32 sets up a receive buffer for the link-destination MPI program. The calculation unit 32 transmits a buffer setting request requesting the setting of a send buffer for the link-source MPI program to the information processing device 40 via the communication unit 33. The calculation unit 42 sets up the send buffer based on the buffer setting request.
[0114] The calculation units 32 and 42 execute the MPI programs executed by the information processing devices 30 and 40, respectively (step S19).
[0115] Next, an example of the operation in step S19 in which the calculation units 32 and 42 execute the MPI program will be described with reference to Figures 6 to 9. Figures 6 to 9 are diagrams for explaining an example of the operation of the information processing device according to the second embodiment.
[0116] First, Fig. 6 will be described. Fig. 6 shows an example of the operation when the calculation unit 32 executes a.out in step S19. The calculation units 32 and 42 execute the operation shown in Fig. 6 for each of the MPI programs executed in the information processing devices 30 and 40, respectively. Using command example 8 as an example, the calculation unit 32 executes a.out and b.out, and the calculation unit 42 executes c.out. Therefore, the calculation unit 32 executes Fig. 6 for b.out as well, and the calculation unit 42 executes the operation shown in Fig. 6 for c.out. Note that the operations executed for b.out and c.out are similar to the operations executed for a.out, and therefore will not be described here.
[0117] The calculation unit 32 reads the configuration file (step S21). The calculation unit 32 reads the configuration file and acquires information about the MPI program to be linked and the MPI program to be linked from the contents set in the configuration file. Specifically, if the -from extension option is set in the configuration file, the calculation unit 32 identifies the MPI program to be linked from the set value of the -from extension option. Furthermore, if the -to extension option is set in the configuration file, the calculation unit 32 identifies the MPI program to be linked from the set value of the -to extension option. Furthermore, if the -direct extension option is set in the configuration file, the calculation unit 32 also acquires information about whether the -direct extension option is enabled.
[0118] The calculation unit 32 prepares for data acquisition (step S22), acquires the data (step S23), and executes a predetermined calculation described in the source code of the MPI program (step S24). In step S22, the calculation unit 32 determines whether the target data to be processed by a.out is stream data based on the contents set in the configuration file. Specifically, if the -stream extension option is set in the configuration file and the set value of the -stream extension option is "1," the calculation unit 32 determines that the target data to be processed by a.out is stream data. In step S24, the calculation described in the source program of each MPI program is executed. Details of steps S22 and S23 will be described later.
[0119] The calculation unit 32 prepares to output and transfer the calculation result (step S25), and the calculation unit 32 and the communication unit 33 output and transfer the calculation result (step S26). Steps S25 and S26 will be described in detail later.
[0120] The calculation unit 32 determines whether the MPI program has ended and updates the setting file (step S27). The calculation unit 32 determines whether the MPI program has ended and updates the setting file. For example, if the target data processed by a.out is stream data, or if the MPI program does not end, the calculation unit 32 returns to step S21 and continues processing.
[0121] Next, a description will be given of Fig. 7. Fig. 7 is a diagram showing an example of an a.out source program that describes the example of operation described with reference to Fig. 6. As shown in Figure 7, the a.out source program includes, from top to bottom, a description of the settings of various variables, a description of functions related to the initialization preparation for executing a.out, and a description of functions related to the operations executed in steps S21 to S27.
[0122] As a function related to the operation of step S21, for example, the MPI_File_open function is used. As a function related to the operation of step S22, for example, the MPI_File_setview function is used. As a function related to the operation of step S23, for example, the MPI_File_read function is used. As a function related to the operation of step S25, for example, the MPI_File_set_view function is used. As a function related to the operation of step S26, for example, the MPI_File_write function is used. As a function related to the operation of step S27, for example, the MPI_File_close function is used.
[0123] Next, the operations executed in steps S22 and S23 in Fig. 6 will be described in detail with reference to Fig. 8. In Fig. 8, steps S221 to S225 are detailed operations of step S22, and steps S231 to S233 are detailed operations of step S23.
[0124] The calculation unit 32 reads the setting file (step S221) and determines whether the target data to be processed by the MPI program (a.out) is stream data (step S222). In step S222, the calculation unit 32 checks the setting file and determines whether the setting value of the -stream extension option is "1", which indicates that the option is valid.
[0125] If the target data to be processed by the MPI program is not stream data (NO in step S222), the calculation unit 32 performs setting for reading batch data (step S223). The calculation unit 32 performs setting for reading all target data to be processed by a.out from the storage unit 34 at once.
[0126] On the other hand, if the target data to be processed by the MPI program is stream data (YES in step S222), the calculation unit 32 performs settings for reading the stream data (step S224). The calculation unit 32 performs settings for reading a predetermined amount of data from unprocessed target data among the target data to be processed by the MPI program. For example, the calculation unit 32 sets the start position and data size to be read of unprocessed target data among the target data to be processed by the MPI program. For example, a variable called num_size may be used to specify the data size. For example, a variable called num_pos may be used to specify the start position.
[0127] In step S225, the calculation unit 32 determines whether or not there is a link source MPI program (step S225). The calculation unit 32 determines whether or not there is a link source MPI program based on whether or not the link source MPI program has been identified in step S21.
[0128] If there is no MPI program to be linked (NO in step S225), the calculation unit 32 searches the storage unit 34 for the specified file, and reads the input data to be processed by a.out from the file (step S231).
[0129] On the other hand, if there is an MPI program to be concatenated (YES in step S225), the calculation unit 32 reads from the receive buffer the input data to be processed by the MPI program (a.out) among the output results output by the MPI program to be concatenated (step S232). Based on the settings in step S224, the calculation unit 32 reads data at the position and data size specified by the variables num_pos and num_size from the receive buffer as input data. Note that if no data is stored in the receive buffer, the calculation unit 32 may communicate with the calculation unit executing the MPI program to be concatenated, and request that the input data to be processed by the MPI program (a.out) be sent to the receive buffer.
[0130] In step S233, the calculation unit 32 ends data acquisition (step S233). After reading the input data, the calculation unit 32 records the position of the read data and sets the input data so that it cannot be changed. In addition, the calculation unit 32 checks the address of the input data and prepares for the next process.
[0131] Next, the operations executed in steps S25 and S26 in Fig. 6 will be described in detail with reference to Fig. 9. In Fig. 9, steps S251 to S255 are detailed operations of step S25, and steps S261 to S263 are detailed operations of step S26.
[0132] The calculation unit 32 reads the setting file (step S251) and determines whether the target data to be processed by the MPI program (a.out) is stream data (step S252). In step S252, the calculation unit 32 checks the setting file and determines whether the setting value of the -stream extension option is "1", which indicates that the option is valid.
[0133] If the target data processed by the MPI program is not stream data (NO in step S252), the calculation unit 32 performs output settings for the calculation results (step S253). The calculation unit 32 performs output settings such as specifying an output file to output the calculation results. Because the target data processed by the MPI program is batch data, the calculation unit 32 performs output settings so that all of the calculation results in a.out are output to the output file at once.
[0134] On the other hand, if the target data processed by the MPI program is stream data (YES in step S252), the calculation unit 32 performs output settings for the calculation results (step S254). The calculation unit 32 performs output settings, such as specifying an output file to output the calculation results. If the target data processed by the MPI program is stream data, the calculation results may have already been output to the output file. Therefore, the calculation unit 32 performs output settings, such as specifying the start position and data size to output the calculation results of a.out to the output file. For example, a variable called num_size may be used to specify the data size. For example, a variable called num_pos may be used to specify the start position.
[0135] Furthermore, since the MPI program (a.out) may have an MPI program to which it is to be linked, the calculation unit 32 identifies the MPI program to which it is to be linked based on the information read from the configuration file in step S21. When the calculation unit 32 identifies the MPI program to which it is to be linked, it performs output settings to output the calculation results to the send buffer. Since the calculation results may already have been output to the send buffer, the calculation unit 32 performs output settings such as specifying the start position and output range to specify from which position in the send buffer and to what range the calculation results of a.out should be output.
[0136] In step S255, the calculation unit 32 determines whether there is a link-destination MPI program (step S255). The calculation unit 32 determines whether there is a link-source MPI program based on whether the link-destination MPI program has been identified in step S21.
[0137] If there is no MPI program to link to (NO in step S255), the calculation unit 32 outputs the calculation results of a.out to the specified file (step S261).
[0138] On the other hand, if there is an MPI program to be linked (YES in step S255), the calculation unit 32 and communication unit 33 output the calculation result to the specified file and transfer the calculation result as an output result to the receive buffer of the MPI program to be linked (step S262). In step S21, the calculation unit 32 identifies the MPI program to be linked based on the information read from the configuration file. In step S21, the calculation unit 32 identifies whether the -direct extension option is enabled or disabled based on the information read from the configuration file.
[0139] The calculation unit 32 outputs the calculation results of the MPI program (a.out) to the transmission buffer as output results. Based on the settings in step S254, the calculation unit 32 outputs the output results to the transmission buffer at the position and data size specified by the variables num_pos and num_size. When the -direct extension option is enabled and the linked MPI program is executed on the information processing device 30, the calculation unit 32 transfers the output results of the MPI program (a.out) from the transmission buffer to the reception buffer.
[0140] When the -direct extension option is enabled and the receive buffer is set in the information processing device 40, the communication unit 33 transfers the output results of the MPI program (a.out) from the send buffer to the receive buffer set in the information processing device 40 using the RDMA method.
[0141] When the -direct extension option is disabled and the receive buffer is set in the information processing device 30, the calculation unit 32 acquires the output result of the MPI program (a.out) from the send buffer and writes and outputs the output result to a file. The calculation unit 32 designates, from the output file, the output result data to be used as input data for the MPI program to be linked, and transfers it from the send buffer to the receive buffer.
[0142] When the -direct extension option is disabled and the receive buffer is set in the information processing device 40, the calculation unit 32 obtains the output result of the MPI program (a.out) from the send buffer and writes and outputs the output result to a file. The calculation unit 32 instructs the communication unit 33 which of the output file's output result data is to be used as input data for the MPI program to be linked to. The communication unit 33 transfers the data instructed by the calculation unit 32 from the send buffer to the receive buffer.
[0143] In step S263, the calculation unit 32 ends the output and transfer (step S263). The calculation unit 32 records the positions of the output data and transferred data.
[0144] As described above, the information processing system 100 allows a user to execute multiple MPI programs with one command. Therefore, the user does not need to prepare a single MPI program that combines commands for executing multiple MPI programs. Furthermore, the user does not need to wait for the execution of each MPI program to be completed. Therefore, the information processing system 100 according to the second embodiment can improve user convenience.
[0145] Furthermore, the information processing system 100 enables execution of MPI programs while reducing the programming costs for the user. Specifically, as a problem of this embodiment, when a user wants to execute multiple MPI programs with a single command, the user needs to prepare an MPI program in which commands for executing the multiple MPI programs are written. Furthermore, considering the need to change the hardware resources that execute multiple MPI programs, the user must execute the multiple MPI programs one by one, but must wait for each MPI program to complete execution.
[0146] In contrast, by using the information processing system 100, it becomes possible to execute multiple MPI programs with a single command. Furthermore, by using the information processing system 100, it is possible to execute a link-destination MPI program using the output results output by the link-source MPI program. Therefore, the user does not need to create an MPI program that takes into consideration the output file of the output results of the link-source MPI program and the input file of the input source that is input to the link-destination MPI program.
[0147] Furthermore, the commands input to the information processing system 100 use hardware resources as variables. Therefore, by using the information processing system 100, not only can multiple MPI programs be executed with a single command, but the hardware and hardware resources allocated to the execution of each MPI program can also be easily changed.
[0148] Furthermore, the information processing system 100 can execute processing corresponding to the -stream extension option described above. Therefore, by using the information processing system 100, stream data can be executed by an MPI program without implementing a library for supporting stream data, such as MPIStreams. Furthermore, by using the information processing system 100, each MPI program can process stream data without the user needing to improve their programming skills in accordance with the library. In other words, by using the information processing system 100, even a user who does not have high programming skills in accordance with a library for supporting stream data can process stream data. Therefore, with the information processing system 100, the user does not need to create an MPI program in which input / output data between MPI programs is linked, and an MPI program for supporting stream data. Therefore, the information processing system 100 according to the second embodiment not only improves user convenience but also enables the execution of MPI programs with reduced programming costs.
[0149] (Variation 1) In the above-described second embodiment, the -from extension option and the -to extension option are described as specifying one MPI program as the link source and one MPI program as the link destination, but it is also possible to specify multiple MPI programs.
[0150] For example, the user inputs the following command example 9. <Command example 9> TIFF0007753690000008.tif17115
[0151] In command example 9, the -from extended option is set in the third line from the top. In command example 9, b and a are set as the setting values of -from. Even if multiple setting values of -from and -to are set as in command example 9, the input unit 31 may be able to input a command in which multiple setting values of -from and -to are set. In addition, the calculation unit 32 may be able to set multiple transmission buffers and reception buffers. To explain using command example 9, since the setting values of -from are b and a, the calculation unit 32 may be able to set two transmission buffers for a.out and b.out.
[0152] Furthermore, when multiple setting values for -from and -to are set, the calculation unit 32 and the communication unit 33 may transfer the output result to the receive buffer in the order of the setting values of -from and -to. To explain using command example 9, since the setting values of -from are b and a, the calculation unit 32 and the communication unit 33 may transfer the output result of a.out from the send buffer to the receive buffer, and then transfer the output result of a.out from the send buffer to the receive buffer.
[0153] In this way, if input / output data can be transferred in the order in which they were entered into the commands, the user does not need to take into account the order in which data is entered when programming each MPI program. Therefore, by modifying the second embodiment as in Variation 1, it is possible to improve user convenience compared to the second embodiment.
[0154] (Variation 2) In the second embodiment described above, an extended option may be introduced in addition to the -from extended option and the -to extended option, which enables the calculation unit that sets the receive buffer to process asynchronously from the send buffer. Further, an extended option may be introduced that specifies the output position and output range of the send buffer and the read position and read range of the receive buffer.
[0155] An example of an input command will be described with reference to Fig. 10. Fig. 10 is a diagram showing an example of an input command. A user inputs, for example, the command of command example 10 shown in Fig. 10. In command example 10, the -async extended option is set in the first line from the top. The -async extended option is an extended option that indicates that the link-source MPI program and the link-destination MPI program are executed asynchronously.
[0156] For example, the -to extended option sets a send buffer and a receive buffer. If the -async extended option is not set in the command or is disabled, the calculation unit that set the send buffer waits for the calculation unit or the corresponding communication unit to complete data transfer from the send buffer to the receive buffer before performing the next process. On the other hand, if the -async extended option is set in the command and is enabled, the calculation unit that set the send buffer performs the next process when the calculation unit or the corresponding communication unit starts transferring data from the send buffer to the receive buffer. Note that a setting value of "1" for -async indicates that the -async extended option is enabled, and a setting value of "0" indicates that the -async extended option is disabled.
[0157] Furthermore, in the first line from the top of command example 10, the -recv_buff_row extended option and the -send_buff_row extended option are set. The -recv_buff_row extended option is an extended option that specifies the size of the receive buffer. The -send_buff_row extended option is an extended option that specifies the size of the send buffer. When the -recv_buff_row extended option and the -send_buff_row extended option are set in the command, the calculation unit 32 sets a send buffer and a receive buffer of the specified size in the storage unit 34. Furthermore, when the collaboration source MPI program and the collaboration destination MPI program are executed on the information processing device 40, the communication unit 33 sets the size specified by the -recv_buff_row extended option and -send_buff_row in a buffer setting request and transmits the request to the information processing device 40. The calculation unit 42 sets a send buffer and a receive buffer of the specified size included in the buffer setting request in the storage unit 44.
[0158] In command example 10, the setting values for -recv_buff_row and -send_buff_row are set to "-1." This indicates that the size of the send buffer and receive buffer is set to twice the size up to the position set in the variable num_pos. In other words, even if a data transfer starts while an MPI program related to the send buffer and receive buffer is running, it will not affect the data of the MPI program being executed. The variable num_pos is a variable that specifies the start position for reading and output by the MPI program related to the send buffer and receive buffer.
[0159] In this way, if the -async extension option, -recv_buff_row extension option, and -send_buff_row extension option can also be supported in addition to the -from extension option and -to extension option, the performance of the information processing system 100 can be improved.
[0160] (Variation 3) In the second embodiment described above, while each MPI program is being executed, it may be possible to output to an intermediate file how the data is being processed by the MPI program. An example of an input command will be described with reference to FIG. 11. FIG. 11 is a diagram showing an example of an input command. A user inputs, for example, the command of command example 11 shown in FIG. 11. In command example 11, the -save_file_mini extended option is set in the first line from the top. The -save_file_mini extended option is an extended option that specifies that how the data is being processed by the MPI program should be output to an intermediate file. Note that when the set value of -save_file_mini is "1", this indicates that the -save_file_mini extended option is enabled, and when the set value of -save_file_mini is "0", this indicates that the -save_file_mini extended option is disabled.
[0161] When the setting value of -save_file_mini is "1", the calculation unit 32 outputs to a file the data processing details when executing each MPI program described with reference to Fig. 6. By modifying the second embodiment as in the third modification, the data processing details can be output as a log, facilitating data confirmation work such as debugging.
[0162] (Other embodiments) The information processing devices 10, 20, 30, and 40 (hereinafter referred to as information processing device 10, etc.) according to the above-described embodiments may have the following hardware configuration. Fig. 12 is a block diagram illustrating an example of the hardware configuration of the information processing device, etc. according to each embodiment.
[0163] 12, the information processing device 10 or the like includes a network interface 1201, a processor 1202, and a memory 1203. The network interface 1201 is used to communicate with other information processing devices included in the information processing system.
[0164] The processor 1202 reads and executes software (computer programs) from the memory 1203 to perform the processes of the information processing device 10 and the like described using flowcharts in the above-described embodiments. The processor 1202 may be, for example, a microprocessor, an MPU (Micro Processing Unit), or a CPU (Central Processing Unit). The processor 1202 may include multiple processors.
[0165] The memory 1203 is configured by a combination of volatile memory and non-volatile memory. The memory 1203 may include storage located remotely from the processor 1202. In this case, the processor 1202 may access the memory 1203 via an I / O (Input / Output) interface (not shown).
[0166] 12, the memory 1203 is used to store a group of software modules. The processor 1202 reads out the group of software modules from the memory 1203 and executes processing in accordance with instructions from the group of software modules, thereby realizing the operations of the information processing device 10 and the like described in the above-described embodiment.
[0167] As described with reference to FIG. 12, each of the processors included in the information processing device 10 or the like executes one or more programs including a group of instructions for causing a computer to execute the algorithm described with reference to the drawings.
[0168] In the above examples, the program includes instructions (or software code) that, when loaded into a computer, cause the computer to perform one or more functions described in the embodiments. The program may be stored on a non-transitory computer-readable medium or a tangible storage medium. By way of example and not limitation, computer-readable medium or tangible storage medium includes random-access memory (RAM), read-only memory (ROM), flash memory, solid-state drive (SSD) or other memory technology, CD-ROM, digital versatile disc (DVD), Blu-ray disc or other optical disk storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage device. The program may also be transmitted on a transitory computer-readable medium or communication medium. By way of example and not limitation, transitory computer-readable medium or communication medium includes electrical, optical, acoustic, or other forms of propagated signals.
[0169] Furthermore, the present disclosure is not limited to the above-described embodiments, and can be appropriately modified within the scope of the present disclosure. Furthermore, the present disclosure may be implemented by appropriately combining the respective embodiments.
[0170] Furthermore, some or all of the above-described embodiments can be described as, but are not limited to, the following supplementary notes. (Appendix 1) A first information processing device and a second information processing device are provided, The first information processing device an input section for inputting execution commands instructing execution of a plurality of MPI (Message Passing Interface) programs; a first computing unit that classifies the plurality of MPI programs into a first MPI program executed in the first information processing device and a second MPI program executed in the second information processing device, and executes the first MPI program; a first communication unit that transmits information that identifies the execution content of the second MPI program to the second information processing device; The second information processing device a second communication unit that receives the information; a second computing unit that executes the second MPI program based on the information. (Appendix 2) the execution command includes a first option indicating that a fourth MPI program is executed using an output result output by a third MPI program among the plurality of MPI programs; The information processing system described in Appendix 1, wherein the first calculation unit determines whether the first MPI program includes the third MPI program and the fourth MPI program based on the first option, and if it determines that the first MPI program includes the third MPI program and the fourth MPI program, sends the output result to a receive buffer of the first information processing device and executes the fourth MPI program using data obtained from the receive buffer of the first information processing device as input data. (Appendix 3) the first communication unit, when it is determined that the first MPI program includes the third MPI program but does not include the fourth MPI program, transmits the output result to a receive buffer of the second information processing device; 3. The information processing system according to claim 2, wherein the second calculation unit executes the fourth MPI program using data acquired from a receive buffer of the second information processing device as input data. (Appendix 4) the execution command includes a second option that specifies whether or not the output result is to be output to a file; The information processing system described in Appendix 3, wherein when the first calculation unit determines that the second option indicates that the output results are to be output to a file and that the first MPI program includes the third MPI program and the fourth MPI program, it outputs the output results to a file and sends the output results from the output file that are used for the input data to a receive buffer of the first information processing device. (Appendix 5) The information processing system described in Appendix 4, wherein, when the second option indicates that the output results are to be output to a file and it is determined that the first MPI program includes the third MPI program but not the fourth MPI program, the first communication unit outputs the output results to a file and transmits the output results from the output file that are used for the input data to a receive buffer of the second information processing device. (Appendix 6) The information processing system described in Appendix 4 or 5, wherein the first communication unit transmits the output result to a receive buffer of the second information processing device using an RDMA (Remote Direct Memory Access) method when the second option does not indicate that the output result is to be output to a file and when it is determined that the first MPI program includes the third MPI program but does not include the fourth MPI program. (Appendix 7) the execution command includes a third option indicating whether target data to be processed by each of the plurality of MPI programs is stream data; the first computing unit inputs a predetermined amount of non-overlapping data from the target data as input data to the first MPI program based on the third option, and executes the first MPI program; the first communication unit transmits information about the third option to the second communication unit; The information processing system described in any one of Appendices 1 to 6, wherein the second calculation unit inputs a predetermined amount of non-overlapping data from the target data into the second MPI program as input data based on the third option, and executes the second MPI program. (Appendix 8) The information processing system described in any one of Appendices 1 to 7, wherein the first calculation unit is configured to generate a plurality of configuration files for each of the plurality of MPI programs, each of which sets the execution content of the plurality of MPI programs, and to be able to output each of the plurality of configuration files to an output device. (Appendix 9) An information processing device, an input section for inputting execution commands instructing execution of a plurality of MPI (Message Passing Interface) programs; a computing unit that classifies the plurality of MPI programs into a first MPI program executed in the information processing device and a second MPI program executed in another information processing device, and executes the first MPI program; a communication unit that transmits information that identifies the execution content of the second MPI program to the other information processing device. (Appendix 10) An information processing device, a communication unit that receives, from another information processing device to which an execution command instructing execution of a plurality of MPI (Message Passing Interface) programs has been input, information that specifies the execution content of a first MPI program to be executed in the information processing device among the plurality of MPI programs; an arithmetic unit that executes the first MPI program based on the information. (Appendix 11) A command execution method executed by an information processing device, comprising: Enter an execution command to run multiple MPI (Message Passing Interface) programs. classifying the plurality of MPI programs into a first MPI program executed in the information processing device and a second MPI program executed in another information processing device, and executing the first MPI program; A command execution method that transmits information that specifies the execution content of the second MPI program to the other information processing device. (Appendix 12) A command execution method executed by an information processing device, comprising: receiving, from another information processing device to which an execution command instructing execution of a plurality of MPI (Message Passing Interface) programs has been input, information specifying the execution content of a first MPI program to be executed in the information processing device among the plurality of MPI programs; A command execution method that executes the first MPI program based on the information. (Appendix 13) A command execution program that causes an information processing device to execute a command execution method, The command execution method includes: Enter an execution command to run multiple MPI (Message Passing Interface) programs. classifying the plurality of MPI programs into a first MPI program executed in the information processing device and a second MPI program executed in another information processing device, and executing the first MPI program; transmitting information specifying the execution content of the second MPI program to the other information processing device. (Appendix 14) A command execution program that causes an information processing device to execute a command execution method, The command execution method includes: receiving, from another information processing device to which an execution command instructing execution of a plurality of MPI (Message Passing Interface) programs has been input, information specifying the execution content of a first MPI program to be executed in the information processing device among the plurality of MPI programs; and executing the first MPI program based on the information. [Explanation of symbols]
[0171] 1,100 Information Processing Systems 10, 20, 30, 40 Information processing equipment 11, 31, 41 Input section 12, 22, 32, 42 calculation section 13, 21, 33, 43 Communications Department 34, 44 Storage section 301, 401 Input device 302, 402 Output device
Claims
1. A first information processing device and a second information processing device are provided, The first information processing device an input section for inputting execution commands instructing execution of a plurality of MPI (Message Passing Interface) programs; a first computing unit that classifies the plurality of MPI programs into a first MPI program executed in the first information processing device and a second MPI program executed in the second information processing device, and executes the first MPI program; a first communication unit that transmits information that identifies the execution content of the second MPI program to the second information processing device, The second information processing device a second communication unit that receives the information; a second computing unit that executes the second MPI program based on the information.
2. the execution command includes a first option indicating that a fourth MPI program is executed using an output result output by a third MPI program among the plurality of MPI programs; 2. The information processing system according to claim 1, wherein the first computing unit determines whether the first MPI program includes the third MPI program and the fourth MPI program based on the first option, and if it determines that the first MPI program includes the third MPI program and the fourth MPI program, transmits the output result to a receive buffer of the first information processing device and executes the fourth MPI program using data acquired from the receive buffer of the first information processing device as input data.
3. the first communication unit, when it is determined that the first MPI program includes the third MPI program but does not include the fourth MPI program, transmits the output result to a receive buffer of the second information processing device; The information processing system according to claim 2 , wherein the second computing unit executes the fourth MPI program using data acquired from a receive buffer of the second information processing device as input data.
4. the execution command includes a second option that specifies whether the output result is to be output to a file; 4. The information processing system according to claim 3, wherein when the first calculation unit determines that the second option indicates that the output results are to be output to a file and that the first MPI program includes the third MPI program and the fourth MPI program, the first calculation unit outputs the output results to a file and transmits the output results from the output file that are used for the input data to a receive buffer of the first information processing device.
5. 5. The information processing system according to claim 4, wherein when it is determined that the second option indicates that the output results are to be output to a file and that the first MPI program includes the third MPI program but not the fourth MPI program, the first communication unit outputs the output results to a file and transmits the output results from the output file that are used for the input data to a receive buffer of the second information processing device.
6. the execution command includes a third option indicating whether target data to be processed by each of the plurality of MPI programs is stream data; the first computing unit inputs a predetermined amount of non-overlapping data from the target data as input data to the first MPI program based on the third option, and executes the first MPI program; the first communication unit transmits information about the third option to the second communication unit; The information processing system according to any one of claims 1 to 5, wherein the second calculation unit inputs a predetermined amount of non-overlapping data from the target data into the second MPI program as input data based on the third option, and executes the second MPI program.
7. An information processing device, an input section for inputting execution commands instructing execution of a plurality of MPI (Message Passing Interface) programs; a computing unit that classifies the plurality of MPI programs into a first MPI program executed in the information processing device and a second MPI program executed in another information processing device, and executes the first MPI program; a communication unit that transmits information that identifies the execution content of the second MPI program to the other information processing device.
8. An information processing device, a communication unit that receives, from another information processing device to which an execution command instructing execution of a plurality of MPI (Message Passing Interface) programs has been input, information that specifies the execution content of a first MPI program to be executed in the information processing device among the plurality of MPI programs; a computing unit that executes the first MPI program based on the information.
9. A command execution method executed by an information processing device, comprising: Enter an execution command to run multiple MPI (Message Passing Interface) programs. classifying the plurality of MPI programs into a first MPI program executed in the information processing device and a second MPI program executed in another information processing device, and executing the first MPI program; A command execution method, comprising transmitting information specifying execution details of the second MPI program to the other information processing device.
10. A command execution method executed by an information processing device, comprising: receiving, from another information processing device to which an execution command instructing execution of a plurality of MPI (Message Passing Interface) programs has been input, information specifying the execution content of a first MPI program to be executed in the information processing device among the plurality of MPI programs; A command execution method for executing the first MPI program based on the information.
Citation Information
Patent Citations
Pull print system, data processor, data processing program, and printer
JP2011158946A
Process allocation system, process allocation method, and process allocation program
JP2012252591A
Cluster computing support for application programs
JP2020009450A