WO2010064661A1 - 並列計算システム、その方法及びそのプログラム - Google Patents

並列計算システム、その方法及びそのプログラム Download PDF

Info

Publication number
WO2010064661A1
WO2010064661A1 PCT/JP2009/070251 JP2009070251W WO2010064661A1 WO 2010064661 A1 WO2010064661 A1 WO 2010064661A1 JP 2009070251 W JP2009070251 W JP 2009070251W WO 2010064661 A1 WO2010064661 A1 WO 2010064661A1
Authority
WO
WIPO (PCT)
Prior art keywords
functional
communication request
communication
input
node
Prior art date
Application number
PCT/JP2009/070251
Other languages
English (en)
French (fr)
Inventor
信樹 梶原
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2010541339A priority Critical patent/JPWO2010064661A1/ja
Priority to US13/133,031 priority patent/US8824317B2/en
Publication of WO2010064661A1 publication Critical patent/WO2010064661A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring

Definitions

  • the present invention relates to a parallel computing system, and more particularly to a parallel computing system capable of assigning and managing hardware resources to a plurality of applications and processes, a method thereof, and a program thereof.
  • Non-Patent Document 1 An example of a parallel processing system related to the present invention is described in Non-Patent Document 1 and Non-Patent Document 2.
  • the parallel computing system 2500 is configured by a combination of hardware and software.
  • a plurality of functional nodes 2400 that perform functions such as computation, IO (input / output), and storage are provided as hardware.
  • IO input / output
  • storage storage
  • a communication path for communication between these function nodes 2400 is provided.
  • a software it has a virtualization layer 2300, a virtual machine 2200, and a process 2100 on the virtual machine.
  • the parallel computing system 2500 related to the present invention having such a configuration operates as follows.
  • the virtualization layer 2300 allocates a function node 2400 to each virtual machine 2200 dynamically or statically.
  • the virtual machine 2200 can operate as a virtual parallel computing system 2500 composed of independent function nodes.
  • Each virtual machine 2200 can execute the process 2100 on the virtual parallel machine 2200 assigned to the virtual machine 2200 without sensing the assignment of the physical function node 2400 and the execution state of the other virtual machines 2200. It is.
  • the process 2100 operating on the virtual machine 2200 is a normal OS (Operating System) or an application itself.
  • the functional nodes 2400 constituting the physical hardware perform processing while communicating with each other via a communication path.
  • Patent Document 1 Another example of a parallel computing system having a plurality of function nodes is described in Patent Document 1.
  • an object is configured by software, and functions such as calculation, IO (input / output), and storage can be realized in the object.
  • each virtual machine 2200 is assigned with a physical function node 2400 or another virtual machine 2200. It becomes possible to operate without sensing the execution state of.
  • the parallel processing system 2500 described in Non-Patent Document 1 and Non-Patent Document 2 has the following problems.
  • the first problem is that the processing overhead is large.
  • the reason is that a software layer called a virtualization layer and a virtual machine exists between physical hardware and a process for performing actual processing.
  • the second problem is that the communication bandwidth between the function nodes allocated to each virtual machine and the process running on it is not guaranteed.
  • the reason is that there is no function for guaranteeing the communication bandwidth for each virtual machine or between functional nodes in the virtual machine in a communication path that mediates communication between physical functional nodes.
  • the third problem is that the separation between the virtual machine and the processes running on it is not perfect. This is because the mapping of each virtual machine to physical hardware is performed by software called a virtualization layer.
  • an object of the present invention is to provide a parallel computing system, a method thereof, and a program thereof that can execute a plurality of processes with a small software layer overhead on one parallel computing system.
  • Another object of the present invention is to provide a parallel computing system, a method thereof, and a program thereof that can guarantee a communication bandwidth between functional nodes assigned to a process.
  • Another object of the present invention is to provide a parallel computing system, a method thereof, and a program thereof that can realize separation between a plurality of processes by hardware.
  • communication is performed between a plurality of functional nodes having any one of an arithmetic function, an input / output function, and a storage function or a combination thereof for performing information processing.
  • the functional node performs an arithmetic function, an input / output function, and a storage function for performing information processing.
  • a function node input / output port which is a port for inputting / outputting a communication request transferred between the function nodes in order to perform communication between the function elements and any one or a combination of the function elements.
  • a functional node group composed of a part or all of the functional nodes of the plurality of functional nodes included in the parallel computing system as one group
  • a plurality of input / output ports which are ports for inputting and outputting the communication request by the network switch, and the input / output port receives the communication request input from the input / output port.
  • a parallel computing system comprising: a switch for outputting to a network; and bandwidth management means for managing a communication bandwidth for each communication path between the functional nodes and controlling the switch.
  • communication is performed between a plurality of functional nodes having any one of an arithmetic function, an input / output function, and a storage function or a combination thereof for performing information processing.
  • a management method in a parallel computing system having a plurality of network switches functioning as a communication path that is a part of a communication path for performing processing, wherein the functional node performs an information processing, an input / output function A step of preparing a functional element having any one of a function and a storage function or a combination thereof; and a communication request transferred between the functional nodes so that the functional nodes communicate with each other between the functional nodes.
  • a functional node group management step for managing a functional node group composed of a part or all of the functional nodes as one group, and a plurality of ports that are ports through which the network switch inputs and outputs the communication request.
  • communication is performed between a plurality of functional nodes having a function of any of an arithmetic function, an input / output function and a storage function or a combination thereof for performing information processing.
  • the function node performs an arithmetic function, an input / output function
  • a functional node which is a port for inputting / outputting a communication element transferred between the functional nodes in order to perform communication between the functional elements and a functional element having any of the storage functions or a combination thereof
  • a functional node group composed of an input / output port and a part or all of the functional nodes of the plurality of functional nodes of the parallel computing system,
  • Functional node group management means for managing as a group, a plurality of input / output ports that are ports for the network switch to input / output the communication request, and the communication request input from the input / output
  • the functional node group management unit can directly communicate between functional nodes without the intervention of the OS or the virtualization layer, it is possible to reduce the overhead of communication between functional nodes constituting the process. .
  • FIG. 1 shows a first embodiment of the present invention.
  • the parallel computing system 1000 according to the present embodiment includes a plurality of functional nodes 300 and a communication path 500 that is a communication path for performing communication between the functional nodes 300.
  • the function node 300 is a node that provides an arithmetic function, an input / output function, a storage function, and the like.
  • the functional node 300 includes a functional element 310 that provides an arithmetic function, an input / output function, a storage function, and the like, and a functional node group management unit 320 that manages a plurality of functional node groups as one unit.
  • the communication path 500 includes a plurality of network switches 400.
  • the network switch 400 includes a switch 420 that functions as a communication path between the functional nodes 300 and a bandwidth management unit 410 that manages the bandwidth of communication between the functional nodes 300.
  • a plurality of processes 100 are executed.
  • the process 100 may be a normal OS or an application itself.
  • Each of the processes 100 is assigned a “functional node group” composed of a plurality of functional nodes 300 and a “bandwidth” of communication between the functional nodes 300.
  • the process 200 and the function node group correspondence 200 are the process 100 and the function node group assigned to the process 100. This association is performed by the functional node group management unit 320 included in the functional node 300 and the bandwidth management unit 410 included in the network switch 400.
  • FIG. 2 is an example of a process 100 and a group of functional nodes assigned to configure the process 100.
  • the functional node group includes a plurality of functional nodes 300 and a communication path 510 for performing communication between the functional nodes 300.
  • n1 to n9 are function nodes. Specifically, n1 and n6 are input / output nodes, n2, n3, n4 and n5 are operation nodes, and n7, n8 and n9 are storage nodes.
  • the configuration of the communication path 510 differs depending on the processing performed in the process 100.
  • the process 100 is a general-purpose process such as an OS
  • a complete coupling may be required between the functional nodes 300 in some cases.
  • the process 100 is a process for performing a specific process, it is not necessary to be completely coupled, and generally a communication path 510 that is far fewer than fully coupled is sufficient.
  • This embodiment can cope with a case where the communication path between the functional nodes 300 requires a complete connection, but is particularly effective when a specific communication path 510 required for the process 100 is requested.
  • the functional node 300 constituting the process 100 is identified by a “local node ID” that is valid only within the process 100.
  • the communication path 510 is identified by a “local communication path ID” that is valid only within the process 100.
  • n1 to n9 are local node IDs
  • lnk1 to lnk19 are local communication path IDs.
  • the functional node 300 has a “global node ID” in addition to the above-mentioned local node ID.
  • the global node ID is an ID for identifying each functional node 300 in the parallel computing system 1000.
  • FIG. 1 shows the global node IDs N1 to Nn.
  • the global communication path ID is an ID for identifying a communication path between the functional nodes 300.
  • the global communication path ID is not an ID corresponding to the individual network switch 400.
  • a communication path that communicates from a certain transfer source function node 300 to a certain transfer destination function node 300 can be designated as a connection state of a plurality of network switches 400 constituting the communication path and the network switch 400.
  • the global communication path ID is an ID used for identifying this connection state.
  • the association 200 between the process and the functional node group is realized by managing the association between the local node ID of each functional node 300 constituting the process 100 and the global node ID.
  • the functional element 310 of the transfer source functional node 300 When communicating between the functional nodes 300, first, the functional element 310 of the transfer source functional node 300 creates a local communication request 600 using "local identification information" such as a local node ID and a local communication path ID. Then, the created local communication request 600 is sent to the functional node group management unit 320 as a communication request to the transfer destination functional node 300.
  • local identification information such as a local node ID and a local communication path ID.
  • the functional node group management unit 320 creates the global communication request 700 by converting the local identification information of the received local communication request 600 into “global identification information” such as a global node ID and a global communication path ID.
  • the functional node group management unit 320 sends the created global communication request 700 to the network switch 400 that configures the communication path 500.
  • the network switch 400 controls the switch 420 based on the global identification information included in the global communication request 700, whereby the global communication request 700 is transferred to the transfer destination functional node 300.
  • bandwidth management unit 410 of the network switch 400 a communication path and a bandwidth allocated to the communication path are registered in advance. For example, bandwidth information to be assigned to the communication path corresponding to the transfer source global node ID and the transfer destination global node ID is registered in the bandwidth management unit 410. As the registration information, it is also possible to register bandwidth information to be allocated to the communication path corresponding to the global communication path ID.
  • the network switch 400 controls the switch 420 based on the global identification information included in the global communication request 700. At this time, the network switch 400 is necessary according to the bandwidth information registered in advance in the bandwidth management unit 410 of the network switch 400. By allocating the bandwidth, the bandwidth requested by the communication request is guaranteed.
  • FIG. 3 shows an example of the parallel computing system 1000 of this embodiment in the case of having a communication path 500 having a two-dimensional mesh configuration.
  • the functional nodes 300 are in a two-dimensional array, and one network switch 400 is connected to each functional node 300.
  • Each network switch 400 is connected to the other four network switches 400 that are adjacent vertically and horizontally on the two-dimensional array.
  • the function node 300 provides functions such as calculation, input / output, and storage.
  • the function node 300 may include a memory node 300-A with an MMU (Memory Management Unit) for sharing the memory function among a plurality of processes 100.
  • MMU Memory Management Unit
  • a power supply fv control node 300-B for controlling the power supply, operating frequency, and operating voltage of the network switch 400 may be included.
  • FIG. 4 is a diagram illustrating a specific example of a data structure of a communication request and identification information for performing communication between the functional nodes 300.
  • FIG. 4 a is a configuration example of the global communication request 700 and includes global identification information 710 and a payload 740.
  • Payload 740 is data transferred by communication.
  • the global communication request 700 may further include a function node group ID 720 and privilege control information 730.
  • the function node group ID 720 is an ID for identifying the function node group.
  • the privilege control information 730 is information for performing privileged control and other communication control.
  • the privilege control information 730 can also hold information for controlling the transfer destination of the global communication request 700.
  • the global communication request 700 can be transferred not only to the functional node 300 but also to the network switch 400 using the privilege control information 730.
  • the function nodes 300 and the network switches 400 correspond one-to-one. Therefore, when the global communication request 700 is transferred to the network switch 400 corresponding to the functional node 300, the same global identification information 710 is set in the global communication request 700.
  • the privilege control information 730 with a flag for identifying either the functional node 300 or the network switch 400 as a transfer destination, it becomes possible to transfer the data in a distinguished manner.
  • FIG. 4 b shows a configuration example of the local communication request 600 and has local identification information 610 and a payload 740. Similar to the global communication request 700, the local communication request 600 can also be configured to include a functional node group ID 720 and privilege control information 730.
  • FIG. 4 c 1 is a configuration example of the global identification information 710 and includes a transfer destination global node ID 810 and a transfer source global node ID 820.
  • FIG. 4c2 is a configuration example of the local identification information 610, and includes a transfer destination local node ID 910 and a transfer source local node ID 920.
  • FIG. 4d1 is another configuration example of the global identification information 710, and has a global communication path ID 830.
  • FIG. 4 d 2 is another configuration example of the local identification information 610 and has a local communication path ID 930.
  • FIG. 5 is a diagram illustrating a configuration example of the function node 300.
  • the functional node 300 includes a functional element 310, a functional node group management unit 320, a power supply fv control unit 350, a privilege level storage unit 360, a functional node input port 370, and a functional node output port 380.
  • the functional node group management unit 320 includes a communication request conversion unit 330 and a functional node group management information holding unit 340.
  • the functional element 310 provides any of a calculation function, an input / output function, and a storage function. Further, the functional element 310 may provide other functions instead of these functions or together with these functions.
  • the functional node group management unit 320 functions as an interface unit with the network switch 400.
  • the functional node 300 has a functional node input port 370 and a functional node output port 380 in order to exchange a global communication request 700 with the network switch 400.
  • the functional node group management information holding unit 340 holds information necessary for mutually converting the local communication request 600 and the global communication request 700.
  • a correspondence table between the local node ID and the global node ID of the transfer destination functional node 300 when the functional node 300 performs communication as the transfer source functional node 300 is mentioned.
  • the functional element 310 generates a local communication request 600 using the local identification information 610 illustrated in FIG. 4c2 (step S11).
  • the communication request conversion unit 330 converts the transfer destination local node ID 910 constituting the local identification information 610 of the local communication request 600 into a global node ID 810 with reference to the functional node group management information holding unit 340. Similarly, the function node group management information holding unit 340 is referred to, and the transfer source local node ID 920 is converted into the transfer source global node ID 820. Then, the global identification information 710 (see FIG. 4c1) is set using these converted IDs (step S13).
  • the communication request conversion unit 330 transfers the communication request to the transfer destination functional node 300 by sending the global communication request 700 including the global identification information 710 of FIG. 4c1 from the functional node output port 380 to the network switch 400 (step S15). ).
  • the global communication request 700 transferred from the network switch 400 to the functional node 300 via the functional node input port 370 is converted into a local communication request 600 by the communication request conversion unit 330 and the functional node group management information holding unit 340, (Step S17).
  • the communication request conversion unit 330 extracts the payload 740 from the global communication request 700 and transfers only the payload 740 to the functional element 310. You can also In this case, it is not necessary to refer to the functional node group management information holding unit 340, and the communication request conversion unit 330 and the functional node group management information holding unit 340 can be simplified.
  • the global identification information 710 included in the global communication request 700 and the local identification information 610 of the local communication request 600 are configured using the global communication path ID 830 (see FIG. 4d1) and the local communication path ID 930 (see FIG. 4d2), respectively.
  • the local communication request 600 and the global communication request 700 can be converted into each other in the same procedure.
  • the functional node group configuration can be changed by rewriting and updating the functional node group management information holding unit 340.
  • the functional node group management information holding unit 340 is rewritten by a global communication request 700 from another functional node 300.
  • the privilege control information 730 included in the global communication request 700 and the payload 740 are used to instruct rewriting and rewriting contents of the functional node group management information holding unit 340.
  • the function node group management information holding unit 340 is erroneously rewritten, the process 100 being executed in another function node group is affected. Therefore, it is preferable that only the privileged global communication request 700 can be rewritten so as not to be rewritten accidentally or rewritten by the malicious process 100.
  • the privilege control information 730 is added to the global communication request 700, and the privilege control information 730 is used to identify whether or not the communication request can request a privileged operation.
  • the privilege level storage unit 360 of the functional node 300 holds the privilege level of the functional node 300.
  • the communication request conversion unit 330 controls transmission of a global communication request 700 that instructs a privileged operation.
  • the functional element 310 of the functional node 300 having a low privilege level (non-privileged level) sends a local communication request 600 instructing a privileged operation
  • the communication request conversion unit 330 transmits the global communication request 700 of the local communication request 600. And conversion to the network switch 400 is blocked.
  • Rewriting of the privilege level held in the privilege level storage unit 360 is also performed by the privileged global communication request 700. On the other hand, rewriting by the global communication request 700 having a low privilege level (or a non-privileged level) is blocked.
  • the power fv control unit 350 of the functional node 300 performs power ON / OFF switching of the functional node 300, and control of the operating frequency and operating voltage.
  • the power supply fv control of the functional node 300 can be designated as the global communication request 700. Whether to perform power ON / OFF switching, operation frequency control, or operation voltage control can be specified using the privilege control information 730 and the payload 740 constituting the global communication request 700.
  • the network switch 400 includes a switch 410, a bandwidth management unit 420, a switch control unit 430, a bandwidth management information holding unit 440, and a network switch power supply fv control unit 450.
  • the network switch 400 has a connection with other network switches 400 that are adjacent vertically and horizontally.
  • the network switch 400 is connected to one functional node 300.
  • the network switch 400 has input / output ports corresponding to these connections. Therefore, the network switch 400 includes four network switches 400 that are vertically and horizontally adjacent to each other and five input ports for input from one adjacent functional node 300. In FIG. 6 and the following description, these five input ports are denoted as 460U, 460D, 460L, 460R, 460N.
  • four network switches 400 that are vertically and horizontally adjacent to each other and five output ports for output to one adjacent functional node 300 are provided. In FIG. 6 and the following description, these five ports are represented as 470U, 470D, 470L, 470R, and 470N.
  • the global communication request 700 is input to a single, plural or all of the five input ports 460U, 460D, 460L, 460R, 460N (step S21).
  • the switch controller 430 of the bandwidth 420 determines from which input port 460 to which output port 470 the global communication request 700 is transferred (step S23).
  • the switch control unit 430 controls the switch 410, the global communication request 700 from the five input ports 460U, 460D, 460L, 460R, and 460N is transmitted to the five output ports 470U via the 5 ⁇ 5 switch 420.
  • 470D, 470L, 470R, and 470N are transferred and output (step S25).
  • the transfer destination is not limited to one, and there may be a plurality of transfer destinations. For example, if the same communication request is transferred to the entire node group, that is, all nodes belonging to the node group, or if the same communication request is transferred to some of the nodes belonging to the node group, there are a plurality of transfer destinations. It becomes.
  • the switch 410 is controlled by the switch control unit 430 of the bandwidth management unit 420 to which input port 460 to which output port 470 the global communication request 700 is transferred.
  • Each global communication request 700 defines a required transfer bandwidth.
  • the bandwidth management information holding unit 440 stores information for controlling the switch 410 with respect to the plurality of communication paths 510 passing through the network switch 5.
  • the output port 470 to be transferred for each communication path 510 identified by the global identification information 710 included in the global communication request 700 is associated with the requested bandwidth.
  • the attached table can be illustrated.
  • the switch control unit 430 controls the switch 410 based on the bandwidth management information holding unit 440.
  • the bandwidth management information holding unit 440 can be rewritten by an instruction of the global communication request 700 sent with the network switch 400 as a transfer destination.
  • FIG. 7 is a configuration example of the 5 ⁇ 5 switch 410.
  • the transfer route having the network switch 400 itself as the transfer destination is omitted.
  • the transfer port number having the network switch 400 itself as the transfer destination is changed from 5 to 6. It can be easily expanded by increasing the number.
  • the transfer operation of the switch 410 is designated by a path control signal 414 and a bandwidth control signal 415 that constitute a control signal from the switch control unit 430 shown in FIG.
  • a multiplexer (denoted as “MUX” in the drawing and in the following description) MUX 411 performs path control for appropriately transferring the global communication request 700 received from the input port 460 to the output port 470.
  • the bandwidth control unit 413 performs control for performing transfer that guarantees the bandwidth requested by the global communication request 700.
  • a buffer (buffer: expressed as “BUF” in the figure and the following description) is a BUF for storing a global communication request 700 between the MUX 411 and the bandwidth control unit 413.
  • the MUX 411 is set in advance with an appropriate output destination for each communication path 510 based on the path control signal 414.
  • the MUX 411 identifies the communication path 510 from the global identification information 710 included in the global communication request 700, and transfers the global communication request 700 to the preset output destination BUF 412.
  • FIG. 8 is a diagram illustrating an example of bandwidth control.
  • the output port 470 is shared by four communication paths 510L1, 510L2, 510L3, and 510L4. If the bandwidth of the output port 470 is B, and the bandwidths required by the four communication paths 510L1, 5102, 5103, and 5104 are B1, B2, B3, and B4, respectively,
  • the relationship needs to hold.
  • the path from the BUF 412U to the output port 470 is shared by the two communication paths 510L1 and 510L2, and the bandwidth required for this path is (B1 + B2).
  • the communication path 510 is not set as the path from the BUF 412D and the BUF 412R to the output port 470.
  • the communication path 510L3 is set as the path from the BUF 412L to the output port 470.
  • the communication path 510L4 is set as the path from the BUF 412N to the output port 470.
  • the bandwidth management unit 413 allocates B1 + B2, 0, B3, 0, and B4 as bandwidths to each of the four BUF412U, BUF412D, BUF412L, BUF412R, and BUF412N.
  • the BUF 412U is shared by the two communication paths 510L1 and 510L2, but if each source function node 300 sends out a global communication request 700 within a preset bandwidth range, the respective communication paths The bandwidth (B1 + B2) for the BUF 412U may be guaranteed without distinguishing between them.
  • the bandwidth control unit 413 confirms whether the global communication request 700 exists in each BUF 412 by, for example, round robin. If there is a global communication request 700, one global communication request 700 is taken out from the BUF 412 and transferred to the output port 470. Since the bandwidth allocated to each BUF 412 is different, communication that guarantees the bandwidth required by each communication path 510 can be realized by performing round robin at a frequency proportional to the allocated bandwidth. In the example of FIG. 8, for five BUF412U, BUF412D, BUF412L, BUF412R, and BUF412N
  • the round robin may be performed at a frequency proportional to.
  • the frequency of round robin is set by the bandwidth control signal 415.
  • the maximum length of the global communication request 700 may be set, and round robin may be performed so as to guarantee the communication of the maximum length.
  • round robin may be performed so as to guarantee the communication of the maximum length.
  • the network switch 400 in FIG. 6 further includes a network switch power fv control unit 450.
  • the network switch power supply fv control unit 450 controls the power supply ON / OFF switching, the operating voltage, and the operating frequency according to the instruction of the global communication request 700 sent with the network switch 400 as a transfer destination.
  • FIG. 9 is a configuration example of the storage node 300-A with MMU.
  • the function node group management unit 320, the communication request conversion unit 330, the function node group management information holding unit 340, the power supply fv control unit 350, and the privilege level storage unit 360 are the same as the function node 300 in FIG. is there.
  • the storage node 300-A with MMU has a functional node group ID extraction unit 390.
  • the functional element 310 includes a storage element 310-A.
  • the storage element 310-A includes a storage element 311-A, an MMU 312-A, a storage access control unit 313-A, and storage management information 314-A.
  • the functional node group ID extraction unit 390 extracts the functional node group ID from the global communication request 700.
  • the storage element 3101 functions as a storage element with an MMU.
  • the global communication request 700 received from the function node input port 370 is converted into a local communication request 600 and transferred to the storage access control unit 313-A.
  • the payload 740 of the local communication request 600 is an instruction to access the storage element.
  • the payload 740 of the local communication request 600 has an access type that indicates whether the access is write or read, and a logical address. When the access type is “write”, it has write-in data. On the other hand, when the access type is read, it has the local node ID of the functional node 300 to which the read data is to be transferred.
  • the storage access control unit 313-A extracts the access type and logical address from the local communication request 600. Here, if the access type is writing, data is also extracted. On the other hand, if the access type is read, the local node ID of the functional node 300 to which the read data is to be transferred is also extracted. The storage access control unit 313-A performs a read / write operation on the storage element based on the extracted information.
  • the storage management information 314-A is information necessary for conversion of the functional node group accessing the storage node 300-A with MMU, a logical address unique to each functional node group, and a physical address of the storage element 311-A. Hold.
  • the MMU 312 -A performs conversion from a logical address to a physical address.
  • An access request for the storage node 300-A with MMU is transferred as a global communication request 700 from a plurality of functional node groups.
  • the MMU 312 -A converts the logical address into a physical address based on the functional node group ID extracted by the functional node group ID extraction unit 390 and the storage management information 314 -A.
  • the global communication request 700 received from the functional node input port 370 is converted into a local communication request 600 by the functional node management unit 320 and transferred to the storage access control unit 313-A.
  • the storage access control unit 313-A performs access control on the storage element 311-A according to the access type.
  • the logical address is converted into a physical address by the MMU 312 -A and used for addressing the storage element 311 -A.
  • the storage access control unit 313-A writes the extracted data to the storage element 311-A when the access type is write.
  • the access type is read, the data read from the storage element 311 -A, the local node ID of the functional node 300 to which the data is to be transferred, and the functional node group extracted by the functional node group ID extracting unit 390
  • a local communication request 600 is generated from the ID. Then, the generated local communication request 600 is transferred to the communication request conversion unit 330.
  • the communication request conversion unit 330 converts the local communication request 600 into a global communication request 700 and sends it to the function node output port 380.
  • the storage management information 314-A can be rewritten by a privileged global communication request 700 from the function node input port 370.
  • FIG. 10 is a configuration example of the power supply fv control node 300-B.
  • the power supply fv control node 300-B controls ON / OFF switching of the power supply of the network switch 400, the operating voltage, and the operating frequency via the dedicated communication path.
  • the point that the power supply fv control node 300-B includes a functional node group management unit 320, a communication request conversion unit 330, a functional node group management information holding unit 340, a power supply fv control unit 350, and a privilege level storage unit 360. This is the same as the function node 300 of FIG.
  • the power supply fv control node 300-B has a power supply fv control input / output element 310-B as the functional element 310.
  • the power supply fv control input / output element 310-B is connected to the power supply fv control unit 450 of the network switch 400 according to the instruction of the payload 740 included in the global communication request 700 from the function node input port 370.
  • the power supply fv control of the network switch 400 is performed via the path.
  • the first effect is that the overhead of communication between function nodes constituting the process can be reduced. This is because the functional node group management unit can directly communicate between functional nodes without the intervention of the OS or the virtualization layer.
  • the second effect is that the communication bandwidth between functional nodes assigned to the process can be guaranteed.
  • the reason is that communication control according to the bandwidth of communication between the function nodes set in advance by the bandwidth management unit of the network switch can be performed.
  • the third effect is that a plurality of processes can be executed on one parallel processing system without interfering with each other.
  • the reason is that the function node group management unit, the function node assigned to each process by the bandwidth management unit, and the communication bandwidth between the function nodes can be operated completely separated from other processes.
  • the fourth effect is that power consumption can be reduced.
  • the reason is that each functional node 300 is configured to have the power supply fv control unit 350. Therefore, the power consumption of the functional node 300 not assigned to the process is turned off or the clock is stopped. This is because reduction can be realized. When there is a margin in processing performance of the functional node 300, power consumption can be reduced by lowering the clock frequency or lowering the power supply voltage.
  • each network switch 400 is configured to have a network switch power supply fv control unit 450, power consumption can be reduced by turning off the power of the network switch 400 to which the communication path 510 is not assigned or stopping the clock. Reduction is possible.
  • the bandwidth of the network switch 400 has a margin with respect to the required bandwidth of the communication path 510 assigned to the network switch 400, the power consumption can be reduced by lowering the clock frequency or reducing the power supply voltage. Is possible.
  • the fifth effect is that setting of management information can be performed only by the process 100 having a high privilege level.
  • the global communication request 700 and the local communication request 600 can be configured to have the privilege control information 730, so that the function node group management information holding unit 340, the privilege level storage unit 360, the power supply fv control This is because the operation of management information such as the unit 350, the network switch power fv control unit 450, and the storage management information 314-A can be set so as to be performed only by the process 100 having a high privilege level.
  • an OS process for allocating resources such as the function node 300 and the communication path 510 to other processes 100 can be configured.
  • the sixth effect is that communication between different processes 100 is also possible.
  • the reason is that a storage node 300-A with an MMU can be provided as a storage node, and the storage node 300-A with an MMU has a function of a shared memory in which a plurality of processes 100 share the same storage element 311-A. This is because it can be realized safely.
  • parallel computing system can be realized by hardware, software, or a combination thereof.
  • the parallel computing system described above can be realized by hardware, but can also be realized by a computer reading a program for causing the computer to function as the system from a recording medium and executing the program.
  • the above parallel calculation method can also be realized by hardware.
  • a program for causing a computer to execute the method can be read from a computer-readable recording medium and executed. Can be realized.
  • the hardware and software configurations described above are not particularly limited, and any configuration can be applied as long as the functions of the respective units described above can be realized.
  • it may be configured individually for each function of each unit described above, or may be configured integrally with the function of each unit.
  • the present invention can be applied to applications such as embedded control in which real-time performance and low power performance are important for multi-core systems. Also, the present invention can be applied to a case where a plurality of processes are optimized for a plurality of cores for each process by an automatic parallelizing compiler and executed without interfering with each other on one parallel computing system.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

 並列処理システム上で同時に動作する複数のプロセスに対する計算資源の割り当てを効率良く行う。並列計算システムは、複数の機能ノードと、機能ノード間で通信を行うための通信路の一部であり通信経路として機能する複数のネットワークスイッチとを有する。機能ノードは、並列計算システムが有する複数の機能ノードの一部又は全部の機能ノードから構成される機能ノード群を、1つの群として管理する。ネットワークスイッチは、通信要求を入出力するためのポートである複数の入出力ポートと、入出力ポートから入力された通信要求を入出力ポートへ出力するスイッチと、を備え、機能ノード間の通信経路毎に通信帯域幅を管理しスイッチを制御する。

