Receiving-side MPI communication sleep time determination apparatus, receiving-side MPI communication sleep time determination method, program and recording medium
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-03-13
- Publication Date
- 2026-03-03
AI Technical Summary
Existing systems for MPI communication do not calculate an appropriate sleep time, leading to inefficient CPU usage due to busy-wait states and suboptimal sleep states during data transmission.
A receiving side MPI communication sleep time determining device and method that includes an information acquisition unit, recording execution unit, and sleep time determination unit to determine optimal sleep times based on division information and reception times of divided data, calculating expected data arrival times to efficiently manage CPU usage.
Enables efficient MPI communication by determining optimal sleep times, reducing CPU occupancy and improving overall communication performance.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a receiving-side MPI communication sleep time decision device, a receiving-side MPI communication sleep time decision method, a program, and a recording medium. [Background technology]
[0002] When multiple computers are connected for processing, MPI communication is used to exchange data between the computers. During data transmission by MPI communication, a busy wait state occurs, and the CPU is occupied by the transmission process, which is a problem. One method of solving this problem is to put the CPU into a sleep state to free it up, but if the sleep state continues even after data transmission is complete, this results in a problem of poor computer efficiency. To address this problem, a system has been disclosed that selects between a busy wait state and a sleep state based on past communication time performance (Patent Document 1). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2001-117787 A Summary of the Invention [Problem to be solved by the invention]
[0004] In the system of Patent Document 1, it is possible to select the sleep state when it is advantageous to do so, but the system does not calculate an appropriate sleep time.
[0005] SUMMARY OF THE PRESENT EMBODIMENTS Accordingly, an object of the present invention is to provide a sleep time determination device capable of determining an optimal sleep time for a receiver in MPI communication. [Means for solving the problem]
[0006] In order to achieve the above object, the receiving side MPI communication sleep time determination device of the present invention comprises: The device includes an information acquisition unit, a recording execution unit, and a sleep time determination unit, the information acquisition unit acquires transmission data to be transmitted by a transmitting process executing an MPI procedure; The transmission data is a plurality of divided data obtained by dividing one data, The plurality of divided data are transmitted in chronological order, Each of the division data includes division information, the division information includes a common identification code indicating that the one data item is divided, order information indicating an order of transmission, and progress information indicating a cumulative ratio of the divided data items to the one data item, The record execution unit records the division information and the reception time of the divided data in an MPI communication history record unit; The sleep time determination unit calculates an estimated total data arrival time for all of the unreceived data in one data set to arrive based on the division information and the reception time of each of the multiple received divided data when the multiple divided data have been received and before all of the divided data have been received, and determines a sleep time until the unreceived data arrives in the receiving process based on the estimated total data arrival time.
[0007] The receiving side MPI communication sleep time determination method of the present invention includes the steps of: The method includes an information acquisition step, a recording execution step, and a sleep time determination step, The information acquisition step acquires transmission data to be transmitted by a transmitting process executing an MPI procedure; The transmission data is a plurality of divided data obtained by dividing one data, The plurality of divided data are transmitted in chronological order, Each of the division data includes division information, the division information includes a common identification code indicating that the one data item is divided, order information indicating an order of transmission, and progress information indicating a cumulative ratio of the divided data items to the one data item, The recording step includes recording the division information and the reception time of the divided data in an MPI communication history recording unit; the sleep time determination step includes, when the divided data are received in plurality and before all of the divided data are received, calculating a total data arrival predicted time at which all of the unreceived data in the one data set will arrive based on the division information and the reception time of each of the plurality of received divided data, and determining a sleep time until the unreceived data arrives in the receiving process based on the total data arrival predicted time; Each of the above steps is executed by a computer.
[0008] The program of the present invention comprises: Including an information acquisition procedure, a recording execution procedure, and a sleep time determination procedure; The information acquisition step acquires transmission data to be transmitted by a sending process by executing an MPI procedure; The transmission data is a plurality of divided data obtained by dividing one data, The plurality of divided data are transmitted in chronological order, Each of the division data includes division information, the division information includes a common identification code indicating that the one data item is divided, order information indicating an order of transmission, and progress information indicating a cumulative ratio of the divided data items to the one data item, The record execution step includes recording the division information and the reception time of the divided data in an MPI communication history recording unit; the sleep time determination step includes, when the divided data are received in plurality and before all of the divided data are received, calculating a total data arrival predicted time at which all of the unreceived data in the one data set will arrive based on the division information and the reception time of each of the plurality of received divided data, and determining a sleep time until the unreceived data arrives in the receiving process based on the total data arrival predicted time; The program causes a computer to execute each of the above procedures.
[0009] The recording medium of the present invention comprises: Including an information acquisition procedure, a recording execution procedure, and a sleep time determination procedure; The information acquisition step acquires transmission data to be transmitted by a sending process by executing an MPI procedure; The transmission data is a plurality of divided data obtained by dividing one data, The plurality of divided data are transmitted in chronological order, Each of the division data includes division information, the division information includes a common identification code indicating that the one data item is divided, order information indicating an order of transmission, and progress information indicating a cumulative ratio of the divided data items to the one data item, The record execution step includes recording the division information and the reception time of the divided data in an MPI communication history recording unit; the sleep time determination step includes, when the divided data are received in plurality and before all of the divided data are received, calculating a total data arrival predicted time at which all of the unreceived data in the one data set will arrive based on the division information and the reception time of each of the plurality of received divided data, and determining a sleep time until the unreceived data arrives in the receiving process based on the total data arrival predicted time; A computer-readable recording medium records a program for causing a computer to execute each of the above procedures. Effect of the Invention
[0010] The present invention enables efficient MPI communication. [Brief description of the drawings]
[0011] [Figure 1] FIG. 1 is a block diagram showing an example of a configuration of a receiving-side MPI communication sleep time determination device according to the first embodiment. [Diagram 2] FIG. 2 is a block diagram illustrating an example of a hardware configuration of a receiving-side MPI communication sleep time determination device according to the first embodiment. [Diagram 3] FIG. 3 is a flowchart illustrating an example of processing in the receiving-side MPI communication sleep time decision device of the first embodiment. [Figure 4] FIG. 4 is a reference diagram for explaining an example of sleep time determination in the receiving-side MPI communication sleep time determination device of the first embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0012] The embodiments of the present invention will be described with reference to the drawings. The present invention is not limited to the following embodiments. In each of the drawings, the same parts are given the same reference numerals. In addition, the explanations of each embodiment can be mutually incorporated unless otherwise specified, and the configurations of each embodiment can be combined unless otherwise specified.
[0013] [Embodiment 1] Fig. 1 is a block diagram showing an example of the configuration of a receiving-side MPI communication sleep time determination device 10 (hereinafter also referred to as "this device") of this embodiment. As shown in Fig. 1, this device 10 includes an information acquisition unit 11, a record execution unit 12, and a sleep time determination unit 13. Furthermore, although not shown, this device 10 may also include, for example, an input unit, an output unit, a display unit, and / or a memory unit. The memory unit may function as an MPI communication history recording unit described below.
[0014] The device 10 may be, for example, a single device including each of the above-mentioned units, or a device to which each of the above-mentioned units can be connected via a communication line network. The device 10 may be connected to an external device described later via the communication line network. The communication line network is not particularly limited, and a known network may be used, for example, wired or wireless. Examples of the communication line network include an Internet line, a World Wide Web (WWW), a telephone line, a Local Area Network (LAN), a Storage Area Network (SAN), a Delay Tolerant Networking (DTN), a Low Power Wide Area (LPWA), and a Local 5G (L5G). Examples of wireless communication include Wi-Fi (registered trademark), Bluetooth (registered trademark), a Local 5G, and a LPWA. Examples of the wireless communication may include a form in which each device directly communicates with each other (Ad Hoc communication), an infrastructure (infrastructure communication), and an indirect communication via an access point. The device 10 may be incorporated into, for example, a server of a system. The device 10 may be, for example, a personal computer (PC, for example, desktop type or notebook type) on which the program of the present invention is installed, a smartphone, a tablet terminal, etc. Furthermore, the device 10 may be in the form of cloud computing or edge computing, for example, in which at least one of the units is on a server and the other units are on a terminal.
[0015] 2 illustrates a block diagram of a hardware configuration of the present device 10. The present device 10 includes, for example, a central processing unit (CPU, GPU, etc.) 101, a memory 102, a bus 103, a storage device 104, an input device 105, an output device 106, a communication device 107, etc. Each part of the present device 10 is connected to each other via the bus 103 by each interface (I / F).
[0016] The central processing unit 101 cooperates with other components through a controller (such as a system controller or an I / O controller) and controls the entire device 10. In the device 10, the central processing unit 101 executes, for example, the program of the present invention or other programs, and reads and writes various information. Specifically, for example, the central processing unit 101 functions as an information acquisition unit 11, a record execution unit 12, and a sleep time determination unit 13. In the case where the device 10 includes the output unit, the central processing unit 101 may function as the output unit. It may also function as an MPI communication history record unit described later. The device 10 may include, as a computing device, other computing devices such as a CPU, a GPU (Graphics Processing Unit), an APU (Accelerated Processing Unit), or a combination of a CPU and these.
[0017] The bus 103 can also be connected to, for example, an external device. Examples of the external device include a user terminal, an external storage device (external database, etc.), a printer, an external input device, an external display device, an external imaging device, etc. The present device 10 can be connected to an external network (the above-mentioned communication line network) by, for example, a communication device 107 connected to the bus 103, and can also be connected to other devices via the external network.
[0018] An example of the memory 102 is a main memory (primary storage device). When the central processing unit 101 performs processing, the memory 102 reads various operation programs, such as the program of the present invention, stored in the storage device 104 described below, and the central processing unit 101 receives data from the memory 102 and executes the program. The main memory is, for example, a RAM (random access memory). The memory 102 may also be, for example, a ROM (read only memory).
[0019] The storage device 104 is also called an auxiliary storage device, for example, in contrast to the main memory (primary storage device). As described above, the storage device 104 stores an operation program including the program of the present invention. The storage device 104 may be, for example, a combination of a recording medium and a drive for reading and writing data from and to the recording medium. The recording medium is not particularly limited, and may be, for example, an internal or external type, such as a HD (hard disk), a CD-ROM, a CD-R, a CD-RW, an MO, a DVD, a flash memory, or a memory card. The storage device 104 may be, for example, a hard disk drive (HDD) in which a recording medium and a drive are integrated, and a solid state drive (SSD). When the device 10 includes the storage unit, for example, the storage device 104 functions as the storage unit. The storage unit can store, for example, division information, reception time of the divided data, and MPI procedure information, which will be described later.
[0020] In the present device 10, the memory 102 and the storage device 104 can also store various information such as log information, information acquired from an external database (not shown) or an external device, information generated by the present device 10, and information used when the present device 10 executes processing. In this case, the memory 102 and the storage device 104 may store, for example, the division information. Note that at least a portion of the information may be stored, for example, in an external server other than the memory 102 and the storage device 104, or may be stored in a distributed manner in multiple terminals using block chain technology or the like.
[0021] The device 10 further includes, for example, an input device 105 and an output device 106. Examples of the input device 105 include pointing devices such as a touch panel, a track pad, and a mouse; a keyboard; imaging means such as a camera and a scanner; a card reader such as an IC card reader and a magnetic card reader; and audio input means such as a microphone. Examples of the output device 106 include a display device such as an LED display and a liquid crystal display; an audio output device such as a speaker; a printer; and the like. In the first embodiment, the input device 105 and the output device 106 are configured separately, but the input device 105 and the output device 106 may be configured as one unit, such as a touch panel display.
[0022] Next, an example of the receiving-side MPI communication sleep time determination method of this embodiment will be described with reference to the flowchart in Fig. 3. The receiving-side MPI communication sleep time determination method of this embodiment is implemented as follows, for example, using the present device 10 of Fig. 1 or Fig. 2. Note that the receiving-side MPI communication sleep time determination method of this embodiment is not limited to use of the present device 10 of Fig. 1 or Fig. 2.
[0023] MPI (Message Passing Interface) is a standard for using parallel computing. MPI is used for communication between multiple computers. When communication is performed using MPI, the CPU is occupied by communication processing as a busy wait state during communication. In order to release the CPU during communication and make effective use of the CPU, there is a method of putting it into sleep state. However, since processing after the arrival of data related to data transmission cannot be performed during sleep, if the sleep state is entered after data reception, the performance of the MPI program will be adversely affected as a result. Therefore, in order to perform communication processing efficiently, it is necessary to adjust the sleep state time to an appropriate length. In the following, a method for determining the MPI communication sleep time on the receiving side using the present invention will be explained. As a prerequisite, it is preferable that the sending side and the receiving side perform a handshake before performing communication processing to synchronize. By doing so, even if the communication content is exactly the same, the communication waiting time does not change significantly. In addition, it is preferable that the data transfer itself after the execution of the MPI procedure is executed by dedicated hardware. Furthermore, it is preferable that multiple MPI procedures are not executed at the same time. In other words, it is preferable that other MPI procedures are not executed until the sending process or receiving process of the executed MPI procedure is completed. The receiver-side MPI communication sleep time determination method of this invention is premised on the assumption that MPI transmission is performed by dividing the transmission data, and that the sender and receiver perform a handshake before performing communication processing, but at that point the sender cannot grasp the data size of the transmission data, and the receiver cannot grasp the total size of the transmission data.
[0024] First, the information acquisition unit 11 acquires transmission data to be transmitted by a transmitting process executing an MPI procedure (S1, information acquisition step). The process is a program executing processing, and the transmitting process is a program on which the transmitting side is executing processing. As described above, the transmission data is a plurality of divided data pieces obtained by dividing one piece of data. The plurality of divided data pieces are transmitted in chronological order. Each of the divided data pieces includes division information. The division information includes a common identification code indicating that the one piece of data is divided, order information indicating the order of transmission, and progress information indicating the cumulative proportion of the divided data to the one piece of data. The transmission data may also include MPI procedure information in an MPI procedure by the transmitting process.
[0025] Next, the record execution unit 12 records the division information and the reception time of the divided data in the MPI communication history recording unit (S2, record execution step). The MPI communication history recording unit is provided, for example, in the central processing unit of the present device 10, but is not limited to this and may be provided, for example, in the memory unit of the present device 10 or in an external storage device. The record execution unit 12 may record the division information and the MPI procedure information in the MPI communication history recording unit as one record for each data of the transmitted data.
[0026] Next, the sleep time determination unit 13 calculates a total data arrival expected time at which all of the unreceived data in one data arrives based on the division information and the reception time of each of the divided data of the multiple receptions before all of the divided data are received, and determines a sleep time until the unreceived data arrives in the receiving process based on the total data arrival expected time (S3, sleep time determination step). The sleep time determination unit may calculate an average transmission time per unit data amount based on the division information and the reception time of each of the divided data of the multiple receptions, calculate the total data arrival expected time based on the average transmission time, and determine the sleep time based on the total data arrival expected time. The sleep time determination unit 13 may determine the sleep time by using a correction coefficient for the average transmission time. The correction coefficient is, for example, a coefficient for preventing the sleep time from exceeding the reception time. In determining the sleep time, the correction coefficient may be, for example, addition, division, multiplication, and division, or a combination of these. The correction coefficient is a coefficient that is arbitrarily set so that the sleep time does not exceed the MPI communication waiting time, and may be, for example, 0.8, which is multiplied by the sleep time calculated based on the above calculation to determine the sleep time. Note that the correction coefficient is not limited to 0.8, and may be, for example, 0.7 or 0.9, and may be arbitrarily set.
[0027] The sleep time determination unit 13 may refer to the past MPI communication history record unit when starting a new MPI procedure of the sending process, and determine whether the MPI procedure information in the new MPI procedure matches the past MPI procedure information in part or in whole, and if they match, may determine an intermediate-stage sleep time in the intermediate reception stage before the receiving process predicts the sleep time, based on the reception time in the past MPI procedure information. The intermediate-stage sleep time may be each sleep time when the receiving process repeats sleep in the intermediate reception stage. For example, when the MPI transmission in the new MPI procedure is to transmit one data by dividing it into 20 pieces of 5%, the sleep time determination unit 13 may determine the intermediate-stage sleep time to be 1 / 20 of the time required for transmitting the matching past MPI procedure, and repeat the short sleep time. In addition, when multiple pieces of divided data are received during the intermediate reception stage, the sleep time determination unit 13 may calculate an estimated total data arrival time for all of the unreceived data in one data item to arrive based on the division information and the reception time of each of the multiple received divided data items for the remaining MPI transmissions, and determine a sleep time until the unreceived data arrives in the receiving process based on the estimated total data arrival time.
[0028] When the entirety of the one data set is received after the end of the mid-stage sleep time, the record execution unit 12 may replace the matched past MPI procedure data with the MPI procedure information of the one data set. Also, when the entirety of the one data set is received before the end of the mid-stage sleep time, the record execution unit may delete the matched past MPI procedure data.
[0029] Below is an example of a specific process of the receiving-side MPI communication sleep time determination method using the present device 10. Note that the following explanation is an example of a specific flow, and as described above, the present device 10 and the receiving-side MPI communication sleep time determination method of this embodiment are not limited to the following explanation, and the receiving-side MPI communication sleep time determination method of this embodiment is not limited to the use of the present device 10.
[0030] First, the information acquisition unit 11 acquires the transmission data that the sending process executes the MPI procedure and sends. This transmission data is obtained by dividing one data into 20 pieces. At the time of transmission, information on the progress of MPI transmission is transmitted from the sending side to the receiving side as shown in FIG. 4A. Note that in FIG. 4, three pieces of progress information are described together, but each piece of progress information is transmitted together with the divided transmission data. Next, the record execution unit 12 records the division information and the reception time of the divided data in the MPI communication history recording unit based on the progress information in FIG. 4A. Note that the result of the recording is as shown in FIG. 4B. Then, the sleep time determination unit 13 determines the sleep time based on the information in FIG. 4B as follows. First, the total estimated transmission time is calculated from the arrival times and progress of the first and second arrivals (time required for transmission (22.542 seconds - 21.012 seconds) / progress (10% - 5%) = 30.6 seconds). Similarly, from the second and third receptions, the total estimated transmission time is calculated (time required for transmission (24.614 seconds - 22.542 seconds) / progress (15 percent - 10 percent) = 41.44 seconds). The average of these is multiplied by the percentage of the remaining data to the total plus 5 percent ((30.6 seconds + 41.44 seconds) / 2 x (100 percent - 15 percent + 5 percent) = 32.418 seconds). As a result of this calculation, sleep time determination unit 13 determines the sleep time to be 32.418 seconds. Note that the above calculation is an example, and is not limited to this. Also, for example, short sleeps may be repeated until the first three receptions, and after the determination, the sleep time may be set to sleep all at once.
[0031] The receiver-side MPI communication sleep time decision device of this embodiment can decide an optimal receiver-side sleep time in MPI communication, thereby enabling efficient MPI communication.
[0032] [Embodiment 2] The program of this embodiment is a program for causing a computer to execute each step of the receiving-side MPI communication sleep time determination method described above. Specifically, the program of this embodiment is a program for causing a computer to execute, for example, an information acquisition procedure, a record execution procedure, and a sleep time determination procedure.
[0033] The information acquisition step acquires transmission data to be transmitted by a sending process by executing an MPI procedure; The transmission data is a plurality of divided data obtained by dividing one data, The plurality of divided data are transmitted in chronological order, Each of the division data includes division information, the division information includes a common identification code indicating that the one data item is divided, order information indicating an order of transmission, and progress information indicating a cumulative ratio of the divided data items to the one data item, The record execution step includes recording the division information and the reception time of the divided data in an MPI communication history recording unit; The sleep time determination procedure calculates a total data arrival predicted time at which all of the unreceived data in one data set will arrive based on the division information and the reception time of each of the multiple received divided data when the multiple divided data have been received and before all of the divided data have been received, and determines a sleep time until the unreceived data arrives in the receiving process based on the total data arrival predicted time.
[0034] The program of the present embodiment can also be said to be a program that causes a computer to function as, for example, an information acquisition procedure, a record execution procedure, and a sleep time determination procedure.
[0035] The program of this embodiment can be implemented by using the description of the receiving-side MPI communication sleep time determination device and receiving-side MPI communication sleep time determination method of the present invention. In each of the steps, for example, the "step" can be read as "processing". In addition, the program of this embodiment may be recorded in a computer-readable recording medium. The recording medium is, for example, a non-transitory computer-readable storage medium. The recording medium is not particularly limited, and examples thereof include a random access memory (RAM), a read-only memory (ROM), a hard disk (HD), a flash memory (for example, a solid state drive (SSD), a USB flash memory, an SD / SDHC card, etc.), an optical disk (for example, a CD-R / CD-RW, a DVD-R / DVD-RW, a BD-R / BD-RE, etc.), a magneto-optical disk (MO), a floppy (registered trademark) disk (FD), etc. In addition, the program of this embodiment (for example, also referred to as a programming product or a program product) may be in a form distributed from an external computer, for example. The "distribution" may be, for example, distribution via a communication network or distribution via a device connected by a wire. The program of the present embodiment may be installed and executed in the device to which it is distributed, or may be executed without being installed.
[0036] Although the present invention has been described above with reference to the embodiment, the present invention is not limited to the above embodiment. Various modifications that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
[0037] <Additional Notes> A part or all of the above-described embodiments can be described as follows, but is not limited to the following. (Appendix 1) The device includes an information acquisition unit, a recording execution unit, and a sleep time determination unit, the information acquisition unit acquires transmission data to be transmitted by a transmitting process executing an MPI procedure; The transmission data is a plurality of divided data obtained by dividing one data, The plurality of divided data are transmitted in chronological order, Each of the division data includes division information, the division information includes a common identification code indicating that the one data item is divided, order information indicating an order of transmission, and progress information indicating a cumulative ratio of the divided data items to the one data item, The record execution unit records the division information and the reception time of the divided data in an MPI communication history record unit; the sleep time determination unit, when the divided data are received in plurality and before all of the divided data are received, calculates a total data arrival predicted time at which all of the unreceived data in the one data will arrive based on the division information and the reception time of each of the plurality of received divided data, and determines a sleep time until the unreceived data arrives in the receiving process based on the total data arrival predicted time. A receiver-side MPI communication sleep time determination device. (Appendix 2) the sleep time determination unit calculates an average transmission time per unit data amount based on the division information and the reception time of each of the plurality of received divided data, calculates the total data arrival expected time based on the average transmission time, and determines the sleep time based on the total data arrival expected time. 2. The receiver-side MPI communication sleep time determination device according to claim 1. (Appendix 3) The sleep time determination unit determines the sleep time by using a correction coefficient for the average transmission time. 3. The receiver-side MPI communication sleep time determination device according to claim 2. (Appendix 4) the transmission data includes MPI procedure information in an MPI procedure by the sending process; the recording execution unit records the division information and the MPI procedure information in the MPI communication history recording unit as one record for each piece of data; the sleep time determination unit, when starting a new MPI procedure of the sending process, refers to the past MPI communication history recording unit and determines whether or not the MPI procedure information in the new MPI procedure matches part or all of the past MPI procedure information, and if they match, determines an intermediate stage sleep time at an intermediate stage of reception before the receiving process predicts the sleep time based on the reception time in the past MPI procedure information. 2. The receiver-side MPI communication sleep time determination device according to claim 1. (Appendix 5) The intermediate stage sleep time is a sleep time when the receiving process repeats sleep in the intermediate stage of reception. 5. The receiver-side MPI communication sleep time determination device according to claim 4. (Appendix 6) When the entirety of the one data set is received after the end of the intermediate stage sleep time, the record execution unit replaces the matched past MPI procedure data with the MPI procedure information of the one data set. 6. The receiving-side MPI communication sleep time determination device according to claim 4 or 5. (Appendix 7) The record execution unit deletes the matching past MPI procedure data when the entire piece of data is received before the end of the intermediate stage sleep time. 7. A receiver-side MPI communication sleep time determination device according to any one of appendixes 4 to 6. (Appendix 8) The method includes an information acquisition step, a recording execution step, and a sleep time determination step, The information acquisition step acquires transmission data to be transmitted by a transmitting process executing an MPI procedure; The transmission data is a plurality of divided data obtained by dividing one data, The plurality of divided data are transmitted in chronological order, Each of the division data includes division information, the division information includes a common identification code indicating that the one data item is divided, order information indicating an order of transmission, and progress information indicating a cumulative ratio of the divided data items to the one data item, The recording step includes recording the division information and the reception time of the divided data in an MPI communication history recording unit; the sleep time determination step includes, when the divided data are received in plurality and before all of the divided data are received, calculating a total data arrival predicted time at which all of the unreceived data in the one data set will arrive based on the division information and the reception time of each of the plurality of received divided data, and determining a sleep time until the unreceived data arrives in the receiving process based on the total data arrival predicted time; Each of the steps is executed by a computer. How to determine the receiver's MPI communication sleep time. (Appendix 9) The sleep time determination step includes calculating an average transmission time per unit data amount based on the division information and the reception time of each of the plurality of received divided data, calculating the total data arrival expected time based on the average transmission time, and determining the sleep time based on the total data arrival expected time. Each of the steps is executed by a computer. The receiver-side MPI communication sleep time determination method according to appendix 8. (Appendix 10) The sleep time determining step determines the sleep time using a correction factor for the average transmission time; Each of the steps is executed by a computer. The method for determining the receiver-side MPI communication sleep time according to claim 9. (Appendix 11) the transmission data includes MPI procedure information in an MPI procedure by the sending process; the recording step includes recording the division information and the MPI procedure information in the MPI communication history recording unit as one record for each piece of data; the sleep time determination step, when starting a new MPI procedure of the sending process, refers to the past MPI communication history record unit, and determines whether the MPI procedure information in the new MPI procedure matches the past MPI procedure information in part or in whole, and if they match, determines an intermediate stage sleep time at an intermediate stage of reception before the receiving process predicts the sleep time based on the reception time in the past MPI procedure information; Each of the steps is executed by a computer. The receiver-side MPI communication sleep time determination method according to appendix 8. (Appendix 12) The intermediate stage sleep time is a sleep time when the receiving process repeats sleep in the intermediate stage of reception. The method for determining the receiver-side MPI communication sleep time according to claim 11. (Appendix 13) the recording and executing step, when the entirety of the one data set is received after the end of the intermediate stage sleep time, replaces the matching past MPI procedure data with the MPI procedure information of the one data set; Each of the steps is executed by a computer. 13. The method for determining a receiving-side MPI communication sleep time according to claim 11 or 12. (Appendix 14) The recording and executing step deletes the matching past MPI procedure data when the entire one data is received before the end of the intermediate stage sleep time, Each of the steps is executed by a computer. 14. A method for determining a receiver-side MPI communication sleep time according to any one of appendices 11 to 13. (Appendix 15) Including an information acquisition procedure, a recording execution procedure, and a sleep time determination procedure; The information acquisition step acquires transmission data to be transmitted by a sending process by executing an MPI procedure; The transmission data is a plurality of divided data obtained by dividing one data, The plurality of divided data are transmitted in chronological order, Each of the division data includes division information, the division information includes a common identification code indicating that the one data item is divided, order information indicating an order of transmission, and progress information indicating a cumulative ratio of the divided data items to the one data item, The record execution step includes recording the division information and the reception time of the divided data in an MPI communication history recording unit; the sleep time determination step includes, when the divided data are received in plurality and before all of the divided data are received, calculating a total data arrival predicted time at which all of the unreceived data in the one data set will arrive based on the division information and the reception time of each of the plurality of received divided data, and determining a sleep time until the unreceived data arrives in the receiving process based on the total data arrival predicted time; A program for causing a computer to execute each of the above procedures. (Appendix 16) the sleep time determination step includes calculating an average transmission time per unit data amount based on the division information and the reception time of each of the plurality of received divided data, calculating the total data arrival expected time based on the average transmission time, and determining the sleep time based on the total data arrival expected time; 16. The program according to claim 15, for causing a computer to execute each of the steps. (Appendix 17) the step of determining the sleep time includes determining the sleep time using a correction factor for the average transmission time; 17. The program according to claim 16, for causing a computer to execute each of the steps. (Appendix 18) the transmission data includes MPI procedure information in an MPI procedure by the sending process; the recording and execution procedure includes recording the division information and the MPI procedure information in the MPI communication history recording unit as one record for each piece of data; the sleep time determination step, when starting a new MPI procedure of the sending process, refers to the past MPI communication history record unit, and determines whether the MPI procedure information in the new MPI procedure matches the past MPI procedure information in part or in whole, and if they match, determines an intermediate stage sleep time at an intermediate stage of reception before the receiving process predicts the sleep time based on the reception time in the past MPI procedure information; 16. The program according to claim 15, for causing a computer to execute each of the steps. (Appendix 19) The intermediate stage sleep time is a sleep time when the receiving process repeats sleep in the intermediate stage of reception. 19. The program according to claim 18. (Appendix 20) the record execution procedure, when the entirety of the one data set is received after the end of the intermediate stage sleep time, replaces the matching past MPI procedure data with the MPI procedure information of the one data set; 20. The program according to claim 18 or 19, for causing a computer to execute each of the steps. (Appendix 21) the record execution procedure deletes the matching past MPI procedure data if the entire one data is received before the end of the mid-stage sleep time; 21. The program according to any one of appendices 18 to 20, for causing a computer to execute each of the procedures. (Appendix 22) Including an information acquisition procedure, a recording execution procedure, and a sleep time determination procedure; The information acquisition step acquires transmission data to be transmitted by a sending process by executing an MPI procedure; The transmission data is a plurality of divided data obtained by dividing one data, The plurality of divided data are transmitted in chronological order, Each of the division data includes division information, the division information includes a common identification code indicating that the one data item is divided, order information indicating an order of transmission, and progress information indicating a cumulative ratio of the divided data items to the one data item, The record execution step includes recording the division information and the reception time of the divided data in an MPI communication history recording unit; the sleep time determination step includes, when the divided data are received in plurality and before all of the divided data are received, calculating a total data arrival predicted time at which all of the unreceived data in the one data set will arrive based on the division information and the reception time of each of the plurality of received divided data, and determining a sleep time until the unreceived data arrives in the receiving process based on the total data arrival predicted time; A computer-readable recording medium having recorded thereon a program for causing a computer to execute each of the above procedures. (Appendix 23) the sleep time determination step includes calculating an average transmission time per unit data amount based on the division information and the reception time of each of the plurality of received divided data, calculating the total data arrival expected time based on the average transmission time, and determining the sleep time based on the total data arrival expected time; 23. A computer-readable recording medium according to claim 22, having a program recorded thereon for causing a computer to execute each of the procedures described above. (Appendix 24) the step of determining the sleep time includes determining the sleep time using a correction factor for the average transmission time; 24. A computer-readable recording medium according to claim 23, having a program recorded thereon for causing a computer to execute each of the procedures. (Appendix 25) the transmission data includes MPI procedure information in an MPI procedure by the sending process; the recording and execution procedure includes recording the division information and the MPI procedure information in the MPI communication history recording unit as one record for each piece of data; the sleep time determination step, when starting a new MPI procedure of the sending process, refers to the past MPI communication history record unit, and determines whether the MPI procedure information in the new MPI procedure matches the past MPI procedure information in part or in whole, and if they match, determines an intermediate stage sleep time at an intermediate stage of reception before the receiving process predicts the sleep time based on the reception time in the past MPI procedure information; 23. A computer-readable recording medium according to claim 22, having a program recorded thereon for causing a computer to execute each of the procedures described above. (Appendix 26) The intermediate stage sleep time is a sleep time when the receiving process repeats sleep in the intermediate stage of reception. 26. A recording medium as described in appended claim 25. (Appendix 27) the record execution procedure, when the entirety of the one data set is received after the end of the intermediate stage sleep time, replaces the matching past MPI procedure data with the MPI procedure information of the one data set; 27. A computer-readable recording medium according to claim 25 or 26, having a program recorded thereon for causing a computer to execute each of the procedures. (Appendix 28) the record execution procedure deletes the matching past MPI procedure data if the entire one data is received before the end of the mid-stage sleep time; A computer-readable recording medium according to any one of appendices 25 to 27, having a program recorded thereon for causing a computer to execute each of the procedures. [Industrial Applicability]
[0038] According to the present invention, it is possible to determine an optimal sleep time for the receiver in MPI communication, thereby enabling efficient MPI communication. [Explanation of symbols]
[0039] 10. Receiver MPI communication sleep time determination device 11 Information acquisition department 12 Recording Execution Department 13 Sleep time determination unit 101 Central Processing Unit 102 Memory 103 Bus 104 Storage device 105 Input Device 106 Output Device 107 Communication Devices
Claims
1. The information acquisition unit, the recording execution unit, and the sleep time determination unit are included, the information acquisition unit acquires transmission data to be transmitted by a transmitting process executing an MPI procedure; the transmission data is a plurality of divided data obtained by dividing one data; the plurality of divided data are transmitted in chronological order, Each of the division data includes division information, the division information includes a common identification code indicating that the data is divided, order information indicating an order of transmission, and progress information indicating a cumulative ratio of the divided data to the data; the recording execution unit records the division information and the reception time of the divided data in an MPI communication history recording unit; the sleep time determination unit calculates an estimated total data arrival time at which all of the unreceived data in the one data set will arrive, based on the division information and the reception time of each of the plurality of received divided data sets, when the plurality of divided data sets have been received and before all of the divided data sets have been received, and determines a sleep time until the unreceived data in the receiving process arrives, based on the estimated total data arrival time. A receiver-side MPI communication sleep time determination device.
2. the sleep time determination unit calculates an average transmission time per unit data amount based on the division information and the reception time of each of the plurality of received divided data, calculates the estimated time of arrival of all data based on the average transmission time, and determines the sleep time based on the estimated time of arrival of all data.
2. The receiving-side MPI communication sleep time determination device according to claim 1.
3. the sleep time determination unit determines the sleep time using a correction coefficient for the average transmission time.
3. The receiving-side MPI communication sleep time determining device according to claim 2.
4. the transmission data includes MPI procedure information in an MPI procedure by the sending process; the recording execution unit records the division information and the MPI procedure information in the MPI communication history recording unit as one record for each piece of data; the sleep time determination unit, when starting a new MPI procedure of the sending process, refers to the past MPI communication history recording unit and determines whether the MPI procedure information in the new MPI procedure matches the past MPI procedure information in part or in whole, and if they match, determines an intermediate stage sleep time at an intermediate stage of reception before the receiving process predicts the sleep time based on the reception time in the past MPI procedure information; 2. The receiving-side MPI communication sleep time determination device according to claim 1.
5. The intermediate stage sleep time is a sleep time when the receiving process repeatedly sleeps during the intermediate stage of reception.
5. The receiving-side MPI communication sleep time determining device according to claim 4.
6. When the entirety of the one data set is received after the end of the intermediate sleep time, the record execution unit replaces the matched past MPI procedure data with the MPI procedure information of the one data set.
5. The receiving-side MPI communication sleep time determining device according to claim 4.
7. the record execution unit deletes the matched past MPI procedure data if the entire piece of data is received before the end of the intermediate stage sleep time.
5. The receiving-side MPI communication sleep time determining device according to claim 4.
8. The method includes an information acquisition step, a recording execution step, and a sleep time determination step, The information acquisition step acquires transmission data to be transmitted by a transmitting process executing an MPI procedure; the transmission data is a plurality of divided data obtained by dividing one data; the plurality of divided data are transmitted in chronological order, Each of the division data includes division information, the division information includes a common identification code indicating that the data is divided, order information indicating an order of transmission, and progress information indicating a cumulative ratio of the divided data to the data; the recording execution step records the division information and the reception time of the divided data in an MPI communication history recording unit; the sleep time determination step, when the plurality of divided data sets have been received and before all of the divided data sets have been received, calculates an estimated total data arrival time for all of the unreceived data sets in the one data set based on the division information and the reception time of each of the plurality of received divided data sets, and determines a sleep time until the unreceived data sets arrive in the receiving process based on the estimated total data arrival time; Each of the steps is executed by a computer. A method for determining a receiver-side MPI communication sleep time.
9. A method for detecting a sleep time, comprising: an information acquisition procedure; a recording execution procedure; and a sleep time determination procedure; The information acquisition procedure acquires transmission data to be transmitted by a transmitting process by executing an MPI procedure; the transmission data is a plurality of divided data obtained by dividing one data; the plurality of divided data are transmitted in chronological order, Each of the division data includes division information, the division information includes a common identification code indicating that the data is divided, order information indicating an order of transmission, and progress information indicating a cumulative ratio of the divided data to the data; the recording execution step includes recording the division information and the reception time of the divided data in an MPI communication history recording unit; the sleep time determination step includes, when a plurality of the divided data sets are received and before all of the divided data sets are received, calculating an estimated total data arrival time at which all of the unreceived data sets in the one data set will arrive based on the division information and the reception time of each of the plurality of received divided data sets, and determining a sleep time until the unreceived data sets arrive in the receiving process based on the estimated total data arrival time; A program for causing a computer to execute each of the above procedures.
10. A method for detecting a sleep time, comprising: an information acquisition step; a recording execution step; and a sleep time determination step; The information acquisition procedure acquires transmission data to be transmitted by a transmitting process by executing an MPI procedure; the transmission data is a plurality of divided data obtained by dividing one data; the plurality of divided data are transmitted in chronological order, Each of the division data includes division information, the division information includes a common identification code indicating that the data is divided, order information indicating an order of transmission, and progress information indicating a cumulative ratio of the divided data to the data; the recording execution step includes recording the division information and the reception time of the divided data in an MPI communication history recording unit; the sleep time determination step includes, when a plurality of the divided data sets are received and before all of the divided data sets are received, calculating an estimated total data arrival time at which all of the unreceived data sets in the one data set will arrive based on the division information and the reception time of each of the plurality of received divided data sets, and determining a sleep time until the unreceived data sets arrive in the receiving process based on the estimated total data arrival time; A computer-readable recording medium that records a program for causing a computer to execute each of the above procedures.