Abstract:
A network evaluation device evaluates a communication state of an information processing apparatus including a plurality of processors which communicate with one another and which execute a program. The network evaluation device includes: a memory configured to store a network evaluation program; and a processor configured to execute a process based on the network evaluation program in the memory. The process includes: obtaining first communication processing time between the plurality of processors while the plurality of processors are not executing the program; recording the first communication processing time; obtaining second communication processing time between the plurality of processors while the plurality of processors are executing the program; comparing the first communication processing time with the second communication processing time; and outputting a time difference between the first communication processing time and the second communication processing time.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
       [0001]    This application is a continuation application of International Application PCT/JP2010/005232 filed on Aug. 25, 2010 and designated the U.S., the entire contents of which are incorporated herein by reference. 
     
    
     FIELD 
       [0002]    The technology disclosed herein relates to a network evaluation device that evaluates a communication state between a plurality of processors in an information processing apparatus, the plurality of processors performing communication with one other and each executing a program, a method for evaluating a network, and a recording medium on which a network evaluation program is recorded. 
       BACKGROUND 
       [0003]    Currently, an information processing apparatus is known in which a plurality of processors as arithmetic processing devices perform communication with one other and each execute a program to execute a desired calculation process. When the program is to be executed by the plurality of processors, a process for exchanging, through communication processing, data to execute the desired calculation process is performed between the plurality of processors. Data communication processing performed between the plurality of processors takes a certain period of time. Processing time for communication between the plurality of processors is called communication overhead. 
         [0004]    In order to increase the speed of the desired calculation process, it is desirable to suppress the communication overhead as much as possible. However, the communication overhead is affected not only by minimum processing time that is taken to exchange data between the plurality of processors but also by the degree of congestion of a communication network and the communication beginning timing of each processor. Therefore, it is difficult to grasp how much the communication overhead can be suppressed. 
         [0005]    On the other hand, in order to suppress the degree of congestion of the communication network or change the communication beginning time of each processor, a change in the algorithm of the calculation process may be desired. When the algorithm of the calculation process is changed, the setting of a system may be desired to be changed again, and therefore a workload may increase with an increase in the speed of the calculation process. Therefore, it is desirable to efficiently estimate the effect and the limit of an increase in the speed of the calculation process realized by a change to the algorithm. 
         [0006]    However, the degree of an increase in the speed of the calculation process obtained by suppressing the communication overhead and changing the algorithm largely depends on the experience and the skill of an operator. Therefore, even if the algorithm is simply changed, it is difficult to grasp the effect and the limit of an increase in the speed of the calculation process realized by the change in the algorithm. In addition, when the number of processors used is increased to perform a large-scale calculation process, it is also difficult to grasp the limit of an increase in the speed of the calculation process. 
         [0007]    Japanese Laid-open Patent Publication Nos. 10-98468, 05-250339 and 2004-13567 are known as examples of the related art. 
       SUMMARY 
       [0008]    According to an aspect of the embodiments, a network evaluation device that evaluates a communication state of an information processing apparatus including a plurality of processors which communicate with one another and which execute a program. The network evaluation device includes: a memory configured to store a network evaluation program; and a processor coupled to the memory and configured to execute a process based on the network evaluation program in the memory. The process includes: obtaining first communication processing time between the plurality of processors while the plurality of processors are not executing the program; recording the first communication processing time obtained by the obtaining; obtaining second communication processing time between the plurality of processors while the plurality of processors are executing the program; comparing the first communication processing time recorded by the recording with the second communication processing time obtained by the obtaining of the second communication processing time; and outputting a time difference between the first communication processing time and the second communication processing time. 
         [0009]    The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims. 
         [0010]    It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention. 
     
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0011]      FIG. 1  is a diagram illustrating an outline of an information processing apparatus including a network evaluation device according to an embodiment; 
           [0012]      FIG. 2  is a diagram illustrating a flowchart illustrating a process performed by the network evaluation device according to the embodiment; 
           [0013]      FIG. 3  is a diagram illustrating a flowchart illustrating a process performed by the network evaluation device according to the embodiment; 
           [0014]      FIG. 4  is a diagram illustrating a flowchart illustrating a process performed by the network evaluation device according to the embodiment; 
           [0015]      FIG. 5  is a diagram illustrating a flowchart illustrating a process performed by the network evaluation device according to the embodiment; 
           [0016]      FIG. 6  is a diagram illustrating a flowchart illustrating a process performed by the network evaluation device according to the embodiment; 
           [0017]      FIG. 7  is a diagram illustrating an example of an ideal communication processing time recording table according to the embodiment; 
           [0018]      FIG. 8  illustrates an example of a method for calculating ideal communication processing time and communication processing time according to the embodiment; 
           [0019]      FIG. 9  is a diagram illustrating communication processing times and ideal communication processing times obtained by the network evaluation device according to the embodiment; 
           [0020]      FIG. 10  is a diagram illustrating a relationship between the number of arithmetic devices (the number of nodes) involved in communication and time taken to perform communication processing in a communication processing software library according to an MPI standard in the network evaluation device according to the embodiment; 
           [0021]      FIG. 11  is a diagram illustrating a relationship between a communication data length and the time taken to perform the communication processing in the communication processing software library according to the MPI standard in the network evaluation device according to the embodiment; and 
           [0022]      FIG. 12  is a schematic diagram illustrating an approach to calculating a reduction target value of communication overhead in the network evaluation device according to the embodiment. 
       
    
    
     DESCRIPTION OF EMBODIMENTS 
       [0023]    A network evaluation device  100 , a method for evaluating a network, a network evaluation program, and a recording medium on which the network evaluation program is recorded according to an embodiment of the technology disclosed herein are described hereinafter. However, the technology disclosed herein is not limited to each embodiment. 
         [0024]    In  FIGS. 1 to 12 , the network evaluation device  100 , the method for evaluating a network, and the network evaluation program according to the embodiment are described. 
         [0025]      FIG. 1  is a diagram illustrating the schematic configuration of the network evaluation device  100  included in an information processing apparatus  1000  according to the embodiment. 
         [0026]    The information processing apparatus  1000  includes an arithmetic device  10 A, an arithmetic device  10 B, a network  15 , a local area network (LAN)  16 , a monitor  17 , and the network evaluation device  100 . The arithmetic device  10 A, the arithmetic device  10 B, the monitor  17 , and the network evaluation device  100  are coupled to one another through the network  15 . The arithmetic device  10 A and the arithmetic device  10 B have the same configuration conditions. 
         [0027]    The arithmetic device  10 A includes a central processing unit (CPU)  11 A, a timer  12 A, a random access memory (RAM)  13 A, a hard disk drive (HDD)  14 A, and a bus  18 A. 
         [0028]    The entirety of the arithmetic device  10 A is controlled by the CPU  11 A. The RAM  13 A and the HDD  14 A are coupled to the CPU  11 A through the bus  18 A. 
         [0029]    The CPU  11 A has a function of the timer  12 A. The timer  12 A measures, for example, system time of the arithmetic device  10 A. When communication processing is performed between the CPU  11 A of the arithmetic device  10 A and a CPU  11 B of the arithmetic device  10 B, the timer  12 A measures a communication processing beginning time and a communication processing end time. 
         [0030]    The CPU  11 A calculates a difference between the communication processing beginning time and the communication processing end time while the CPU  11 A of the arithmetic device  10 A and the CPU  11 B of the arithmetic device  10 B are not performing a calculation process. Before obtaining the communication processing beginning time, the CPU  11 A temporarily stores a part of a calculation program  130 A stored in the RAM  13 A in a cache, which is not illustrated, included in the CPU  11 A. The timer  12 A of the CPU  11 A obtains a time at which a process for transmitting the part of the calculation program  130 A to the CPU  11 B of the arithmetic device  10 B begins. For example, the timer  12 A of the CPU  11 A obtains, as the communication processing end time, a time at which the part of the calculation program  130 A is stored in the cache of the CPU  11 A after the part of the calculation program  130 A is temporarily stored in a cache, which is not illustrated, included in the terminal apparatus  11 B and then retransmitted to the CPU  11 A of the arithmetic device  10 A. The difference between the communication processing beginning time and the communication processing end time when the calculation process is not being performed is referred to as ideal communication processing time between the CPU  11 A and the CPU  11 B. The CPU  11 A transmits the ideal communication processing time of the arithmetic device  10 A to an ideal communication processing time obtaining unit  101 A in the network evaluation device  100 . The CPU  11 A transmits, for example, the ideal communication processing time for one operation of communication between the CPU  11 A and the CPU  11 B to the ideal communication processing time obtaining unit  101 A. 
         [0031]    In addition, the CPU  11 A calculates the difference between the communication processing beginning time and the communication processing end time while the CPU  11 A of the arithmetic device  10 A and the CPU  11 B of the arithmetic device  10 B are performing the calculation process. The difference between the communication processing beginning time and the communication processing end time when the calculation process is being performed is referred to as communication processing time between the CPU  11 A and the CPU  11 B. The CPU  11 A transmits the communication processing time between the CPU  11 A and the CPU  11 B to a communication processing time obtaining unit  101 C in the network evaluation device  100 . For example, the CPU  11 A transmits the communication processing time for one operation of communication between the CPU  11 A and the CPU  11 B to the communication processing time obtaining unit  101 C. 
         [0032]    The RAM  13 A temporarily stores, for example, at least a part of a program of an operating system (OS) to be executed by the CPU  11 A, an application program, and the calculation program  130 A. The calculation program  130 A is a program for executing the calculation process according to the embodiment. The calculation program  130 A is executed by the CPU  11 A and the CPU  11 B of the arithmetic device  10 B, which is described later. In addition, the RAM  13 A temporarily stores the communication processing beginning time and the communication processing end time measured by the timer  12 A. The RAM  13 A temporarily stores the ideal communication processing time and the communication processing time between the CPU  11 A and the CPU  11 B measured by the CPU  11 A. In addition, the RAM  13 A stores various pieces of data to be used for processing in the CPU  11 A. 
         [0033]    The calculation program  130 A may be stored in a storage medium other than the RAM  13 A. The calculation program  130 A is recorded, for example, on a “portable physical storage medium” such as a flexible disk (FD), a CD-ROM, an MO disk, a DVD disc, a magneto-optical disk, or an IC card inserted into the arithmetic device  10 A. The calculation program  130 A is stored in a disk device provided inside or outside the arithmetic device  10 A or a storage medium held by “another computer (or a server)” coupled to the arithmetic device  10 A through a public line, the Internet, a LAN, a WAN, or the like. The arithmetic device  10 A may execute the calculation process by reading the calculation program  130 A from the recording medium. 
         [0034]    The HDD  14 A stores, for example, the OS and the application program. In addition, the HDD  14 A stores the communication processing beginning time and the communication processing end time measured by the timer  12 A. The HDD  14 A stores the ideal communication processing time and the communication processing time between the CPU  11 A and the CPU  11 B measured by the CPU  11 A. 
         [0035]    The arithmetic device  10 B includes the CPU  11 B, a timer  12 B, a RAM  13 B, a HDD  14 B, and a bus  18 B. 
         [0036]    As with the arithmetic device  10 A, the entirety of the arithmetic device  10 B is controlled by the CPU  11 B. The RAM  13 B and the HDD  14 B are coupled to the CPU  11 B through the bus  18 B. 
         [0037]    The CPU  11 B has a function of the timer  12 B. As with the timer  12 A, the timer  12 B measures, for example, system time of the arithmetic device  10 B. When the communication processing is performed between the CPU  11 B of the arithmetic device  10 B and the CPU  11 A of the arithmetic device  10 A, the timer  12 B measures the communication processing beginning time and the communication processing end time. 
         [0038]    The CPU  11 B calculates a difference between the communication processing beginning time and the communication processing end time while the CPU  11 A of the arithmetic device  10 A and the CPU  11 B of the arithmetic device  10 B are not performing the calculation process. Before obtaining the communication processing beginning time, the CPU  11 B temporarily stores a part of a calculation program  130 B stored in the RAM  13 B in the cache, which is not illustrated, included in the CPU  11 B. The timer  12 B of the CPU  11 B obtains, as the communication processing beginning time, a time at which a process for transmitting the part of the calculation program  130 B to the CPU  11 A of the arithmetic device  10 A begins. For example, the timer  12 B of the CPU  11 B obtains, as the communication processing end time, a time at which the part of the calculation program  130 B is stored in the cache of the CPU  11 B after the part of the calculation program  130 B is temporarily stored in the cache, which is not illustrated, of the terminal apparatus  11 A and then retransmitted to the CPU  11 B of the arithmetic device  10 B. The difference between the communication processing beginning time and the communication processing end time when the calculation process is not being performed is referred to as ideal communication processing time between the CPU  11 A and the CPU  11 B. The CPU  11 B transmits the ideal communication processing time between the CPU  11 A and the CPU  11 B to the ideal communication processing time obtaining unit  101 A in the network evaluation device  100 . The CPU  11 B transmits, for example, the ideal communication processing time for one operation of communication between the CPU  11 A and the CPU  11 B to the ideal communication processing time obtaining unit  101 A. 
         [0039]    In addition, the CPU  11 B calculates the difference between the communication processing beginning time and the communication processing end time while the CPU  11 A of the arithmetic device  10 A and the CPU  11 B of the arithmetic device  10 B are performing the calculation process. The difference between the communication processing beginning time and the communication processing end time when the calculation process is being performed is referred to as communication processing time between the CPU  11 A and the CPU  11 B. The CPU  11 B transmits the communication processing time between the CPU  11 A and the CPU  11 B calculated by the CPU  11 B to the communication processing time obtaining unit  101 C in the network evaluation device  100 . For example, the CPU  11 B transmits the communication processing time for one operation of communication between the CPU  11 A and the CPU  11 B to the communication processing time obtaining unit  101 C. 
         [0040]    As with the RAM  13 A, the RAM  13 B temporarily stores, for example, at least a part of a program of an OS to be executed by the CPU  11 B, an application program, and the calculation program  130 B. The calculation program  130 B is a program for executing the calculation process according to the embodiment. The calculation program  130 B is executed by the CPU  11 A and the CPU  11 B. In addition, the RAM  13 B temporarily stores the communication processing beginning time and the communication processing end time measured by the timer  12 B. The RAM  13 B temporarily stores the ideal communication processing time and the communication processing time between the CPU  11 A and the CPU  11 B measured by the timer  12 B. The RAM  13 B stores various pieces of data to be used for processing in the CPU  11 B. As with the calculation program  130 A, the calculation program  130 B may be stored in a storage medium other than the RAM  13 B. 
         [0041]    As with the HDD  14 A, the HDD  14 B stores, for example, the OS and the application program. In addition, the HDD  14 B stores the communication processing beginning time and the communication processing end time measured by the timer  12 B. The HDD  14 B stores the ideal communication processing time and the communication processing time between the CPU  11 A and the CPU  11 B measured by the CPU  11 B. 
         [0042]    The network evaluation device  100  includes a CPU  101 , a RAM  102 , a HDD  103 , a graphic processing device  104 , a communication interface  105 , and a bus  106 . 
         [0043]    The entirety of the network evaluation device  100  is controlled by the CPU  101 . The RAM  102 , the HDD  103 , the graphic processing device  104 , and the communication interface  105  are coupled to the CPU  101  through the bus  106 . 
         [0044]    The CPU  101  includes the ideal communication processing time obtaining unit  101 A, an ideal communication processing time recording unit  101 B, the communication processing time obtaining unit  101 C, and a communication processing time comparison unit  101 D. 
         [0045]    The ideal communication processing time obtaining unit  101 A receives the ideal communication processing time between the CPU  11 A and the CPU  11 B transmitted from the CPU  11 A of the arithmetic device  10 A and the ideal communication processing time between the CPU  11 A and the CPU  11 B transmitted from the CPU  11 B of the arithmetic device  10 B. The ideal communication processing time obtaining unit  101 A extracts a maximum value of the ideal communication processing time from the ideal communication processing times between the CPU  11 A and the CPU  11 B received from the arithmetic device  10 A and the arithmetic device  10 B. 
         [0046]    The ideal communication processing time recording unit  1018  records the maximum ideal communication processing time obtained by the ideal communication processing time obtaining unit  101 A as a benchmark. The recorded maximum ideal communication processing time is referred to when compared with communication overhead, which is described later. 
         [0047]    The communication processing time obtaining unit  101 C receives the communication processing time between the CPU  11 A and the CPU  11 B transmitted from the CPU  11 A of the arithmetic device  10 A and the communication processing time between the CPU  11 A and the CPU  11 B transmitted from the CPU  11 B of the arithmetic device  10 B. The communication processing time obtaining unit  101 C extracts a maximum value of the communication processing time from the communication processing times between the CPU  11 A and the CPU  11 B received from the arithmetic device  10 A and the arithmetic device  10 B. Note that a certain period of time is taken to perform the communication processing on data between a plurality of CPUs, namely the CPU  11 A and the CPU  11 B. Communication processing time between the plurality of CPUs generated while the CPU  11 A and the CPU  11 B are performing the calculation process is referred to as communication overhead. 
         [0048]    The communication processing time comparison unit  101 D compares the ideal communication processing time recorded in the ideal communication processing time recording unit  101 B with the communication overhead obtained by the communication processing time obtaining unit  101 C. Through the comparison, the communication processing time comparison unit  101 D determines whether or not a communication processing pattern corresponding to the ideal communication processing time is the same as or similar to a communication processing pattern corresponding to the communication overhead. If the communication processing pattern corresponding to the ideal communication processing time is the same as or similar to the communication processing pattern corresponding to the communication overhead, the communication processing time comparison unit  101 D outputs the ideal communication processing time corresponding to the same or similar communication processing pattern as a reduction target value of the communication overhead. If the communication processing pattern corresponding to the ideal communication processing time is not the same as or similar to the communication processing pattern corresponding to the communication overhead, the communication processing time comparison unit  101 D requests the ideal communication processing time obtaining unit  101 A to perform additional measurement of the ideal communication processing time. 
         [0049]    More specifically, the communication processing time comparison unit  101 D compares the communication processing time between the CPU  11 A and the CPU  11 B obtained by the communication processing time obtaining unit  101 C with the ideal communication processing time obtained by the ideal communication processing time obtaining unit  101 A. As a result of the comparison of the communication processing time with the ideal communication processing time, the communication processing time comparison unit  101 D detects data having a significant difference. The communication processing time comparison unit  101 D calculates, in the data having a significant difference, a time difference between the communication processing time and the ideal communication processing time as the reduction target value of the communication overhead. The communication processing time comparison unit  101 D outputs the calculated reduction target value of the communication overhead to the monitor  17 . The reduction target value of the communication overhead is a target value used as a benchmark when reducing the communication overhead by changing an arithmetic algorithm. 
         [0050]    The RAM  102  temporarily stores, for example, at least a part of a program of an OS to be executed by the CPU  101 , an application program, and an evaluation program  102 A. The evaluation program  102 A is a program for obtaining and comparing the ideal communication processing time and the communication processing time between the CPU  11 A and the CPU  11 B. The evaluation program  102 A is executed by the CPU  101 . The RAM  102  temporarily stores the ideal communication processing time and the communication processing time between the CPU  11 A and the CPU  11 B measured by the CPU  11 A. The RAM  102  temporarily stores the ideal communication processing time and the communication processing time between the CPU  11 A and the CPU  11 B measured by the CPU  11 B. In addition, the RAM  102  stores various pieces of data to be used for processing in the CPU  101 . 
         [0051]    The evaluation program  102 A may be stored in a storage medium other than the RAM  102 . The evaluation program  102 A is recorded, for example, on a “portable physical storage medium” such as a flexible disk (FD), a CD-ROM, an MO disk, a DVD disc, a magneto-optical disk, or an IC card inserted into the network evaluation device  100 . The evaluation program  102 A is stored in a disk device provided inside or outside the network evaluation device  100  or a storage medium held by “another computer (or a server)” coupled to the network evaluation device  100  through a public line, the Internet, a LAN, a WAN, or the like. The arithmetic device  10 A may execute the calculation process by reading the evaluation program  102 A from the recording medium. 
         [0052]    The HDD  103  stores, for example, the OS and the application program. The HDD  103  stores an ideal communication processing time recording table  103 A, which is described later. The ideal communication processing time recording table  103 A is described later. The HDD  103  temporarily stores the ideal communication processing time and the communication processing time between the CPU  11 A and the CPU  11 B measured by the CPU  11 A. The HDD  103  temporarily stores the ideal communication processing time and the communication processing time between the CPU  11 A and the CPU  11 B measured by the CPU  11 B. In addition, the HDD  103  stores the communication processing pattern corresponding to the ideal communication processing time measured in advance using the ideal communication processing time obtaining unit  101 A and the communication processing time comparison unit  101 D. The communication processing pattern is a pattern of the communication processing corresponding to the ideal communication processing time used for calculating the reduction target value of the communication overhead. 
         [0053]    The monitor  17  is coupled to the graphic processing device  104 . The graphic processing device  104  outputs, to the monitor  17 , the reduction target value of the communication overhead obtained by the communication processing time comparison unit  101 D in accordance with an instruction from the CPU  101 . 
         [0054]    The communication interface  105  is coupled to the LAN  16 . The communication interface  105  transmits and receives data to and from the arithmetic device  10 A and the arithmetic device  10 B through the LAN  16  and the network  15 . In addition, the communication interface  105  receives the ideal communication processing time and the communication processing time between the CPU  11 A and the CPU  11 B from the arithmetic device  10 A and the arithmetic device  10 B. 
         [0055]      FIG. 2  is a diagram illustrating a flowchart illustrating a process performed by the network evaluation device  100  according to the embodiment. The process illustrated in  FIG. 2  is a process for estimating the reduction target value of the communication overhead using the network evaluation device  100  according to the embodiment. 
         [0056]    As illustrated in  FIG. 2 , in S 1 , the ideal communication processing time obtaining unit  101 A determines whether or not the ideal communication processing times between the CPU  11 A and the CPU  11 B received from the arithmetic device  10 A and the arithmetic device  10 B are recorded in the ideal communication processing time recording unit  101 B. In addition, in S 1 , the ideal communication processing time obtaining unit  101 A determines whether or not the network evaluation device  100  is in an initial state, in which the network evaluation device  100  is used for the first time. If the ideal communication processing time obtaining unit  101 A determines in S 1  that the ideal communication processing times between the CPU  11 A and the CPU  11 B are recorded or that the network evaluation device  100  is not in the initial state, in which the network evaluation device  100  is used for the first time, processing in S 2  is then performed. Note that, in the embodiment, the processing in S 1  may be omitted. The processing in S 2  may be begun without performing the processing in S 1 . 
         [0057]    If it is determined in S 1  that the ideal communication processing times are not recorded in the ideal communication processing time recording unit  101 B or that the network evaluation device  100  is in the initial state, in which the network evaluation device  100  is used for the first time, the ideal communication processing time obtaining unit  101 A performs a process for measuring the ideal communication processing time in S 6 . The process for measuring the ideal communication processing time performed by the ideal communication processing time obtaining unit  101 A is described later. 
         [0058]    In S 2 , the communication processing time obtaining unit  101 C performs a process for obtaining the communication overhead in the calculation process that is an evaluation target of the communication overhead. 
         [0059]    In S 2 , the CPU  11 A and the CPU  11 B perform the calculation process by executing the calculation program  130 A recorded in the arithmetic device  10 A or the calculation program  130 B recorded in the arithmetic device  10 B. The communication processing time obtaining unit  101 C obtains the communication processing times between the CPU  11 A and the CPU  11 B while the arithmetic device  10 A and the arithmetic device  10 B are performing the calculation process from the arithmetic device  10 A and the arithmetic device  10 B, respectively. Note that a certain period of time is taken to perform the communication processing on the data between a plurality of CPUs, namely the CPU  11 A and the CPU  11 B. The communication processing times between the plurality of CPUs corresponding to the calculation process performed by the CPU  11 A and the CPU  11 B are simply referred to as communication overhead (communication OH) in  FIG. 2 . 
         [0060]    In S 3 , the communication processing time comparison unit  101 D performs a process for determining whether or not the ideal communication processing time for the communication processing pattern corresponding to the communication overhead may be used as the reduction target value of the communication overhead. The calculation program  130 A is executed by the CPU  11 A and the CPU  11 B. A process for determining usability performed by the communication processing time comparison unit  101 D is described later. 
         [0061]    In addition, in S 3 , the communication processing time comparison unit  101 D determines whether or not the ideal communication processing time for the communication processing pattern corresponding to the communication overhead has been obtained. If the communication processing time comparison unit  101 D determines in S 3  that the ideal communication processing time for the communication processing pattern corresponding to the communication overhead has been obtained, processing in S 4  is then performed. 
         [0062]    If it is determined in S 3  that the ideal communication processing time for the communication processing pattern corresponding to the communication overhead has not been obtained, the communication processing time comparison unit  101 D requests the ideal communication processing time obtaining unit  101 A to obtain the ideal communication processing time corresponding to the communication processing time in S 7 . 
         [0063]    In S 4 , the communication processing time comparison unit  101 D performs a process for using the ideal communication processing time as the reduction target value of the communication overhead. The process for using the ideal communication processing time performed by the communication processing time comparison unit  101 D is described later. 
         [0064]    In S 5 , the communication processing time comparison unit  101 D performs a process for determining a significant difference in the ideal communication processing time and the communication overhead. The process for determining the significant difference in the communication processing pattern performed by the communication processing time comparison unit  101 D is described later. 
         [0065]    In addition, in S 5 , the communication processing time comparison unit  101 D extracts data having a significant difference by using the ideal communication processing time. Next, the communication processing time comparison unit  101 D calculates, in the data having a significant difference, a time difference between the communication processing time and the ideal communication processing time as the reduction target value of the communication overhead, and outputs the reduction target value of the communication overhead to the monitor  17 . In addition, the communication processing time comparison unit  101 D records the reduction target value of the communication overhead on the HDD  103 . 
         [0066]      FIG. 3  is a diagram illustrating a flowchart illustrating a process performed by the network evaluation device  100  according to the embodiment. The flowchart illustrated in  FIG. 3  illustrates the process for measuring the ideal communication processing time performed by the ideal communication processing time obtaining unit  101 A in S 6  illustrated in  FIG. 2 . The embodiment illustrates an example in which the ideal communication processing time between the CPU  11 A and the CPU  11 B, for which the communication overhead is to be evaluated, is measured. 
         [0067]    As illustrated in  FIG. 3 , in S 11 , the ideal communication processing time obtaining unit  101 A performs a process for stopping the CPU  11 A and the CPU  11 B that are not related to the obtaining of the communication processing times of the CPU  11 A and the CPU  11 B. CPUs other than the CPU  11 A and the CPU  11 B are omitted in the drawings for the sake of simplification. The process for stopping the CPU  11 A and the CPU  11 B that are not related to the obtaining of the communication processing times is performed in order to suppress disturbance caused by the CPU  11 A and the CPU  11 B that are not related to the obtaining of the communication processing times in the obtaining of the communication processing times. Note that, in the embodiment, the processing in S 11  may be omitted depending on the operation conditions of the information processing apparatus  1000 . Processing in S 12  may be begun without performing the processing in S 11 . 
         [0068]    In S 12 , the ideal communication processing time obtaining unit  101 A initializes CPUs related to the obtaining of the communication processing times. That is, the ideal communication processing time obtaining unit  101 A initializes the CPU  11 A and the CPU  11 B. 
         [0069]    In S 13 , the ideal communication processing time obtaining unit  101 A begins to measure the communication processing times between the CPU  11 A and the CPU  11 B, for which the communication processing times are to be obtained. The ideal communication processing time obtaining unit  101 A causes the CPU  11 A and the CPU  11 B to measure the communication processing times between the CPU  11 A and the CPU  11 B, respectively. The ideal communication processing time obtaining unit  101 A causes the CPU  11 A and the CPU  11 B to measure the communication processing times between the CPU  11 A and the CPU  11 B five or ten times as temporary measurement. The temporary measurement is performed in order to suppress variation in the measured values of the communication processing times between the CPU  11 A and the CPU  11 B after the temporary measurement. 
         [0070]    In S 14 , the ideal communication processing time obtaining unit  101 A determines whether or not the temporary measurement between the CPU  11 A and the CPU  11 B has been performed a certain number of times. If the ideal communication processing time obtaining unit  101 A determines in S 14  that the measurement of the communication processing times between the CPU  11 A and the CPU  11 B has been performed the certain number of times, processing in S 15  is then performed. 
         [0071]    If it is determined in S 14  that the communication processing as the temporary measurement between the CPU  11 A and the CPU  11 B has not been performed the certain number of times, the ideal communication process time obtaining unit  101 A then performs the processing in S 13 . 
         [0072]    In S 15 , the ideal communication process time obtaining unit  101 A begins to measure the ideal communication processing times between the CPU  11 A and the CPU  11 B. More specifically, the ideal communication processing time obtaining unit  101 A causes the CPU  11 A and the CPU  11 B to measure the ideal communication processing times at a time when the communication processing between the CPU  11 A and the CPU  11 B has been performed the certain number of times, namely, for example, five or ten times. The measurement of the ideal communication processing times between the CPU  11 A and the CPU  11 B in S 15  after the temporary measurement is referred to as main measurement. 
         [0073]    In S 16 , the ideal communication processing time obtaining unit  101 A determines whether or not the measurement of the ideal communication processing times between the CPU  11 A and the CPU  11 B has been repeatedly performed a certain number of times, that is, the number of times the main measurement is to be performed. If it is determined in S 16  that the measurement between the CPU  11 A and the CPU  11 B has been performed the certain number of times, the ideal communication processing time obtaining unit  101 A then performs processing in S 17 . 
         [0074]    If it is determined in S 16  that the communication processing between the CPU  11 A and the CPU  11 B has not been performed the number of times the main measurement is to be performed, the ideal communication processing time obtaining unit  101 A then performs the processing in S 15 . 
         [0075]    In S 17 , the ideal communication processing time obtaining unit  101 A obtains a maximum value from the ideal communication processing times measured in the main measurement performed by the CPU  11 A and the CPU  11 B, the ideal communication processing times being recorded on the HDD  103 . The maximum value of the ideal communication processing times between the CPU  11 A and the CPU  11 B calculated by the ideal communication processing time obtaining unit  101 A is recorded in the ideal communication processing time recording unit  101 B. 
         [0076]      FIG. 4  is a diagram illustrating a flowchart illustrating a process performed by the network evaluation device  100  according to the embodiment. The flowchart illustrated in  FIG. 4  illustrates the process for determining usability performed by the communication processing time comparison unit  101 D in S 3  illustrated in  FIG. 2 . The process for determining usability is a process for determining whether or not the ideal communication processing time is used as the reduction target value of the communication overhead. 
         [0077]    In S 21 , the communication processing time comparison unit  101 D determines whether or not the communication data length of the communication processing pattern between the CPU  11 A and the CPU  11 B is equal to or larger than 1 MB. Similarly, the communication processing time comparison unit  101 D determines whether or not the number of arithmetic devices involved in the communication of the ideal communication processing time corresponding to the communication processing pattern between the CPU  11 A and the CPU  11 B and the number of arithmetic devices involved in the communication of the communication processing time are the same. If the communication data length of the communication processing pattern between the CPU  11 A and the CPU  11 B is smaller than 1 MB or if the numbers of arithmetic devices involved in the communication are different, the communication processing time comparison unit  101 D then makes a determination in S 22 . The determination as to the communication data length of the communication processing pattern is made in order to determine data reliability at a time when the ideal communication processing time is used as the reduction target value of the communication overhead. 
         [0078]    If the communication data length of the communication processing pattern is equal to or larger than 1 MB and the numbers of arithmetic devices involved in the communication are the same in S 21 , the communication process time comparison unit  101 D then makes a determination in S 25 . 
         [0079]    In S 25 , the communication processing time comparison unit  101 D determines that the ideal communication processing time corresponding to the communication processing pattern between the CPU  11 A and the CPU  11 B may be used as the reduction target value of the communication overhead. 
         [0080]    In S 22 , the communication processing time comparison unit  101 D determines whether or not the integer part of a quotient obtained by dividing “communication data length −1” of the communication data length of the communication processing pattern between the CPU  11 A and the CPU  11 B by 4 KB is the same as the value of the integer part of the ideal communication processing time. Herein, 4 KB is 4,096 B. Similarly, the communication processing time comparison unit  101 D determines whether or not the number of arithmetic devices involved in the communication of the communication processing pattern between the CPU  11 A and the CPU  11 B is the same as the value of the integer part of the ideal communication processing time. A packet length of 4 KB is set as an example of the packet length used for the communication. By dividing “communication data length -1” by 4 KB, the communication data length of the communication processing pattern between the CPU  11 A and the CPU  11 B may be determined from the number of packets. If the integer part of the above-mentioned quotient is the same as the value of the integer part of the ideal communication processing time, that is, if the numbers of packets are the same, the communication processing time and the ideal communication processing time between the CPU  11 A and the CPU  11 B are assumed to be not significantly different from each other. In S 22 , if the integer part of the quotient of “communication data length −1” of the communication processing pattern between the CPU  11 A and the CPU  11 B is different or if the numbers of arithmetic devices involved in the communication are different, the communication processing time comparison unit  101 D then makes a determination in S 23 . By determining whether or not the integer part of the above-mentioned quotient is the same as the value of the integer part of the ideal communication processing time, the data reliability when the ideal communication processing time is used as the reduction target value of the communication overhead may be determined. 
         [0081]    If the integer part of the quotient of the communication data length corresponding to the communication processing pattern between the CPU  11 A and the CPU  11 B is the same and the numbers of arithmetic devices involved in the communication are the same in S 22 , the communication processing time comparison unit  101 D then makes the determination in S 25 . 
         [0082]    In S 23 , the communication processing time comparison unit  101 D determines whether or not the communication data lengths of the communication processing pattern between the CPU  11 A and the CPU  11 B are the same. Similarly, the communication processing time comparison unit  101 D determines whether or not the integer parts of logarithms of “the numbers of arithmetic devices involved in the communication −1” of the communication processing pattern between the CPU  11 A and the CPU  11 B whose bases are 2 are the same. If the communication data lengths of the communication processing pattern between the CPU  11 A and the CPU  11 B and the integer parts of the logarithms of the numbers of arithmetic devices involved in the communication are different, the communication processing time comparison unit  101 D then makes a determination in S 24 . By determining whether or not the communication data lengths of the communication processing pattern between the CPU  11 A and the CPU  11 B are the same and whether or not the integer parts of the logarithms of “the numbers of arithmetic devices involved in the communication −1” are the same, the data reliability when the ideal communication processing time is used as the reduction target value of the communication overhead may be determined. 
         [0083]    If the communication data lengths corresponding to the communication processing pattern between the CPU  11 A and the CPU  11 B are the same or if the integer parts of the logarithms of the numbers of arithmetic devices involved in the communication are the same in S 23 , the communication processing time comparison unit  101 D then makes the determination in S 25 . 
         [0084]    In S 24 , the communication processing time comparison unit  101 D determines that it is not possible to use the ideal communication processing time corresponding to the communication processing pattern as the reduction target value of the communication overhead. 
         [0085]      FIG. 5  is a diagram illustrating a flowchart illustrating a process performed by the network evaluation device  100  according to the embodiment. The flowchart illustrated in  FIG. 5  illustrates the process for using the ideal communication processing time performed by the communication processing time comparison unit  101 D in S 4  illustrated in  FIG. 2 . The process for using the ideal communication processing time is a process for using the ideal communication processing time as the reduction target value of the communication overhead. 
         [0086]    In S 31 , the communication processing time comparison unit  101 D selects, for example, four pieces of existing performance data whose communication data lengths and numbers of arithmetic devices involved in the communication are closest to the communication data length between the CPU  11 A and the CPU  11 B and the number of arithmetic devices involved in the communication, respectively, that are the evaluation targets. The number of pieces of existing performance data to be selected may be arbitrarily determined. The existing performance data is, for example, recorded on the HDD  103  as the ideal communication processing time recording table  103 A. 
         [0087]    Each of the four pieces of existing performance data selected in S 31  is a combination of three elements, namely the number of arithmetic devices involved in the communication, the communication data length, and the communication processing time. In addition, with respect to the pieces of existing performance data whose communication data lengths and numbers of arithmetic devices involved in the communication are closest, pieces of existing performance data are selected with which significant differences from existing performance data that uses a as a parameter become small using the following expression. The significant differences from the existing performance data indicate the magnitudes of differences between the existing performance data and the data to be evaluated defined on the basis of the numbers of arithmetic devices involved in the communication and the communication data lengths. The parameter α is a constant, for example, 1×10 −6 . The constant of the parameter α to be selected may be arbitrarily determined. 
         [0000]      Significant difference from existing performance data=(Number of arithmetic devices involved in communication of existing performance data−Actual number of arithmetic devices involved in communication) 2 +α×(Communication data length of existing performance data−Actual communication data length) 2  
 
         [0088]    In S 32 , the communication processing time comparison unit  101 D estimates communication processing time T 1  using linear interpolation based on the communication data length. In the estimation of the communication processing time T 1 , two of the selected four pieces of existing performance data whose numbers of arithmetic devices involved in the communication are larger are used. 
         [0089]    In S 33 , the communication processing time comparison unit  101 D estimates communication processing time T 2  using linear interpolation based on the communication data length. In the estimation of the communication processing time T 2 , two of the selected four pieces of existing performance data whose numbers of arithmetic devices involved in the communication are smaller are used. 
         [0090]    In the processes of the linear interpolation performed in S 32  and S 33 , estimated communication processing time Tx and the corresponding number of arithmetic devices Px involved in the communication are obtained. In the processes of the linear interpolation, two sets of performance data {Pa, La, Ta} and {Pb, Lb, Tb} constituted by elements of the number of arithmetic devices P involved in the communication, a communication data length L, and communication processing time T and the following two expressions are used. 
         [0000]      Estimated communication processing time  Tx=Ta +( Tb−Ta )×(Actual communication data length− La )÷( Lb−La )
 
         [0000]      Corresponding number of arithmetic devices  Px  involved in communication= Pa +( Pb−Pa )×(Actual communication data length− La )÷( Lb−La )
 
         [0091]    In S 34 , the communication processing time comparison unit  101 D estimates ideal communication processing time Tideal using linear interpolation of data corresponding to the number of arithmetic devices involved in the communication. In the estimation of the ideal communication processing time Tideal, the communication processing times T 1  and T 2  are used. The ideal communication processing time Tideal serves as the reduction target value of the communication overhead in S 5  illustrated in  FIG. 2 . 
         [0092]    In the process of the linear interpolation in S 34 , the ideal communication processing time Tideal is obtained using the following calculation. In the calculation for obtaining the ideal communication processing time Tideal, the communication processing time T 1  and the communication processing time T 2  obtained using the expression of the communication processing time Tx and the number of arithmetic devices P 1  involved in the communication and the number of arithmetic devices P 2  involved in the communication obtained using the expression of the corresponding number of arithmetic devices Px involved in the communication are used. 
         [0000]      Ideal communication processing time  T ideal= T 1+( T 2− T 1)×(Actual number of arithmetic devices involved in communication− P 1)÷( P 2− P 1)
 
         [0093]    In S 35 , the communication processing time comparison unit  101 D compares the estimated ideal communication processing time Tideal with the communication processing time corresponding to the data to be evaluated. 
         [0094]      FIG. 6  is a diagram illustrating a flowchart illustrating a process performed by the network evaluation device  100  according to the embodiment. The flowchart illustrated in  FIG. 6  illustrates the process for determining the significant difference in the communication processing time in S 5  illustrated in  FIG. 2 . The process for determining the significant difference in the communication processing time is performed by the communication processing time comparison unit  101 D by comparing the communication processing time and the ideal communication processing time between the CPU  11 A and the CPU  11 B that are the evaluation targets. MPI communication conditions and the number of arithmetic processes according to the embodiment may be arbitrarily set. 
         [0095]    In S 41 , the communication processing time comparison unit  101 D determines whether or not the communication processing time between the CPU  11 A and the CPU  11 B is equal to or longer than 50 μs and whether or not a time difference between the communication processing time and the ideal communication processing time is equal to or higher than 20%. Communication processing time of 50 μs is set as an example of the communication processing time. Communication processing time of 50 μs is set as a tentative standard for time that is taken for the CPU  11 A and the CPU  11 B to perform an arithmetic process other than the communication processing and that has a significant length. For example, a CPU having a clock frequency of 3 GHz performs calculation of values 600,000 to 1,200,000 times in processing time of 50 μs. If it is determined in S 41  that the communication processing time between the CPU  11 A and the CPU  11 B is shorter than 50 μs or that the time difference in the communication processing time is lower than 20%, the communication processing time comparison unit  101 D then makes a determination in S 42 . 
         [0096]    If it is determined in S 41  that the communication processing time is equal to or longer than 50 μs and that the time difference in the communication processing time is equal to or higher than 20%, the communication processing time comparison unit  101 D then performs processing in S 45 . 
         [0097]    In S 42 , the communication processing time comparison unit  101 D determines whether or not the communication data length between the CPU  11 A and the CPU  11 B is equal to or larger than 64 KB and whether or not the time difference between the communication processing time and the ideal communication processing time is equal to or higher than 10%. A communication data length of 64 KB is set as an example of the communication data length. If the communication data length is, for example, 64 KB, the communication processing time between the CPU  11 A and the CPU  11 B is, for example, 30 μs to 40 μs. If it is determined in S 42  that the communication data length between the CPU  11 A and the CPU  11 B is smaller than 64 KB or that the time difference between the communication processing time and the ideal communication processing time is lower than 10%, the communication processing time comparison unit  101 D then makes a determination in S 43 . 
         [0098]    If it is determined in S 42  that the communication data length is equal to or larger than 64 KB and that the time difference between the communication processing time and the ideal communication processing time is equal to or higher than 10%, the communication processing time comparison unit  101 D then makes a determination in S 45 . 
         [0099]    In S 43 , the communication processing time comparison unit  101 D determines whether or not the time difference between the communication processing time and the ideal communication processing time is equal to or larger than 100 μs. If it is determined that the time difference between the communication processing time and the ideal communication processing time is smaller than 100 μs, the communication processing time comparison unit  101 D then performs processing in S 44 . 
         [0100]    If it is determined in S 43  that the time difference between the communication processing time and the ideal communication processing time is equal to or larger than 100 μs, the communication processing time comparison unit  101 D then performs the processing in S 45 . 
         [0101]    In S 44 , the communication processing time comparison unit  101 D determines that there is no significant difference between the communication processing time and the ideal communication processing time. 
         [0102]    In S 45 , the communication processing time comparison unit  101 D determines that there is a significant difference between the communication processing time and the ideal communication processing time. 
         [0103]      FIG. 7  is a diagram illustrating an example of the data structure of the ideal communication processing time recording table  103 A according to the embodiment. The HDD  103  of the network evaluation device  100  stores the ideal communication processing time recording table  103 A. 
         [0104]    The ideal communication processing time recording table  103 A is, for example, a table in which are recorded a communication data length (B) and communication processing time (μs) at a time when the CPU  11 A of the arithmetic device  10 A and the CPU  11 B of the arithmetic device  10 B have executed a parallel program described by a communication application programming interface (API) called a Message Passing Interface (MPI). In the ideal communication processing time recording table  103 A, a field  103 A 1  indicating the type of communication, a field  103 A 2  indicating the number of arithmetic devices that are involved in the communication, a field  103 A 3  indicating the communication data length, a field  103 A 4  indicating the source arithmetic device number, a field  103 A 5  indicating the destination arithmetic device number, and a field  103 A 6  indicating the communication processing time are provided. Pieces of information in each field arranged in a horizontal direction are associated with one another. 
         [0105]    In the field  103 A 1 , the type of communication in an MPI communication function is set. In the example illustrated in  FIG. 7 , two types of communication, namely “MPI_AlltoAll” (all-to-all communication) and “MPI_Bcast” (broadcast communication), are set. 
         [0106]    In the field  103 A 2 , the number of arithmetic devices that are involved in the communication in the MPI communication function is set. 
         [0107]    In the field  103 A 3 , the communication data length corresponding to the type of communication and the number of arithmetic devices is set. 
         [0108]    In the field  103 A 4 , the source arithmetic device number is set. 
         [0109]    In the field  103 A 5 , the destination arithmetic device number is set. 
         [0110]    In the field  103 A 6 , the communication processing time corresponding to the type of communication and the number of arithmetic devices is set. 
         [0111]    The communication processing time based on the communication data length or the number of arithmetic devices involved in the communication recorded in the ideal communication processing time recording table  103 A is described hereinafter. With respect to the ideal communication processing time used for calculating the reduction target value of the communication overhead, there is a case in which the ideal communication processing time based on the communication data length of the communication processing time during the calculation process in the CPU  11 A and the CPU  11 B has not been measured. Similarly, there is a case in which the ideal communication processing time based on the number of arithmetic devices involved in the communication of the communication processing time during the calculation process has not been measured. In such cases, the communication processing time comparison unit  101 D compares the ideal communication processing time based on a similar communication data length or a similar number of arithmetic devices involved in the communication with the communication processing time between the CPU  11 A and the CPU  11 B that is the evaluation target. Alternatively, the communication processing time comparison unit  101 D performs additional measurement of the ideal communication processing time using the ideal communication processing time obtaining unit  101 A. 
         [0112]    When the ideal communication processing time based on a similar communication data length or a similar number of arithmetic devices involved in the communication is to be used, the ideal communication processing time based on the similar communication data length or the similar number of arithmetic devices involved in the communication is used. The ideal communication processing time that has not been measured may be obtained by interpolating or extrapolating the communication data length or the number of arithmetic devices involved in the communication to the ideal communication processing time based on a similar communication data length or a similar number of arithmetic devices. In the data interpolation of the ideal communication processing time, interpolation using the communication data length and interpolation using the number of arithmetic devices involved in the communication are desirably performed in this order. By performing the data interpolation using the communication data length and then using the number of arithmetic devices involved in the communication, accumulation of errors in data caused by multiple times of data interpolation may be suppressed. 
         [0113]    When the network evaluation device  100  according to the embodiment is to be used, the ideal communication processing time obtaining unit  101 A may obtain in advance the type of communication between arithmetic devices that are the obtaining targets, the number of arithmetic devices, and the communication processing time. The type of communication is desirably set to, for example, “MPI_Send/MPI_Recv” (one-to-one communication), “MPI_Bcast” (broadcast communication), “MPI_Scatter” (scattering communication), “MPI_Gather” (gathering communication), or “MPI_Alltoall” (transpose communication). The number of arithmetic devices is desirably set to a power of 2 or a square of an integer. The communication data length is desirably set to a power of 2 or a value obtained by adding or subtracting 1 to or from a power of 2. However, when the communication pattern and the communication data length for a parallel computer system that are targets for obtaining data are known, the communication processing time may be obtained on the basis of a known communication pattern and a known communication data length. 
         [0114]      FIG. 8  illustrates an example of a method for obtaining the ideal communication processing time and the communication processing time between the CPU  11 A and the CPU  11 B according to the embodiment.  FIG. 8  illustrates an example of a method for obtaining the communication processing time between the CPU  11 A and the CPU  11 B based on “MPI_Bcast”. Measurement of the ideal communication processing time and the communication processing time is performed by the timer  12 A included in the CPU  11 A of the arithmetic device  10 A and the timer  12 B included in the CPU  11 B of the arithmetic device  10 B. 
         [0115]    As illustrated in  FIG. 8 , the CPU  11 A and the CPU  11 B obtain the communication processing beginning times and the communication processing end times, calculate the ideal communication processing times, and record the ideal communication processing times while the calculation process is not being performed. In addition, the CPU  11 A and the CPU  11 B obtain the communication processing beginning times and the communication processing end times, calculate the communication processing times, and record the communication processing times while the calculation process is being performed. 
         [0116]    The CPU  11 A and the CPU  11 B obtain the ideal communication processing times and the communication processing times between the CPU  11 A and the CPU  11 B by performing the series of the obtaining process, the calculation process, and the recording process. In addition, a part of a program used for the series of the obtaining process, the calculation process, and the recording process in the embodiment is temporarily recorded on the RAM  13 A and the RAM  13 B. 
         [0117]    The CPU  11 A records the ideal communication processing time and the communication processing time of the CPU  11 A obtained by the series of the obtaining process, the calculation process, and the recording process on the HDD  14 A. The CPU  11 A transmits the ideal communication processing time recorded on the HDD  14 A to the ideal communication processing time obtaining unit  101 A. The CPU  11 A transmits the communication processing time recorded on the HDD  14 A to the communication processing time obtaining unit  101 C. 
         [0118]    The CPU  11 B records the ideal communication processing time and the communication processing time of the CPU  11 B obtained by the series of the obtaining process, the calculation process, and the recording process on the HDD  14 B. The CPU  11 B transmits the ideal communication processing time recorded on the HDD  14 B to the ideal communication processing time obtaining unit  101 A. The CPU  11 B transmits the communication processing time recorded on the HDD  14 B to the communication processing time obtaining unit  101 C. 
         [0119]      FIG. 9  is a diagram illustrating communication processing times and ideal communication processing times obtained by the network evaluation device  100  according to the embodiment. The horizontal axis illustrated in  FIG. 9  represents the communication data length (B) between the arithmetic devices for which the communication processing times are to be obtained, that is, the CPU  11 A and the CPU  11 B. The vertical axis illustrated in  FIG. 9  represents the communication processing time of one operation of communication between the arithmetic devices for which the communication processing times are to be obtained. The black rectangles illustrated in  FIG. 9  represent the communication processing times between the arithmetic devices obtained by the communication processing time obtaining unit  101 C. The solid line illustrated in  FIG. 9  represents the ideal communication processing times between the arithmetic devices estimated by the communication processing time comparison unit  101 D. 
         [0120]    As illustrated in  FIG. 9 , the communication processing times may significantly vary depending on the case, as compared to the communication processing times indicated by the ideal communication processing times. Portions in which there are significant differences in the communication processing time between the communication processing times and the ideal communication processing times are portions in which the communication overhead is desired to be reduced. 
         [0121]      FIG. 10  is a diagram illustrating a relationship between the number of arithmetic devices (the number of nodes) involved in the communication and the communication processing time (ms) in a communication processing software library based on an MPI standard in the network evaluation device  100  according to the embodiment. The horizontal axis illustrated in  FIG. 10  represents the number of arithmetic devices involved in the communication. The vertical axis illustrated in  FIG. 10  represents the communication processing time between the arithmetic devices involved in the communication, that is, the CPU  11 A and the CPU  11 B. The solid line illustrated in  FIG. 10  represents the communication processing time corresponding to the number of arithmetic devices for an information processing apparatus  1000 A in broadcast communication according to the MPI standard. The broken line illustrated in  FIG. 10  represents the communication processing time corresponding to the number of arithmetic devices for an information processing apparatus  1000 B in the broadcast communication according to the MPI standard. A plurality of arithmetic devices are mounted on the information processing apparatus  1000 A using a communication algorithm A. A plurality of arithmetic devices are mounted on the information processing apparatus  1000 B using a communication algorithm B. 
         [0122]    As illustrated in  FIG. 10 , in the information processing apparatus  1000 A, when the number of arithmetic devices is 5, the communication processing time is about 2.5 ms. Next, when the number of arithmetic devices is 6, the communication processing time is about 3.3 ms. That is, it may be seen that when the number of arithmetic devices increases from 5 to 6, the communication processing time of the information processing apparatus  1000 A sharply increases. 
         [0123]    On the other hand, in the information processing apparatus  1000 A, when the number of arithmetic devices is 12, the communication processing time is about 3.6 ms. Next, when the number of arithmetic devices is 13, the communication processing time is about 4.6 ms. That is, it may be seen that when the number of arithmetic devices increases from 12 to 13, the communication processing time of the information processing apparatus  1000 A sharply increases. 
         [0124]    In the information processing apparatus  1000 B, when the number of arithmetic devices is 4, the communication processing time is about 1.7 ms. Next, when the number of arithmetic devices is 5, the communication processing time is about 2.6 ms. That is, it may be seen that when the number of arithmetic devices increases from 4 to 5, the communication processing time of the information processing apparatus  1000 B sharply increases. 
         [0125]    On the other hand, in the information processing apparatus  1000 B, when the number of arithmetic devices is 7, the communication processing time is about 2.6 ms. Next, when the number of arithmetic devices is 8, the communication processing time is about 1.8 ms. That is, it may be seen that when the number of arithmetic devices increases from 7 to 8, the communication processing time of the information processing apparatus  1000 B sharply decreases. 
         [0126]    As described above, the relationship between the number of arithmetic devices and the communication processing time in the information processing apparatus  1000 A and the information processing apparatus  1000 B is not a simple directly proportional relationship. It may be estimated that the relationship between the number of arithmetic devices and the communication processing time is determined by a difference between the communication algorithm A adopted by the information processing apparatus  1000 A and the communication algorithm B adopted by the information processing apparatus  1000 B. 
         [0127]      FIG. 11  is a diagram illustrating a relationship between the communication data length and the communication processing time in the communication processing software library based on the MPI standard in the network evaluation device  100  according to the embodiment. The horizontal axis illustrated in  FIG. 11  represents the communication data length between the arithmetic devices involved in the communication, that is, the CPU  11 A and the CPU  11 B. The vertical axis represents the communication processing time between the arithmetic devices involved in the communication. The solid line illustrated in  FIG. 11  represents the relationship between the communication data length and the communication processing time in the information processing apparatus  1000 A in the broadcast communication according to the MPI standard. The broken line illustrated in  FIG. 11  represents the relationship between the communication data length and the communication processing time in the information processing apparatus  1000 B in the broadcast communication according to the MPI standard. The plurality of arithmetic devices are mounted on the information processing apparatus  1000 A using the communication algorithm A. The plurality of arithmetic devices are mounted on the information processing apparatus  1000 B using the communication algorithm B. 
         [0128]    As illustrated in  FIG. 11 , in the information processing apparatus  1000 A, when the communication data length is 4 B, the communication processing time is about 6.6 μs. When the communication data length is 8 B, the communication processing time is about 6.9 μs. When the communication data length is 16 B, the communication processing time is about 6.7 μs. That is, when the communication data length increases from 4 B to 16 B, the communication processing time of the information processing apparatus  1000 A scarcely increases. 
         [0129]    On the other hand, in the information processing apparatus  1000 A, when the communication data length is 8,192 B, the communication processing time is about 43.7 μs. When the communication data length is 16,384 B, the communication processing time is about 76.4 μs. When the communication data length is 32,768 B, the communication processing time is about 152.8 μs. That is, it may be seen that when the communication data length increases from 8,192 B to 32,768 B, the communication processing time of the information processing apparatus  1000 A sharply increases. 
         [0130]    As illustrated in  FIG. 11 , in the information processing apparatus  1000 B, when the communication data length is 4 B, the communication processing time is about 8.7 μs. When the communication data length is 8 B, the communication processing time is about 8.9 μs. When the communication data length is 16 B, the communication processing time is about 9.1 μs. That is, when the communication data length increases from 4 B to 16 B, the communication processing time of the information processing apparatus  1000 B scarcely increases. 
         [0131]    On the other hand, in the information processing apparatus  1000 B, when the communication data length is 8,192 B, the communication processing time is about 54.3 μs. When the communication data length is 16,384 B, the communication processing time is about 131.3 μs. When the communication data length is 32,768 B, the communication processing time is about 229.7 μs. That is, it may be seen that when the communication data length increases from 8,192 B to 32,768 B, the communication processing time of the information processing apparatus  1000 B sharply increases. 
         [0132]    As described above, it may be seen that the relationship between the communication data length and the communication processing time in the information processing apparatus  1000 A and the information processing apparatus  1000 B is not a simple directly proportional relationship. It may be estimated that the relationship between the communication data length and the communication processing time is determined by a difference between the communication algorithm A adopted by the information processing apparatus  1000 A and the communication algorithm B adopted by the information processing apparatus  1000 B. 
         [0133]      FIG. 12  is a schematic diagram illustrating an approach to calculating the reduction target value of the communication overhead from a difference between the communication overhead and the ideal communication processing time obtained by the network evaluation device  100  according to the embodiment. The horizontal axis illustrated in  FIG. 12  represents the communication data length between the arithmetic devices for which the communication processing times are to be obtained, that is, the CPU  11 A and the CPU  11 B. The vertical axis illustrated in  FIG. 12  represents the communication processing time for one operation of communication between the arithmetic devices that are targets for obtaining data. The white rectangles illustrated in  FIG. 12  represent the ideal communication processing times between the arithmetic devices obtained by the ideal communication processing time obtaining unit  101 A. The black circles illustrated in  FIG. 12  represent the communication processing times between the arithmetic devices obtained by the communication processing time obtaining unit  101 C. The broken line illustrated in  FIG. 12  represents the ideal communication processing times between the arithmetic devices estimated by the communication processing time comparison unit  101 D. When the communication processing time comparison unit  101 D estimates the ideal communication processing times, data regarding the ideal communication processing times between the arithmetic devices may be insufficient in some cases. When the data regarding the ideal communication processing times between the arithmetic devices is insufficient, the ideal communication processing time obtaining unit  101 A performs additional measurement of the ideal communication processing times. The arrow illustrated in  FIG. 12  represents a difference between an ideal communication processing time and a communication processing time. Data in which the difference is large is determined by the communication processing time comparison unit  101 D to be data having a significant difference. 
         [0134]    As illustrated in  FIG. 12 , the communication processing time comparison unit  101 D compares the difference between the ideal communication processing time and the communication processing time, and determines whether or not data in which the difference is large has a significant difference. Next, as indicated by S 7  illustrated in  FIG. 2 , the communication processing time comparison unit  101 D calculates the determined data as the reduction target value of the communication overhead, and outputs the reduction target value of the communication overhead to the monitor  17 . 
         [0135]    According to the network evaluation device  100 , the method for evaluating a network, and the network evaluation program according to the embodiment, the ideal communication processing time obtaining unit  101 A measures the ideal communication processing time between the CPU  11 A and the CPU  11 B, which are the evaluation targets, while the CPU  11 A and the CPU  11 B are not executing the calculation program. Subsequently, the communication processing time obtaining unit  101 C measures the communication processing time between the CPU  11 A and the CPU  11 B while the CPU  11 A and the CPU  11 B are executing the calculation program. The communication processing time comparison unit  101 D compares the ideal communication processing time with the communication processing time, and outputs a time difference between the ideal communication processing time and the communication processing time. Therefore, the communication overhead between the CPU  11 A and the CPU  11 B may be easily evaluated. Since the communication overhead between a plurality of processors may be easily evaluated, the limit of an increase in the speed of processing of the program when the number of processors used is increased may be easily grasped. 
         [0136]    All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiment of the present invention has been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.