Description

並列計算システム、その方法及びそのプログラム
 本発明は、並列計算システムに関し、特に複数のアプリケーションやプロセスへのハードウェア資源の割り当て及び管理が可能な並列計算システム、その方法及びそのプログラムに関する。
 本発明に関連する並列処理システムの一例が、非特許文献1及び非特許文献2に記載されている。図11に示すように、この並列計算システム2500は、ハードウェアとソフトウェアの組合せによって構成されている。
 具体的には、ハードウェアとして、演算、IO(入出力)、記憶等の機能を行う機能ノード2400を複数有している。そして、機能ノード2400に加えて、これら機能ノード2400間の通信のための通信路を有している。
 更に、ソフトウェアとして、仮想化層2300、仮想マシン2200及び仮想マシン上のプロセス2100を有している。
 このような構成を有する本発明に関連する並列計算システム2500は、次のように動作する。
 まず、仮想化層2300は、各仮想マシン2200に対して動的、または静的に機能ノード2400を割り当てる。これにより、仮想マシン2200は、それぞれ独立した機能ノードから構成される仮想的な並列計算システム2500として動作することができる。各仮想マシン2200は、物理的な機能ノード2400の割り当てや、他の仮想マシン2200の実行状態を感知することなく、自身に割り当てられた仮想並列マシン2200の上でプロセス2100を実行することが可能である。仮想マシン2200上で動作するプロセス2100は、通常のOS(Operating System)であったり、アプリケーションそのものであったりする。物理的なハードウェアを構成する機能ノード2400は、通信路を介して相互に通信しながら処理を行う。
 また、複数の機能ノードを備えた並列計算システムの他の例が、特許文献1に記載されている。特許文献1に記載の技術によれば、ソフトウェアによりオブジェクトを構成し、このオブジェクトに演算、IO(入出力)、記憶等の機能を実現させることができる。
 そして、このような構成をとることにより、複数の機能ノードを備えた並列計算システムを実現することができる。
