WO2009098820A1 - ネットワークスイッチ、経路設定方法およびプログラム - Google Patents

ネットワークスイッチ、経路設定方法およびプログラム Download PDF

Info

Publication number
WO2009098820A1
WO2009098820A1 PCT/JP2008/072511 JP2008072511W WO2009098820A1 WO 2009098820 A1 WO2009098820 A1 WO 2009098820A1 JP 2008072511 W JP2008072511 W JP 2008072511W WO 2009098820 A1 WO2009098820 A1 WO 2009098820A1
Authority
WO
WIPO (PCT)
Prior art keywords
multicast
route setting
route
multicast control
unit
Prior art date
Application number
PCT/JP2008/072511
Other languages
English (en)
French (fr)
Inventor
Noritaka Hoshi
Original Assignee
Nec Corporation
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 Nec Corporation filed Critical Nec Corporation
Priority to JP2009552389A priority Critical patent/JP5347975B2/ja
Priority to US12/864,567 priority patent/US8416702B2/en
Publication of WO2009098820A1 publication Critical patent/WO2009098820A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix

Definitions

  • the present invention relates to a network switch, a route setting method, and a program constituting an interconnection network that couples a plurality of computers to each other. More specifically, the present invention relates to a route information setting function for suitably routing a packet of multicast communication for simultaneously distributing data to a plurality of designated computers, and multicast based on the set route information. And a function for executing communication.
  • a parallel computer system in which a plurality of calculation nodes are connected by an interconnection network is used.
  • a target problem is divided and processed by a plurality of calculation nodes.
  • a predetermined object can be achieved by transmitting the packet from the transfer source calculation node to each of the different transfer destination calculation nodes.
  • the interconnection network has a function of copying a packet to be transferred and transmitting it to a plurality of calculation nodes, the load imposed on the interconnection network by the transfer calculation node is reduced, and the data transfer The data transfer time required for this can be shortened.
  • Such a function of transmitting the same data from one computing node to a plurality of computing nodes is called a multicast communication function.
  • MPI Message Passing Interface
  • MPI Message Passing Interface
  • MPI_Bcast defined by MPI is a function for sending data held by a certain process to all processes included in the same communicator. This communicator may specify a set of processes for the entire system, but may also specify a subset of processes. “MPI_Allgather” is a function that sends specified data from any process in the communicator to all processes included in the same communicator.
  • functions of functions that perform multicast communication such as “MPI_Bcast” and “MPI_Allgather” can also be realized by executing unicast communication, which is one-to-one communication, multiple times.
  • unicast communication which is one-to-one communication, multiple times.
  • it is desirable to use the function which an interconnection network has. This is from the viewpoint of shortening the data transfer time and improving the execution performance of the entire program.
  • calculation nodes are arranged in the same row or arranged in the same column.
  • Class network routing is considered for multicast forwarding of messages to compute nodes.
  • a parallel computer is considered in which a plurality of destinations are encoded in individual packets and described in a fixed-length field on the header.
  • a plurality of destinations are designated with a small number of destination bits, and a plurality of multicast packets are generated when the data length for designating the destination exceeds the fixed length field.
  • a broadcast method is conceivable in which a network switch holds route information and performs multicast transfer according to the route information.
  • route information is calculated in advance by an external program, and the calculated route information is set.
  • an address register that can be set from a program is provided in the receiving apparatus, and a multicast packet receiving destination (destination processor) uses each header using a packet header.
  • An inter-processor communication method is conceivable in which a register is selected and the destination address is written in the register value of the selected address register.
  • the destination node of multicast communication is closely related to the physical arrangement of calculation nodes on the interconnection network. For this reason, there is a problem that patterns that can be designated as the destination node may be limited.
  • route information for route designation is set in advance by an external program, so when multicast communication is executed from a user program, the route cannot be designated. For this reason, it is necessary to determine on which computing node the process operates before executing multicast communication, and there is a problem that it is difficult to operate a flexible and efficient system.
  • An object of the present invention is to provide a network switch, a route setting method, and a program that solve the above-described problems.
  • a network switch includes a plurality of input ports and a plurality of output ports respectively associated with the input ports, and outputs a multicast packet from the output port.
  • a multicast control information holding unit for designating an output port for outputting the multicast packet from among the plurality of output ports, and a transfer path for the multicast packet with respect to the output port designated by the multicast control information holding unit
  • a multicast control unit that performs transfer route setting, an adder that counts the number of route setting completion processes that is the number of processes that the multicast control unit has completed the transfer route setting, and a route setting that is counted by the adder
  • the number of processes and the number To determine whether the number of processes to perform the cast communication matches, and having a comparator unit identifies that the transfer path setting of the multicast communication when a matching with the determination is completed.
  • a route setting method includes a plurality of input ports and a plurality of output ports respectively associated with the input ports, and outputs a multicast packet from the output ports.
  • a multicast control information holding process for designating an output port for outputting the multicast packet from the plurality of output ports, and an output port designated by the multicast control information holding process.
  • Multicast control information that is a program to be executed by a computer and that specifies the output port for outputting a multicast packet from among a plurality of output ports respectively associated with a plurality of input ports included in a network switch Holding procedure, a multicast control procedure for setting a forwarding route which is a forwarding route setting of the multicast packet for the output port specified in the multicast control information holding procedure, and the forwarding route setting in the multicast control procedure. It is determined whether or not the addition procedure for counting the number of path setting completion processes, which is the number of processes completed, and the number of the path setting completion processes counted in the addition procedure match the number of processes for executing the multicast communication. And if it matches, To perform a comparison procedure for identifying the computer that the transfer path setting of the multicast communication has been completed when.
  • the multicast packet is output from the plurality of output ports.
  • the output port for output set the multicast packet forwarding route for the designated output port, count the number of route setup completion processes, which is the number of processes that have completed forwarding route setting, and count the route setting It is determined whether or not the number of completed processes and the number of processes that execute multicast communication match, and when it is determined that they match, it is configured to identify completion of multicast communication transfer path setting. And the transfer route can be set at high speed.
  • FIG. 4 is an operation sequence showing a transfer route setting process and a multicast communication process for multicast communication in the present invention.
  • It is a flowchart which shows the route setting command reception process shown in FIG. It is a figure which shows an example of the data structure of a path
  • the parallel computer system includes a calculation node group 1 and an interconnection network 2.
  • the calculation nodes 11-1 to 11-4, 12-1 to 12-4, 13-1 to 13-4, and 14-1 to 14-4 (hereinafter referred to as “calculation node 10”) included in the calculation node group 1 are collectively connected to the interconnection network 2.
  • the network form of the interconnection network 2 is not particularly limited. For example, a network such as a multistage connection network may be used. In the following example, a tree-type network will be described as an example.
  • the calculation node 10 is an independent computer having an arithmetic unit and a memory.
  • the calculation nodes 10 perform data transfer with each other via the interconnection network 2 as necessary, and execute predetermined processing.
  • the computing node 10 has a function of executing a “route setting command issuing process” and issuing a “route setting command” to be described later.
  • the computing node 10 has a function of issuing a multicast packet transmitted to a plurality of specific destinations by multicast communication.
  • the form of the multicast packet is not particularly limited, but the multicast packet of this embodiment includes a “control unit arrival bit” for indicating whether or not the multicast packet has reached a multicast control switch described later.
  • the mutual connection network 2 is composed of a plurality of network switches.
  • Network switches 22-1 to 22-4 (hereinafter collectively referred to as “network switch 22”) are directly connected to the computation node group 1.
  • the network switch 21-1 connects the network switches 22-1 to 22-4 to each other. For example, when data is transferred from the calculation node 11-1 to the calculation node 11-2, the data is transferred via the network switch 22-1. Data transfer from the calculation node 11-1 to the calculation node 13-1 is executed via the network switches 22-1, 21-1, and 22-3 in sequence.
  • the number of network switches 21-1 is “1” in the present embodiment, but may be plural. Therefore, hereinafter, network switches provided on the same level as the network switch 21-1 on the interconnection network 2 are collectively referred to as “network switch 21”.
  • the configuration of the network switches 21-1 and 22-1 to 22-4 of this embodiment will be described.
  • the number of input ports is “5” and the number of output ports is “5” (hereinafter referred to as “5 inputs and 5 outputs”). It is comprised by the crossbar switch which is.
  • the number of input ports used is “4” and the number of output ports used is “4” (hereinafter referred to as “4 inputs”). Both the fifth input port and the fifth output port are unused.
  • the input ports and output ports of the network switches 21 and 22 are associated with each other on a one-to-one basis.
  • the first input port is associated with the first output port.
  • the correspondence method between the input port and the output port may be a general correspondence method.
  • the number of input ports and the number of output ports of each network switch 21 and 22 are not limited to “5”, and may be any natural numbers.
  • the ports 1 to 4 are in the downlink direction (from the network switch 21-1 to each network switch 22 in FIG. -1 to 22-4), and the port 5 is connected to the upstream direction in FIG. 1 (the direction from each network switch 22-1 to 22-4 to the network switch 21-1). It is connected.
  • the network switch 21-1 will be described below as an example of the network switch 22-1.
  • the network switch 22-1 includes input buffer units 201-1 to 201-5 (hereinafter collectively referred to as “input buffer unit 201”) and output buffer units 202-1 to 202-5 ( (Hereinafter collectively referred to as “output buffer unit 202”), a crossbar switch 203, a crossbar control unit 204, and a multicast control unit 205.
  • the input buffer units 201-1 to 201-5 hold, decode, and output packets input to the input ports of the network switch 22-1.
  • the input buffer units 201-1 to 201-5 correspond to the input ports 1 to 5, respectively.
  • the output buffer units 202-1 to 202-5 hold the packets output from the crossbar switch 203, and the held packets are output to the network switches 21-1, 22-2 to 22-4 via the respective output ports. And output to the computation node group 1.
  • the output buffer units 202-1 to 202-5 correspond to the output ports 1 to 5, respectively.
  • the crossbar switch 203 transfers the packets output from the input buffer units 201-1 to 201-5 to the output buffer units 202-1 to 202-5 designated by the crossbar control unit 204 under the control of the crossbar control unit 204. Performs transmission (routing).
  • the crossbar control unit 204 receives the destination information decoded by the input buffer units 201-1 to 201-5, and controls the routing of the crossbar switch 203 according to the destination information input.
  • the multicast control unit 205 When multicast packets are input from the input buffer units 201-1 to 201-5, the multicast control unit 205 generates a copy of the multicast packet and copies the multicast packet to the appropriate output buffer units 202-1 to 202-5. Is output.
  • the multicast control unit 205 sets the transfer destination (network switch 21 or 22) of the route setting command as the transfer source of the multicast packet when setting the transfer route.
  • the multicast control unit 205 sets the transfer source (calculation node 10) of the route setting command as the transfer destination of the multicast packet.
  • This multicast packet is a packet transmitted by multicast communication using the set transfer path.
  • the multicast control unit 205 includes a packet input unit 301, a packet output unit 302, a process number holding unit 303, a process number counter unit 304, a multicast control information holding unit 305, an addition A unit 306, a comparison unit 307, a completion notification generation unit 308, and a destination match determination unit 309.
  • the packet input unit 301 receives the packet input from the input buffer units 201-1 to 201-5 and outputs the input packet to the packet output unit 302.
  • the packet input by the packet input unit 301 is a multicast packet transmitted by multicast communication, a route setting command issued by the calculation node 10, or the like.
  • the packet input unit 301 executes a “route setting command reception process” described later and receives the route setting command.
  • the packet input unit 301 receives predetermined control information (for example, a multicast ID described later) stored in the received path setting command as a process number holding unit 303, a process number counter unit 304, and a multicast control information holding unit.
  • 305 has a notification function.
  • the packet output unit 302 receives a packet (route setting command, multicast packet, etc.) from the packet input unit 301 or the completion notification generation unit 308, and the received packet is output to each of the output buffer units 202-1 to 202-5 shown in FIG. Output to. Further, the packet output unit 302 receives “multicast control information 3051”, which is transfer path information for designating the output destination (transfer destination) of the multicast packet, from the multicast control information holding unit 305.
  • the process number holding unit 303 is a register group that executes “process number holding processing” and holds “number of group belonging processes”.
  • the “number of processes belonging to a group” is the number of processes belonging to each process group on the computing node 10 that executes multicast communication.
  • the process group here corresponds to a communicator that is treated as a set of processes performing communication in MPI, for example.
  • the process number holding unit 303 receives a multicast ID input from the packet input unit 301 and outputs a register value (the number of group-affiliated processes) specified by the multicast ID to the comparison unit 307.
  • the process number counter unit 304 is a register group that executes “process number counting processing” and holds register values related to “forwarding path setting” that is processing for setting a forwarding path for multicast packets in multicast communication. More specifically, the process number counter unit 304 holds the number of transfer path settings completed for the processes on the computing node 10 performing multicast communication (hereinafter referred to as “path setting completion process number”).
  • the process number counter unit 304 receives the input of the multicast ID from the packet input unit 301, and outputs a register value (number of path setting completion processes) specified by the multicast ID to the addition unit 306.
  • the multicast control information holding unit 305 executes “multicast control information holding processing” and holds “multicast control information 3051” which is information for designating an output port number for outputting a copy of the multicast packet.
  • the packet input unit 301 receives one route setting command from one process on the computing node 10
  • the multicast control information holding unit 305 executes route setting processing for that process. Therefore, the number of path setting completion processes counted by the process number counter unit 304 is the same as the number of path setting commands received by the network switch 22-1.
  • the multicast control information holding unit 305 receives inputs from the packet input units 301-1 to 301-5 and outputs control signals (forwarding path information) to the packet output units 302-1 to 302-5.
  • the multicast control information holding unit 305 has a function of identifying a packet input unit to which a packet is input from the input buffer unit 201 (input port) among the packet input units 301-1 to 301-5.
  • the addition unit 306 is configured by an adder, executes “addition processing”, and updates the register value held by the process number counter unit 304 so that the multicast control unit 205 completes the packet transfer route setting. Count the number. Note that the addition unit 306 performs addition processing on the “path setting completion process number” held by the process number counter unit 304, and then writes the result after the addition processing back to the register value held by the process number counter unit 304. Further, the adding unit 306 outputs the addition result to the comparing unit 307.
  • the comparison unit 307 is configured by a comparator, and receives a value input from the addition unit 306 and the process number holding unit 303 by executing “comparison processing”, and holds the input value and the process number from the addition unit 306. The input value from the unit 303 is compared, and the comparison result is output to the completion notification generation unit 308.
  • the comparison unit 307 identifies that the multicast communication path setting is completed when the comparison results match. When it is identified that the route setting is completed, the comparison unit 307 executes “completion notification instruction processing”, and a packet for notifying the completion notification generation unit 308 of the completion of the route setting “route setting completion” Instruct to generate "notification”.
  • Completion notification generation unit 308 executes “completion notification generation processing” and generates “route setting completion notification” in accordance with the instruction by “completion notification instruction processing” of comparison unit 307. Further, the completion notification generation unit 308 executes “completion notification transmission processing” and outputs the generated route setting completion notification to the packet output unit 302. As a result, a route setting completion notification is transmitted to the computation node 10.
  • the destination match determination unit 309 executes “destination match determination processing” to determine whether or not the final destination of the route setting command indicated by the transfer destination information of the route setting command matches the own network switch. If it is determined, it identifies that its own network switch is the final transfer destination of the packet. Then, the destination match determination unit 309 notifies the process number counter unit 304 of the identification result of “final destination of the route setting command” stored in the route setting command.
  • the destination match determination unit 309 has a function of determining whether or not the destination of the multicast packet transmitted from the computation node 10 matches itself during multicast communication. If it is determined that they match with each other, the destination match determination unit 309 rewrites the “control unit arrival bit” in the multicast packet to “1”.
  • the process number holding unit 303, the process number counter unit 304, and the multicast control information holding unit 305 have a plurality of sets of information (one group belonging process number in FIG. 3 and one route setting completion process number in FIG. 3). And a single bit string of FIG. 4 to be described later).
  • a number for identifying each process group (hereinafter referred to as “multicast ID”) is assigned to the process group on the computing node 10 that executes multicast communication. Accordingly, each process group can select information corresponding to its own process group from a plurality of sets of information based on the multicast ID. This is because multicast communication by a plurality of process groups can be executed simultaneously.
  • m bit strings B1 to Bm having a length of “5” are registered.
  • the reason why m bit strings B1 to Bm are provided here is to enable setting of a plurality (m) of multicast communication transfer paths.
  • the multicast control information holding unit 305 designates a specific bit string from among the bit strings B1 to Bm by the multicast ID included in the route setting command transmitted from the calculation node 10. Five bits included in each of the bit strings B1 to Bm are respectively associated with five output ports (output buffer units 202-1 to 202-5 corresponding to the output ports). As described above, the input ports and output ports of the network switch are associated with each other on a one-to-one basis. Therefore, the multicast control information holding unit 305 identifies the bits in the bit string B1 to Bm corresponding to the output port number corresponding to the input port number for the input port number to which the route setting command is input from the outside. Is possible.
  • the multicast control information holding unit 305 sets “1” for the bit corresponding to the output port number for outputting the multicast packet in each of the bit strings B1 to Bm. Also, the multicast control information holding unit 305 sets “0” to the bit corresponding to the output port number that does not output the multicast packet. In the example of the bit string B1 shown in FIG. 4, the output port (output port number “1”) corresponding to the first bit is set for multicast packet transmission.
  • the output destination of the multicast packet is indicated by a bit string having the same number of bits as the number of output ports included in the network switches 21 and 22, but the form of the multicast control information 3051 is There is no particular limitation.
  • the multicast control information 3051 may be, for example, a list in which output port numbers that are output destinations of multicast packets are registered.
  • the computing node 10 performs “preparation processing” in step 11, “route setting command issue processing” in step 12, and “route setting completion notification reception processing in step 13”. And “multicast communication processing” in step 14 is executed.
  • the network switch 21 or 22 executes “route setting command reception processing” in step 21 or 31 and “route setting processing” in step 22 or 32. Whether the “route setting command transfer process” in step 23, the “route setting completion notification process” in step 33, and the “route setting completion notification transfer process” in step 24 are final destinations of the route setting command. It is executed according to.
  • Preliminary preparation process in step 11 includes information such as “multicast ID” for identifying a process group, the number of processes belonging to each process group, and the like for each process belonging to a process group executing multicast communication in the computing node 10. Done to share in advance.
  • the “route setting command issuance process” in step 12 is a “route setting command” for each process in the process group that executes multicast communication to instruct the network switches 21 and 22 to set the transfer route. Done to issue.
  • the data structure of the “route setting command” will be described in detail later.
  • the “route setting command reception processing” in step 21 or 31 receives the “route setting command” transmitted by the “route setting command issue processing” from each process in the process group of the computing node 10 in the network switches 21 and 22. To be done.
  • the “route setting command reception process” in step 21 and the “destination match determination process” in step 212 are executed.
  • the “route setting command receiving process” in step 211 is executed by the packet input unit 301 to receive the route setting command.
  • the “destination match determination process” in step 212 is executed by the destination match determination unit 309, and whether the final destination of the route setting command indicated by the “multicast control switch number” described later matches with its own network switch. This is done to determine whether or not.
  • step 212 in FIG. 6 If No in step 212 in FIG. 6 and the destination match determination unit 309 determines that the own network switch is not the final destination, the “route setting process” in step 22 is executed as shown in FIG. Later, “route setting command transfer processing” in step 23 is executed. Further, when the answer is Yes in step 212 in FIG. 6 and the destination match determination unit 309 determines that the own network switch is the final destination, the “route setting process” in step 32 as shown in FIG. ”Is executed, the“ route setting completion notification process ”in step 33 is executed.
  • the “route setting process” in step 22 or 32 shown in FIG. 5 is performed based on the received “route setting command” in the network switches 21 and 22 that have received the “route setting command” by the “route setting command receiving process”. Is called.
  • the multicast control unit 205 of each network switch 21 and 22 sets the multicast control information 3051 in accordance with the instruction of the route setting command received from the computation node 10.
  • the “route setting command transfer process” in step 23 is a network switch of the final destination (“multicast control switch” described later) of the “route setting command” transmitted from each process in the process group of the computing node 10. Done to send to.
  • the “route setting completion notification process” in step 33 indicates that the setting of the path used for multicast communication is completed by the completion of the “route setting process” in the network switch 21 or 22 which is the final destination of the path setting command. This is performed to notify the computation node 10 which is the issuer of the route setting command.
  • the network switch on the transfer path from the multicast control switch to the computing node 10 executes the “route setting completion notification transfer process” in step 24.
  • the network switch 21 or 22 relays the route setting completion notification transmitted by the multicast control switch and forwards it to the computation node that issued the route setting command.
  • Step 13 “Route setting completion notification receiving process” in step 13 is executed in each process in the process group of the computing node 10.
  • the process group receives the “route setting completion notification” transmitted from the network switch that is the multicast control switch by the “route setting completion notification process” in step 23.
  • each process in the received process group confirms that the multicast communication route setting requested by the transmission of the “route setting command” has been completed on the network switch that is the final destination of the route setting command. recognize. Therefore, a multicast communication command for performing multicast communication can be issued to the process group that has received the “route setting completion notification”.
  • each process in the process group that executes multicast communication sets (a) a multicast ID and (b) a network switch that controls multicast communication before setting a route for multicast communication.
  • Information indicating the number to be designated hereinafter referred to as “multicast control switch number”
  • (c) the number of processes included in the process group hereinafter referred to as “number of processes belonging to the group”.
  • Multicast ID is “identification information” indicating a number for identifying each process group operating on the computing node 10. In the following example, it is assumed that the multicast ID is “1”.
  • the “multicast control switch number” is information for designating a network switch that controls multicast communication. Further, the network switch designated by the “multicast control switch number” is hereinafter referred to as “multicast control switch”. In a network having a tree structure, it is most efficient to designate the uppermost network switch (network switch 21-1) shown in FIG. Therefore, in this example, “network switch 21-1” is designated by the multicast control switch number.
  • the multicast control switch number may be transfer route information for transferring a route setting command to the multicast control switch.
  • “Number of processes belonging to group” is the number of processes belonging to the process group to which “multicast ID” is assigned in the computation node 10. Since the “multicast ID” is assigned to a process group that executes multicast communication, the “number of group affiliation processes” is a “number of multicast execution processes” indicating the number of processes that participate in multicast communication and execute multicast communication. is there. In the following example, it is assumed that “number of processes belonging to group” is “5”.
  • step 11 the “preparation process” in step 11 is completed.
  • each process in the process group that executes multicast communication in the computing node 10 issues a “route setting command”.
  • the issued path setting command is transferred to the multicast control unit 205 included in the specific network switches 21 and 22 provided on the interconnection network 2 shown in FIG.
  • This “route setting command” is a packet including a command for instructing the multicast control unit 205 included in the network 21 or 22 to set a transfer route for multicast communication.
  • the multicast control switch number is “route setting command transfer destination information” which is route information for transferring a route setting command to a multicast control switch that controls multicast communication.
  • step 21 by the network switches 21 and 22 receives the route setting command issued by the calculation node by the “route setting command issuing process”.
  • the packet input unit 301 of the network switches 21 and 22 receives the path setting command from the calculation node 10 or from another network switch that has transferred the path setting command received from the calculation node 10.
  • the network switch 22-1 or 21-1 receives a path setting command issued by the calculation node 11-1 will be described as an example.
  • the route setting command issued by the calculation node 11-1 is the route setting command shown in FIG. 7, and “network switch 21-1” is designated as the multicast control switch.
  • the operation of the network switch differs depending on whether the network switch is the final destination of the path setting command (whether it is a multi-channel control switch). Therefore, the network switch 22-1 that is not the “multi-channel control switch” will be described first.
  • the network switch 22-1 executes “route setting command reception processing” in step 211 shown in FIG. 6 in “route setting command reception processing” in step 21 shown in FIG. Receives the issued route setting command. Thereafter, the input buffer unit 201-1 of the network switch 22-1 decodes the route setting command and supplies it to the multicast control unit 205. The packet input unit 301 included in the multicast control unit 205 extracts the multicast control switch number and the multicast ID from the route setting command supplied from the input buffer unit 201-1.
  • the destination match determination unit 309 executes “destination match determination processing” in step 212 shown in FIG. 6 to finally determine the route setting command indicated by the transfer destination information (multicast control switch number) in the route setting command. It is determined whether or not the correct destination matches the own network switch 22-1.
  • the multicast control switch number indicates the network switch 21-1, and the network switch 22-1 is not the final transfer destination. Therefore, the destination match determination unit 309 determines that its own network switch is not the final transfer destination. In this case, in the switch 22-1, the multicast control unit 205 executes “route setting command transfer processing” in step 23 after executing “route setting processing” in step 22.
  • the “route setting process” in step 22 shown in FIG. 6 is executed by the multicast control information holding unit 305 updating the multicast control information 3051 held by itself.
  • the multicast control information holding unit 305 sets the value of the bit corresponding to the input port number that received the route setting command to “1” in the bit string specified by the multicast ID in the route setting command.
  • the multicast ID indicates “1”
  • the “first bit string B1” shown in FIG. 4 is designated.
  • the input port number that has received the route setting command is “1”.
  • the multicast control information holding unit 305 sets the value of “bit corresponding to the first output port” corresponding to the input port number “1” to “1” in the bit string B1 specified by the multicast ID. To do.
  • bit setting operation such an operation is referred to as a “bit setting operation”.
  • the network switch 22-1 executes the “route setting command transfer process” in step 23.
  • the packet input unit 301 inputs the path setting command received by the network switch 22-1 to the output buffer unit 202-5 via the packet output unit 302.
  • the output buffer unit 202-5 of the network switch 22-1 executes “route setting command transfer processing”, and transfers the route setting command to the network switch 21-1 that is the final destination.
  • the switch 21-1 which is the final destination (multicast control switch) of the route setting command”
  • the switch 21-1 receives the route setting command transferred from the network switch 22-1 by the “route setting command reception process” in step 31
  • the switch 21-1 multicasts the route setting command decoded by the input buffer unit 201-1. This is supplied to the control unit 205.
  • the packet input unit 301 of the multicast control unit 205 extracts the multicast control switch number and the multicast ID from the route setting command. Since the destination indicated by the extracted multicast control switch number (transfer destination information) is the switch 21-1, the network switch 21-1 that currently refers to this transfer destination information is issued from the calculation node 11-1. This is the final destination itself of the route setting command.
  • the destination match determination unit 309 included in the network switch 21-1 is Yes in the destination match determination process in step 212 illustrated in FIG. 6, and the destination network switch indicated by the transfer destination information is the network switch 21 of its own. It is determined that it matches ⁇ 1, and it identifies that it is the final transfer destination. Therefore, in the network switch 21-1, the “route setting process” in step 32 by the multicast control information holding unit 305 and the “route setting completion notification process” in step 33 by the multicast control information holding unit 305 and the completion notification generating unit 308 are performed. Is executed.
  • the operation of the “route setting process” of the network switch 21-1 is the same as the bit setting operation executed by the network switch 22-1 in the “route setting process”. That is, in network switch 21-1, multicast control information holding section 305 identifies “first bit string B1” specified by a multicast ID (“1” in this example) from multicast control information 3051. . Further, the multicast control information holding unit 305 determines the value of the output port number bit (first bit) corresponding to the input port number (for example, “1”) that has received the path setting command in the specified bit string B1. Is set to “1”. By this setting operation, when the network switch 21-1 transfers the multicast packet to the computation node 11-1 that is the source of the path setting command, the output port of the output port number 1 that the network switch 21-1 has Is used.
  • the “route setting completion notification process” in step 33 of the network switch 21-1 is performed as follows. First, the packet input unit 301 notifies the process number holding unit 303 of the multicast ID extracted from the route setting command. The process number holding unit 303 outputs the register value (number of group belonging processes) designated by the notified multicast ID to the comparison unit 307.
  • the packet input unit 301 notifies the process number counter unit 304 of the multicast ID.
  • the process number counter unit 304 executes “process number counting process”, and outputs the value (number of path setting completion processes) stored in the register designated by the notified multicast ID to the adding unit 306.
  • the adding unit 306 executes “addition processing” in step 331 every time the multicast control information holding unit 305 sets one bit included in the bit strings B1 to Bn in the multicast control information 3051. To do.
  • the addition unit 306 adds 1 to the number of path setting completion processes, which is the value of the register output from the process number counter unit 304. Subsequently, the addition unit 306 writes the result after addition back to the process number counter unit 304 and outputs the result after addition to the comparison unit 307.
  • the comparison unit 307 executes “comparison processing” in step 332, and the value input from the process number holding unit 303 (the number of processes belonging to the group of the process group performing multicast communication on the calculation node 10) and the addition unit 306 The input value (the number of path setting completion processes after the addition unit 306 performs addition processing) is compared. If “Yes” is determined in the “comparison process” in step 332 and it is determined that the input values match each other, this corresponds to a case where a route setting command arrives from all the processes included in the process group that executes multicast communication. At this time, the comparison unit 307 identifies that the route setting for multicast communication has been completed and instructs the completion notification generation unit 308 to issue a “route setting completion notification”.
  • step 331 if it is No in step 332 and it is determined that the number of group belonging processes and the number of path setting completion processes do not match, the comparing unit 307 identifies that the path setting is not completed, and the adding unit 306 The process of step 331 is executed.
  • the network switch 21-1 executes the “route setting process” in step 32 and the route setting command reaches the switch 21-1 from all the processes, the multicast of each network switch 21-1, 22-1 to 2-4
  • the first bit string in the control information holding unit 305 is set as B1-1 and B2-1 to B2-4 shown in FIG.
  • the comparing unit 307 identifies that the path setting has been completed.
  • the comparison unit 307 executes “completion notification instruction processing” and instructs the completion notification generation unit 308 to issue a “route setting completion notification”.
  • Completion notification generation unit 308 generates a route setting completion notification by “completion notification generation processing” in step 333, and outputs the generated route setting completion notification to packet output unit 302.
  • a route setting completion notification a multicast ID (“1” in this example) for specifying a process group that executes multicast communication is described.
  • the packet output unit 302 of the network switch 21-1 receives the route setting completion notification generated by the “completion notification generation process” from the completion notification generation unit 308. Further, the packet output unit 302 receives the route information set by the “route setting process” from the multicast control information holding unit 305. Then, the packet output unit 302 outputs a copy of the route setting completion notification by using the output buffer unit 202 (output port) designated by the route information by “completion notification transmission processing”. Accordingly, a route setting completion notification is transmitted to the computation node 11-1 according to the transfer route. For example, in the example of FIG.
  • the packet output unit 302 of the switch 21-1 outputs each output port (output) corresponding to the setting of the “first bit string B1-1” in the multicast control information 3051 specified by the multicast ID.
  • a route setting completion notification is output to port numbers 1 to 3). This completes the “route setting completion notification process” in step 33.
  • the transfer path for multicast communication is set in the order of the network switch 21-1, the network switch 22-1 and the calculation node 11-1. Therefore, the “route setting completion notification transfer process” in step 24, which is a relay process by the network switch 22-1, is performed.
  • the network switch 22-1 Upon receiving the “route setting completion notification” transmitted from the network switch 21-1, the network switch 22-1 inputs the route setting completion notification to the packet input unit 301 of the multicast control unit 205.
  • the packet input unit 301 notifies the multicast control information holding unit 305 of the multicast ID (“1” in this example) included in the route setting completion notification. Further, the packet input unit 301 transfers the input route setting completion notification to the packet output unit 302.
  • the packet output unit 302 of the network switch 22-1 outputs the packet to the port specified by the bit included in the bit string B2-1 in FIG. 10 in the multicast control information 3051.
  • the “route setting completion notification” issued by the network switch 21-1 is transmitted from the network switch 22-1 to each process in the process group operating on the calculation node 11-1.
  • a method for notifying each process of the completion of the route setting by the route setting completion command is arbitrary. For example, a general method such as setting a predetermined value in a memory corresponding to a specified address of the calculation node 10 or a specified register of the calculation node 10 and reporting an interrupt to the calculation node 10 may be used.
  • the computation node 11-1 that is the destination of the path setting completion notification executes the “path setting completion notification receiving process” in step 13, and receives the path setting completion notification by each process of the process group. This completes the “transfer route setting process”.
  • step 14 when the computing node 11-1 performs the multicast communication using the transfer path set by the series of “transfer path setting process” will be described.
  • the five processes in the process group that execute “multicast communication processing” have a function of performing multicast communication.
  • a case where the computation node 11-1 performs multicast communication using all five processes in the process group will be described as an example.
  • the multicast packet transmitted from the computation node 11-1 is transferred to the multicast control switch that controls the multicast communication of the process group.
  • the multicast control switch is designated by the “multicast control switch number” set in the “preparation process” in step 11. Therefore, “network switch 21-1” is set as the destination information when the computing node 11-1 issues a multicast packet.
  • the “control unit arrival bit” in the multicast packet issued by the computation node 11-1 is “0” to indicate that the multicast packet has not reached the multicast control switch 21-1. Is set to
  • the destination match determination unit 309 identifies that the control unit arrival bit in the multicast packet received from the calculation node 11-1 is set to “0”. Thereafter, the packet output unit 302 of the network switch 22-1 transfers the multicast packet to the multicast control switch (network switch 21-1).
  • the destination match determination unit 309 When receiving the multicast packet transferred from the network switch 22-1 at the network switch 21-1, which is a “multicast control switch”, the destination match determination unit 309 causes the multicast packet to be sent to its final destination (network switch 21- Identify that 1) has been reached. Therefore, the destination match determination unit 309 rewrites the control unit arrival bit in the multicast packet to “1” and forwards it to the packet input unit 301 of the multicast control unit 205. The packet input unit 301 notifies the multicast ID to the multicast control information holding unit 305 and transfers the multicast packet body to the packet output unit 302.
  • a bit string (path) indicating the output port set by the multicast control information holding unit 305 for the process group of the multicast packet issuer (calculation node 11-1) specified by the multicast ID Information), and the read route information is transmitted to the packet output unit 302.
  • the packet output unit 302 outputs the multicast packet to the output buffer unit 202 designated according to the route information in order to transmit the multicast packet using the set transfer route.
  • the multicast packet transmitted from the computation node 11 is transferred to the network switches 22-1 22-2, and 22-3 via the network switch 21-1 that is a multicast control switch.
  • Each network switch 22-1 to 22-3 identifies that the control unit arrival bit in the multicast packet transferred from the network switch 21-1 is set to “1”, and the multicast packet is multicast-controlled. Determine that the switch has been reached. Thereafter, the determined multicast packet is transferred to the packet input unit 301 of the multicast control unit 205. The packet input unit 301 notifies the multicast control information holding unit 305 of the multicast ID and transfers the multicast packet to the packet output unit 302.
  • the multicast control information holding unit 305 reads the bit string (route information of the output port) specified by the multicast ID notified from the packet input unit 301 and supplies this route information to the packet output unit 302.
  • the packet output unit 302 outputs the multicast packet to any of the output buffer units 202-1 to 202-5 designated by the supplied route information.
  • the network switch 22-1 transfers the multicast packet according to the transfer route set by the transfer route setting process described above.
  • the multicast packet transfer operation is the same as the operation of transferring the setting completion command using the transfer route set by the transfer route setting process in the “route setting completion notification transfer process” in step 24.
  • step S14 the “multicast communication process” in step 14 is completed.
  • the network switches 21 and 22 designate at least one output port and transfer a copy of a packet input from the input port to the designated output port. It is determined whether the number of processes for which the route has been set and the setting of the transfer route has been matched with the number of processes for which the multicast communication that is held in advance matches, and the route setting for multicast communication is completed when it is determined that they match. Identify what happened.
  • the processing performance of the entire program using the multicast communication function can be improved.
  • the completion notification generation unit 308 indicates that the multicast communication route setting by the multicast control unit 205 has been completed. To the calculation node 10. As a result, the issuer of the route setting command can recognize that the multicast communication can be executed.
  • the method of performing multicast communication inside the network switch is not limited to this.
  • the control information in the packet is input to the multicast control unit 205, and the packet itself is output via the crossbar switch 203 to the output buffer unit 202.
  • a plurality of packet copies may be output at the same time.
  • the number of processes belonging to the process group is set in the process number holding unit 303 in advance, but each path setting command holds the number of processes, and the output result and command of the adding unit 306 are Completion of path setting may be identified by sequentially comparing the number of processes held.
  • the processing in the network switch 21-1 is implemented by a computer that operates the network switch 21-1 as a network switch 21-1 in addition to the above-described dedicated hardware.
  • the program may be recorded on a readable recording medium, and the program recorded on the recording medium may be read by the computer and executed.
  • the computer-readable recording medium operated as the network switch 21-1 includes a removable recording medium such as a floppy disk (registered trademark), a magneto-optical disk, a DVD, and a CD, and an HDD built in the computer. Etc.
  • the program recorded on the recording medium is read by, for example, a processor that operates as the multicast control unit 205 included in the computer that operates as the network switch 21-1, and the same processing as described above is performed under the control of the processor. Done.
  • the processor that operates as the multicast control unit 205 executes the program read from the recording medium on which the program is recorded.
  • the above-described program can be similarly applied to each of the network switches 22-1 to 22-4.
  • the multicast control information holding unit of the network switch is configured to send a multicast packet from a plurality of output ports based on an input port to which a route setting command that is a command for instructing the multicast control unit to set a transfer route is input. You may specify an output port for outputting.
  • the multicast control information holding unit of the network switch of the present invention holds multicast control information including a plurality of bits respectively associated with a plurality of output ports, and is updated by updating a value set in the bits.
  • the output port corresponding to the bit may be designated as the output port that outputs the multicast packet.
  • the multicast control information holding unit of the network switch of the present invention may specify multicast control information including bits to be updated by a multicast ID.
  • the network switch of the present invention when a route setting command is input to an input port, whether or not the destination indicated by the transfer destination information of the route setting command matches the network switch to which the route setting command is input. And an adder may count the number of route setting completion processes when it is determined that the destination match determiner matches.
  • the network switch of the present invention has a process number holding unit that holds the number of processes for executing the multicast communication included in the route setting command, and the comparison unit includes the number of path setting completion processes counted by the adding unit, It may be determined whether or not the number of processes for executing the multicast communication held by the process number holding unit matches.
  • the network switch of the present invention generates a route setting completion notification indicating that the transfer route setting is completed when the comparison unit identifies that the transfer route setting of the multicast communication is completed, and generates the generated route setting completion notification. May be included in a completion notification generation unit that transfers the route setting command input to the input port to the transmission source.
  • the completion notification generation unit of the network switch of the present invention may transfer the route setting completion notification by multicast communication performed according to the transfer route set by the multicast control unit.
  • the multicast control unit when the multicast control unit sets the transfer route by the route setting command, the multicast packet is transferred on the interconnection network in the direction opposite to the direction in which the route setting command is transferred.
  • a transfer route may be set.
  • the multicast control information holding processing of the route setting method of the present invention based on the input port to which the route setting command that is a command for instructing transfer route setting in the multicast control processing is input, from among a plurality of output ports.
  • An output port for outputting a multicast packet may be designated.
  • the multicast control information holding process of the route setting method of the present invention the multicast control information including a plurality of bits respectively associated with the plurality of output ports is held, and updated by updating the value set in the bits.
  • the output port corresponding to the selected bit may be designated as the output port that outputs the multicast packet.
  • the multicast control information including the bits to be updated may be specified by the multicast ID.
  • the route setting method of the present invention when the route setting command is input to the input port, the destination indicated by the transfer destination information of the route setting command matches the network switch to which the route setting command is input. In the addition process, if it is determined that the addresses match in the destination match determination process, the number of route setting completion processes may be counted.
  • the route setting method of the present invention has a process number holding process for holding the number of processes for executing the multicast communication included in the route setting command, and in the comparison process, the number of path setting completion processes counted in the addition process It may also be determined whether or not the number of processes for executing multicast communication held in the process number holding process matches.
  • the route setting method of the present invention generates a route setting completion notification indicating that the transfer route setting is completed when the comparison processing identifies that the transfer route setting of multicast communication is completed, and the generated route setting You may have the completion notification production
  • the route setting completion notification may be transferred by multicast communication performed according to the transfer route set in the multicast control process.
  • the multicast packet is transferred on the interconnection network in the direction opposite to the direction in which the route setting command is transferred.
  • the transfer path may be set so that
  • a multicast packet is selected from a plurality of output ports based on an input port to which a route setting command that is a command for instructing transfer route setting in the multicast control procedure is input. You may specify an output port for outputting.
  • the multicast control information holding procedure of the program of the present invention the multicast control information including a plurality of bits respectively associated with the plurality of output ports is held, and the updated bit is updated by updating the value set in the bit. May be designated as an output port that outputs a multicast packet.
  • multicast control information including bits to be updated may be specified by a multicast ID.
  • the program of the present invention determines whether or not the destination indicated by the transfer destination information of the route setting command matches the network switch to which the route setting command is input when the route setting command is input to the input port.
  • the route setting completion process number may be counted when it is determined in the destination match determination procedure that the addresses match.
  • the program of the present invention has a process number holding procedure for holding the number of processes for executing the multicast communication included in the route setting command, and in the comparison procedure, the number of path setting completion processes counted in the adding procedure, It may be determined whether or not the number of processes for executing the multicast communication held in the process number holding procedure matches.
  • the program of the present invention when the program of the present invention identifies that the transfer route setting of the multicast communication is completed in the comparison procedure, the program of the present invention generates a route setting completion notification indicating that the transfer route setting is completed, and the generated route setting completion notification May be transmitted to the transmission source of the route setting command input to the input port.
  • the route setting completion notification may be transferred by multicast communication performed according to the transfer route set in the multicast control procedure.
  • the multicast packet is transferred on the interconnection network in the direction opposite to the direction in which the route setting command is transferred.
  • a transfer route may be set.

