This application is based on and claims priority under 35 USC ยง119 from Japanese Patent Application No. 2007-259422 filed Oct. 3, 2007.
1. Technical Field
The present invention relates to a parallel computing system and a parallel computing method.
2. Related Art
Parallel computing is often used to perform a large amount of computation, for example, in a large-scale analysis. In the parallel computing, the analysis is performed by plural computers through distributed processing Such parallel computing is performed on a cluster, in which plural computers are connected to each other through a network, by executing an analysis program using a parallel library such as a message-passing interface (MPI), for example. In this case, a hard disk drive (HDD) is generally used as an external memory of the computers. Moreover, a virtual memory management method for a multi-processor system in which plural processors operate in parallel while communicating and cooperating with each other is used as a memory system for plural computers.
According to an aspect of the invention, there is provided a parallel computing system including: plural computing nodes that perform a computation; a management node that is connected to the plural computing nodes, and that manages parallel computing by the plural computing nodes; and an external memory that is connected to the management node, that is accessible from the management node and the plural computing nodes, and that uses a semiconductor memory as a memory medium. The management node allocates data to be processed to each of the computing nodes, and creates an individual data file for each of the computing nodes in the external memory, and each of the computing nodes performs a computation by accessing the external memory and by reading the data file allocated to itself and a different data file to be referenced in a computation using the allocated data file, and outputs a computation result to the external memory.
Exemplary embodiment(s) of the present invention will be described in detail based on the following figures, wherein:
Hereinafter, with reference to the attached drawings, a detailed description will be given of exemplary embodiments for carrying out the present invention.
The parallel computing system 100 shown in
In the first exemplary embodiment, a description will be given of a case in which an analysis of behavior on particles is performed, as an example of computing (analysis processing) by the parallel computing system 100. Specifically, the first exemplary embodiment is applied to a case in which an analysis is performed by simulating behavior of particles in the state where plural types of particles (toner, carrier particles and the like) are mixed, like an image forming material used for image formation in an image forming apparatus with an electrophotographic system, for example.
In such an analysis, a distinct element method or a finite element method is used. It should be noted that the analysis of behavior on particles is only an example of the processing to which the first exemplary embodiment may be applied. Further, the first exemplary embodiment may be applied to various kinds of processings in which a distributed processing may be performed by the parallel computing.
The computer 10 shown in
In
It should be noted that
As shown in
The management node 110 uses the SSD 130 as an external memory (auxiliary memory). Here, original data of each piece of particle information to be analyzed is held in the SSD 130. Moreover, the SSD 130 is set to be accessible from (shared by) the computing nodes 120. Accordingly, the computing nodes 120 each access the SSD 130 connected to the management node 110, under the access control by the management node 110, to directly read and write data.
The data allocation unit 111 reads, from the SSD 130, data of the pieces of particle information to be analyzed, allocates the read data to the computing nodes 120, and then outputs the data files to the SSD 130. Thereby, the data files (hereinafter, particle information files) allocated to the respective computing nodes 120 are held in the SSD 130. Here, the particle information files each contain data, such as a location and an attribute of each of the corresponding particles, which are necessary for computations to be performed by the corresponding computing node 120, and are held in a format that allows the computing nodes 120 to directly read and write data. The data allocation may be performed by use of, for example, a particle division method in which particles are divided into plural groups depending on the number of the computing nodes 120 and the particles in each of the groups are allocated to one of the computing nodes 120. Alternatively, the data allocation may be performed by use of, for example, a region division method in which the region where the particles are located is divided into plural regions depending on the number of the computing nodes 120 and the particles located in each of the resultant regions are allocated to one of the computing nodes 120. In either method, when the computing nodes 120 are different in performance, the allocation of the particles may be biased depending on the difference in performance among the individual computing nodes 120.
When the computations by all the computing nodes 120 are completed, the end processing unit 112 notifies a system user of the end of the analysis. Here, the end processing unit 112 may output the results of the computations by the computing nodes 120 as the analysis results. In the first exemplary embodiment, each of the computing nodes 120 directly writes the computation results obtained by itself into the SSD 130, which will be described later in detail. Accordingly, after recognizing that the computations by all the computing nodes 120 are completed, the end processing unit 112 may simply use the data of the pieces of particle information held in the SSD 130 as the analysis results.
As shown in
The reading unit 121 accesses the SSD 130 connected to the management node 110, and reads data that are necessary for computations to be performed by its own node. Here, the data that are necessary for the computations to be performed by its own node are data allocated to its own node by the management node 110 and data of other particles that affect the behavior of the particles corresponding to the data (the particles allocated to its own node). For example, the data of other particles includes data of particles which are close to the particles allocated to its own node, and thus whose electromagnetic force may affect the particles allocated to its own node or which may come in contact with the particles allocated to its own node.
The computing unit 122 analyzes the behavior of the particles allocated to its own node, on the basis of the data read by the reading unit 121. Specifically, on the basis of current positions and attributes of the particles and force acting on the particles, positional change of the particles is computed. As the attributes of the particles, sizes, masses, velocities, electric charges, magnetic charges and the like are exemplified.
The output unit 123 accesses the SSD 130 connected to the management node 110, and writes the results of the computations by the computing unit 122. The computations for the analysis of behavior on the particles by the computing unit 122 are generally executed by plural computation steps. Accordingly, the output unit 123 is to write the results of the computations every time computations are executed by the computing unit 122, to the SSD 130. At this times new results of computations may be additionally written as a new particle information file, or a particle information file allocated to its own node may be overwritten with latest results of the computations. In the former case, the results of the computations during the steps are also recorded as a history. However, since the results of the computations may not be written in the SSD 130 due to the limited memory capacity, an operation in which an older particle information file is deleted or the like in consideration of the size of the entire data may be necessary.
Next, a description will be given of operations of the parallel computing system 100 having the above configuration.
As shown in
The particle information files for each of the computing nodes 120 stored in the SSD 130 each have a file name including a node ID and a step number. Here, each node ID indicates identification information of each of the computing nodes 120 to which the particle information file is allocated, and each step number indicates information on the number of the computation steps performed by each of the computing nodes 120 for each obtaining the result of the computation.
The operations in and after step 504 are performed in each of the computing nodes 120 individually.
In each of the computing nodes 120, the reading unit 121 firstly accesses the SSD 130 to check whether there are particle information files necessary for computations to be performed by its own node (step 504). When there are particle information files necessary for the computations, the reading unit 121 reads the particle information files (step 505).
As described above, for computations to be performed by the computing unit 122 of each of the computing nodes 120, data of other particles that affect the behavior of the particles allocated to its own node are required in addition to the data of the particle information files allocated to its own node. Accordingly, it is necessary for each of the computing nodes 120 to prepare information on the particle information files required for the computations by itself (i.e. information which specifies the particle information files allocated to itself and the particle information files of other particles that affect the behavior of the particles allocated to itself). Here, any method may be used to prepare this information. Conceivable methods as simple examples are a method of creating a different data file separately from the particle information files and a method of recording the information on other particle information files in each particle information file.
In the case of employing the method of creating a different data file, in step 505, the reading unit 121 of the computing node 120 firstly specifies particle information files necessary for the computations by its own node with reference to the data file, and thereby reads the particle information files. In the case of employing the method of recording other particle information files in each particle information file, in each particle information file, information for specifying other particle information files necessary for the computations by the node to which this particle information file is allocated is recorded, in addition to the contents of the particle information file shown in
The node IDs of the computing nodes 120 to which such other particle information files are allocated are used as information for specifying other particle information files necessary for the computations. Accordingly, other particle information files necessary for the computations are specified in the level of the computing nodes 120. The reading unit 121 of each of the computing nodes 120 first reads the particle information files allocated to its own node, and then obtains node IDs from the above-described different file or the above-described information recorded in the read particle information files. Thereafter, the reading unit 121 searches and then reads the particle information files each having any one of the obtained node IDs in the file name.
Then, the computing unit 122 of each of the computing nodes 120 performs an analysis of behavior on each particle by using the particle information files read by the reading unit 121. As the analysis method, an existing method may be used. Specifically, for example, magnetic force (magnetic interaction force), electrostatic force (electrostatic interaction force) and contact force (mechanical interaction force) are firstly computed for each particle (steps 506, 507 and 508), and the sum of the computed forces are then obtained (step 509). Thereafter, position information (position coordinates) of each particle is computed by solving a motion equation on the basis of the sum of the forces obtained in step 509 and the position information and the attribute information of the particle (step 510). Here, since the computations in steps 506 to 508 are performed independently, the computations may be performed in an order different from that shown in
Subsequently, the output unit 123 of each of the computing nodes 120 accesses the SSD 130 to write the particle information file containing the position information computed by the computing unit 122 (step 511). The name of the particle information file includes a piece of information on the number of the computations relative to the predetermined number of the repeated computations in the analysis processing (i.e. computation step). A particle information file may be written by adding a particle information file, or by overwriting the particle information file into a new particle information file of the same particle, every time an analysis of steps 506 to 510 is completed, as described above.
The computation steps in the processing of steps 504 to 511 performed by each of the computing nodes 120 are set in advance depending on the contents of the analysis, and each of the computing nodes 120 repeats the processing until its computation step reaches the predetermined number (step 512). The reading unit 121 of each of the computing nodes 120 reads, for each computation, the particle information files of the particles allocated to its own node and other particles affecting the behavior of the particles, which contains the computation results necessary for the next computation. Here, when the output unit 123 overwrites the particle information file, there is only a single particle information file for each particle, and, hence, it is only necessary to read the particle information file.
When the computation step reaches the predetermined number, each of the computing nodes 120 terminates the processing (step 512). In the management node 110, the end processing unit 112 recognizes that the analysis processing is completed when the computation step reaches the predetermined number in all the computing nodes 120, and then performs an end processing (step 513). As the end processing, the end processing unit 112 notifies the system user of the end of the process, or outputs the particle information files held in the SSD 130 as the analysis results, for example.
Description will be further given with a specific example.
In the example shown in
Here, magnetic force occurs only in the carrier particles which are magnetic materials, while electrostatic force occurs only in the toner particles, each of which has an electric charge. Contact force, on the other hand, occurs in all the particles. Accordingly, in a case of computing contact force, the particle information files (results of the immediately preceding computation step) allocated to all the nodes are required to start the computation. By contrast, for example, in a case of computing magnetic force alone, only the particle information files (results of the immediately preceding computation step) allocated to the node 0 and the node 1 are required. Moreover, in a case of computing electrostatic force alone, only the particle information files (results of the immediately preceding computation step) allocated to the node 2 to the node 5 are required.
The above operation example has been described by taking, as an example, the case of performing an analysis of behavior on particles by a distinct element method. However, the parallel computing system 100 of the first exemplary embodiment is not limited to the case of employing the above-described distinct element method, and is applicable to various parallel computing using plural computing nodes 120. A description will be given of an operation example of parallel computing using a finite element method below.
As shown in
The operations in and after step 805 are performed in each of the computing nodes 120 individually.
In each of the computing nodes 120, the reading unit 121 firstly accesses the SSD 130 to check whether there are region information files necessary for computations to be performed by its own node (step 805). When there are region information files necessary for the computations, the reading unit 121 reads the region information files (step 806). Similarly to the case of the operations shown in
Then, the computing unit 122 of each of the computing nodes 120 performs a finite element analysis on each of the partial regions by using the region information files read by the reading unit 121. As an analysis method, an existing method may be used. Specifically, for example, the computing unit 122 creates, for each of the partial regions, a total matrix of the partial region on the basis of the element information of the partial region (step 807). Subsequently, the computing unit 122 sets a boundary condition on the basis of the element information of the adjacent regions (step 808). Then, a simultaneous equation is solved to obtain a nodal solution (step 809).
Thereafter, the output unit 123 of the computing node 120 accesses the SSD 130, and writes the region information file including the analysis results computed by the computing unit 122 (step 810). The analysis of steps 807 to 809 by each of the computing nodes 120 is performed repeatedly until the solution converges (step 811). The management node 110 recognizes that the analysis processing is completed when the solution has converged in all the computing nodes 120, on the basis of the region information files written in the SSD 130, and then performs an end processing (step 812).
In the first exemplary embodiment, a configuration in which only the management node 110 among the nodes composing the parallel computing system 100 includes the SSD 130 is employed. However, as shown in
As each of the management node 110 and the computing nodes 120 in the second exemplary embodiment, for example, the computer 10 shown in
<Functions of Nodes>
As shown in
The data allocation unit 111 reads, from the SSD 130, data of the pieces of particle information to be analyzed, allocates the read data to the computing nodes 120, and then transmits the allocated data to the computing nodes 120. Here, the data transmitted to each of the computing nodes 120 contain data, such as a location and an attribute of each of the corresponding particles, which are necessary for computations to be performed by each of the computing nodes 120. The data allocation may be performed by use of a conventional method such as a particle division method or a region division method. Moreover, the data allocation unit 111 transmits data of other particles that affect the behavior of the particles (the particles allocated to its own node) corresponding to the data together with the allocated data to each of the computing nodes 120. The data of other particles are data that are necessary for performing the analysis of the behavior on particles by each of the computing nodes 120 (data that are necessary for the computations).
The data update unit 113 receives computation results of the computing nodes 120, and then forms analysis results from the received computation results. Then, the data update unit 113 updates the pieces of particle information held in the SSD 130. This particle information update by the SSD 130 may be performed by writing the analysis results additionally, or by overwriting the current pieces of particle information with the analysis results. Computations for an analysis of behavior on particles by each of the computing nodes 120 are performed through plural computation steps, in general. Accordingly, the data update unit 113 updates the corresponding piece of particle information every time a computation result of a computation step is received from each of the computing nodes 120.
When the number of the computation steps performed by the computing nodes 120 reaches the predetermined number, the end processing unit 112 notifies a system user of the end of the analysis.
Here, the end processing unit 112 may output final analysis results (updated information). In the second exemplary embodiment, the data update unit 113 writes, as the analysis results, the computation results by all the computing nodes 120 collectively into the SSD 130. Accordingly, in the case of outputting the analysis results, the end processing unit 112 may simply output the data of the pieces of particle information held in the SSD 130.
As shown in
The receiving unit 124 receives data that are necessary for the computations by its own node transmitted from the management node 110. Here, the data necessary for the computations by its own node are, as described above, the data allocated to its own node by the management node 110 and data of other particles that affect behavior of the particles (the particles allocated to its own node) corresponding to the data.
The computing unit 122 analyzes the behavior of the particles allocated to its own node on the basis of the received data by the receiving unit 124. The computing unit 122 causes the work file created during the execution of the computations for the analysis to be held not only in the internal memory of the CPU 10a and the main memory 10b but also in the SSD 140.
The transmitting unit 125 transmits computation results by the computing unit 122 to the management node 110. As described above, generally, the computations for the analysis of behavior on particles by the computing unit 122 is executed as plural computation steps. Accordingly, the transmitting unit 125 is to transmit computation results to the management node 110 every time computation is executed by the computing unit 122.
Next, a description will be given of operations of the parallel computing system 100 according to the second exemplary embodiment.
As shown in
The operations in steps 1204 to 1209 are performed in each of the computing nodes 120 individually.
In each of the computing nodes 120, the computing unit 122 firstly computes magnetic force (magnetic interaction force), electrostatic force (electrostatic interaction force) and contact force (mechanical interaction force) for each particle (steps 1204, 1205 and 1206). At that time, the computed magnetic force, electrostatic force and contact force are outputted as a work file, and the file is held in the SSD 140. Then, the computing unit 122 reads the magnetic force, electrostatic force and contact force that are held as a work file from the SSD 140, and the sum of these forces are then obtained (step 1207). Thereafter, position information (position coordinates) of each particle is computed by solving a motion equation on the basis of the sum of the forces obtained in step 1207 and the position information and the attribute information of the particle (step 1208). When the computations by the computing unit 122 are completed, the transmitting unit 125 notifies the management node 110 of completion of the computations (step 1209).
After the data updating unit 113 of the management node 110 receives a notification of the completion of the computations from all the computing nodes 120, the data updating unit 113 receives computation results from each of the management nodes 110, and updates the data read from the SSD 130 in step 1202 (step 1210 and 1211). Then, in order to use the updated data for the next computation step by each of the computing nodes 120, the data updating unit 113 transmits the updated data to each of the computing nodes 120 (step 1212). After transmitting the updated data to all the computing nodes 120, the data updating unit 113 writes the computation results (the particle information) of each of the computing nodes 120 into the SSD 130 (step 1213 and 1214). Then, the processings of the steps 1204 to 1214 are repeated until the number of the computation steps of each of the computing nodes 120 reaches the predetermined number (step 1215). When the number of the computation steps reaches the predetermined number, the end processing unit 112 executes end processing in which the computation result outputted in step 1214 is provided as an analysis result (step 1216).
The second exemplary embodiment is not limited to the above-described analysis of behavior on particles by the distinct element method, and may be applied to various kinds of parallel computations that are executed by using plural computing nodes 120. Next, a description will be given of another operational example of the parallel computation by using the finite element method.
As shown in
The operations of steps 1306 to 1308 are performed in each of the computing nodes 120 independently.
In each of the computing nodes 120, the computing unit 122 firstly creates, for each of the partial regions, a total matrix of the partial region on the basis of the element information of the partial region (step 1306). Subsequently, the computing unit 122 sets a boundary condition on the basis of the element information of the adjacent regions (step 1307). Then, a simultaneous equation is solved to obtain a nodal solution (step 1308). In this event, the computation results (the total matrix of the partial region, the boundary condition, and the nodal solution) obtained in the respective steps are each outputted as a work file, and the outputted files are held in the SSD 140 of its own node. When the computations by the computing unit 122 are completed, the transmission unit 125 transmits the computation results to the management node 110.
The data update unit 113 of the management node 110 receives and collects the computation results from all the computing nodes 120 (step 1309), and then writes the results (region information) into the SSD 130 as analysis results (step 1310). The management node 110 and the computing nodes 120 repeat the operations of steps 1305 to 1310 until the solution of the analysis result converges (step 1311). When the solution of the analysis result has converged in all the computing nodes 120, the management node 110 performs an end processing (step 1312).
The foregoing description of the exemplary embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obviously, many modifications and variations will be apparent to practitioners skilled in the art. The exemplary embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, thereby enabling others skilled in the art to understand the invention for various embodiments and with the various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
2007-259422 | Oct 2007 | JP | national |