特開2000-155692号公報
中田 秀基 著「仮想化技術の動向と仮想クラスタ管理システムの紹介」GridWorld 2007 チュートリアル資料、2007年5月31日、p.5 富士通株式会社「Linux仮想マシン機能」ホワイトペーパー、[online]、2008年3月、pp.5-14、[平成20年11月21日検索]、インターネット〈URL:http://primeserver.fujitsu.com/primergy/software/linux/products/distribution/pdf/primergy-vm-wp.pdf〉
 上述した特許文献1に記載の技術により、並列計算システムを実現することができるが、或るオブジェクト実行が、他のオブジェクト実行性能に影響を与えることがあるという問題がある。理由は、以下の通りである。
 特許文献1に記載の技術では、計算システムがハードウェアとして備える演算、IO(入出力)、記憶等の機能をOSの管理のもとに時分割で割り当てることにより実行する。つまり、複数のオブジェクトでハードウェアを共有することになる。そのため、或るオブジェクト実行が、他のオブジェクト実行性能に影響を与えるという事態が生じる。
 この点、上述したように、非特許文献1及び非特許文献2に記載されている並列処理システム2500を用いることにより各仮想マシン2200は物理的な機能ノード2400の割り当てや、他の仮想マシン2200の実行状態を感知することなく動作することが可能となる。しかし、非特許文献1及び非特許文献2に記載されている並列処理システム2500には、以下のような問題点がある。
 第1の問題点は、処理のオーバーヘッドが大きいということである。その理由は、物理的なハードウェアと実際の処理を行うプロセスの間に仮想化層、仮想マシンというソフトウェアの階層が存在するためである。
 第2の問題点は、各仮想マシン及びその上で動くプロセス、に割り当てられた機能ノード間の通信帯域幅が保証されないということである。その理由は、物理的な機能ノード間の通信を介在する通信路に、仮想マシン毎や、または仮想マシン内の機能ノード間の通信帯域幅を保証する機能が存在しないためである。
 第3の問題点は、仮想マシンおよびその上で動くプロセス間の分離が完全ではないということである。その理由は、各仮想マシンの物理的なハードウェアへのマッピングは仮想化層というソフトウェアで行われるためである。
 そこで、本発明は1つの並列計算システム上でソフトウェア層のオーバーヘッドを少なく複数のプロセスが実行できる並列計算システム、その方法及びそのプログラムを提供することを目的とする。
 更に、本発明はプロセスに割り当てられた機能ノード間の通信帯域幅を保証できる並列計算システム、その方法及びそのプログラムを提供することを他の目的とする。
 更に、本発明は複数のプロセス間の分離をハードウェアで実現できる並列計算システム、その方法及びそのプログラムを提供することを他の目的とする。
 本発明の第1の観点によれば、情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する複数の機能ノードと、前記機能ノード間で通信を行うための通信路の一部であり通信経路として機能する複数のネットワークスイッチとを有する並列計算システムにおいて、前記機能ノードが、情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する機能要素と、前記機能ノード間で相互に通信を行うために前記機能ノード間で転送される通信要求を入出力するためのポートである機能ノード入出力ポートと、前記並列計算システムが有する複数の前記機能ノードの一部又は全部の前記機能ノードから構成される機能ノード群を、1つの群として管理する機能ノード群管理手段と、を備え、前記ネットワークスイッチが、前記通信要求を入出力するためのポートである複数の入出力ポートと、前記入出力ポートから入力された前記通信要求を前記入出力ポートへ出力するスイッチと、前記機能ノード間の前記通信経路毎に通信帯域幅を管理し前記スイッチを制御する帯域幅管理手段と、を備えていることを特徴とする並列計算システムが提供される。
 本発明の第2の観点によれば、情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する複数の機能ノードと、前記機能ノード間で通信を行うための通信路の一部であり通信経路として機能する複数のネットワークスイッチとを有する並列計算システムにおける管理方法であって、前記機能ノードが、情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する機能要素を用意するステップと、前記機能ノードが、前記機能ノード間で相互に通信を行うために前記機能ノード間で転送される通信要求を入出力するためのポートである機能ノード入出力ポートを用意するステップと、前記機能ノードが、前記並列計算方法が有する複数の前記機能ノードの一部又は全部の前記機能ノードから構成される機能ノード群を、1つの群として管理する機能ノード群管理ステップと、前記ネットワークスイッチが、前記通信要求を入出力するためのポートである複数の入出力ポートを用意するステップと、前記ネットワークスイッチが、前記入出力ポートから入力された前記通信要求を前記入出力ポートへ出力するスイッチを用意するステップと、前記ネットワークスイッチが、前記機能ノード間の前記通信経路毎に通信帯域幅を管理し前記スイッチを制御する帯域幅管理ステップと、を備えていることを特徴とする並列計算方法が提供される。
 本発明の第3の観点によれば、情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する複数の機能ノードと、前記機能ノード間で通信を行うための通信路の一部であり通信経路として機能する複数のネットワークスイッチとを有する並列計算システムにおける管理プログラムにおいて、前記機能ノードが、情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する機能要素と、前記機能ノード間で相互に通信を行うために前記機能ノード間で転送される通信要求を入出力するためのポートである機能ノード入出力ポートと、前記並列計算システムが有する複数の前記機能ノードの一部又は全部の前記機能ノードから構成される機能ノード群を、1つの群として管理する機能ノード群管理手段と、を備え、前記ネットワークスイッチが、前記通信要求を入出力するためのポートである複数の入出力ポートと、前記入出力ポートから入力された前記通信要求を前記入出力ポートへ出力するスイッチと、前記機能ノード間の前記通信経路毎に通信帯域幅を管理し前記スイッチを制御する帯域幅管理手段と、を備えている並列計算システムとしてコンピュータを機能させることを特徴とする管理プログラムが提供される。
 本発明によれば、機能ノード群管理部によりOSや仮想化層の介在無しに直接機能ノード間が通信できることから、プロセスを構成する機能ノード間通信のオーバーヘッドの削減を実現することが可能となる。