Abstract

複数の入力ポートに対応付けられた複数の出力ポートのうちマルチキャストパケットを出力するために指定された出力ポートに対して、マルチキャストパケットの転送経路を設定する。さらに、転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントし、カウントした経路設定完了プロセス数と、マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する。

Description

ネットワークスイッチ、経路設定方法およびプログラム
 本発明は、複数の計算機を相互に結合する相互結合網を構成するネットワークスイッチ、経路設定方法およびプログラムに関する。より詳細には、本発明は、指定された複数の計算機に対してデータを一斉配信するマルチキャスト通信のパケットを好適にルーティングするための経路情報の設定機能と、設定された経路情報に基づいてマルチキャスト通信を実行する機能とに関する。
 一般的に大規模な問題を高速に処理するために、複数の計算ノードを相互結合網で接続した並列計算機システムが用いられる。この並列計算機システムでは、対象となる問題を複数の計算ノードで分割して処理するが、その際、各計算ノード間で演算に必要なデータや演算結果のデータを相互に通信する必要がある。そのため、一つの計算ノードから別の計算ノードに対するデータ転送は、相互結合網を介して行われる。
 一つの計算ノードから複数の計算ノードに同一のデータを含むパケットを送信する場合、転送元の計算ノードから互いに異なる転送先の各計算ノードにパケットをそれぞれ送信すれば、所定の目的を達成できる。しかし、データ転送されるパケットを複製して複数の計算ノードに送信する機能を相互結合網が有しているのであれば、転送元の計算ノードが相互結合網に与える負荷が低減され、データ転送に要するデータ転送時間の短縮が可能になる。このように一つの計算ノードから複数の計算ノードに同一のデータを送信する機能をマルチキャスト通信機能と呼ぶ。
 並列計算機上で実行するプログラムを記述する一般的な方式として知られるMPI(Message Passing Interface)では、互いに通信を行うプロセスの集合をコミュニケータとして管理し、このコミュニケータに含まれるプロセスに対してマルチキャスト通信を行う関数が複数準備されている。
 例えば、MPIが定める「MPI_Bcast」は、あるプロセスが保持するデータを、同一のコミュニケータに含まれる全プロセスに送る関数である。このコミュニケータは、システム全体のプロセスの集合を指定することもあるが、プロセスの部分集合を指定することもある。また、「MPI_Allgather」は、指定されたデータを、コミュニケータ内のいずれかのプロセスから同一のコミュニケータに含まれる全プロセスに送る関数である。
 「MPI_Bcast」や「MPI_Allgather」のようなマルチキャスト通信を行う関数が有する機能は、1対1の通信であるユニキャスト通信を複数回実行することでも実現できるが、相互結合網がパケットを複製して複数の計算ノードに送信する機能を有している場合、相互結合網が有する機能を利用することが望ましい。これによって、データ転送時間の短縮を図り、プログラム全体の実行性能を向上させる観点からである。
 このようなデータ転送時間を低減し、プログラム全体の実行性能を向上させるための各種技術が提案されている。
 例えば、特許公開1996-305649号公報に開示されているように、一般的な交換スイッチにおいてマルチキャスト用バッファを設け、マルチキャストパケットの送信時に出力ポートの空きがない場合、いずれかの出力ポートが使用可能な状態になるまでの間、送信予定のマルチキャストパケットをマルチキャスト用バッファに格納するマルチキャスト方法が考えられている。
 また、マルチキャスト通信の際に、データの転送先となるシステム中の計算機を指定して、データ転送を実行する技術が提案されている。
 例えば、特許2581286号公報に開示されているように、宛先ノード番号の最小値と最大値によって指定される範囲に属する計算ノードに対してパケットを転送する網制御方法が考えられている。
 また、特許公表2004-533035号公報に開示されているように、格子状に計算ノードが配置されたネットワークにおいて、同一の行に配置されている計算ノード、あるいは、同一の列に配置されている計算ノードに対して、メッセージをマルチキャスト転送するクラス・ネットワーク経路指定が考えられている。
 また、特許公開2000-216787号公報に開示されているように、個々のパケットに複数の宛先をコード化して、ヘッダ上の固定長フィールドに記述する並列計算機が考えられている。この並列計算機では、少ない宛先ビットで複数の宛先の指定を行うとともに、宛先を指定するためのデータ長が固定長フィールドを超過する場合には、複数のマルチキャストパケットを生成している。
 また、特許公開1993-028122号公報に開示されているように、ネットワークスイッチが経路情報を保持し、その経路情報に従ってマルチキャスト転送を行うブロードキャスト方法が考えられている。このブロードキャスト方法では、外部のプログラムによって経路情報を事前に算出し、算出された経路情報を設定する。
 また、特許公開1997-297746号公報に開示されているように、プログラムから設定可能なアドレスレジスタを受信装置内に設け、マルチキャストパケットの受信先(宛先プロセッサ)は、パケットのヘッダを用いて各アドレスレジスタを選択し、選択したアドレスレジスタのレジスタ値に受信先のアドレスを書き込むプロセッサ間通信方法が考えられている。
 マルチキャスト通信においては、複数の転送先と各転送先にそれぞれ対応する転送経路とを指定する必要がある。一般的な技術では、複雑な宛先パターンを記述できないおそれや、プロセスを実行する計算ノードの物理的位置が特定できるまで宛先パターンを記述できないおそれがあるという問題点がある。
 また、上述の一般的な技術では、以下のような問題点がある。
 特許2581286号公報および特許公表2004-533035号公報に開示された技術では、マルチキャスト通信の宛先ノードが、相互結合網上における計算ノードの物理的な配置と密接に関連している。そのため、宛先ノードとして指定できるパターンが限定されるおそれがあるという問題点がある。
 特許公開2000-216787号公報に開示された技術では、マルチキャスト通信の宛先ノードのパターンが複雑で固定長ビット列への符号化が困難な場合、複数のマルチキャスト通信を実行するためにマルチキャスト機能の効果が低減するおそれがあるという問題点がある。
 特許公開1993-028122号公報に開示された技術では、経路指定用の経路情報を外部のプログラムによって事前に設定するため、マルチキャスト通信をユーザプログラムから実行する場合、経路を指定できない。このため、プロセスがどの計算ノード上で動作するかをマルチキャスト通信の実行前に確定する必要があり、柔軟で効率的なシステムの運用が困難なおそれがあるという問題点がある。
 さらに、上記特許ドキュメントそれぞれに開示された技術では、プログラム実行時に計算ノードの番号が仮想化されている場合や、プロセスが動作する計算ノードを事前に識別できない場合、マルチキャスト通信を実行する際に、先ず、物理的な計算ノードの位置を特定してからマルチキャスト通信の宛先を指定する必要がある。そのため、経路の指定に要する時間がプログラム実行上のオーバーヘッドになるという共通の問題点がある。
 本発明は、上述した課題を解決するネットワークスイッチ、経路設定方法およびプログラムを提供することを目的とする。
 上記課題を解決するために、本発明のネットワークスイッチは、複数の入力ポートと該入力ポートにそれぞれ対応付けられた複数の出力ポートとを有し、前記出力ポートからマルチキャストパケットを出力するネットワークスイッチにおいて、前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定するマルチキャスト制御情報保持部と、前記マルチキャスト制御情報保持部が指定した出力ポートに対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御部と、前記マルチキャスト制御部が前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算部と、前記加算部がカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較部とを有することを特徴とする。
 上記課題を解決するために、本発明の経路設定方法は、複数の入力ポートと該入力ポートにそれぞれ対応付けられた複数の出力ポートとを有し、前記出力ポートからマルチキャストパケットを出力するネットワークスイッチにおける経路設定方法であって、前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定するマルチキャスト制御情報保持処理と、前記マルチキャスト制御情報保持処理にて指定した出力ポートに対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御処理と、前記マルチキャスト制御処理にて前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算処理と、前記加算処理にてカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較処理とを有する。
 また、コンピュータに実行させるプログラムであって、ネットワークスイッチが具備する複数の入力ポートにそれぞれ対応付けられた複数の出力ポートのうちから、マルチキャストパケットを出力するための前記出力ポートを指定するマルチキャスト制御情報保持手順と、前記マルチキャスト制御情報保持手順にて指定した出力ポートに対して、前記マルチキャストパケットの転送経路の設定である転送経路設定を行うマルチキャスト制御手順と、前記マルチキャスト制御手順にて前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算手順と、前記加算手順にてカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較手順とをコンピュータに実行させる。
 本発明によれば、複数の入力ポートと入力ポートにそれぞれ対応付けられた複数の出力ポートとを有し、出力ポートからマルチキャストパケットを出力するネットワークスイッチにおいて、複数の出力ポートのうちからマルチキャストパケットを出力するための出力ポートを指定し、指定した出力ポートに対して、マルチキャストパケットの転送経路を設定し、転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントし、カウントした経路設定完了プロセス数と、マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する構成としたため、マルチキャスト通信における宛先および転送経路を高速に設定できる。
