Abstract:
A distributing node initiates an install control program in receiving nodes, and then broadcasts or multicasts program data to the receiving nodes. Thereby, the installation of the program into the nodes is carried out in shorter time. In this event, the distributing node and the receiving nodes buffer the program data in units of data block sizes of storage devices associated therewith. The distributing node executes in parallel the processing for storing data read from the storage device in a buffer, and the processing for reading the data from the buffer and broadcasting or multicasting the read data to the receiving node. The receiving node executes in parallel the processing for storing the data received from the distributing node in a buffer, and the processing for reading the program data from the buffer and storing the program data in the storage device thereof.

Description:
BACKGROUND OF THE INVENTION 
     The present invention relates to installation of a program into nodes independent of one another in a parallel computer system including plural nodes. 
     An installing method for use in a parallel computer system is disclosed, for example, in JP-A-11-296349, wherein upon completion of installation into a particular node, this node serves as a server machine to sequentially install software into different nodes to reduce time required for the installation in the overall system. 
     Also, JP-A-6-309261 discloses a method including a step of sending an install instruction from a server machine, a step of requesting required software from client machines to the server machine, and a step of starting installation of the software into plural client machines. 
     Further, JP-A-6-59994 discloses a method including a step of sending an install start instruction and install information from a primary station computer device to plural secondary station computer devices to install a program into plural client machines. 
     A parallel computer system may include a number of nodes ranging from several tens to several thousands or more because of requirements imposed thereto to execute a large scale of computations. When the same programs are incorporated into these nodes, it is necessary to reduce time required for installing the programs. In the prior art JP-A-11-296349, assuming that the number of nodes in a system is N, and time required for installation per node is T, time required for the installation into all nodes is expressed by (log 2 N)×T. 
     SUMMARY OF THE INVENTION 
     It is an object of the present invention to further reduce the above installation time (log 2 N)×T required for installing into plural nodes. 
     The present invention is characterized by simultaneously performing install processing in plural nodes by simultaneously transferring data on a program to be installed, utilizing communication means interconnecting the respective nodes. 
     An arbitrary node in a parallel computer system reads every predefined amount of programs from a storage medium which stores the programs, and delivers program data to all nodes, into which the programs are to be installed, through the communication means. Each node receives the data and writes the data into a storage device of the node itself to install the same program in parallel. 
     Also, a master install control program for distributing a program is executed by one node or an install device in the parallel computer system. The master install control program reads a program from a storage medium which stores programs, and transfers the read program. In this event, plural buffers are used for communication of data associated with the reading and transferring of the program. 
     A node receiving the program executes an install control program for receiving the distributed data. The install control program receives data on the program, which is to be executed in the node, from the distribution node, and writes the received data into a storage device of the node itself. Plural buffers are utilized for communication of data during the reception of data and the writing into the storage device. 
     The master install control program and the install control program rely on the buffers to process in parallel the reading of the program from the recording medium, the delivery of the read program, the reception of the program, and the writing of the program into the storage device, to reduce time required for installing the program into plural nodes. 
     In an environment in which the present invention is implemented under the best condition, transfer time is calculated as follows. Assuming for example that the number of nodes is N; a total data size of a program to be distributed is A; a predefined amount of data size for distribution is B; time required for reading the predefined amount of data is C; time required for transferring the predefined amount of data to all nodes is D; time required for receiving the predefined amount of data is E; and time required for writing the predefined amount of data into an external storage device is F, time required for installing the program into all nodes is expressed by ((A/B)×F)+(C+D+E). (C+D+E) is time taken for transferring the first predefined amount of data in the processing for writing the predefined amount of data into the external storage device. Subsequently, the data read processing, the transfer-to-node processing and the data reception processing are performed in parallel through the buffers, so that time required for the processing is included in time required for writing data into the storage device. 
     As described above, since a program is distributed to all nodes at one time, time required for installing the program into all the nodes does not depend on the number of nodes N. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram illustrating the configuration of a parallel computer system; 
     FIG. 2 is a diagram illustrating a data flow during installation of a program; 
     FIG. 3 is a block diagram illustrating the configuration of a master install control program; 
     FIG. 4 is a block diagram illustrating the configuration of an install control program; 
     FIG. 5 is a flow chart illustrating the flow of processing executed by the master install control program; 
     FIG. 6 is a flow chart illustrating data read processing in the master install control program; 
     FIG. 7 is a flow chart illustrating data transfer processing in the master install control program; 
     FIG. 8 is a flow chart illustrating the flow of processing executed by the install control program; 
     FIG. 9 is a flow chart illustrating data reception processing in the install control program; and 
     FIG. 10 is a flow chart illustrating disk write processing in the install control program. 
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
     FIG. 1 illustrates the configuration of a parallel computer system. In a parallel computer system  1 , plural nodes, each including a CPU, a memory and a disk drive, are interconnected through an internal network  11 . 
     For example, a node ( 1 )  2  includes a computation unit ( 1 )  21  having a CPU and a memory; a disk  22 ; and an install device  23  such as a hard disk or a magnetic tape. The node ( 1 )  2  is connected to the internal network  11  through a communication device  12  which has a broadcast or multicast transfer function. In this way, all nodes (i.e., node ( 1 )  2 , node ( 2 )  3 , node ( 3 )  4 , node ( 4 )  5 , . . . , node (n−1)  6  and node (n)  7 ) are interconnected to the internal network  11 . 
     The disk  22  is an external storage device for storing a distributed program, and may be implemented by a hard disk or the like. The install device  23  is an external storage device for storing programs to be distributed, and may be implemented by a hard disk, a magnetic tape, an optical disk or the like. Alternatively, instead of the external storage device connected to each node, a storage region may be reserved on a memory in each node, or a program may be directly stored in a work region. 
     FIG. 2 is a block diagram illustrating an example in which a program to be distributed is read from the install device  23  and installed into all the nodes through the internal network  11 . Data read processing  81  at the node ( 1 )  2  reads every predefined amount of the program to be distributed, to data dividing buffers  90  from the install device  23  storing the program to be distributed. Data transfer processing  82  transfers the data read into the buffers to all the nodes to which the program is to be distributed, through the internal network  11 . One of all the nodes is represented by the node ( 2 )  3 . In the node ( 2 )  3 , data reception processing  111  remains in a data waiting state, for waiting data from the network  11 . As the program data is delivered by the data transfer processing  82 , the data reception processing  111  initiates to read the transferred data into data dividing buffers  120 . Disk write processing  112  writes the data read into the buffers into a disk  33  of the node ( 2 )  3 . 
     A master install control program  80  including the data read processing  81  and the data transfer processing  82 , and an install control program  120  including the data reception processing  111  and the disk write processing  112  are stored in the storage device of each node. Alternatively, the install control program  110  and the master install control program  80  may be stored in a storage device of a distributing node, such that the distributing node distributes the install control program  110  to receiving nodes when the parallel computer system is powered on. In this event, the distributing node sequentially transfers the install control program to the receiving nodes. 
     FIG. 3 illustrates the configuration of the master install control program  80 . In the node ( 1 )  2  to which the install device  23  storing the program to be distributed is connected, the master install control program  80  transfers every predefined amount of data read from the install device  23  to all of the node ( 1 )  2 , node ( 2 )  3 , node ( 3 )  4 , node ( 4 )  5 , . . . , node (n−1)  6  and node (n)  7  to which the program is distributed. In the following, the master install control program  80  will be described in detail. 
     The master install control program  80  includes the data read processing  81  for reading data from the install device  23  which stores programs; the data transfer processing  82  for transferring the data read in the data read processing  81  to all the nodes; data dividing buffers  90  each of which stores the predefined amount of data read from the install device  23  which stores programs; and buffer management tables  100  for managing the data dividing buffers  90 . Each buffer in the data dividing buffers  90  has a size equivalent to that of the predefined amount read from the install device  23 . 
     The buffer management tables  100  store information indicative of the states of the associated buffers to control the data dividing buffers  90  used in the data read processing  81  and the data transfer processing  82 . The buffer management tables  100  include table ( 1 )  101 , table ( 2 )  102 , . . . , table (m−1)  103  and table (m)  104  corresponding to buffer ( 1 )  91 , buffer ( 2 )  92 , . . . , buffer (m−1)  93  and buffer (m)  94  in the data dividing buffers  90 . 
     FIG. 4 illustrates the configuration of the install control program  110 . 
     The install control program  110  in each of the node ( 1 )  2 , node ( 2 )  3 , node ( 3 )  4 , node ( 4 )  5 , . . . , node (n−1)  6  and node (n)  7  is initiated by the master install control program  80 . 
     The install control program  110  includes data reception processing  111  for receiving data transferred from the master install control program  80 ; disk write processing  112  for writing data read in the data reception processing  111  into a disk; data dividing buffers  120  for storing every predefined amount of data transferred from the master install control program  80  and received in the data reception processing  111 ; and buffer management tables  130  for managing the data dividing buffers  120 . Each buffer in the data dividing buffers  120  has a size equivalent to that of the predefined amount read from the install device  23 . 
     The operation of the master install control program  80  in the configuration of FIG. 3 will be described along flow charts illustrated in FIGS. 5,  6  and  7 . 
     The flow chart in FIG. 5 illustrates the flow of processing executed by the master install control program  80 . First, the master install control program  80  reserves a region in the data dividing buffers  90  for storing data read from the install device  23 , and a region in the buffer management tables  100  for managing the data dividing buffers  90  (F 50 ), and initializes the data division management tables  100  to an initial state (F 51 ). Next, the program  80  initiates the install control programs  110  in all the nodes (F 52 ). Finally, the program  80  initiates the data read processing  81  and the data transfer processing  82  in the master install control program  80  (F 53 ). In this event, the install control programs  110  in all the nodes are sequentially initiated in each of the nodes (F 52 ). 
     Each of the receiving nodes is additionally provided with confirmation means for confirming whether a node power source is ON or OFF, and notification means for notifying a distributing node of the power-source state of the node itself. The distributing node may identify receiving nodes in which the power source is in ON state, before initiating the install control program  110  in all the nodes (F 52 ), to initiate the install control programs  110  in the operable receiving nodes (F 52 ). 
     FIG. 6 is a flow chart illustrating the data read processing  81 . The data read processing  81  is the processing for sequentially reading the predefined amount of data from the install device  23  into buffer ( 1 )  91 , buffer ( 2 )  92 , . . . , buffer (m−1)  93  and buffer (m)  94 . 
     The data read processing  81  stores the location of the buffer ( 1 )  91  which is the head of the data dividing buffers  90  (F 60 ). Next, the data read processing  81  finds a corresponding table in the buffer management tables  100  from the stored buffer location (F 61 ), and checks the state of the buffer from the found table (F 62 ). A buffer may take one of the following four states: a state (a reading-in-progress state) in which the predefined amount of data is being read from the install device  23  into the buffer; a state (a reading-completion state) in which the data has been completely read into the buffer; a state (a transfer-completion state) in which the data has been completely transferred to all the nodes; and a state in which a program has been fully read from the install device  23  (End of File). These states are represented by numerical values 0, 1, 0, −1 from the first state. It should be noted that the reading-in-progress state and the transfer-completion state are synonym. When the buffer is in the state “1,” the processing  81  waits for an event (F 63 ). When the buffer is in the state “0,” the processing  81  checks whether or not data still remains in the install device  23  (F 64 ). If data remains, the predefined amount of data is read from the install device  23  into the buffer (F 65 ). Then, the processing  81  transitions the state of the buffer to the reading-completion state (F 66 ). The processing  81  finds and stores the location of the next buffer (F 67 ), and returns to F 61 . If no data remains in the install device  23 , the processing  81  sets a table corresponding to the buffer location to “−1” (F 68 ), followed by termination of the flow. The correspondence between the buffers and the tables is made by reserving arrays of the same length. If the end location of the array is reached in determining the next location, the head of the array is pointed. Also, when the state of the buffer is set to “1” (F 66 ), and when the data transfer processing  82  is waiting for an event when the state of the buffer is set to “−1” (F 68 ), the data transfer processing  82  is released from the event waiting state, and forced to continue the processing. 
     FIG. 7 is a flow chart illustrating the data transfer processing  82 . The data transfer processing  82  is the processing for transferring data read into the data dividing buffers  90  in the data read processing  81  to the install control program  110  in each of the nodes. The data transfer processing  82  stores the location of the buffer ( 1 )  91  which is the head of the data dividing buffers  90  (F 70 ). 
     Next, the processing  82  finds a corresponding table in the buffer management tables  100  from the stored buffer location (F 71 ), and checks the state of the buffer from the found table (F 72 , F 74 ). The buffer may take one of the four states similar to the foregoing. When the buffer is in the state “0,” the processing  82  waits for an event (F 73 ). When the buffer is in the state “−1,” the processing  82  notifies all the nodes that the data has been fully read (the end of data is reached) (F 75 ), followed by termination of the flow. When the buffer is in the state “1,” the processing  82  transfers the data in the buffer to all the nodes (F 76 ). Then, the processing  82  transitions the state of the buffer to the transfer-completion state (F 77 ), stores the location of the next buffer (F 78 ), and returns to F 71 . If the end location of the array is reached in determining the next location, the head of the array is pointed in a manner similar to the foregoing. Also, when the data read processing  81  is waiting for an event when the state of the buffer is set to “0” (F 77 ), the data read processing  81  is released from the event waiting state, and forced to continue the processing. 
     Next, the operation of the install control program  110  in the configuration of FIG. 4 will be described along flow charts illustrated in FIGS. 8,  9  and  10 . 
     The flow chart in FIG. 8 illustrates the flow of processing executed by the install control program  110 . First, the program  110  reserves a region in the data dividing buffers  120  for storing data transferred from the data transfer processing  82  in the master install control program  80 , and a region in the buffer management tables  130  for managing the data dividing buffers  120  (F 80 ), and initializes the data division management tables  130  (F 81 ) into the initial state. Finally, the program  110  initiates the data reception processing  111  and the disk write processing  112  in the install control program  110  (F 82 ). 
     FIG. 9 is a flow chart illustrating the data reception processing  111 . The data reception processing  111  is the processing for sequentially receiving the predefined amount of data from the data transfer processing  82  in the master install control program  80  in buffer ( 1 )  121 , buffer ( 2 )  122 , . . . , buffer (m−1)  123  and buffer (m)  124 . 
     The data reception processing  111  stores the location of the buffer ( 1 )  121  which is the head of the data dividing buffers  120  (F 90 ). 
     Next, the processing  111  finds a corresponding table in the buffer management tables  130  from the stored buffer location (F 91 ), and checks the state of the buffer from the table (F 92 ). The buffer may take one of the following four states: a state (a reception-in-progress state) in which data is being received from the data transfer processing  82 ; a state (a receiving-completion state) in which data has been completely received; a state (a writing-completion state) in which data has been completely written into a disk, and a state in which the end of data has been reached. The respective states are represented by numerical values 0, 1, 0, −1 from the first one. It should be noted that the reception-in-progress state and the writing-completion state are synonym. When the buffer is in the state “1,” the processing  111  waits for an event (F 93 ). When the buffer is in the state “0,” the processing  111  checks whether or not data to be transferred from the data transfer processing  82  still remains (F 94 ). If data remains, data transferred from the data transfer processing  82  is read into the buffer (F 95 ). Then, the processing  111  transitions the state of the buffer to the receiving-completion state (F 96 ). The processing  111  finds and stores the location of the next buffer (F 97 ), and returns to F 91 . If no data remains, the processing  111  sets a table corresponding to the buffer location to “−1” (F 98 ), followed by termination of the flow. The correspondence between the buffers and the tables is made by reserving arrays of the same length. If the end location of the array is reached in determining the next location, the head of the array is pointed. Also, when the state of the buffer is set to “1” (F 96 ), and when the data write processing  112  is waiting for an event when the state of the buffer is set to “−1” (F 98 ), the data write processing  112  is released from the event waiting state, and forced to continue the processing. 
     FIG. 10 is a flow chart illustrating the disk write processing  112 . The disk write processing  112  is the processing for writing data read into the data dividing buffers in the data reception processing  111  into a disk connected to the node. The disk write processing  112  stores the location of the buffer ( 1 )  121  which is the head of the data dividing buffers  120  (F 100 ). 
     Next, the processing  112  finds a corresponding table in the buffer management tables  130  from the stored buffer location (F 101 ), and checks the state of the buffer from the found table (F 102 , F 104 ). The buffer may take one of the four states similar to the foregoing. When the buffer is in the state “0,” the processing  112  waits for an event (F 103 ). When the buffer is in the state “−1,” the flow is terminated. When the buffer is in the state “1,” the processing  112  writes the data in the buffer into a disk (F 105 ). Then, the processing  112  transitions the state of the buffer to the writing-completion state (F 106 ), finds and stores the location of the next buffer (F 107 ), and returns to F 101 . If the end location of the array is reached in determining the next location, the head of the array is pointed in a manner similar to the foregoing. Also, when the data reception processing  111  is waiting for an event when the state of the buffer is set to “0” (F 106 ), the data reception processing  111  is released from the event waiting state, and forced to continue the processing. 
     The foregoing description has been made for the embodiment according to the present invention which distributes the executed-in-parallel program in the parallel computer system including plural nodes interconnected through the internal network. It goes without saying, however, that the present invention can be applied to a system which has plural computers connected to a network and executed in parallel by multicasting program data from a distributing node to receiving nodes.