本発明の実施の形態の基本的構成を示すブロック図である。 本発明が処理の対象とするプロセスの例を示す構成図である。 本発明の実施の形態の動作を説明するための2次元メッシュ構成の並列計算システムのブロック図である。 本発明の実施の形態の機能ノード間の通信の通信要求の構成例を示す図である。 本発明の実施の形態の機能ノードの構成例を示す図である。 本発明の実施の形態のネットワークスイッチの構成例を示す図である。 本発明の実施の形態のネットワークスイッチを構成するスイッチの構成例を示す図である。 本発明の実施の形態のネットワークスイッチによる帯域幅制御を説明する図である。 本発明の実施の形態のMMU付き記憶ノードの構成例を示す図である。 本発明の実施の形態の電源fv制御ノードの構成例を示す図である。 本発明に関連する仮想クロスタ技術について示すブロック図である。 本発明の実施の形態の機能ノード300の基本的動作について示すフローチャートである。 本発明の実施の形態の機能ネットワークスイッチ400の基本的動作について示すフローチャートである。
 次に、本発明に係る並列計算システム、その方法及びそのプログラムの実施の形態について図面を参照して詳細に説明する。
 図1に、本発明の第1の実施の形態を示す。本実施形態の並列計算システム1000は、複数の機能ノード300と、これら機能ノード300間の通信を行うための通信路である通信路500とを有している。
 機能ノード300は、演算機能、入出力機能、記憶機能等を提供するノードである。機能ノード300は、演算機能、入出力機能、記憶機能等を提供する機能要素310と複数の機能ノード群を1つのまとまりとして管理するための機能ノード群管理部320とを有する。
 また、通信路500は、複数のネットワークスイッチ400を有している。そして、ネットワークスイッチ400は、機能ノード300間の通信経路として機能するスイッチ420と機能ノード300間の通信の帯域幅を管理するための帯域幅管理部410とを有する。
 並列計算システム1000では、複数のプロセス100が実行される。なお、プロセス100は、通常のOSであったり、アプリケーションそのものであったりする。プロセス100のそれぞれに、複数の機能ノード300からなる「機能ノード群」と、機能ノード300間の通信の「帯域幅」が割り当てられる。
 プロセスと機能ノード群の対応付け200は、プロセス100とプロセス100に割り当てられた機能ノード群の対応付けである。この対応付けは、機能ノード300の有する機能ノード群管理部320と、ネットワークスイッチ400の有する帯域幅管理部410で行われる。
 図2は、プロセス100と、プロセス100を構成するために割り当てられた機能ノード群の例である。機能ノード群は複数の機能ノード300と、機能ノード300間で通信を行うための通信経路510から構成される。図2のn1~n9は、機能ノードである。具体的には、n1、n6は入出力ノード、n2、n3、n4及びn5は演算ノード、n7、n8及びn9は記憶ノードである。
 通信経路510の構成は、プロセス100で行われる処理に応じて異なる。プロセス100が、OSのような汎用的なプロセスである場合は、機能ノード300間で完全結合が必要になる場合もある。一方、プロセス100が特定の処理を行うためのプロセスである場合は、完全結合である必要はなく、一般的には完全結合よりはるかに少ない通信経路510で十分である。本実施形態は、機能ノード300間の通信経路が完全結合を要求する場合でも対応できるが、プロセス100に必要な特定の通信経路510を要求する場合に特に有効である。
 プロセス100を構成する機能ノード300は、プロセス100内でのみ有効な「ローカルノードID」により識別される。また同様に、通信経路510はプロセス100内でのみ有効な「ローカル通信経路ID」で識別される。
 図2では、n1~n9がローカルノードID、lnk1~lnk19がローカル通信経路IDである。機能ノード300は、上述のローカルノードIDに加えて、「グローバルノードID」を持つ。ここで、グローバルノードIDとは並列計算システム1000内でそれぞれの機能ノード300を識別するためのIDである。図1に、グローバルノードIDであるN1~Nnを示す。
 また、グローバルノードIDではなく、機能ノード300間の通信路を識別するためのIDである「グローバル通信路ID」を使用することも可能である。グローバル通信路IDは、個別のネットワークスイッチ400に対応するIDではない。通信を行う、或る転送元機能ノード300から或る転送先機能ノード300へ至る通信経路は、その通信経路を構成する複数のネットワークスイッチ400とそのネットワークスイッチ400の接続状態として指定できる。グローバル通信経路IDは、この接続状態を識別のために用いられるIDである。
 プロセスと機能ノード群の対応付け200は、プロセス100を構成する各機能ノード300のローカルノードIDと、グローバルノードIDの対応付けを管理することで実現する。
 次に、機能ノード300間で通信を行う場合について説明する。
 機能ノード300間で通信を行う場合は、まず転送元機能ノード300の機能要素310がローカルノードIDやローカル通信経路ID等の「ローカル識別情報」を用いてローカル通信要求600を作成する。そして、この作成したローカル通信要求600を、転送先機能ノード300への通信要求として機能ノード群管理部320に送出する。
 機能ノード群管理部320は、受け取ったローカル通信要求600のローカル識別情報を、グローバルノードIDやグローバル通信経路ID等の「グローバル識別情報」に変換することにより、グローバル通信要求700を作成する。
 そして、機能ノード群管理部320は、作成したグローバル通信要求700を、通信路500を構成するネットワークスイッチ400に送出する。
 ネットワークスイッチ400は、グローバル通信要求700に含まれるグローバル識別情報に基づきスイッチ420を制御することにより、グローバル通信要求700が転送先機能ノード300へ転送される。
 以上の動作を行うことにより、機能ノード300間での通信が実現できる。
 ここで、ネットワークスイッチ400が行うスイッチ420の制御について詳細に説明する。
 ネットワークスイッチ400の帯域幅管理部410には、予め通信経路とその通信経路に割り当てる帯域幅が登録されている。例えば、転送元グローバルノードIDと転送先グローバルノードIDと対応する通信経路へ割り当てる帯域幅情報を帯域幅管理部410に登録する。登録情報としては、他にも、グローバル通信経路IDと対応する通信経路へ割り当てる帯域幅情報を登録することも可能である。ネットワークスイッチ400では、グローバル通信要求700に含まれるグローバル識別情報に基づきスイッチ420を制御するが、このとき、ネットワークスイッチ400の帯域幅管理部410に予め登録されている帯域幅情報に応じて必要な帯域幅を割り当てることにより通信要求の要求する帯域幅を保証する。
 次に、図1の本実施形態の全体の動作を詳細に説明する。ここでは、一般性を失うことなく、2次元メッシュ構造の通信路500を持つ並列計算システムの構成を例に用いて説明を行う。
 図3に2次元メッシュ構成の通信路500を持つ場合の本実施形態の並列計算システム1000の例を示す。図3では、機能ノード300は2次元配列とされており、それぞれの機能ノード300に対応して1つのネットワークスイッチ400が接続されている。また、各ネットワークスイッチ400は、2次元配列上の上下左右に隣接する他の4つのネットワークスイッチ400と接続している。機能ノード300は、演算、入出力、記憶、といった機能を提供する。なお、機能ノード300として、複数のプロセス100で記憶機能を共有するためのMMU(Memory Management Unit)付き記憶ノード300-Aを含んでも良い。また、ネットワークスイッチ400の電源や動作周波数、動作電圧を制御するための電源fv制御ノード300-Bを含んでも良い。
 図4は、機能ノード300間で通信を行うための通信要求及び識別情報のデータ構造の具体例を示す図である。
 図4aは、グローバル通信要求700の構成例で、グローバル識別情報710と、ペイロード740とを有する。ペイロード740は、通信によって転送されるデータである。グローバル通信要求700には、更に、機能ノード群ID720及び特権制御情報730を含んで構成することもできる。ここで、機能ノード群ID720は、機能ノード群を識別するためのIDである。また、特権制御情報730は、特権的な制御や、その他通信制御を行うための情報である。
 更に、特権制御情報730は、グローバル通信要求700の転送先を制御するための情報を保持することもできる。例えば、グローバル通信要求700は、特権制御情報730を用いて、機能ノード300だけでなく、ネットワークスイッチ400にも転送することができる。図3の並列計算システム1000では、機能ノード300とネットワークスイッチ400が1対1で対応している。したがって、機能ノード300と対応するネットワークスイッチ400へグローバル通信要求700を転送する場合、グローバル通信要求700に同じグローバル識別情報710を設定する。そして、それに加えて、転送先として機能ノード300かネットワークスイッチ400のどちらかを識別するフラグを特権制御情報730に設けることにより、区別して転送することが可能となる。
 図4bは、ローカル通信要求600の構成例でローカル識別情報610とペイロード740とを有する。ローカル通信要求600には、グローバル通信要求700と同様に機能ノード群ID720及び特権制御情報730を含んで構成することもできる。
 図4c1は、グローバル識別情報710の構成例で、転送先グローバルノードID810と、転送元グローバルノードID820を有する。
 図4c2は、ローカル識別情報610の構成例で転送先ローカルノードID910、転送元ローカルノードID920を有する。
 図4d1は、グローバル識別情報710の別の構成例で、グローバル通信経路ID830を有する。
 図4d2は、ローカル識別情報610の別の構成例で、ローカル通信経路ID930を有する。
 図5は、機能ノード300の構成例を示す図である。機能ノード300は、機能要素310、機能ノード群管理部320、電源fv制御部350、特権レベル記憶部360、機能ノード入力ポート370及び機能ノード出力ポート380を有する。更に、機能ノード群管理部320は、通信要求変換部330及び機能ノード群管理情報保持部340を有する。
 機能要素310は、演算機能、入出力機能、記憶機能のいずれかの機能を提供する。また機能要素310が、これらの機能に代えて、又は、これらの機能と共に、他の機能を提供するようにしても良い。
 機能ノード群管理部320は、ネットワークスイッチ400とのインタフェース部として機能する。
 機能ノード300は、ネットワークスイッチ400と相互にグローバル通信要求700をやり取りするために、機能ノード入力ポート370と機能ノード出力ポート380を持つ。
 機能ノード群管理情報保持部340は、ローカル通信要求600とグローバル通信要求700を相互に変換するために必要な情報を保持する。機能ノード群管理情報保持部340が保持する情報の具体例としては、機能ノード300が転送元機能ノード300として通信を行う場合の、転送先機能ノード300のローカルノードIDとグローバルノードIDの対応表が挙げられる。
 次に、図12のフローチャートを用いて、機能ノード300が転送元機能ノード300として動作する場合について説明する。
 機能要素310は、図4c2に例示したローカル識別情報610を用いてローカル通信要求600を生成する(ステップS11)。
 通信要求変換部330は、このローカル通信要求600のローカル識別情報610を構成する転送先ローカルノードID910を、機能ノード群管理情報保持部340を参照し、グローバルノードID810に変換する。また、同様に機能ノード群管理情報保持部340を参照し、転送元ローカルノードID920を、転送元グローバルノードID820に変換する。そして、これら変換後のIDを用いてグローバル識別情報710(図4c1参照)とする(ステップS13)。
 通信要求変換部330は、図4c1のグローバル識別情報710を含むグローバル通信要求700を機能ノード出力ポート380からネットワークスイッチ400に送出することにより、転送先機能ノード300へ通信要求を転送する(ステップS15)。
 次に、機能ノード300が転送先機能ノード300として動作する場合について説明する。
 ネットワークスイッチ400から機能ノード入力ポート370を介して機能ノード300に転送されたグローバル通信要求700は、通信要求変換部330と機能ノード群管理情報保持部340によりローカル通信要求600に変換され、機能要素310に転送される(ステップS17)。
 この転送の際に、機能要素310で転送元機能ノード300を識別する必要がない場合は、通信要求変換部330では、グローバル通信要求700からペイロード740を取り出し、ペイロード740だけを機能要素310に転送することもできる。この場合は、機能ノード群管理情報保持部340の参照は不要となり通信要求変換部330、機能ノード群管理情報保持部340を簡略化することができる。
 グローバル通信要求700に含まれるグローバル識別情報710、ローカル通信要求600のローカル識別情報610がそれぞれ、グローバル通信経路ID830(図4d1参照)、ローカル通信経路ID930(図4d2参照)を用いて構成される場合も同様な手順でローカル通信要求600、グローバル通信要求700の相互の変換が可能である。
 また、機能ノード群管理情報保持部340を書き換えて更新することにより、機能ノード群の構成を変更することができる。機能ノード群管理情報保持部340の書き変えは、他機能ノード300からのグローバル通信要求700で行う。具体的には、グローバル通信要求700に含まれる特権制御情報730と、ペイロード740を用いて機能ノード群管理情報保持部340の書き変えと書き変えの内容を指示する。この点、機能ノード群管理情報保持部340を誤って書き変えると他の機能ノード群で実行中のプロセス100に影響を与えることになる。そのため、誤って書き変えたり、悪意のあるプロセス100によって書き変えられたりすることのないように、特権的なグローバル通信要求700のみが書き換えを行えるようにすることが好ましい。そのために、グローバル通信要求700に特権制御情報730を付加し、特権的な操作を要求することができる通信要求か否かを識別するために特権制御情報730を利用する。
 機能ノード300の特権レベル記憶部360は機能ノード300の特権レベルを保持する。特権レベル記憶部360に格納された特権レベルに応じて、通信要求変換部330は、特権的な操作を指示するグローバル通信要求700の送出を制御する。特権レベルが低い(非特権レベル)機能ノード300の機能要素310が特権的な操作を指示するローカル通信要求600を送出した場合、通信要求変換部330は、このローカル通信要求600のグローバル通信要求700への変換、および、ネットワークスイッチ400への送出を遮断する。
 特権レベル記憶部360に保持される特権レベルの書き変えも特権的なグローバル通信要求700によって行う。一方、特権レベルが低い(又は、非特権レベルな)グローバル通信要求700による書き換えは遮断する。
 機能ノード300の電源fv制御部350は機能ノード300の電源ON/OFFの切り替え、動作周波数及び動作電圧の制御を行う。グローバル通信要求700として機能ノード300の電源fv制御を指定することができる。電源ON/OFFの切り替え、動作周波数の制御、動作電圧の制御の何れを行うかは、グローバル通信要求700を構成する特権制御情報730と、ペイロード740を用いて指定することができる。
 次に、図6を参照してネットワークスイッチ400の構成について説明する。また、図13を用いて動作について説明する。
 ネットワークスイッチ400は、スイッチ410、帯域幅管理部420、スイッチ制御部430、帯域幅管理情報保持部440及びネットワークスイッチ電源fv制御部450を有する。
 また、ネットワークスイッチ400は、図3を用いて上述したように、上下左右に隣接する他のネットワークスイッチ400と接続を持つ。またネットワークスイッチ400は1つの機能ノード300と接続されている。ネットワークスイッチ400は、これらそれぞれの接続に対応する入出力ポートを持つ。従ってネットワークスイッチ400は、上下左右に隣接する4つのネットワークスイッチ400と、隣接する1つの機能ノード300からの入力のために5つの入力ポートを有する。図6及び以下の説明では、この5つの入力ポートを、460U、460D、460L、460R、460Nと表記する。同様に、上下左右に隣接する4つのネットワークスイッチ400と、隣接する1つの機能ノード300への出力のために5つの出力ポートを有する。図6及び以下の説明では、この5つのポートを、470U、470D、470L、470R、470Nと表記する。
 まず、5つの入力ポート460U、460D、460L、460R、460Nの中の単数、複数若しくは全てにグローバル通信要求700が入力される(ステップS21)。
 そして、帯域幅420のスイッチ制御部430がどの入力ポート460からどの出力ポート470にグローバル通信要求700を転送するのかを決定する(ステップS23)。
 そしてスイッチ制御部430がスイッチ410を制御することにより、5つの入力ポート460U、460D、460L、460R、460Nからのグローバル通信要求700は、5×5のスイッチ420を経由して5つの出力ポート470U、470D、470L、470R、470Nの何れかに転送され、出力される(ステップS25)。転送先は、1つには限定されず、複数の転送先があってもよい。例えば、ノード群全体、即ちノード群に属する全てのノードに同一の通信要求を転送する場合や、ノード群に属するノードのうちのいくつかに同一の通信要求を転送する場合は、転送先が複数となる。
 スイッチ410は、帯域幅管理部420のスイッチ制御部430によってどの入力ポート460からどの出力ポート470にグローバル通信要求700を転送するのかを制御される。グローバル通信要求700には、それぞれ必要とする転送の帯域幅が定められている。帯域幅管理情報保持部440は、このネットワークスイッチ5を経由する複数の通信経路510に関して、スイッチ410を制御するための情報を格納している。スイッチ410を制御するための情報の具体例としては、グローバル通信要求700に含まれるグローバル識別情報710で識別される通信経路510毎に転送すべき出力ポート470と、要求された帯域幅とを対応付けた表が例示できる。スイッチ制御部430は、帯域幅管理情報保持部440に基づきスイッチ410を制御する。帯域幅管理情報保持部440は、このネットワークスイッチ400を転送先として送られたグローバル通信要求700の指示により書き変えることができる。
 図7は、5×5のスイッチ410の構成例である。図7では、説明の簡略化のためネットワークスイッチ400自身を転送先とする転送経路は省略しているが、ネットワークスイッチ400自身を転送先とする転送経路については、出力ポート数を5から6に増やすことで容易に拡張できる。
 スイッチ410は、図6に示すスイッチ制御部430からの制御信号を構成する経路制御信号414と帯域幅制御信号415とにより転送動作が指定される。
 マルチプレクサ(multiplexer:図中及び以下の説明では、「MUX」と表記する。)MUX411は、入力ポート460から届いたグローバル通信要求700を適切に出力ポート470に転送するための経路制御を行う。帯域幅制御部413は、グローバル通信要求700の要求する帯域幅を保証した転送を行うための制御を行う。バッファ(buffer:図中及び以下の説明では、「BUF」と表記する。)BUF412は、MUX411と帯域幅制御部413の間でグローバル通信要求700を蓄積するためのBUFである。
 MUX411は、経路制御信号414に基づき通信経路510毎に適切な出力先を予め設定される。MUX411は、グローバル通信要求700に含まれるグローバル識別情報710とから通信経路510を識別し、予め設定された出力先のBUF412にグローバル通信要求700を転送する。
 図8は、帯域幅制御の例について示す図である。図8では、出力ポート470を4つの通信経路510L1、510L2、510L3、510L4が共有している場合である。出力ポート470の帯域幅をB、4つの通信経路510L1、5102、5103、5104の要求する帯域幅をそれぞれB1、B2、B3、B4とすると、