本発明の実施形態に従った並列計算機システムの構成を示す図である。 図1に示したネットワークスイッチの構成を示す図である。 図2に示したマルチキャスト制御部の構成を示す図である。 図3に示したマルチキャスト制御情報保持部の構成を示す図である。 本発明における、マルチキャスト通信用の転送経路設定処理およびマルチキャスト通信処理を示す動作シーケンスである。 図5に示した経路設定コマンド受信処理を示すフローチャートである。 経路設定コマンドのデータ構造の一例を示す図である。 図5に示した経路設定完了通知処理を示すフローチャートである。 並列計算機システムの「経路設定処理」における、各構成要素間のデータの流れを示す図である。 並列計算機システムの「経路設定完了通知処理」における、各構成要素間のデータの流れを示す図である。 並列計算機システムの「マルチキャスト通信処理」における、各構成要素間のデータの流れを示す図である。
 以下、本発明の実施形態に従った並列計算機システム(ネットワークスイッチ、経路設定方法、プログラムを含む)を説明する。
 先ず、本実施形態の並列計算機システムの構成を説明する。図1に示すように、並列計算機システムは、計算ノード群1と相互結合網2とから構成される。計算ノード群1に含まれる各計算ノード11-1~11-4、12-1~12-4、13-1~13-4および14-1~14-4(以下、「計算ノード10」と総称する)は、相互結合網2にそれぞれ接続されている。相互結合網2のネットワーク形態は特に限定せず、例えば、多段結合網などのネットワークであってもよいが、以下の例ではツリー型のネットワークを例に挙げて説明する。
 計算ノード10は、演算器とメモリとをそれぞれ有する互いに独立した計算機である。計算ノード10は、必要に応じて相互結合網2を介して互いにデータ転送を行い、所定の処理を実行する。また、計算ノード10は、「経路設定コマンド発行処理」を実行し、後述する「経路設定コマンド」を発行する機能を有する。さらに、計算ノード10は、マルチキャスト通信により特定の複数の宛先に送信されるマルチキャストパケットを発行する機能を有する。ここでマルチキャストパケットの形態については特に限定しないが、本実施形態のマルチキャストパケットは、そのマルチキャストパケットが後述のマルチキャスト制御スイッチに到達したか否かを示すための「制御部到達ビット」を含むものとする。
 相互結合網2は、複数のネットワークスイッチで構成されている。ネットワークスイッチ22-1~22-4(以下、「ネットワークスイッチ22」と総称する)は、計算ノード群1と直接接続されている。
 ネットワークスイッチ21-1は、各ネットワークスイッチ22-1~22-4を相互に接続する。例えば、計算ノード11-1から計算ノード11-2へデータ転送を行う場合、ネットワークスイッチ22-1を経由してデータが転送される。また、計算ノード11-1から計算ノード13-1へのデータ転送は、ネットワークスイッチ22-1、21-1、22-3を順次経由して実行される。なお、ネットワークスイッチ21-1の数は本実施形態では「1」であるが、複数であってもよい。このため、以下では、相互結合網2上でネットワークスイッチ21-1と同一の階層に設けられたネットワークスイッチを「ネットワークスイッチ21」と総称する。
 つぎに、本実施形態のネットワークスイッチ21-1および22-1~22-4の構成を説明する。図2に示すように、ネットワークスイッチ21-1および22-1~22-4は、入力ポートの数が「5」、出力ポートの数が「5」(以下、「5入力5出力」という)であるクロスバスイッチにより構成される。
 図1に示したように、ネットワークスイッチ21-1は、使用している入力ポートの数が「4」、使用している出力ポートの数が「4」となっており(以下、「4入力4出力」という)、5番目の入力ポートおよび5番目の出力ポートはともに未使用の状態にある。また、本実施形態の説明例では、ネットワークスイッチ21および22が有する入力ポートおよび出力ポートは、互いに1対1で対応付けられているものである。例えば、1番目の入力ポートは1番目の出力ポートに対応付けられている。入力ポートと出力ポートとの対応付方法は、一般的な対応付方法でもよい。なお、各ネットワークスイッチ21および22の入力ポート数および出力ポート数は「5」に限らず、それぞれ任意の自然数であればよい。
 図2の例では、各ネットワークスイッチ21-1および22-1~22-4が有する5つのポートのうち、ポート1~4は、図1における下り方向(ネットワークスイッチ21-1から各ネットワークスイッチ22-1~22-4に向かう方向)に対して接続されており、ポート5は図1の上り方向(各ネットワークスイッチ22-1~22-4からネットワークスイッチ21-1に向かう方向)に対して接続されている。
 つぎに、ネットワークスイッチ21および22がそれぞれ有する各構成要素を説明する。なお、ネットワークスイッチ21および22は、それぞれ同一の構成を有するとともに同一の機能を果たすため、以下ではネットワークスイッチ22-1の例で説明する。
 図2に示すように、ネットワークスイッチ22-1は、入力バッファ部201-1~201-5(以下、「入力バッファ部201」と総称する)と、出力バッファ部202-1~202-5(以下、「出力バッファ部202」と総称する)と、クロスバスイッチ203と、クロスバ制御部204と、マルチキャスト制御部205とを有する。
 入力バッファ部201-1~201-5は、ネットワークスイッチ22-1の各入力ポートに入力されたパケットを保持し、デコードし、出力する。なお、本実施形態では、各入力バッファ部201-1~201-5は、各入力ポート1~5に対応するものとする。
 出力バッファ部202-1~202-5は、クロスバスイッチ203から出力されたパケットを保持し、各出力ポートを介して、保持しているパケットをネットワークスイッチ21-1、22-2~22-4や計算ノード群1に出力する。なお、本実施形態では、各出力バッファ部202-1~202-5は、各出力ポート1~5にそれぞれ対応するものとする。
 クロスバスイッチ203は、クロスバ制御部204の制御下で、入力バッファ部201-1~201-5から出力されたパケットを、クロスバ制御部204によって指定された出力バッファ部202-1~202-5に送信する動作(ルーティング)を行う。
 クロスバ制御部204は、入力バッファ部201-1~201-5でデコードされた行先情報の入力を受け、入力された行先情報に従って、クロスバスイッチ203のルーティングを制御する。
 マルチキャスト制御部205は、入力バッファ部201-1~201-5からマルチキャストパケットが入力された場合、マルチキャストパケットのコピーを生成し、適切な出力バッファ部202-1~202-5にマルチキャストパケットのコピーを出力する。
 なお、入力バッファ部201からマルチキャスト制御部205に入力されたパケットが、後述する経路設定コマンドであるとする。この場合、マルチキャスト制御部205は、転送経路の設定時に、マルチキャストパケットの転送元として経路設定コマンドの転送先(ネットワークスイッチ21または22)を設定する。また、マルチキャスト制御部205は、マルチキャストパケットの転送先として経路設定コマンドの転送元(計算ノード10)を設定する。このマルチキャストパケットは、設定された転送経路を用いたマルチキャスト通信により送信されるパケットである。
 また、マルチキャスト制御部205は、図3に示すように、パケット入力部301と、パケット出力部302と、プロセス数保持部303と、プロセス数カウンタ部304と、マルチキャスト制御情報保持部305と、加算部306と、比較部307と、完了通知生成部308と、宛先一致判別部309とを有する。
 パケット入力部301は、入力バッファ部201-1~201-5からのパケット入力を受け、入力されたパケットをパケット出力部302に出力する。パケット入力部301が入力するパケットとは、マルチキャスト通信により送信されるマルチキャストパケット、計算ノード10により発行された経路設定コマンドなどである。経路設定コマンドが計算ノード10から送信されてきた場合、パケット入力部301は、後述する「経路設定コマンド受信処理」を実行し、経路設定コマンドを受信する。また、パケット入力部301は、受け取った経路設定コマンド内に格納されている所定の制御情報(例えば、後述するマルチキャストID)を、プロセス数保持部303、プロセス数カウンタ部304、マルチキャスト制御情報保持部305に通知する機能を有する。
 パケット出力部302は、パケット入力部301もしくは完了通知生成部308からパケット(経路設定コマンド、マルチキャストパケットなど)を受け取り、受け取ったパケットを図2に示した各出力バッファ部202-1~202-5に出力する。また、パケット出力部302は、マルチキャストパケットの出力先(転送先)を指定するための転送経路情報である「マルチキャスト制御情報3051」を、マルチキャスト制御情報保持部305から受け取る。
 プロセス数保持部303は、「プロセス数保持処理」を実行し、「グループ所属プロセス数」を保持するレジスタ群である。ここに、「グループ所属プロセス数」とは、マルチキャスト通信を実行する計算ノード10上の各プロセスグループに所属するプロセス数である。また、ここでいうプロセスグループは、例えば、MPIにて、通信を行うプロセスの集合として扱われるコミュニケータに相当する。また、プロセス数保持部303は、パケット入力部301からマルチキャストIDの入力を受け、そのマルチキャストIDで指定されるレジスタ値(グループ所属プロセス数)を比較部307に出力する。
 プロセス数カウンタ部304は、「プロセス数カウント処理」を実行し、マルチキャスト通信におけるマルチキャストパケットの転送経路の設定処理である「転送経路設定」に関するレジスタ値を保持するレジスタ群である。より具体的には、プロセス数カウンタ部304は、マルチキャスト通信を行う計算ノード10上のプロセスに対して転送経路設定が完了した数(以下、「経路設定完了プロセス数」という)を保持する。プロセス数カウンタ部304は、パケット入力部301からマルチキャストIDの入力を受け、マルチキャストIDで指定されるレジスタ値(経路設定完了プロセス数)を加算部306に出力する。
 マルチキャスト制御情報保持部305は、「マルチキャスト制御情報保持処理」を実行し、マルチキャストパケットのコピーを出力させる出力ポート番号を指定するための情報である「マルチキャスト制御情報3051」を保持する。なお、マルチキャスト制御情報保持部305は、パケット入力部301が計算ノード10上の1つのプロセスから1つの経路設定コマンドを受信したときに、そのプロセスに対する経路設定処理を実行する。そのため、プロセス数カウンタ部304がカウントする経路設定完了プロセス数は、ネットワークスイッチ22-1が受信した経路設定コマンドの数と同一である。
 また、マルチキャスト制御情報保持部305は、パケット入力部301-1~301-5からの入力を受け、パケット出力部302-1~302-5に制御信号(転送経路情報)を出力する。なお、マルチキャスト制御情報保持部305は、パケット入力部301-1~301-5のうちから、入力バッファ部201(入力ポート)からパケットが入力されたパケット入力部を識別する機能を有する。
 加算部306は、加算器で構成され、「加算処理」を実行し、プロセス数カウンタ部304が保持するレジスタ値の更新により、マルチキャスト制御部205がパケットの転送経路設定を完了した経路設定完了プロセス数をカウントする。なお、加算部306は、プロセス数カウンタ部304が保持する「経路設定完了プロセス数」に加算処理を施した後に、加算処理後の結果をプロセス数カウンタ部304が保持するレジスタ値に書き戻す。また、加算部306は、加算結果を比較部307に出力する。
 比較部307は、比較器で構成され、「比較処理」を実行することにより、加算部306とプロセス数保持部303とからそれぞれ値の入力を受け、加算部306からの入力値とプロセス数保持部303からの入力値とを比較し、比較結果を完了通知生成部308に出力する。また、比較部307は、比較結果が一致したときに、マルチキャスト通信の経路設定が完了したと識別する。経路設定が完了としたと識別した場合、比較部307は、「完了通知指示処理」を実行し、完了通知生成部308に、経路設定完了の旨を通知するためのパケットである「経路設定完了通知」を生成するよう指示する。
 完了通知生成部308は、「完了通知生成処理」を実行し、比較部307の「完了通知指示処理」による指示に従って、「経路設定完了通知」を生成する。また、完了通知生成部308は、「完了通知送信処理」を実行し、生成した経路設定完了通知をパケット出力部302に出力する。これにより、経路設定完了通知が計算ノード10に送信される。
 宛先一致判別部309は、「宛先一致判別処理」を実行し、経路設定コマンドの転送先情報が示す経路設定コマンドの最終的な宛先が自己のネットワークスイッチに一致するか否かを判別し、一致すると判別した場合、自己のネットワークスイッチがパケットの最終的な転送先であることを識別する。そして、宛先一致判別部309は、経路設定コマンド中に格納されている「経路設定コマンドの最終的な宛先」の識別結果を、プロセス数カウンタ部304に通知する。
 また、宛先一致判別部309は、マルチキャスト通信の際に、計算ノード10から送信されてきたマルチキャストパケットの宛先が自己に一致するか否かを判別する機能を有する。自己に一致すると判別した場合、宛先一致判別部309は、マルチキャストパケット中の「制御部到達ビット」を「1」に書き換える。
 なお、プロセス数保持部303、プロセス数カウンタ部304およびマルチキャスト制御情報保持部305は、複数セットの情報(図3中の1つのグループ所属プロセス数と、図3中の1つの経路設定完了プロセス数と、後述する図4の1つのビット列とを1セットとする情報)をそれぞれ保持できるよう構成することが望ましい。この場合に、マルチキャスト通信を実行する計算ノード10上のプロセスグループに、各プロセスグループをそれぞれ識別するための番号(以下、「マルチキャストID」という)を付与したものする。これにより、各プロセスグループが、マルチキャストIDに基づいて、複数セットの情報のうちから自己のプロセスグループに対応する情報を選択することが可能になる。これにより、複数のプロセスグループによるマルチキャスト通信を同時に実行することが可能になるからである。
 つぎに、マルチキャスト制御情報保持部305の構成を詳細に説明する。図4に示すように、マルチキャスト制御情報保持部305が保持する「マルチキャスト制御情報3051」には、長さが「5」であるm個のビット列B1~Bmが登録されている。ここに、ビット列B1~Bmをm個設けているのは、複数(m個)のマルチキャスト通信用の転送経路を設定可能にするためである。
 マルチキャスト制御情報保持部305は、計算ノード10から送信されてきた経路設定コマンドに含まれるマルチキャストIDにより、ビット列B1~Bmのうちから特定のビット列を指定する。各ビット列B1~Bm中にそれぞれ含まれる5つのビットは、5つの各出力ポート(各出力ポートに対応する出力バッファ部202-1~202-5)にそれぞれ対応付けられている。なお、上述したようにネットワークスイッチが有する入力ポートおよび出力ポートは互いに1対1で対応付けられている。そのため、マルチキャスト制御情報保持部305は、外部から経路設定コマンドが入力された入力ポート番号に対して、その入力ポート番号に対応する出力ポート番号に応じたビット列B1~Bm内のビットを識別することが可能である。
 なお、マルチキャスト制御情報保持部305は、各ビット列B1~Bmにおいて、マルチキャストパケットを出力させる出力ポート番号に対応するビットに対しては「1」を設定する。また、マルチキャスト制御情報保持部305は、マルチキャストパケットを出力させない出力ポート番号に対応するビットに対しては「0」を設定する。図4に示したビット列B1の例では、1番目のビットに対応する出力ポート(出力ポート番号「1」)が、マルチキャストパケット送信用に設定されている。
 なお、図4に示した例では、マルチキャストパケットの出力先を、ネットワークスイッチ21および22が具備する出力ポートの数と同じ数のビットを有するビット列で示しているが、マルチキャスト制御情報3051の形態は特に限定しない。マルチキャスト制御情報3051は、例えば、マルチキャストパケットの出力先となる出力ポート番号が登録されたリストであってもよい。
 次に、上記構成を有する並列計算機システムにて、マルチキャスト通信用の転送経路を設定する「転送経路設定処理」の動作シーケンスを説明する。図5に示すように、この一連の動作シーケンスは、計算ノード10と、ネットワークスイッチ21と、ネットワークスイッチ22との3者の間で実行されるものである。
 なお、この一連の「転送経路設定処理」において、計算ノード10では、ステップ11の「事前準備処理」と、ステップ12の「経路設定コマンド発行処理」と、ステップ13の「経路設定完了通知受取処理」と、ステップ14の「マルチキャスト通信処理」とを実行する。
 また、この一連の「転送経路設定処理」において、ネットワークスイッチ21または22は、ステップ21または31の「経路設定コマンド受信処理」と、ステップ22または32の「経路設定処理」とを実行する。なお、ステップ23の「経路設定コマンド転送処理」、ステップ33の「経路設定完了通知処理」およびステップ24の「経路設定完了通知転送処理」は、経路設定コマンドの最終的な宛先であるか否かに応じて実行される。
 以下、上述の各処理について、その概要を説明する。
 ステップ11の「事前準備処理」は、計算ノード10において、マルチキャスト通信を実行するプロセスグループに所属する各プロセスが、プロセスグループ識別用の「マルチキャストID」や各プロセスグループに属するプロセス数などの情報を事前に共有するために行われる。
 ステップ12の「経路設定コマンド発行処理」は、計算ノード10において、マルチキャスト通信を実行するプロセスグループの各プロセスが、ネットワークスイッチ21、22に転送経路の設定を指示するための「経路設定コマンド」を発行するために行われる。この「経路設定コマンド」のデータ構造については、詳細な説明を後述する。
 ステップ21または31の「経路設定コマンド受信処理」は、ネットワークスイッチ21、22において、計算ノード10のプロセスグループの各プロセスから「経路設定コマンド発行処理」により送信されてきた「経路設定コマンド」を受信するために行われる。
 なお、図6に示すように、ステップ21の「経路設定コマンド受信処理」では、ステップ211の「経路設定コマンド受信処理」と、ステップ212の「宛先一致判別処理」とが実行される。ステップ211の「経路設定コマンド受信処理」は、パケット入力部301により実行され、経路設定コマンドを受信するために行われる。また、ステップ212の「宛先一致判別処理」は、宛先一致判別部309により実行され、後述する「マルチキャスト制御スイッチ番号」が示す経路設定コマンドの最終的な宛先と自己のネットワークスイッチとが一致するか否かを判別するために行われる。
 図6のステップ212にてNoであり、宛先一致判別部309が、自己のネットワークスイッチは最終的な宛先でないと判別した場合、図5に示したようにステップ22の「経路設定処理」の実行後に、ステップ23の「経路設定コマンド転送処理」が実行される。また、図6のステップ212にてYesであり、宛先一致判別部309が、自己のネットワークスイッチは最終的な宛先であると判別した場合、図5に示したようにステップ32の「経路設定処理」の実行後に、ステップ33の「経路設定完了通知処理」が実行される。
 図5に示すステップ22または32の「経路設定処理」は、「経路設定コマンド受信処理」により「経路設定コマンド」を受信したネットワークスイッチ21、22において、受信した「経路設定コマンド」に基づいて行われる。各ネットワークスイッチ21および22では、計算ノード10から受信した経路設定コマンドの指示に従って、各ネットワークスイッチ21および22のマルチキャスト制御部205が、マルチキャスト制御情報3051を設定する。
 ステップ23の「経路設定コマンド転送処理」は、計算ノード10のプロセスグループの各プロセスから送信されてきた「経路設定コマンド」を、その最終的な宛先(後述の「マルチキャスト制御スイッチ」)のネットワークスイッチに送信するために行われる。
 ステップ33の「経路設定完了通知処理」は、経路設定コマンドの最終的な宛先であるネットワークスイッチ21または22において、「経路設定処理」の完了によりマルチキャスト通信に用いられる経路の設定が完了したことを、経路設定コマンドの発行元である計算ノード10に通知するために行われる。
 また、マルチキャスト制御スイッチから計算ノード10に至る転送経路上のネットワークスイッチは、ステップ24の「経路設定完了通知転送処理」を実行する。これにより、ネットワークスイッチ21または22は、マルチキャスト制御スイッチが送信した経路設定完了通知を中継し、経路設定コマンドの発行元の計算ノードに転送する。
 ステップ13の「経路設定完了通知受取処理」は、計算ノード10のプロセスグループ内の各プロセスにて実行される。この「経路設定完了通知受取処理」では、ステップ23の「経路設定完了通知処理」によってマルチキャスト制御スイッチであるネットワークスイッチから送信された「経路設定完了通知」を、プロセスグループが受信する。これにより、受信したプロセスグループ内の各プロセスは、自己が「経路設定コマンド」の送信により要求したマルチキャスト通信の経路設定が、経路設定コマンドの最終的な宛先であるネットワークスイッチ上で完了したことを認識する。そのため、「経路設定完了通知」を受信したプロセスグループに対して、マルチキャスト通信を行うためのマルチキャスト通信コマンドを発行可能となる。
 ステップ13の「経路設定完了通知受取処理」の完了後、「経路設定完了通知」を受信したプロセスグループ内のプロセスは、プログラムによってマルチキャスト通信の実行を指示された際に、ステップ14の「マルチキャスト通信処理」を実行し、マルチキャスト通信を実行する。なお、一旦経路を設定してしまえば、そのプロセスグループに対するマルチキャスト通信は、「マルチキャスト通信処理」を繰り返し実行することにより、複数回実行可能である。
 つぎに、計算ノード10によるステップ11~14の各処理、ネットワークスイッチ22-1によるステップ21~24の各処理、ネットワークスイッチ21-1によるステップ31~33の各処理について詳細に説明する。なお、以下では、図1に示す並列計算機システム上で、5つのプロセスからなるプロセスグループがマルチキャスト通信を実行する場合を例に挙げて説明する。5つのプロセスは、計算ノード11-1~11-4、12-1~12-4、13-1~13-4、14-1~14-4上でそれぞれ動作しているものである。
 まず、計算ノード10上にて実行されるステップ11の「事前準備処理」について説明する。図5に示した「事前準備処理」において、マルチキャスト通信を実行するプロセスグループの各プロセスは、マルチキャスト通信の経路設定前に、(a)マルチキャストIDと、(b)マルチキャスト通信を制御するネットワークスイッチを指定するための番号(以下、「マルチキャスト制御スイッチ番号」という)と、(c)プロセスグループに含まれるプロセス数(以下、「グループ所属プロセス数」という)とを示す情報を共有しておく。
 「マルチキャストID」は、計算ノード10上で動作する各プロセスグループをそれぞれ識別するための番号を示す「識別情報」である。以下の例では、マルチキャストIDは「1」であるものとする。
 「マルチキャスト制御スイッチ番号」は、マルチキャスト通信を制御するネットワークスイッチを指定するための情報である。また、「マルチキャスト制御スイッチ番号」で指定されるネットワークスイッチを、以下では「マルチキャスト制御スイッチ」という。ツリー構造を有するネットワークでは、図9に示す最上段のネットワークスイッチ(ネットワークスイッチ21-1)を指定するのが最も効率的である。そのため、この例では、「ネットワークスイッチ21-1」をマルチキャスト制御スイッチ番号で指定するものとする。なお、マルチキャスト制御スイッチ番号は、マルチキャスト制御スイッチに経路設定コマンドを転送するための転送経路情報であってもよい。
 「グループ所属プロセス数」は、計算ノード10にて、「マルチキャストID」が付与されたプロセスグループに所属しているプロセスの数である。「マルチキャストID」はマルチキャスト通信を実行するプロセスグループに対して付与されるため、「グループ所属プロセス数」は、マルチキャスト通信に参加させ、マルチキャスト通信を実行させるプロセス数を示す「マルチキャスト実行プロセス数」である。以下の例では、「グループ所属プロセス数」は「5」であるものとする。
 以上で、ステップ11の「事前準備処理」が終了する。
 つぎに、計算ノード10上にて実行されるステップ12の「経路設定コマンド発行処理」について説明する。ステップ12の「経路設定コマンド発行処理」において、計算ノード10のうちでマルチキャスト通信を実行するプロセスグループの各プロセスが、「経路設定コマンド」をそれぞれ発行する。そして、発行された経路設定コマンドは、図9に示す相互結合網2上に設けられた特定のネットワークスイッチ21、22が有するマルチキャスト制御部205に転送される。
 この「経路設定コマンド」は、ネットワーク21または22が有するマルチキャスト制御部205に対して、マルチキャスト通信用の転送経路設定を指示するためのコマンドを含んだパケットである。
 また、経路設定コマンドは、「事前準備処理」においてマルチキャスト通信を行うプロセス間にて共有された情報を含むものである。すなわち、図7に示すように、経路設定コマンドは、マルチキャストID(=「1」)と、マルチキャスト制御スイッチ番号(=「ネットワークスイッチ21-1」)と、グループ所属プロセス数(=「5」)とを含んでいる。なお、マルチキャスト制御スイッチ番号は、マルチキャスト通信を制御するマルチキャスト制御スイッチに経路設定コマンドを転送するための経路情報である「経路設定コマンドの転送先情報」である。
 次に、ネットワークスイッチ21、22によるステップ21の「経路設定コマンド受信処理」について説明する。図5に示したステップ21の「経路設定コマンド受信処理」では、ネットワークスイッチ21、22は、「経路設定コマンド発行処理」により計算ノードが発行した経路設定コマンドを受信する。このとき、ネットワークスイッチ21、22のパケット入力部301は、経路設定コマンドを、計算ノード10から、または、計算ノード10から受信した経路設定コマンドを転送してきた他のネットワークスイッチから受信する。
 つぎに、計算ノード10により発行された経路設定コマンドを受信したときの、ネットワークスイッチの動作について説明する。以下では、図5に示したように、計算ノード11-1が発行した経路設定コマンドをネットワークスイッチ22-1または21-1が受信した場合を例に挙げて説明する。そして、この例では、計算ノード11-1が発行した経路設定コマンドが、図7に示した経路設定コマンドであるものとし、「ネットワークスイッチ21-1」がマルチキャスト制御スイッチとして指定されている。
 なお、ネットワークスイッチの動作は、ネットワークスイッチが経路設定コマンドの最終的な宛先であるか否か(マルチチャネル制御スイッチであるか否か)に応じて異なる。そのため、まず、「マルチチャネル制御スイッチ」でないネットワークスイッチ22-1から説明する。
 ネットワークスイッチ22-1は、図5に示したステップ21の「経路設定コマンド受信処理」にて、図6に示したステップ211の「経路設定コマンド受信処理」を実行し、計算ノード11-1が発行した経路設定コマンドを受信する。その後、ネットワークスイッチ22-1の入力バッファ部201-1は、経路設定コマンドをデコードし、マルチキャスト制御部205に供給する。マルチキャスト制御部205が有するパケット入力部301は、入力バッファ部201-1から供給された経路設定コマンドから、マルチキャスト制御スイッチ番号およびマルチキャストIDを抽出する。
 続いて、宛先一致判別部309は、図6に示したステップ212の「宛先一致判別処理」を実行し、経路設定コマンド内の転送先情報(マルチキャスト制御スイッチ番号)が示す経路設定コマンドの最終的な宛先と自己のネットワークスイッチ22-1とが一致するか否かを判別する。この例では、マルチキャスト制御スイッチ番号はネットワークスイッチ21-1を示しており、ネットワークスイッチ22-1は最終的な転送先でない。そのため、宛先一致判別部309は、自己のネットワークスイッチが最終的な転送先でないと判別する。この場合、スイッチ22-1では、マルチキャスト制御部205は、ステップ22の「経路設定処理」の実行後、ステップ23の「経路設定コマンド転送処理」を実行する。
 つぎに、図6に示したステップ22の「経路設定処理」について説明する。ステップ22の「経路設定処理」は、マルチキャスト制御情報保持部305が、自ら保持するマルチキャスト制御情報3051を更新することにより実行される。マルチキャスト制御情報保持部305は、経路設定コマンド中のマルチキャストIDによって指定されたビット列において、経路設定コマンドを受信した入力ポート番号に対応するビットの値を「1」に設定する。この例では、マルチキャストIDは「1」を示しているため、図4に示した「1番目のビット列B1」が指定される。さらに、経路設定コマンドを受信した入力ポート番号が「1」であったものとする。この場合、マルチキャスト制御情報保持部305は、マルチキャストIDで指定されたビット列B1において、入力ポート番号「1」に対応する「1番目の出力ポートに対応するビット」の値を、「1」に設定する。以下、このような動作を「ビット設定動作」という。
 「経路設定処理」(ビット設定動作)の終了後、ネットワークスイッチ22-1は、ステップ23の「経路設定コマンド転送処理」を実行する。パケット入力部301は、ネットワークスイッチ22-1が受信した経路設定コマンドを、パケット出力部302を経由して出力バッファ部202-5に入力する。ネットワークスイッチ22-1の出力バッファ部202-5は、「経路設定コマンド転送処理」を実行し、経路設定コマンドを、その最終的な宛先であるネットワークスイッチ21-1に転送する。
 つぎに、「経路設定コマンドの最終的な宛先(マルチキャスト制御スイッチ)である」スイッチ21-1の動作を説明する。スイッチ21-1は、ステップ31の「経路設定コマンド受信処理」により、ネットワークスイッチ22-1から転送されてきた経路設定コマンドを受信すると、入力バッファ部201-1によりデコードされた経路設定コマンドをマルチキャスト制御部205に供給する。マルチキャスト制御部205のパケット入力部301は、経路設定コマンドから、マルチキャスト制御スイッチ番号およびマルチキャストIDを抽出する。抽出されたマルチキャスト制御スイッチ番号(転送先情報)が示す宛先はスイッチ21-1であるため、この転送先情報を現在参照しているネットワークスイッチ21-1は、計算ノード11-1から発行された経路設定コマンドの最終的な宛先そのものである。
 この場合、ネットワークスイッチ21-1が有する宛先一致判別部309は、図6に示したステップ212の宛先一致判別処理にてYesであり、転送先情報が示す宛先のネットワークスイッチが自己のネットワークスイッチ21-1に一致すると判別し、自己が最終的な転送先であることを識別する。そのため、ネットワークスイッチ21-1では、マルチキャスト制御情報保持部305によるステップ32の「経路設定処理」と、マルチキャスト制御情報保持部305および完了通知生成部308によるステップ33の「経路設定完了通知処理」とが実行される。
 ネットワークスイッチ21-1の「経路設定処理」の動作は、上述のネットワークスイッチ22-1が「経路設定処理」にて実行したビット設定動作と同一である。すなわち、ネットワークスイッチ21-1にて、マルチキャスト制御情報保持部305は、マルチキャスト制御情報3051のうちから、マルチキャストID(この例では「1」)で指定される「1番目のビット列B1」を特定する。さらに、マルチキャスト制御情報保持部305は、特定したビット列B1において、経路設定コマンドを受信した入力ポートの番号(例えば、「1」)に対応する出力ポートの番号のビット(1番目のビット)の値を「1」に設定する。この設定動作により、経路設定コマンドの発行元である計算ノード11-1に対して、ネットワークスイッチ21-1がマルチキャストパケットを転送する際に、ネットワークスイッチ21-1が有する出力ポート番号1の出力ポートが用いられる。
 また、ネットワークスイッチ21-1のステップ33の「経路設定完了通知処理」は以下のように行われる。まず、パケット入力部301は、経路設定コマンドから抽出したマルチキャストIDをプロセス数保持部303に通知する。プロセス数保持部303は、通知されたマルチキャストIDにより指定されたレジスタの値(グループ所属プロセス数)を、比較部307に出力する。
 また、パケット入力部301は、マルチキャストIDをプロセス数カウンタ部304に通知する。プロセス数カウンタ部304は、「プロセス数カウント処理」を実行し、通知されたマルチキャストIDによって指定されたレジスタに格納されている値(経路設定完了プロセス数)を、加算部306に出力する。
 図8に示すように、加算部306は、マルチキャスト制御情報保持部305がマルチキャスト制御情報3051中のビット列B1~Bnに含まれるビットを1つ設定するごとに、ステップ331の「加算処理」を実行する。この「加算処理」にて、加算部306は、プロセス数カウンタ部304から出力されたレジスタの値である経路設定完了プロセス数に1を加算する。続いて、加算部306は、加算後の結果をプロセス数カウンタ部304に書き戻すとともに、加算後の結果を比較部307にも出力する。
 比較部307は、ステップ332の「比較処理」を実行し、プロセス数保持部303から入力された値(計算ノード10上でマルチキャスト通信を行うプロセスグループのグループ所属プロセス数)と、加算部306から入力された値(加算部306が加算処理を施した後の経路設定完了プロセス数)とを比較する。ステップ332の「比較処理」にてYesであり、各入力値が互いに一致すると判別した場合、マルチキャスト通信を実行するプロセスグループに含まれるすべてのプロセスから経路設定コマンドが到達した場合に相当する。このとき、比較部307は、マルチキャスト通信のための経路設定が完了したと識別するとともに、完了通知生成部308に「経路設定完了通知」を発行するよう指示する。一方、ステップ332にてNoであり、グループ所属プロセス数と経路設定完了プロセス数とが一致しないと判別した場合、比較部307は、経路設定が完了していないと識別し、加算部306が、ステップ331の処理を実行する。
 ネットワークスイッチ21-1がステップ32の「経路設定処理」を実行し、経路設定コマンドがすべてのプロセスからスイッチ21-1に到達すると、各ネットワークスイッチ21-1、22-1~2-4のマルチキャスト制御情報保持部305における1番目のビット列は、図9に示すB1-1、B2-1~B2-4のようにそれぞれ設定される。また、スイッチ21-1では、加算部306が出力した値とプロセス数保持部303が出力した値とが一致するため、比較部307が、経路設定が完了したことを識別する。この場合、比較部307は、「完了通知指示処理」を実行し、完了通知生成部308に「経路設定完了通知」の発行を指示する。
 完了通知生成部308は、ステップ333の「完了通知生成処理」により、経路設定完了通知を生成し、生成した経路設定完了通知をパケット出力部302に出力する。なお、この経路設定完了通知には、マルチキャスト通信を実行するプロセスグループを特定するためのマルチキャストID(この例では「1」)が記述されている。
 ネットワークスイッチ21-1のパケット出力部302は、「完了通知生成処理」により生成された経路設定完了通知を、完了通知生成部308から受信する。また、パケット出力部302は、「経路設定処理」により設定された経路情報を、マルチキャスト制御情報保持部305から受信する。そして、パケット出力部302は、「完了通知送信処理」により、経路情報で指定された出力バッファ部202(出力ポート)を用いて、経路設定完了通知のコピーを出力する。これにより、転送経路に従って、経路設定完了通知が、計算ノード11-1宛に送信される。例えば、図10の例では、スイッチ21-1のパケット出力部302は、マルチキャストIDで指定されたマルチキャスト制御情報3051内の「1番目のビット列B1-1」の設定に対応する各出力ポート(出力ポート番号1~3)に、経路設定完了通知を出力する。以上で、ステップ33の「経路設定完了通知処理」が終了する。
 なお、図5においては、マルチキャスト通信用の転送経路が、ネットワークスイッチ21-1、ネットワークスイッチ22-1、計算ノード11-1の順に設定されている。そのため、ネットワークスイッチ22-1による中継処理であるステップ24の「経路設定完了通知転送処理」が行われる。
 つぎに、ステップ24の「経路設定完了通知転送処理」について説明する。ネットワークスイッチ22-1は、ネットワークスイッチ21-1から送信されてきた「経路設定完了通知」を受信すると、マルチキャスト制御部205のパケット入力部301に経路設定完了通知を入力する。パケット入力部301は、マルチキャスト制御情報保持部305に対して、経路設定完了通知に含まれるマルチキャストID(この例では「1」)を通知する。また、パケット入力部301は、入力された経路設定完了通知をパケット出力部302に転送する。ネットワークスイッチ22-1のパケット出力部302は、マルチキャスト制御情報3051内の図10のビット列B2-1に含まれるビットによって指定されるポートに、パケットを出力する。これにより、ネットワークスイッチ21-1が発行した「経路設定完了通知」が、ネットワークスイッチ22-1から、計算ノード11-1で動作するプロセスグループの各プロセスに送信される。なお、経路設定完了コマンドにより経路設定の完了を各プロセスに通知する方法は任意である。例えば、計算ノード10の指定された番地に対応するメモリまたは計算ノード10の指定されたレジスタへの所定値の設定、計算ノード10への割込の報告、などの一般的な方法でもよい。
 経路設定完了通知の宛先である計算ノード11-1は、ステップ13の「経路設定完了通知受取処理」を実行し、経路設定完了通知を、プロセスグループの各プロセスにより受信する。以上で、「転送経路設定処理」が終了する。
 つぎに、一連の「転送経路設定処理」によって設定された転送経路を用いて、計算ノード11-1がマルチキャスト通信するときのステップ14の「マルチキャスト通信処理」について説明する。なお、「マルチキャスト通信処理」を実行するプロセスグループの5つのプロセスは、マルチキャスト通信する機能をそれぞれ有する。ここでは、計算ノード11-1が、プロセスグループ内の5つのすべてのプロセスを用いてマルチキャスト通信を行う場合を例に挙げて説明する。
 計算ノード11-1上で動作するプロセスグループのプロセスが、マルチキャストパケットを発行したものとする。このとき、図11に示すように、計算ノード11-1から送信されたマルチキャストパケットは、そのプロセスグループのマルチキャスト通信を制御するマルチキャスト制御スイッチまで転送される。なお、マルチキャスト制御スイッチは、ステップ11の「事前準備処理」で設定された「マルチキャスト制御スイッチ番号」によって指定される。そのため、計算ノード11-1がマルチキャストパケットを発行するときの宛先情報には、「ネットワークスイッチ21-1」が設定されている。また、初期状態において、計算ノード11-1が発行するマルチキャストパケット中の「制御部到達ビット」は、そのマルチキャストパケットがマルチキャスト制御スイッチ21-1に到達していないことを示すために、「0」に設定されている。
 「マルチキャスト制御スイッチでない」ネットワークスイッチ22-1では、宛先一致判別部309が、計算ノード11-1から受信したマルチキャストパケット中の制御部到達ビットが「0」に設定されていることを識別する。その後、ネットワークスイッチ22-1のパケット出力部302が、マルチキャストパケットをマルチキャスト制御スイッチ(ネットワークスイッチ21-1)宛に転送する。
 「マルチキャスト制御スイッチである」ネットワークスイッチ21-1では、ネットワークスイッチ22-1から転送されてきたマルチキャストパケットを受信すると、宛先一致判別部309が、マルチキャストパケットがその最終的な宛先(ネットワークスイッチ21-1)に到達したことを識別する。そのため、宛先一致判別部309は、マルチキャストパケット中の制御部到達ビットを「1」に書き換え、マルチキャスト制御部205のパケット入力部301に転送する。パケット入力部301は、マルチキャストIDをマルチキャスト制御情報保持部305に通知するとともに、マルチキャストパケット本体をパケット出力部302に転送する。
 さらに、ネットワークスイッチ21-1では、マルチキャスト制御情報保持部305が、マルチキャストIDで指定されるマルチキャストパケットの発行元(計算ノード11-1)のプロセスグループに対して設定した出力ポートを示すビット列(経路情報)を読み出し、読み出した経路情報をパケット出力部302に送信する。パケット出力部302は、設定済の転送経路を用いてマルチキャストパケットを送信するために、経路情報に従って指定された出力バッファ部202にマルチキャストパケットを出力する。図11の例では、マルチキャスト制御スイッチであるネットワークスイッチ21-1を介して、計算ノード11から送信されたマルチキャストパケットが、ネットワークスイッチ22-1、22-2、22-3宛に転送される。
 各ネットワークスイッチ22-1~22-3では、ネットワークスイッチ21-1から転送されてきたマルチキャストパケット中の制御部到達ビットが「1」に設定されていることを識別し、そのマルチキャストパケットがマルチキャスト制御スイッチに到達済であることを判別する。その後、判別したマルチキャストパケットを、マルチキャスト制御部205のパケット入力部301に転送する。パケット入力部301は、マルチキャストIDをマルチキャスト制御情報保持部305に通知するとともに、マルチキャストパケットをパケット出力部302に転送する。
 マルチキャスト制御情報保持部305は、パケット入力部301から通知されたマルチキャストIDが指定するビット列(出力ポートの経路情報)を読み出し、この経路情報をパケット出力部302に供給する。パケット出力部302は、供給された経路情報が指定する出力バッファ部202-1~202-5のいずれかにマルチキャストパケットを出力する。これにより、ネットワークスイッチ22-1は、上述の転送経路設定処理により設定された転送経路に従って、マルチキャストパケットを転送する。なお、このマルチキャストパケットの転送動作は、ステップ24の「経路設定完了通知転送処理」にて転送経路設定処理により設定された転送経路を用いて設定完了コマンドを転送する動作と同一である。
 以上で、ステップ14の「マルチキャスト通信処理」が終了する。
 以上説明したように、本発明の並列計算機システムによれば、ネットワークスイッチ21および22が、少なくとも1つの出力ポートを指定し、指定した出力ポートに対して入力ポートから入力されたパケットのコピーの転送経路を設定し、転送経路の設定を完了したプロセス数と、予め保持するマルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の経路設定が完了したことを識別する。
 これにより、相互結合網2に接続された計算ノード10の物理的な位置を把握することなく、マルチキャスト通信における宛先および転送経路を高速に設定できる。
 また、本発明の並列計算機システムによれば、マルチキャスト通信における宛先と転送経路が高速に設定完了されるため、マルチキャスト通信機能を用いるプログラム全体の処理性能を向上させることができる。
 さらに、本発明の並列計算機システムによれば、ネットワークスイッチ21-1および22において、完了通知生成部308は、マルチキャスト制御部205によるマルチキャスト通信の経路設定が完了したことを、経路設定コマンドの発行元である計算ノード10に通知する。これにより、経路設定コマンドの発行元において、マルチキャスト通信の実行が可能になったことを認識することが可能になる。
 なお、本発明の要旨を逸脱しない範囲で各種の変形が可能である。
 図2に示した構成例では、マルチキャストパケットがマルチキャスト制御部205に入力された後に、マルチキャスト制御部205から出力バッファ部202に対して複数のコピーが出力される。しかし、ネットワークスイッチ内部でマルチキャスト通信を行う方法は、これに限らず、例えば、マルチキャスト制御部205にはパケット中の制御情報のみを入力し、パケット自体はクロスバスイッチ203を経由して出力バッファ部202に複数のパケットのコピーが出力されるようにしてもよい。
 また、上述の動作例では、事前にプロセスグループに属するプロセス数をプロセス数保持部303に設定しておいたが、各経路設定コマンドがプロセス数を保持し、加算部306の出力結果とコマンドが保持していたプロセス数とを逐次比較することにより、経路設定の完了を識別するようにしてもよい。
 なお、本発明においては、ネットワークスイッチ21-1内の処理は上述の専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを、ネットワークスイッチ21-1として動作させるコンピュータにて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムをそのコンピュータに読み込ませ、実行するものであってもよい。ネットワークスイッチ21-1として動作させるコンピュータにて読取可能な記録媒体とは、フロッピーディスク(登録商標)、光磁気ディスク、DVD、CDなどの移設可能な記録媒体の他、そのコンピュータに内蔵されたHDD等を指す。この記録媒体に記録されたプログラムは、例えば、ネットワークスイッチ21-1として動作させるコンピュータが有するマルチキャスト制御部205として動作するプロセッサにて読み込まれ、そのプロセッサの制御によって、上述したものと同様の処理が行われる。
 ここで、マルチキャスト制御部205として動作するプロセッサは、プログラムが記録された記録媒体から読み込まれたプログラムを実行するものである。なお、上述のプログラムは、各ネットワークスイッチ22-1~22-4についても同様に適用可能である。
 また、本発明のネットワークスイッチのマルチキャスト制御情報保持部は、マルチキャスト制御部に転送経路設定を指示するコマンドである経路設定コマンドが入力された入力ポートに基づいて、複数の出力ポートのうちからマルチキャストパケットを出力するための出力ポートを指定してもよい。
 また、本発明のネットワークスイッチのマルチキャスト制御情報保持部は、複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、ビットに設定されている値の更新により、更新したビットに対応する出力ポートを、マルチキャストパケットを出力する出力ポートとして指定してもよい。
 また、本発明のネットワークスイッチのマルチキャスト制御情報保持部は、更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャストIDによって指定してもよい。
 また、本発明のネットワークスイッチは、入力ポートに経路設定コマンドが入力されたときに、経路設定コマンドの転送先情報が示す宛先と、経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判別部、を有し、加算部は、宛先一致判別部が一致すると判別した場合、経路設定完了プロセス数をカウントしてもよい。
 また、本発明のネットワークスイッチは、経路設定コマンドに含まれるマルチキャスト通信を実行させるプロセス数を保持するプロセス数保持部、を有し、比較部は、加算部がカウントした経路設定完了プロセス数と、プロセス数保持部が保持しているマルチキャスト通信を実行させるプロセス数とが一致するか否かを判別してもよい。
 また、本発明のネットワークスイッチは、比較部がマルチキャスト通信の転送経路設定が完了したことを識別した場合、転送経路設定が完了したことを示す経路設定完了通知を生成し、生成した経路設定完了通知を、入力ポートに入力された経路設定コマンドの送信元に転送する完了通知生成部、を有してもよい。
 また、本発明のネットワークスイッチの完了通知生成部は、マルチキャスト制御部が設定した転送経路に従って行われるマルチキャスト通信により、経路設定完了通知を転送してもよい。
 また、本発明のネットワークスイッチでは、経路設定コマンドによってマルチキャスト制御部が転送経路を設定する際に、マルチキャストパケットは、相互結合網上を経路設定コマンドが転送された方向と逆向きに転送されるよう、転送経路を設定してもよい。
 また、本発明の経路設定方法のマルチキャスト制御情報保持処理では、マルチキャスト制御処理にて転送経路設定を指示するコマンドである経路設定コマンドが入力された入力ポートに基づいて、複数の出力ポートのうちからマルチキャストパケットを出力するための出力ポートを指定してもよい。
 また、本発明の経路設定方法のマルチキャスト制御情報保持処理では、複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、ビットに設定されている値の更新により、更新したビットに対応する出力ポートを、マルチキャストパケットを出力する出力ポートとして指定してもよい。
 また、本発明の経路設定方法のマルチキャスト制御情報保持処理では、更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャストIDによって指定してもよい。
 また、本発明の経路設定方法は、入力ポートに経路設定コマンドが入力されたときに、経路設定コマンドの転送先情報が示す宛先と、経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判別処理、を有し、加算処理では、宛先一致判別処理にて一致すると判別した場合、経路設定完了プロセス数をカウントしてもよい。
 また、本発明の経路設定方法は、経路設定コマンドに含まれるマルチキャスト通信を実行させるプロセス数を保持するプロセス数保持処理、を有し、比較処理では、加算処理にてカウントした経路設定完了プロセス数と、プロセス数保持処理にて保持しているマルチキャスト通信を実行させるプロセス数とが一致するか否かを判別してもよい。
 また、本発明の経路設定方法は、比較処理にてマルチキャスト通信の転送経路設定が完了したことを識別した場合、転送経路設定が完了したことを示す経路設定完了通知を生成し、生成した経路設定完了通知を、入力ポートに入力された経路設定コマンドの送信元に転送する完了通知生成処理、を有してもよい。
 また、本発明の経路設定方法の完了通知生成処理では、マルチキャスト制御処理にて設定した転送経路に従って行われるマルチキャスト通信により、経路設定完了通知を転送してもよい。
 また、本発明の経路設定方法では、経路設定コマンドによってマルチキャスト制御処理にて転送経路を設定する際に、マルチキャストパケットは、相互結合網上を経路設定コマンドが転送された方向と逆向きに転送されるよう、転送経路を設定してもよい。
 また、本発明のプログラムのマルチキャスト制御情報保持手順では、マルチキャスト制御手順にて転送経路設定を指示するコマンドである経路設定コマンドが入力された入力ポートに基づいて、複数の出力ポートのうちからマルチキャストパケットを出力するための出力ポートを指定してもよい。
 また、本発明のプログラムのマルチキャスト制御情報保持手順では、複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、ビットに設定されている値の更新により、更新したビットに対応する出力ポートを、マルチキャストパケットを出力する出力ポートとして指定してもよい。
 また、本発明のプログラムのマルチキャスト制御情報保持手順では、更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャストIDによって指定してもよい。
 また、本発明のプログラムは、入力ポートに経路設定コマンドが入力されたときに、経路設定コマンドの転送先情報が示す宛先と、経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判別手順、を有し、加算手順では、宛先一致判別手順にて一致すると判別した場合、経路設定完了プロセス数をカウントしてもよい。
 また、本発明のプログラムは、経路設定コマンドに含まれるマルチキャスト通信を実行させるプロセス数を保持するプロセス数保持手順、を有し、比較手順では、加算手順にてカウントした経路設定完了プロセス数と、プロセス数保持手順にて保持しているマルチキャスト通信を実行させるプロセス数とが一致するか否かを判別してもよい。
 また、本発明のプログラムは、比較手順にてマルチキャスト通信の転送経路設定が完了したことを識別した場合、転送経路設定が完了したことを示す経路設定完了通知を生成し、生成した経路設定完了通知を、入力ポートに入力された経路設定コマンドの送信元に転送する完了通知生成手順、を有してもよい。
 また、本発明のプログラムの完了通知生成手順では、マルチキャスト制御手順にて設定した転送経路に従って行われるマルチキャスト通信により、経路設定完了通知を転送してもよい。
 また、本発明のプログラムでは、経路設定コマンドによってマルチキャスト制御手順にて転送経路を設定する際に、マルチキャストパケットは、相互結合網上を経路設定コマンドが転送された方向と逆向きに転送されるよう、転送経路を設定してもよい。
 以上、本実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明の要旨を逸脱しない範囲で当業者が理解し得る各種の変形が可能である。
 この出願は、2008年2月8日に出願された日本出願特願2008-028890を基礎とする優先権を主張し、その開示のすべてをここに取り込む。