Figure JPOXMLDOC01-appb-M000001
の関係が成り立つ必要がある。BUF412Uから出力ポート470への経路は、2つの通信経路510L1、510L2によって共有されており、この経路に必要な帯域幅は(B1+B2)である。BUF412D及びBUF412Rから出力ポート470への経路は、通信経路510が設定されていない。BUF412Lから出力ポート470への経路は、通信経路510L3が設定されている。また、BUF412Nから出力ポート470への経路は、通信経路510L4が設定されている。
 帯域幅管理部413は、4つのBUF412U、BUF412D、BUF412L、BUF412R、BUF412Nのそれぞれに対して帯域幅として、B1+B2、0、B3、0、B4を割り当てる。
 BUF412Uは、2つの通信経路510L1、510L2で共有されているがそれぞれの送信元機能ノード300が、予め設定された帯域幅の範囲内のグローバル通信要求700を送出するのであれば、それぞれの通信経路を区別することなく、BUF412Uに対する帯域幅(B1+B2)を保証すればよい。
 また、グローバル通信要求700が固定長の場合は、帯域幅制御部413は例えばラウンドロビンでそれぞれのBUF412にグローバル通信要求700があるかどうか確認する。そして、グローバル通信要求700がもしもあれば、グローバル通信要求700を1つBUF412から取り出し出力ポート470に転送する。それぞれのBUF412毎に割り当てられている帯域幅が異なるので、割り当てられている帯域幅に比例した頻度でラウンドロビンを行うことでそれぞれの通信経路510の要求する帯域幅を保証した通信が実現できる。図8の例では、5つのBUF412U、BUF412D、BUF412L、BUF412R、BUF412Nに対して
Figure JPOXMLDOC01-appb-M000002
に比例した頻度でラウンドロビンを行えばよい。ラウンドロビンの頻度は、帯域幅制御信号415によって設定される。
 一方、グローバル通信要求700が固定長でない場合は、グローバル通信要求700の最大長を設定、その最大長の通信を保証するようにラウンドロビンを行えばよい。もっとも、このようにランドロビンを行う場合であって、グローバル通信要求700の最大長と平均長の差が大きい場合は、最大長に満たない部分が無駄になる。そこで、グローバル通信要求700の最大長をLmaxとし転送すべきグローバル通信要求700の長さをLとすると(Lmax-L)の転送に要する時間だけ帯域幅制御部413のクロックを停止することにより無駄な消費電力を抑えることが可能である。
 図6のネットワークスイッチ400は、ネットワークスイッチ電源fv制御部450を更に有している。
 そして、ネットワークスイッチ電源fv制御部450は、このネットワークスイッチ400を転送先として送られたグローバル通信要求700の指示により電源のON/OFFの切り替え、動作電圧及び動作周波数を制御する。
 また、グローバル通信要求700の指示ではなく、図3の電源fv制御ノード300-Bからの専用通信路を経由した指示により電源のON/OFFの切り替え、動作電圧及び動作周波数を制御することも可能である。
 図9は、MMU付き記憶ノード300-Aの構成例である。機能ノード群管理部320、通信要求変換部330、機能ノード群管理情報保持部340、電源fv制御部350及び特権レベル記憶部360を有している点は、図5の機能ノード300と同様である。加えて、MMU付き記憶ノード300-Aは、機能ノード群ID抽出部390を有している。また、機能要素310として記憶要素310-Aを有している。更に、記憶要素310-Aは、記憶素子311-A、MMU312-A、記憶アクセス制御部313-A及び記憶管理情報314-Aを有している。
 機能ノード群ID抽出部390は、グローバル通信要求700から機能ノード群IDを抽出する。記憶要素3101はMMU付きの記憶要素として機能する。
 機能ノード入力ポート370から届いたグローバル通信要求700はローカル通信要求600に変換され記憶アクセス制御部313-Aに転送される。ローカル通信要求600のペイロード740は記憶素子に対するアクセスの指示である。具体的には、ローカル通信要求600のペイロード740は、アクセスが書き込みか読み出しかを指示するアクセスタイプと、論理アドレスを有している。アクセスタイプが書き込みの場合は、更に書き込み込みデータを有している。一方、アクセスタイプが読み出しの場合は、読み出したデータを転送すべき機能ノード300のローカルノードIDを有している。
 記憶アクセス制御部313-Aは、ローカル通信要求600からアクセスタイプと、論理アドレスを抽出する。ここで、アクセスタイプが書き込みであれば、データも抽出する。一方、アクセスタイプが読み出しであれば、読み出したデータを転送すべき機能ノード300のローカルノードIDも抽出する。記憶アクセス制御部313-Aは、抽出した情報に基づき記憶素子に対して読み書きの操作を行う。
 記憶管理情報314-Aは、このMMU付き記憶ノード300-Aにアクセスする機能ノード群と、各機能ノード群内で固有の論理アドレスと、記憶素子311-Aの物理アドレスの変換に必要な情報を保持する。
 MMU312-Aは、論理アドレスから物理アドレスへの変換を行う。MMU付き記憶ノード300-Aに対するアクセス要求は複数の機能ノード群からグローバル通信要求700として転送される。MMU312-Aは、機能ノード群ID抽出部390で抽出された機能ノード群IDと記憶管理情報314-Aに基づき論理アドレスを物理アドレスへ変換する。
 機能ノード入力ポート370から届いたグローバル通信要求700は、機能ノード管理部320でローカル通信要求600に変換され記憶アクセス制御部313-Aに転送される。
 記憶アクセス制御部313-Aは、アクセスタイプに従って記憶素子311-Aに対するアクセス制御を行う。論理アドレスは、MMU312-Aにより物理アドレスに変換され記憶素子311-Aのアドレス指定に使用される。記憶アクセス制御部313-Aでは、アクセスタイプが書き込みの場合は、抽出したデータを記憶素子311-Aに書き込む。一方、アクセスタイプが読み出しの場合は、記憶素子311-Aから読み出されたデータと、データを転送すべき機能ノード300のローカルノードIDと、機能ノード群ID抽出部390で抽出した機能ノード群IDとからローカル通信要求600を生成する。そして、生成したローカル通信要求600を通信要求変換部330に転送する。
 通信要求変換部330では、ローカル通信要求600をグローバル通信要求700に変換して機能ノード出力ポート380に送出する。
 なお、記憶管理情報314-Aの書き換えは、機能ノード入力ポート370からの特権的なグローバル通信要求700によって行うことができる。
 図10は、電源fv制御ノード300-Bの構成例である。電源fv制御ノード300-Bは専用通信路を経由して、ネットワークスイッチ400の電源のON/OFFの切り替え、動作電圧及び動作周波数を制御する。
 電源fv制御ノード300-Bが、機能ノード群管理部320、通信要求変換部330、機能ノード群管理情報保持部340、電源fv制御部350及び特権レベル記憶部360を有している点は、図5の機能ノード300と同様である。また、電源fv制御ノード300-Bは、機能要素310として電源fv制御用入出力要素310-Bを有している。
 電源fv制御用入出力要素310-Bは、機能ノード入力ポート370からのグローバル通信要求700に含まれるペイロード740の指示に応じて、ネットワークスイッチ400の電源fv制御部450と接続している専用通信路を介して、ネットワークスイッチ400の電源fv制御を行う。
 次に、以上説明した本実施の形態の効果について説明する。
 第1の効果は、プロセスを構成する機能ノード間通信のオーバーヘッドを削減できることにある。その理由は、機能ノード群管理部によりOSや仮想化層の介在無しに直接機能ノード間が通信できるためである。
 第2の効果は、プロセスに割り当てられた機能ノード間の通信帯域幅を保証できることにある。その理由は、ネットワークスイッチの帯域幅管理部により予め設定しておいた機能ノード間の通信の帯域幅に応じた通信制御を行えるためである。
 第3の効果は、複数のプロセスがお互いに干渉することなく1つの並列処理システム上で実行できることにある。その理由は、機能ノード群管理部や、帯域幅管理部により各プロセスへ割り当てられた機能ノード、機能ノード間の通信帯域幅が他のプロセスと完全に分離して動作できるためである。
 第4の効果は、消費電力の削減が可能となることである。その理由は、各機能ノード300は電源fv制御部350を持つように構成されているため、プロセスに割り当てられていない機能ノード300の電源をOFFにしたり、クロックを停止することにより、消費電力の削減が実現できるからである。また、機能ノード300の処理性能に余裕がある場合は、クロック周波数を下げたり、電源電圧を下げることによっても消費電力の削減が可能である。
 更に、各ネットワークスイッチ400はネットワークスイッチ電源fv制御部450を持つように構成されているため、通信経路510が割り当てられていないネットワークスイッチ400の電源をOFFしたりクロックを停止することにより消費電力の削減が可能である。また、ネットワークスイッチ400に割り当てられている通信経路510の要求帯域幅に対してネットワークスイッチ400の帯域幅に余裕がある場合は、クロック周波数を下げたり、電源電圧をさげることによっても消費電力の削減が可能である。
 第5の効果は、管理情報の操作は特権レベルの高いプロセス100によってのみ行えるように設定可能となることである。その理由は、本実施の形態では、グローバル通信要求700、ローカル通信要求600は特権制御情報730を持つように構成できるため、機能ノード群管理情報保持部340、特権レベル記憶部360、電源fv制御部350、ネットワークスイッチ電源fv制御部450、記憶管理情報314-A等の管理情報の操作は特権レベルの高いプロセス100によってのみ行えるように設定可能とできるからである。これによって、他のプロセス100への機能ノード300や通信経路510等の資源の割り当て等を行うOSプロセスを構成することができる。
 第6の効果は、異なるプロセス100間での通信も可能となることである。その理由は、記憶ノードとしてMMU付きの記憶ノード300-Aを持つことができ、MMU付きの記憶のノード300-Aは複数のプロセス100で同一の記憶素子311-Aを共有する共有メモリの機能を安全に実現できるからである。
 なお、本発明の実施形態である並列計算システムは、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。
 例えば、上記の並列計算システムは、ハードウェアによって実現することもできるが、コンピュータをそのシステムとして機能させるためのプログラムを、コンピュータが記録媒体から読み出して、実行することによっても実現することができる。
 また、上記の並列計算方法は、ハードウェアによって実現することもできるが、コンピュータにその方法を実行させるためのプログラムを、コンピュータがコンピュータ読みと取り可能な記録媒体から読み出して、実行することによっても実現することができる。
 また、上述したハードウェア、ソフトウェア構成は特に限定されるものではなく、上述した各部の機能を実現可能であれば、いずれのものでも適用可能である。例えば、上述した各部の機能毎に個別に構成したものでも、各部の機能を一体的に構成したものでも、いずれでもよい。
 以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2008年12月4日に出願された日本出願特願2008-309813号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 本発明は、マルチコアシステムをリアルタイム性、低電力性が重要な組込み制御といった用途に適用できる。また、複数のプロセスをそれぞれ自動並列化コンパイラでそれぞれのプロセスごとに複数コア用に最適化して1つの並列計算システム上でお互いに干渉することなく実行する、といった用途にも適用可能である。
100、2100 プロセス
200 プロセスと機能ノード群の対応付け仮想マシン 2200
300、2400 機能ノード
300-A MMU付き記憶ノード
300-B 電源fv制御ノード
310 機能要素
310-A 記憶要素
311-A 記憶素子
312-A MMU
313-A 記憶アクセス制御部
314-A 記憶管理情報 216 電源fv制御用入出力要素
320 機能ノード群管理部
330 通信要求変換部
340 機能ノード群管理情報保持部
350 電源fv制御部
360 特権レベル記憶部
370 機能ノード入力ポート
380 機能ノード出力ポート
390 機能ノード群ID抽出部400 ネットワークスイッチ
410 スイッチ
411 MUX
412、412U、412D、412L、412R、412N BUF
413 帯域幅制御部
414 経路制御信号
415 帯域幅制御信号
420 帯域幅管理部
430 スイッチ制御部
440 帯域幅管理情報保持部
450 ネットワークスイッチ電源fv制御部
460、460U、460D、460L、460R、460N 入力ポート
470、470U、470D、470L、470R、470N 出力ポート
500 通信路
510、510L1、510L2、510L3、510L4 通信経路
600 ローカル通信要求
610 ローカル識別情報
700 グローバル通信要求
710 グローバル識別情報
720 機能ノード群ID
730 特権制御情報
740 ペイロード
810 転送先グローバルノードID
820 転送元グローバルノードID
830 グローバル通信経路ID
910 転送先ローカルノードID
920 転送元ローカルノードID
930 ローカル通信経路ID
1000、2500 並列計算システム
2300 仮想化層