Claims (27)

  1.  複数の入力ポートと該入力ポートにそれぞれ対応付けられた複数の出力ポートとを有し、前記出力ポートからマルチキャストパケットを出力するネットワークスイッチにおいて、
     前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定するマルチキャスト制御情報保持部と、
     前記マルチキャスト制御情報保持部が指定した出力ポートに対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御部と、
     前記マルチキャスト制御部が前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算部と、
     前記加算部がカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較部とを有することを特徴とするネットワークスイッチ。
  2.  前記マルチキャスト制御情報保持部は、
     前記マルチキャスト制御部に転送経路設定を指示するコマンドである経路設定コマンドが入力された入力ポートに基づいて、前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定することを特徴とする請求項1に記載のネットワークスイッチ。
  3.  前記マルチキャスト制御情報保持部は、
     前記複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、
     前記ビットに設定されている値の更新により、該更新したビットに対応する出力ポートを、前記マルチキャストパケットを出力する出力ポートとして指定することを特徴とする請求項2に記載のネットワークスイッチ。
  4.  前記マルチキャスト制御情報保持部は、前記更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャストIDによって指定することを特徴とする請求項3に記載のネットワークスイッチ。
  5.  前記入力ポートに前記経路設定コマンドが入力されたときに、該経路設定コマンドの転送先情報が示す宛先と、該経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判別部、を有し、
     前記加算部は、前記宛先一致判別部が一致すると判別した場合、前記経路設定完了プロセス数をカウントすることを特徴とする請求項2に記載のネットワークスイッチ。
  6.  前記経路設定コマンドに含まれるマルチキャスト通信を実行させるプロセス数を保持するプロセス数保持部、を有し、
     前記比較部は、前記加算部がカウントした経路設定完了プロセス数と、前記プロセス数保持部が保持している前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別することを特徴とする請求項2に記載のネットワークスイッチ。
  7.  前記比較部がマルチキャスト通信の転送経路設定が完了したことを識別した場合、該転送経路設定が完了したことを示す経路設定完了通知を生成し、該生成した経路設定完了通知を、前記入力ポートに入力された経路設定コマンドの送信元に転送する完了通知生成部、を有することを特徴とする請求項2に記載のネットワークスイッチ。
  8.  前記完了通知生成部は、前記マルチキャスト制御部が設定した転送経路に従って行われるマルチキャスト通信により、前記経路設定完了通知を転送することを特徴とする請求項7に記載のネットワークスイッチ。
  9.  前記経路設定コマンドによって前記マルチキャスト制御部が転送経路を設定する際に、前記マルチキャストパケットは、1つまたは複数のネットワークスイッチで構成される相互結合網上を、前記経路設定コマンドが転送された方向と逆向きに転送されるよう、前記転送経路を設定することを特徴とする請求項2に記載のネットワークスイッチ。
  10.  複数の入力ポートと該入力ポートにそれぞれ対応付けられた複数の出力ポートとを有し、前記出力ポートからマルチキャストパケットを出力するネットワークスイッチにおける経路設定方法であって、
     前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定するマルチキャスト制御情報保持処理と、
     前記マルチキャスト制御情報保持処理にて指定した出力ポートに対して、前記マルチキャストパケットの転送経路を設定する転送経路設定を行うマルチキャスト制御処理と、
     前記マルチキャスト制御処理にて前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算処理と、
     前記加算処理にてカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較処理とを有する経路設定方法。
  11.  前記マルチキャスト制御情報保持処理では、
     前記マルチキャスト制御処理にて転送経路設定を指示するコマンドである経路設定コマンドが入力された入力ポートに基づいて、前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定することを特徴とする請求項10に記載の経路設定方法。
  12.  前記マルチキャスト制御情報保持処理では、
     前記複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、
     前記ビットに設定されている値の更新により、該更新したビットに対応する出力ポートを、前記マルチキャストパケットを出力する出力ポートとして指定することを特徴とする請求項11に記載の経路設定方法。
  13.  前記マルチキャスト制御情報保持処理では、前記更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャストIDによって指定することを特徴とする請求項12に記載の経路設定方法。
  14.  前記入力ポートに前記経路設定コマンドが入力されたときに、該経路設定コマンドの転送先情報が示す宛先と、該経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判別処理、を有し、
     前記加算処理では、前記宛先一致判別処置にて一致すると判別した場合、前記経路設定完了プロセス数をカウントすることを特徴とする請求項11に記載の経路設定方法。
  15.  前記経路設定コマンドに含まれるマルチキャスト通信を実行させるプロセス数を保持するプロセス数保持処理、を有し、
     前記比較処理では、前記加算処理にてカウントした経路設定完了プロセス数と、前記プロセス数保持処理にて保持している前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別することを特徴とする請求項11に記載の経路設定方法。
  16.  前記比較処理にてマルチキャスト通信の転送経路設定が完了したことを識別した場合、該転送経路設定が完了したことを示す経路設定完了通知を生成し、該生成した経路設定完了通知を、前記入力ポートに入力された経路設定コマンドの送信元に転送する完了通知生成処理、を有することを特徴とする請求項11に記載の経路設定方法。
  17.  前記完了通知生成処理では、前記マルチキャスト制御処理にて設定した転送経路に従って行われるマルチキャスト通信により、前記経路設定完了通知を転送することを特徴とする請求項16に記載の経路設定方法。
  18.  前記マルチキャスト制御処理では、前記マルチキャストパケットは、1つまたは複数のネットワークスイッチで構成される相互結合網上を、前記経路設定コマンドが転送された方向と逆向きに転送されるよう、前記転送経路を設定することを特徴とする請求項11に記載の経路設定方法。
  19.  ネットワークスイッチが具備する複数の入力ポートにそれぞれ対応付けられた複数の出力ポートのうちから、マルチキャストパケットを出力するための前記出力ポートを指定するマルチキャスト制御情報保持手順と、
     前記マルチキャスト制御情報保持手順にて指定した出力ポートに対して、前記マルチキャストパケットの転送経路の設定である転送経路設定を行うマルチキャスト制御手順と、
     前記マルチキャスト制御手順にて前記転送経路設定を完了したプロセス数である経路設定完了プロセス数をカウントする加算手順と、
     前記加算手順にてカウントした経路設定完了プロセス数と、前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別し、一致すると判別したときにマルチキャスト通信の転送経路設定が完了したことを識別する比較手順とをコンピュータに実行させるプログラム。
  20.  前記マルチキャスト制御情報保持手順では、
     前記マルチキャスト制御手順にて転送経路設定を指示するコマンドである経路設定コマンドが入力された入力ポートに基づいて、前記複数の出力ポートのうちから前記マルチキャストパケットを出力するための出力ポートを指定することを特徴とする請求項19に記載のプログラム。
  21.  前記マルチキャスト制御情報保持手順では、
     前記複数の出力ポートにそれぞれ対応付けられた複数のビットを含むマルチキャスト制御情報を保持し、
     前記ビットに設定されている値の更新により、該更新したビットに対応する出力ポートを、前記マルチキャストパケットを出力する出力ポートとして指定することを特徴とする請求項20に記載のプログラム。
  22.  前記マルチキャスト制御情報保持手順では、前記更新の対象とするビットを含むマルチキャスト制御情報を、マルチキャストIDによって指定することを特徴とする請求項21に記載のプログラム。
  23.  前記入力ポートに前記経路設定コマンドが入力されたときに、該経路設定コマンドの転送先情報が示す宛先と、該経路設定コマンドが入力されたネットワークスイッチとが一致するか否かを判別する宛先一致判別手順、を有し、
     前記加算手順では、前記宛先一致判別手順にて一致すると判別した場合、前記経路設定完了プロセス数をカウントすることを特徴とする請求項20に記載のプログラム。
  24.  前記経路設定コマンドに含まれるマルチキャスト通信を実行させるプロセス数を保持するプロセス数保持手順、を有し、
     前記比較手順では、前記加算手順にてカウントした経路設定完了プロセス数と、前記プロセス数保持手順にて保持している前記マルチキャスト通信を実行させるプロセス数とが一致するか否かを判別することを特徴とする請求項20に記載のプログラム。
  25.  前記比較手順にてマルチキャスト通信の転送経路設定が完了したことを識別した場合、該転送経路設定が完了したことを示す経路設定完了通知を生成し、該生成した経路設定完了通知を、前記入力ポートに入力された経路設定コマンドの送信元に転送する完了通知生成手順、を有することを特徴とする請求項20に記載のプログラム。
  26.  前記完了通知生成手順では、前記マルチキャスト制御手順にて設定した転送経路に従って行われるマルチキャスト通信により、前記経路設定完了通知を転送することを特徴とする請求項25に記載のプログラム。
  27.  前記マルチキャスト制御手順では、前記マルチキャストパケットは、1つまたは複数のネットワークスイッチで構成される相互結合網上を、前記経路設定コマンドが転送されてきた方向と逆向きに転送されるよう、前記転送経路を設定することを特徴とする請求項20に記載のプログラム。