Claims (24)

  1.  情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する複数の機能ノードと、前記機能ノード間で通信を行うための通信路の一部であり通信経路として機能する複数のネットワークスイッチとを有する並列計算システムにおいて、
     前記機能ノードが、
     情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する機能要素と、
     前記機能ノード間で相互に通信を行うために前記機能ノード間で転送される通信要求を入出力するためのポートである機能ノード入出力ポートと、
     前記並列計算システムが有する複数の前記機能ノードの一部又は全部の前記機能ノードから構成される機能ノード群を、1つの群として管理する機能ノード群管理手段と、
     を備え、
     前記ネットワークスイッチが、
     前記通信要求を入出力するためのポートである複数の入出力ポートと、
     前記入出力ポートから入力された前記通信要求を前記入出力ポートへ出力するスイッチと、
     前記機能ノード間の前記通信経路毎に通信帯域幅を管理し前記スイッチを制御する帯域幅管理手段と、
     を備えていることを特徴とする並列計算システム。
  2.  前記機能ノード群を構成する複数の前記機能ノード間の通信においては、前記機能ノード群を構成する複数の前記機能ノード間のみで相互に通信を行うための通信要求であるローカル通信要求を用い、
     前記通信路における通信では、前記並列計算システムを構成する全ての前記機能ノード間で相互に通信を行うためのグローバル通信要求を用い、
     前記機能ノード群管理手段が、
     前記ローカル通信要求と前記グローバル通信要求の相互の変換のための情報を管理する機能ノード管理情報保持手段と、
     前記機能ノード管理情報保持手段が管理する前記情報を用いて、前記機能要素が入出力する前記ローカル通信要求と前記機能ノード入出力ポートから入出力される前記グローバル通信要求とを相互に変換する通信要求変換手段と、
     を備えることを特徴とする請求項1に記載の並列計算システム。
  3.  前記機能ノードが、前記機能ノードの電源の投入及び遮断の制御、前記機能ノードの動作周波数の制御、前記機能ノードの動作電圧の制御の何れか又はこれらを組み合わせた制御を行う電源fv制御手段を、更に備えることを特徴とする請求項2に記載の並列計算システム。
  4.  前記ローカル通信要求及び前記グローバル通信要求は、当該ローカル通信要求又は当該前記グローバル通信要求が特権的な通信要求であるか否かを示す情報である特権制御情報を有し、
     前記機能ノードが、前記機能ノードが前記機能ノード入出力ポートから送出できる前記グローバル通信要求の前記特権制御情報の特権レベルの上限値を保持する特権レベル記憶手段を、
     更に備えることを特徴とする請求項2又は3に記載の並列計算システム。
  5.  前記帯域幅管理手段が、
     前記ネットワークスイッチを前記通信経路の一部として含む前記通信経路と前記通信経路に割り当てられている通信帯域幅との対応付けを保持する帯域幅管理情報保持手段と、
     前記帯域幅管理情報に従って前記ネットワークスイッチの前記スイッチを制御するスイッチ制御手段と、
     を備えることを特徴とする請求項2乃至4の何れか1項に記載の並列計算システム。
  6.  前記ネットワークスイッチは、
     前記ネットワークスイッチの前記入出力ポートに対応する複数の入力ポート及び複数の出力ポートと、
     複数の前記入力ポート毎に前記通信経路を制御し、前記複数の出力ポートに対応した出力を持つマルチプレクサと、
     前記マルチプレクサの前記出力毎にグローバル通信要求を蓄積するためのバッファと、
     複数の前記マルチプレク毎の前記出力ポートを出力先とする複数の前記バッファに蓄積されている前記グローバル通信要求を前記出力ポートに出力する帯域幅制御手段と、
     を備えることを特徴とする請求項2乃至5の何れか1項に記載の並列計算システム。
  7.  前記帯域幅制御手段は、当該帯域幅制御手段が前記グローバル通信要求を受け取る複数の前記バッファに対する処理を、前記通信経路毎に割り当てられている通信帯域幅に比例した頻度でラウンドロビン方式によって行うことを特徴とする請求項6に記載の並列計算システム。
  8.  前記ネットワークスイッチが、前記ネットワークスイッチの電源の投入及び遮断の制御、前記ネットワークスイッチの動作周波数の制御、前記ネットワークスイッチの動作電圧の制御の何れか又はこれらを組み合わせた制御を行うネットワークスイッチ電源fv制御手段を、
     更に備えることを特徴とする請求項2乃至7の何れか1項に記載の並列計算システム。
  9.  前記機能ノードとして、前記通信路を構成する複数の前記ネットワークスイッチ電源fv制御手段を専用通信路を介して制御する電源fv制御ノードを備えることを特徴とする請求項8に記載の並列計算システム。
  10.  前記機能ノードとして複数の前記機能ノード群から共通にアクセスすることができ、記憶機能を共有することができるMMU(Memory Management Unit)付き記憶ノードを持つことを特徴とする請求項2乃至9の何れか1項に記載の並列計算システム。
  11.  前記MMU付き記憶ノードは、
     前記機能ノード群管理手段と、前記特権レベル記憶手段と、前記電源fv制御手段と、前記機能ノード入出力ポートと、に加え、
     前記機能ノード入出力ポートから入力された前記グローバル通信要求から機能ノード群IDを抽出するための機能ノード群ID抽出手段と、
     物理アドレスと読み書き制御信号によってデータを読み書きできる記憶素子と、
     前記機能ノード群管理手段によって前記グローバル通信要求から変換された前記ローカル通信要求から前記記憶要素に対するアクセス制御情報を抽出し、抽出された前記アクセス制御情報の論理アドレスによって前記記憶素子に対してデータの読み書き制御を行う記憶アクセス制御手段と、
     前記機能ノード群毎に前記論理アドレスと前記記憶素子にアクセスするための物理アドレスの変換情報を保持する記憶管理情報保持手段と、
     前記機能ノード群ID抽出手段で抽出された前記機能ノード群IDと前記記憶管理情報を用いて前記記憶アクセス手段が出力する論理アドレスを物理アドレスに変換して前記記憶素子に入力するMMUと、を備え、
     前記記憶アクセス制御手段は、前記ローカル通信要求から抽出された前記アクセス制御情報のアクセスタイプが読み出しの場合、前記記憶素子から読み出されたデータと前記機能ノード群IDとから前記読み出されたデータを転送すべき前記機能ノードへの前記ローカル通信要求を構成し前記機能ノード群管理手段に転送し、
     前記機能ノード管理手段は、前記機能アクセス制御手段から転送された前記ローカル通信要求を前記グローバル通信要求に変換して前記機能ノード入出力ポートから送出することを特徴とする請求項10に記載の並列計算システム。
  12.  情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する複数の機能ノードと、前記機能ノード間で通信を行うための通信路の一部であり通信経路として機能する複数のネットワークスイッチとを有する並列計算システムにおける管理方法であって、
     前記機能ノードが、情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する機能要素を用意するステップと、
     前記機能ノードが、前記機能ノード間で相互に通信を行うために前記機能ノード間で転送される通信要求を入出力するためのポートである機能ノード入出力ポートを用意するステップと、
     前記機能ノードが、前記並列計算方法が有する複数の前記機能ノードの一部又は全部の前記機能ノードから構成される機能ノード群を、1つの群として管理する機能ノード群管理ステップと、
     前記ネットワークスイッチが、前記通信要求を入出力するためのポートである複数の入出力ポートを用意するステップと、
     前記ネットワークスイッチが、前記入出力ポートから入力された前記通信要求を前記入出力ポートへ出力するスイッチを用意するステップと、
     前記ネットワークスイッチが、前記機能ノード間の前記通信経路毎に通信帯域幅を管理し前記スイッチを制御する帯域幅管理ステップと、
     を備えていることを特徴とする並列計算方法。
  13.  前記機能ノード群を構成する複数の前記機能ノード間の通信においては、前記機能ノード群を構成する複数の前記機能ノード間のみで相互に通信を行うための通信要求であるローカル通信要求を用い、
     前記通信路における通信では、前記並列計算システムを構成する全ての前記機能ノード間で相互に通信を行うためのグローバル通信要求を用い、
     前記機能ノード群管理ステップにおいて、前記ローカル通信要求と前記グローバル通信要求の相互の変換のための情報を管理する機能ノード管理情報保持ステップと、
     前記機能ノード群管理ステップにおいて、前記機能ノード管理情報保持ステップにおいて管理する前記情報を用いて、前記機能要素が入出力する前記ローカル通信要求と前記機能ノード入出力ポートから入出力される前記グローバル通信要求とを相互に変換する通信要求変換ステップと、
     を更に備えることを特徴とする請求項12に記載の並列計算方法。
  14.  前記機能ノードが、前記機能ノードの電源の投入及び遮断の制御、前記機能ノードの動作周波数の制御、前記機能ノードの動作電圧の制御の何れか又はこれらを組み合わせた制御を行う電源fv制御ステップを、更に備えることを特徴とする請求項13に記載の並列計算方法。
  15.  前記ローカル通信要求及び前記グローバル通信要求は、当該ローカル通信要求又は当該前記グローバル通信要求が特権的な通信要求であるか否かを示す情報である特権制御情報を有しており、
     前記機能ノードが、前記機能ノードが前記機能ノード入出力ポートから送出できる前記グローバル通信要求の前記特権制御情報の特権レベルの上限値を保持する特権レベル記憶ステップを、
     更に備えることを特徴とする請求項13又は14に記載の並列計算方法。
  16.  前記帯域幅管理ステップにおいて、
     前記ネットワークスイッチを前記通信経路の一部として含む前記通信経路と前記通信経路に割り当てられている通信帯域幅との対応付けを保持する帯域幅管理情報保持ステップと、
     前記帯域幅管理情報に従って前記ネットワークスイッチの前記スイッチを制御するスイッチ制御ステップと、
     を更に備えることを特徴とする請求項13乃至15の何れか1項に記載の並列計算方法。
  17.  前記ネットワークスイッチが、前記ネットワークスイッチの前記入出力ポートに対応する複数の入力ポート及び複数の出力ポートを用意するステップと、
     前記ネットワークスイッチが、複数の前記入力ポート毎に前記通信経路を制御し、前記複数の出力ポートに対応した出力を持つマルチプレクサを用意するステップと、
     前記ネットワークスイッチが、前記マルチプレクサの前記出力毎にグローバル通信要求を蓄積するためのバッファを用意するステップと、
     複数の前記マルチプレク毎の前記出力ポートを出力先とする複数の前記バッファに蓄積されている前記グローバル通信要求を前記出力ポートに出力する帯域幅制御ステップと、
     を更に備えることを特徴とする請求項13乃至16の何れか1項に記載の並列計算方法。
  18.  前記帯域幅制御ステップにおいて、当該帯域幅制御ステップが前記グローバル通信要求を受け取る複数の前記バッファに対する処理を、前記通信経路毎に割り当てられている通信帯域幅に比例した頻度でラウンドロビン方式によって行うことを特徴とする請求項17に記載の並列計算方法。
  19.  前記ネットワークスイッチが、前記ネットワークスイッチの電源の投入及び遮断の制御、前記ネットワークスイッチの動作周波数の制御、前記ネットワークスイッチの動作電圧の制御の何れか又はこれらを組み合わせた制御を行うネットワークスイッチ電源fv制御ステップを、
     更に備えることを特徴とする請求項13乃至18の何れか1項に記載の並列計算方法。
  20.  前記機能ノードとして、前記通信路を構成する複数の前記ネットワークスイッチ電源fv制御ステップにおける動作を専用通信路を介して制御する電源fv制御ノードを備えることを特徴とする請求項19に記載の並列計算方法。
  21.  前記機能ノードとして、複数の前記機能ノード群から共通にアクセスすることができ、記憶機能を共有することができるMMU付き記憶ノードを持つことを特徴とする請求項13乃至20の何れか1項に記載の並列計算方法。
  22.  前記MMU付き記憶ノードが、前記機能ノード群管理ステップと、前記特権レベル記憶ステップと、前記電源fv制御ステップと、前記機能ノード入出力ポートを用意するステップと、に加え、
     前記MMU付き記憶ノードが、前記機能ノード入出力ポートから入力された前記グローバル通信要求から機能ノード群IDを抽出するための機能ノード群ID抽出ステップと、
     前記MMU付き記憶ノードが、物理アドレスと読み書き制御信号によってデータを読み書きできる記憶素子を用意するステップと、
     前記MMU付き記憶ノードが、前記機能ノード群管理ステップによって前記グローバル通信要求から変換された前記ローカル通信要求から前記記憶要素に対するアクセス制御情報を抽出し、抽出された前記アクセス制御情報の論理アドレスによって前記記憶素子に対してデータの読み書き制御を行う記憶アクセス制御ステップと、
     前記MMU付き記憶ノードが、前記機能ノード群毎に前記論理アドレスと前記記憶素子にアクセスするための物理アドレスの変換情報を保持する記憶管理情報保持ステップと、
     前記MMU付き記憶ノードが、前記機能ノード群ID抽出ステップで抽出された前記機能ノード群IDと前記記憶管理情報を用いて前記記憶アクセスステップが出力する論理アドレスを物理アドレスに変換して前記記憶素子に入力するMMUと、を備え、
     前記記憶アクセス制御ステップにおいて、前記ローカル通信要求から抽出された前記アクセス制御情報のアクセスタイプが読み出しの場合、前記記憶素子から読み出されたデータと前記機能ノード群IDとから前記読み出されたデータを転送すべき前記機能ノードへの前記ローカル通信要求を構成し前記機能ノード群管理ステップに転送し、
     前記機能ノード管理ステップにおいて、前記機能アクセス制御ステップで転送された前記ローカル通信要求を前記グローバル通信要求に変換して前記機能ノード入出力ポートから送出することを特徴とする請求項21に記載の並列計算方法。
  23.  情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する複数の機能ノードと、前記機能ノード間で通信を行うための通信路の一部であり通信経路として機能する複数のネットワークスイッチとを有する並列計算システムにおける管理プログラムにおいて、
     前記機能ノードが、
     情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する機能要素と、
     前記機能ノード間で相互に通信を行うために前記機能ノード間で転送される通信要求を入出力するためのポートである機能ノード入出力ポートと、
     前記並列計算システムが有する複数の前記機能ノードの一部又は全部の前記機能ノードから構成される機能ノード群を、1つの群として管理する機能ノード群管理手段と、
     を備え、
     前記ネットワークスイッチが、
     前記通信要求を入出力するためのポートである複数の入出力ポートと、
     前記入出力ポートから入力された前記通信要求を前記入出力ポートへ出力するスイッチと、
     前記機能ノード間の前記通信経路毎に通信帯域幅を管理し前記スイッチを制御する帯域幅管理手段と、
     を備えている並列計算システムとしてコンピュータを機能させることを特徴とする管理プログラム。
  24.  請求項23に記載の管理プログラムにおいて、
     前記並列通信システムを、
     前記機能ノード群を構成する複数の前記機能ノード間の通信においては、前記機能ノード群を構成する複数の前記機能ノード間のみで相互に通信を行うための通信要求であるローカル通信要求を用い、
     前記通信路における通信では、前記並列計算システムを構成する全ての前記機能ノード間で相互に通信を行うためのグローバル通信要求を用い、
     前記機能ノード群管理手段が、
     前記ローカル通信要求と前記グローバル通信要求の相互の変換のための情報を管理する機能ノード管理情報保持手段と、
     前記機能ノード管理情報保持手段が管理する前記情報を用いて、前記機能要素が入出力する前記ローカル通信要求と前記機能ノード入出力ポートから入出力される前記グローバル通信要求とを相互に変換する通信要求変換手段と、
     を備える並列計算システムとして機能させるための管理プログラム。