PCT/JP2008/072511 2008-02-08 2008-12-11 ネットワークスイッチ、経路設定方法およびプログラム WO2009098820A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009552389A JP5347975B2 (ja) 2008-02-08 2008-12-11 ネットワークスイッチ、経路設定方法およびプログラム
US12/864,567 US8416702B2 (en) 2008-02-08 2008-12-11 Network switch, path setting method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008028890 2008-02-08
JP2008-028890 2008-02-08

Publications (1)

Publication Number Publication Date
WO2009098820A1 true WO2009098820A1 (ja) 2009-08-13

Family

ID=40951903

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2008/072511 WO2009098820A1 (ja) 2008-02-08 2008-12-11 ネットワークスイッチ、経路設定方法およびプログラム

Country Status (3)

Country Link
US (1) US8416702B2 (ja)
JP (1) JP5347975B2 (ja)
WO (1) WO2009098820A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016510188A (ja) * 2013-02-19 2016-04-04 アライドテレシスホールディングス株式会社 ネットワーク通信用の自動化されたコマンドおよび発見プロセス

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9307304B2 (en) * 2010-05-11 2016-04-05 Comcast Cable Communications, Llc Dynamic assignment of signals to ports in an access platform
US11777809B2 (en) 2010-05-11 2023-10-03 Comcast Cable Communications, Llc Dynamic assignment of signals to ports in an access platform
WO2012068171A1 (en) * 2010-11-15 2012-05-24 Reed Coke S Parallel information system utilizing flow control and virtual channels
US8855117B2 (en) * 2012-08-08 2014-10-07 Cisco Technology, Inc. Scalable media access control protocol synchronization techniques for fabric extender based emulated switch deployments
US9712334B2 (en) * 2013-05-21 2017-07-18 Brocade Communications Systems, Inc. Efficient multicast topology construction in a routed network
US10833880B2 (en) * 2014-08-07 2020-11-10 Nokia Technologies Oy Controlled switching of multicast traffic between selective and inclusive routes based on number of multicast receivers

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005051548A (ja) * 2003-07-29 2005-02-24 Furukawa Electric Co Ltd:The データ中継方法、データ中継装置およびその装置を用いたデータ中継システム
JP2005136502A (ja) * 2003-10-28 2005-05-26 Ntt Docomo Inc 移動通信システム、移動端末、ノード装置、及び移動通信方法
JP2006014187A (ja) * 2004-06-29 2006-01-12 Anritsu Corp ネットワーク中継装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2581286B2 (ja) 1990-09-07 1997-02-12 日本電気株式会社 網制御方法
US5321813A (en) * 1991-05-01 1994-06-14 Teradata Corporation Reconfigurable, fault tolerant, multistage interconnect network and protocol
JP3679813B2 (ja) 1991-07-22 2005-08-03 株式会社日立製作所 並列計算機
JP2780623B2 (ja) 1993-12-28 1998-07-30 日本電気株式会社 情報処理装置
JP2778520B2 (ja) 1995-04-28 1998-07-23 日本電気株式会社 マルチキャスト方法及び交換スイッチ
JP2830833B2 (ja) 1996-04-30 1998-12-02 日本電気株式会社 プロセッサ間通信方法及びそれに用いるプロセッサ
JP3408444B2 (ja) 1999-01-21 2003-05-19 日本電気株式会社 並列計算機、多段結合網並びに交換スイッチ
JP4478390B2 (ja) 2001-02-24 2010-06-09 インターナショナル・ビジネス・マシーンズ・コーポレーション クラス・ネットワーク経路指定

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005051548A (ja) * 2003-07-29 2005-02-24 Furukawa Electric Co Ltd:The データ中継方法、データ中継装置およびその装置を用いたデータ中継システム
JP2005136502A (ja) * 2003-10-28 2005-05-26 Ntt Docomo Inc 移動通信システム、移動端末、ノード装置、及び移動通信方法
JP2006014187A (ja) * 2004-06-29 2006-01-12 Anritsu Corp ネットワーク中継装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MINORU NAKAZAWA: "An Implementation and Its Evaluation of Application Layer Multicast Distribution Tree Based on Associatively and Stability", TRANSACTIONS OF INFORMATION PROCESSING SOCIETY OF JAPAN, vol. 47, no. 2, 15 February 2006 (2006-02-15), pages 382 - 391 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016510188A (ja) * 2013-02-19 2016-04-04 アライドテレシスホールディングス株式会社 ネットワーク通信用の自動化されたコマンドおよび発見プロセス