PCT/JP2009/070251 2008-12-04 2009-12-02 並列計算システム、その方法及びそのプログラム WO2010064661A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010541339A JPWO2010064661A1 (ja) 2008-12-04 2009-12-02 並列計算システム、その方法及びそのプログラム
US13/133,031 US8824317B2 (en) 2008-12-04 2009-12-02 Parallel calculation system, and method and program thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-309813 2008-12-04
JP2008309813 2008-12-04

Publications (1)

Publication Number Publication Date
WO2010064661A1 true WO2010064661A1 (ja) 2010-06-10

Family

ID=42233308

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/070251 WO2010064661A1 (ja) 2008-12-04 2009-12-02 並列計算システム、その方法及びそのプログラム

Country Status (3)

Country Link
US (1) US8824317B2 (ja)
JP (1) JPWO2010064661A1 (ja)
WO (1) WO2010064661A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014211767A (ja) * 2013-04-18 2014-11-13 富士通株式会社 情報処理システム、制御装置及び情報処理システムの制御方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102522886B (zh) * 2012-01-19 2013-10-30 浙江大学城市学院 一种开关电源模块并联供电装置
US9875204B2 (en) * 2012-05-18 2018-01-23 Dell Products, Lp System and method for providing a processing node with input/output functionality provided by an I/O complex switch

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09231187A (ja) * 1996-02-22 1997-09-05 Hitachi Ltd 並列計算機のデータ転送方法
JP2002229963A (ja) * 2001-02-07 2002-08-16 Hitachi Ltd 並列計算機システムおよびクロスバスイッチ
JP2003216565A (ja) * 2002-01-18 2003-07-31 Hitachi Ltd コンピュータシステムおよびコンフィグレーションアクセスルーティング方法
JP2005018753A (ja) * 2003-06-25 2005-01-20 Internatl Business Mach Corp <Ibm> サーバ・システム内のスイッチ・モジュールの負荷を平衡させる方法およびシステムならびにこれらを利用したコンピュータ・システム
JP2006065812A (ja) * 2004-08-30 2006-03-09 Renesas Technology Corp データ処理装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3560662B2 (ja) * 1994-12-06 2004-09-02 富士通株式会社 並列プロセッサ装置
DE19611520A1 (de) * 1996-03-23 1997-09-25 Bosch Gmbh Robert System zum Test eines in einem Steuergerät eingebauten Rechners
JPH1185547A (ja) 1997-09-12 1999-03-30 Hitachi Ltd 仮想クラスタ構成方法
JP2000155692A (ja) 1998-11-18 2000-06-06 Toshiba Corp 計算機システム及びネットワークシステム並びに記録媒体
JP3584873B2 (ja) 2000-10-31 2004-11-04 ヤマハ株式会社 通信制御装置及び通信システム
JP2002374286A (ja) 2001-06-13 2002-12-26 Hitachi Ltd 通信品質制御システムおよび通信品質制御方法
US20060259733A1 (en) 2005-05-13 2006-11-16 Sony Computer Entertainment Inc. Methods and apparatus for resource management in a logically partitioned processing environment
JP2006319849A (ja) 2005-05-16 2006-11-24 Kddi Corp エンドユーザ間帯域保証通信システム
JP4606404B2 (ja) 2006-12-01 2011-01-05 富士通株式会社 計算資源管理プログラムおよび計算資源管理装置
US9847953B2 (en) * 2008-09-11 2017-12-19 Juniper Networks, Inc. Methods and apparatus related to virtualization of data center resources

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09231187A (ja) * 1996-02-22 1997-09-05 Hitachi Ltd 並列計算機のデータ転送方法
JP2002229963A (ja) * 2001-02-07 2002-08-16 Hitachi Ltd 並列計算機システムおよびクロスバスイッチ
JP2003216565A (ja) * 2002-01-18 2003-07-31 Hitachi Ltd コンピュータシステムおよびコンフィグレーションアクセスルーティング方法
JP2005018753A (ja) * 2003-06-25 2005-01-20 Internatl Business Mach Corp <Ibm> サーバ・システム内のスイッチ・モジュールの負荷を平衡させる方法およびシステムならびにこれらを利用したコンピュータ・システム
JP2006065812A (ja) * 2004-08-30 2006-03-09 Renesas Technology Corp データ処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014211767A (ja) * 2013-04-18 2014-11-13 富士通株式会社 情報処理システム、制御装置及び情報処理システムの制御方法

Also Published As

Publication number Publication date
US8824317B2 (en) 2014-09-02
US20110261830A1 (en) 2011-10-27
JPWO2010064661A1 (ja) 2012-05-10

Similar Documents

Publication Publication Date Title
US8526422B2 (en) Network on chip with partitions
JP6328134B2 (ja) クラスタ化されたコンピュータ・システムで通信チャネルのフェイルオーバを実行する方法、装置、およびプログラム
CN112148421B (zh) 虚拟机迁移的方法以及装置
US10768972B2 (en) Managing virtual machine instances utilizing a virtual offload device
US8615623B2 (en) Internet connection switch and internet connection system
US20170329625A1 (en) Method, apparatus, and system for accessing storage device
US8464019B2 (en) Apparatus for dynamically migrating LPARS with pass-through I/O devices, its method, and its program
US20090282211A1 (en) Network On Chip With Partitions
US20090138567A1 (en) Network on chip with partitions
US7849260B2 (en) Storage controller and control method thereof
US20070288921A1 (en) Emulating a network-like communication connection between virtual machines on a physical device
US20080052432A1 (en) Data buffer allocation in a non-blocking data services platform using input/output switching fabric
JP5373893B2 (ja) 異なるサイズを有するデータのブロックを格納し、取り出すための構成
US20090228541A1 (en) Network virtualization in a multi-node system with multiple networks
JP2016541072A (ja) リソース処理方法、オペレーティング・システム、およびデバイス
US9904639B2 (en) Interconnection fabric switching apparatus capable of dynamically allocating resources according to workload and method therefor
US20120183001A1 (en) Network apparatus, network configuration method and program recording medium which records a network apparatus program
KR20140018187A (ko) 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법
JP2005309553A (ja) 計算機
US20100064301A1 (en) Information processing device having load sharing function
WO2010064661A1 (ja) 並列計算システム、その方法及びそのプログラム
JP2012226471A (ja) 通信方法および通信サーバ
JP2019164661A (ja) 情報処理装置、情報処理方法及びプログラム
JP7281528B2 (ja) 情報処理装置
JP6694007B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09830427

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2010541339

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13133031

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 09830427

Country of ref document: EP

Kind code of ref document: A1