Also Published As

Publication number Publication date
JP5347975B2 (ja) 2013-11-20
JPWO2009098820A1 (ja) 2011-05-26
US20100302952A1 (en) 2010-12-02
US8416702B2 (en) 2013-04-09

Similar Documents

Publication Publication Date Title
JP5347975B2 (ja) ネットワークスイッチ、経路設定方法およびプログラム
US8654798B2 (en) Barrier synchronization apparatus, barrier synchronization system, and barrier synchronization method
US8572615B2 (en) Parallel computing system, synchronization device, and control method of parallel computing system
JP4263147B2 (ja) コンピュータプロセッサを含む装置、複数の所定のグループのタスクを実行するステップを含む方法、ネットワークデータを処理するステップを含む方法、複数のソフトウェアタスクを実行するための方法およびコンピュータプロセッサを含むネットワーク装置
JP6048505B2 (ja) 並列計算機、ノード装置、及び並列計算機の制御方法
WO2018198479A1 (ja) 情報処理装置、情報処理方法及びプログラム
JPH1049507A (ja) 並列計算機
CN110995598B (zh) 一种变长报文数据处理方法和调度装置
US20120159121A1 (en) Parallel computer system, synchronization apparatus, and control method for the parallel computer system
JP5435024B2 (ja) ネットワークスイッチ、経路設定方法、プログラムおよび並列計算機システム
JP4588259B2 (ja) 通信システム
JPWO2010109761A1 (ja) 並列処理システム、並列処理方法、ネットワークスイッチ装置、及び並列処理プログラム
US10616140B2 (en) Information processing system and information processing method
JP4704252B2 (ja) ネットワークシステムのブロードキャスト処理方法及びネットワークシステム
Panda et al. Fast Broadcast and Multicast in Wormhole Multistage Networks with Multidestination Worms
US7486687B2 (en) Method and allocation device for allocating pending requests for data packet transmission at a number of inputs to a number of outputs of a packet switching device in successive time slots
JP2009188623A (ja) ネットワーク中継装置およびネットワーク中継方法
JP2960454B2 (ja) 並列プロセッサのプロセッサ間データ転送装置
JP3408444B2 (ja) 並列計算機、多段結合網並びに交換スイッチ
US20240086265A1 (en) Selective aggregation of messages in collective operations
JP7036226B2 (ja) 演算処理装置及びその制御方法
US11860814B1 (en) Scalable distributed computing system with deterministic communication
JP3703304B2 (ja) ノード間データ転送方法および計算機間データ転送方法
JPH08305649A (ja) マルチキャスト方法及び交換スイッチ
WO2022220855A1 (en) Virtual pipeline in programmable switches

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: 08872133

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 12864567

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2009552389

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08872133

Country of ref document: EP

Kind code of ref document: A1