JP2006277635A - Information processing system and job execution method - Google Patents

Information processing system and job execution method Download PDF

Info

Publication number
JP2006277635A
JP2006277635A JP2005099577A JP2005099577A JP2006277635A JP 2006277635 A JP2006277635 A JP 2006277635A JP 2005099577 A JP2005099577 A JP 2005099577A JP 2005099577 A JP2005099577 A JP 2005099577A JP 2006277635 A JP2006277635 A JP 2006277635A
Authority
JP
Japan
Prior art keywords
node
calculation
notification
crossbar switch
data
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2005099577A
Other languages
Japanese (ja)
Other versions
JP4336894B2 (en
Inventor
Katsuhiko Okada
克彦 岡田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 Corp filed Critical NEC Corp
Priority to JP2005099577A priority Critical patent/JP4336894B2/en
Publication of JP2006277635A publication Critical patent/JP2006277635A/en
Application granted granted Critical
Publication of JP4336894B2 publication Critical patent/JP4336894B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a system and a method allowing high-speed execution of a multiple node job. <P>SOLUTION: A node, which is provided with a CPU 11 and a transfer control part 12, receives an MPI dedicated instruction given to the transfer control part in a request source node from the CPU, stores information in a dedicated instruction waiting buffer 13, and notifies mask information to a crossbar switch 20. In the the crossbar switch, the mask information is set in a data notification flag register 22, and a computing execution instruction is notified to all the nodes via broadcast communication. When computing between all the nodes performing operation is finished, a notification finish part 26 notifies operation results to all the nodes via casting. In each node, a return data JID comparison part 18 checks whether the operation result agrees with a required operation result or not. When the operation result is the required data, the data are returned to the CPU, otherwise the received operation result is discarded. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、情報処理装置に関し、特に、計算機が複数集まり1つのシステムを構成するマルチノードシステムとJOB実行方法に関する。   The present invention relates to an information processing apparatus, and more particularly, to a multi-node system and a JOB execution method in which a plurality of computers are collected to constitute one system.

計算機が複数集まり1つのシステムを構成するマルチノードシステムにおける、MPI(Message Passing Interface)の機能を使ったマルチノードのJOB実行として、MPIの転送機能(関数)であるMPI_REDUCE、MPI_ALL_REDUCE命令について、図4を参照して説明する。図4(A)は、処理フロー、図4(B)は、マルチノードシステムのデータ通信を模式的に示している。   FIG. 4 shows MPI_REDUCE and MPI_ALL_REDUCE instructions that are MPI transfer functions (functions) as multi-node JOB execution using the MPI (Message Passing Interface) function in a multi-node system in which a plurality of computers constitute one system. Will be described with reference to FIG. FIG. 4A schematically shows a processing flow, and FIG. 4B schematically shows data communication of the multi-node system.

図4おいて、このMPI転送命令は、
(1)の命令の分配フェーズ、
(2)の各ノードの演算フェーズ、
(3)の結果の転送フェーズ
の3つに大別されることが示されている。
In FIG. 4, this MPI transfer instruction is
(1) instruction distribution phase,
The calculation phase of each node in (2),
It is shown that it is roughly divided into three transfer phases as a result of (3).

(1)の命令の分配フェーズでは、上記命令を実行する際に、リクエスト元のノードのCPUは、各ノードに、ノード内のMax/Sumの演算を実行するように、演算指示を、各ノードに通知する(図4(A)のステップS21、S22、図4(B)の(1)分配参照)。   In the instruction distribution phase of (1), when executing the above instruction, the CPU of the request source node instructs each node to execute an operation instruction so as to execute the Max / Sum operation in the node. (See steps S21 and S22 in FIG. 4A, (1) distribution in FIG. 4B).

その際、該演算を終了したときに、結果をどのノードに送るかの情報も付随して、演算指示を送る。このため、各ノードへの指示は、別々になり、命令発行元のノードから1:1(1対1)で各ノードに通知を送ることになる。   At this time, when the calculation is finished, a calculation instruction is sent together with information on which node the result is sent to. For this reason, the instructions to each node are different, and a notification is sent to each node 1: 1 (one-to-one) from the instruction issuing node.

この通知の転送のためのデータ通信時間が無視できないため、上記命令の実装において、(1)の分配フェーズでは、発行元ノードが全てのノードに通知をするのではなく、例えば2分岐ツリー状に、指示を分担させ、複数のノードから分配通知を行うことで、転送の負荷を軽減するようにしている。   Since the data communication time for transferring this notification cannot be ignored, in the implementation of the above instruction, in the distribution phase (1), the issuing node does not notify all the nodes, for example in the form of a two-branch tree The load is reduced by sharing the instructions and sending distribution notifications from a plurality of nodes.

(2)の各ノードの演算フェーズでは、各ノードで、ノード内のMax/Sumの演算を各々実行し、ノード内の最終値を求める(ステップS23)。   In the calculation phase of each node in (2), each node executes a Max / Sum calculation in the node to obtain a final value in the node (step S23).

(3)の転送フェーズでは、(1)と逆方向に、Max/Sumの結果の転送を行いMax/Sum値を求め(ステップS24)、Max/Sumがリクエスト元ノードに全て集まると(ステップS25のyes分岐)、最終的に、リクエスト元ノードプロセスで集まったMax/Sumを求め、最終的なMax/Sum値を求める(ステップS26)。MPI_ALL_REDUCE命令では、全ノードが、この結果値を得る必要性があるため、この結果値を、全ノードにブロードキャストするなどしている。   In the transfer phase of (3), the result of Max / Sum is transferred in the opposite direction to (1) to obtain the Max / Sum value (step S24), and when all Max / Sum gathers at the request source node (step S25). Finally, Max / Sum collected by the request source node process is obtained, and the final Max / Sum value is obtained (step S26). In the MPI_ALL_REDUCE instruction, since all nodes need to obtain this result value, the result value is broadcast to all the nodes.

MPIの機能を使ったマルチノードJOB実行(複数ノードでのJOBの実行)は、性能が重視されるが、ノード間の転送時間が性能のネックとなる。特に、マルチノードJOBでは、各ノードに分散したデータの合計値やMax値を求めることが多々発生するが、その演算の実行時の転送時間が、演算時間に対して、割合的に、無視できなくなる、という問題が生じていた。   Multi-node JOB execution using the MPI function (execution of JOB at a plurality of nodes) places importance on performance, but transfer time between nodes becomes a bottleneck in performance. In particular, in a multi-node job, there are many cases where the total value or the Max value of data distributed to each node is obtained, but the transfer time at the time of execution of the operation can be ignored in proportion to the operation time. The problem of disappearing occurred.

従来のマルチノードシステムは、MPIの転送機能の実現において、次のような課題がある。   The conventional multi-node system has the following problems in realizing the MPI transfer function.

リクエスト元ノードへの演算結果の転送フェーズにおいて、分配フェースと逆方向に、Max/Sumの結果の転送を行い、最終的に、リクエスト元ノードでMax/Sumの結果値を求めている。コネクション型のネットワークでは、全ノード(ノード数をNとする)から、1つのノードにデータを通知するために、通常、N:1(2分岐ツリーでノード間転送の効率化を行った場合でも、LogN:1)の通信が発生し、1つの転送ごとにコネクションをし直すネットワークでは、転送時間が多くかかる(第1の課題)。   In the transfer phase of the calculation result to the request source node, the Max / Sum result is transferred in the direction opposite to the distribution face, and finally the Max / Sum result value is obtained at the request source node. In a connection type network, in order to notify one node of data from all nodes (the number of nodes is N), usually N: 1 (even when the efficiency of inter-node transfer is performed by a two-branch tree) , Log N: 1) communication occurs, and a network that reconnects for each transfer requires a long transfer time (first problem).

分配フェーズにおいて返却値を返却するルート(ノード)を通知するために、ブロードキャスト通信して一括して演算の実行を指示することができない、ということである(第2の課題)。   In order to notify the route (node) for returning the return value in the distribution phase, it is impossible to instruct execution of the operation in a batch by broadcast communication (second problem).

したがって、本発明の目的は、ノード内の演算結果転送や、演算指示の分配フェーズで、コネクション型ネットワークをもつゆえの上記課題を解消し、高速なマルチノードJOB実行を可能とする情報処理システムと方法を提供することにある。   Accordingly, an object of the present invention is to solve the above-mentioned problems caused by having a connection-type network in the transfer of calculation results within a node and the distribution phase of calculation instructions, and an information processing system that enables high-speed multi-node JOB execution It is to provide a method.

本願で開示される発明は、上記目的を達成するため、概略以下の構成とされる。   The invention disclosed in the present application is generally configured as follows in order to achieve the above object.

本発明の1つのアスペクトに係るシステムは、複数のノードと、クロスバースイッチとを備え、前記クロスバースイッチは、1のリクエスト元のノードからの演算要求を受け、他のノードに前記要求をブロードキャスト通信で分配し、前記クロスバースイッチが、前記分配されたノードでのそれぞれの演算結果を集めて演算し、演算結果をブロードキャストで複数のノードに通知する構成とされる。本発明において、各ノードでは、前記クロスバースイッチから取った演算結果が、自ノードで要求したものに対応する演算結果であるかチェックし、自ノードで要求したものでない場合には、廃棄する。   A system according to one aspect of the present invention includes a plurality of nodes and a crossbar switch, and the crossbar switch receives a calculation request from one request source node and broadcasts the request to another node. The communication is distributed, and the crossbar switch is configured to collect and calculate the respective calculation results at the distributed nodes, and notify the calculation results to a plurality of nodes by broadcasting. In the present invention, each node checks whether the computation result taken from the crossbar switch is the computation result corresponding to that requested by its own node. If it is not requested by its own node, it is discarded.

本発明において、前記クロスバースイッチは、前記ノードから集めた演算結果が1つになるまで演算を行う演算部と、結果が1つなるまで演算される間、複数ノードから要求に応じて、並列に動作できるように、JOB毎に指示されるシステムにユニークなIDで管理された多重実行手段を備える。   In the present invention, the crossbar switch includes a calculation unit that performs calculation until one calculation result collected from the nodes is obtained, and a plurality of nodes in parallel according to a request while the calculation is performed until one result is obtained. Multiple execution means managed with a unique ID in the system instructed for each JOB.

本発明の他のアスペクトに係る方法は、複数のノードと、クロスバースイッチとを備えたマルチノードシステムのジョブ実行方法であって、
前記各ノードは、CPUと転送制御部を有し、
リクエスト元ノードの前記転送制御部が、前記CPUから発行されたMPI(メッセージ・パッシング・インタフェース)専用命令を受け取り、専用命令待合せバッファに情報を格納する工程と、
前記リクエスト元ノードの転送制御部が、前記クロスバースイッチに対して、無効とするノードを指定するマスク情報を通知する工程と、
前記クロスバースイッチが、データ通知フラグレジスタにマスク情報を設定する工程と、
前記クロスバースイッチがブロードキャスト通信により、全ノードに対して演算実行指示を通知する工程と、
演算実行を行った各ノードにおいて、通知専用命令が前記CPUから送られてきた時に、演算結果を、前記クロスバースイッチの演算部に通知する工程と、
前記クロスバースイッチにおいて、前記演算部は、各ノードの通知命令作成部からの通知を受け取り、データ通知フラグレジスタの設定により、各ノード間の演算を実行し、演算実行する全てのノード間の演算が終了すると、演算結果を、全ノードにブロードキャスト通知する工程と、を含む。
A method according to another aspect of the present invention is a job execution method of a multi-node system including a plurality of nodes and a crossbar switch,
Each of the nodes has a CPU and a transfer control unit,
The transfer control unit of the request source node receives an MPI (Message Passing Interface) dedicated instruction issued from the CPU and stores information in a dedicated instruction queuing buffer;
A step in which the transfer control unit of the request source node notifies the crossbar switch of mask information for designating an invalid node;
The crossbar switch sets mask information in a data notification flag register;
The crossbar switch notifying a calculation execution instruction to all nodes by broadcast communication;
In each node that has performed computation, when a notification-only instruction is sent from the CPU, a step of notifying the computation result of the crossbar switch to the computation unit;
In the crossbar switch, the calculation unit receives a notification from the notification command generation unit of each node, executes a calculation between the nodes according to the setting of the data notification flag register, and performs a calculation between all the nodes performing the calculation When the process ends, a broadcast notification of the calculation result to all nodes is included.

本発明の他のアスペクトに係るノードは、クロスバースイッチに接続するノードであって、CPUと転送制御部を備え、前記転送制御部は、前記CPUから発行された転送専用命令とその関連情報を格納する専用命令待合せバッファと、前記クロスバースイッチに対して、演算結果の待ち合わせを行わないノードを指定するマスク情報を通知するマスク情報作成部と、前記CPUからの通知専用命令を受け、前記クロスバースイッチに送信する通知命令を生成する通知命令作成部と、前記クロスバースイッチから通知された演算結果が、自ノードのCPUが発行した命令に対応するものであるか判定し、発行した命令に対応しない場合に廃棄する制御を行う返却データ比較部と、を備えている。   A node according to another aspect of the present invention is a node connected to a crossbar switch, and includes a CPU and a transfer control unit. The transfer control unit receives a transfer-dedicated command issued from the CPU and related information. A dedicated command queuing buffer for storing, a mask information creating unit for notifying the crossbar switch of mask information for designating a node for which no operation result is to be waited, and a notification dedicated command from the CPU, A notification command generation unit that generates a notification command to be transmitted to the bar switch, and determines whether the calculation result notified from the crossbar switch corresponds to a command issued by the CPU of the own node. A return data comparison unit that performs control of discarding when it does not correspond.

本発明の他のアスペクトに係るクロスバースイッチは、データ通知フラグレジスタと、演算部と、終了通知部と、ノードからの通知データを格納する通知受信バッファと、演算結果データを格納する演算結果格納バッファよりなるデータ格納バッファを備え、前記要求元のノードからマスク情報を受け取り、前記データ通知フラグレジスタに設定し、前記要求元のノードからの要求を受けて、ブロードキャスト通信により、複数のノードに対して演算実行を通知し、演算実行した複数のノードにおいて、通知専用命令がノードのCPUから送られてきた時に、演算結果が、前記クロスバースイッチの前記演算部に通知され、前記演算部では、各ノードの通知命令作成部からの通知を受け取り、前記データ通知フラグレジスタの設定により、各ノード間の演算を実行し、前記演算部で演算実行する全てのノード間の演算が終了すると、前記終了通知部は、演算結果を、全ノードにブロードキャスト通知する構成とされる。   A crossbar switch according to another aspect of the present invention includes a data notification flag register, a calculation unit, a termination notification unit, a notification reception buffer for storing notification data from a node, and a calculation result storage for storing calculation result data. A data storage buffer comprising a buffer; receives mask information from the requesting node; sets the data notification flag register; receives a request from the requesting node; The calculation result is notified to the calculation unit of the crossbar switch when a notification-dedicated instruction is sent from the CPU of the node in the plurality of nodes that have executed the calculation. Receiving notification from the notification command creation unit of each node, each setting of the data notification flag register, Performs an operation between over de, the operation is completed between all nodes of computing executed by the computing unit, the completion notification unit, the operation result, is configured to broadcast the notification to all nodes.

本発明によれば、コネクション・ロックを持たずに、転送を行うことで、MPI転送機能であるMPI_ALL_REDUCE、及びMPI_REDUCEの機能を、高速に実行することができる。   According to the present invention, MPI_ALL_REDUCE and MPI_REDUCE functions that are MPI transfer functions can be executed at high speed by performing transfer without having a connection lock.

また、本発明によれば、ブロードキャスト通信して一括して演算の実行を指示することができる。   In addition, according to the present invention, it is possible to instruct the execution of calculation in a batch by broadcast communication.

[発明の原理]
本発明は、データの転送時に、データの転送先ノードが同時に2つ以上のノードからデータを転送されないように、転送先をロック(1つの転送元ノードしかロックが取れない)してから、データを転送するコネクション型のノード間のデータ転送ネットワークを具備し、これをクロスバースイッチで実現しているマルチノードシステムにおいて、ノード間転送の手段として使用される、MPI転送機能であるMPI_ALL_REDUCE、及びMPI_REDUCEの機能を、高速に実行可能とするものである。
[Principle of the Invention]
The present invention locks the transfer destination (only one transfer source node can be locked) so that the data transfer destination node cannot transfer data from two or more nodes at the same time when transferring data. MPI_ALL_REDUCE and MPI_REDUCE, which are MPI transfer functions, are used as means for transferring between nodes in a multi-node system having a data transfer network between connection-type nodes for transferring data, which is realized by a crossbar switch. These functions can be executed at high speed.

コネクション型のネットワークは、データの転送先ノードに、他のノードからの転送が同時に行われないように、転送先のノードをロック(「コネクション・ロック」と呼ぶ)する必要があるが、クロスバースイッチまでの転送であれば、コネクション・ロックの必要がなく、ノードからいつでも転送可能である。   In a connection-type network, it is necessary to lock the transfer destination node (referred to as “connection lock”) to prevent data transfer from other nodes at the same time. Transfer to the switch does not require a connection lock and can be transferred from the node at any time.

本発明は、この点に着目し、コネクション・ロックを持たずに、転送を行うことで、転送時間を短縮している。   The present invention pays attention to this point and shortens the transfer time by performing transfer without having a connection lock.

具体的には、
・ノードへではなく、クロスバースイッチ内に、ノードに転送データを送る転送制御機構を備える。
In particular,
A transfer control mechanism for sending transfer data to the node is provided in the crossbar switch, not to the node.

・クロスバースイッチ内で1つの結果になるまで演算を行えるように、演算部をクロスバー内に備える。   A calculation unit is provided in the crossbar so that calculation can be performed until one result is obtained in the crossbar switch.

・結果が1つになるまで演算される間、クロスバースイッチ内の演算部が、複数ノードからのリクエストに応じて、並列に動作できるように、JOB毎に指示される、システムにユニークなID(「JOBID」、あるいは「JID」とも略記される)で管理された多重実行機構を備える。   A unique ID for the system that is instructed for each JOB so that the arithmetic unit in the crossbar switch can operate in parallel in response to requests from a plurality of nodes while it is calculated until one result is obtained. A multiple execution mechanism managed by (abbreviated as “JOBID” or “JID”).

・結果を命令種に応じ、リクエスト元ノードのCPUのほか、全ノードのCPUへ返却する機構をもつ。   -It has a mechanism to return the result to the CPUs of all nodes in addition to the CPU of the request source node according to the instruction type.

図1のリクエスト元ノード10において、CPU11は、MPI_ALL_REDUCE/MPI_REDUCE命令を処理するMPI専用命令を発行する。 In the request source node 10 1 in FIG. 1, CPU 11 issues a dedicated MPI instructions for processing MPI_ALL_REDUCE / MPI_REDUCE instructions.

同様に、各ノード10のCPU11は、演算したMax/Sum(最大値/総和)の結果を、マルチノード間を接続するクロスバースイッチ20に通知するために、通知専用命令を発行する。 Similarly, the CPU 11 of each node 10 i issues a notification dedicated instruction to notify the calculated Max / Sum (maximum value / sum) result to the crossbar switch 20 connecting the multi-nodes.

リクエスト元ノード10の転送制御部12は、CPU11から発行されたMPI専用命令/通知専用命令を受け取り、MPI専用命令の場合、転送制御部12内の専用命令待合せバッファ(バッファ)13が、この情報を格納し、同時に、転送制御部12内のマスク情報作成部14が、クロスバースイッチ20内のデータ通知フラグレジスタ22に対して、マスク情報を通知し、クロスバースイッチ20内のデータ通知フラグレジスタ22でマスク情報を設定をする(マスク情報の設定については後に詳述される)。 Transfer controller 12 of the request source node 10 1 receives the MPI dedicated instruction / notice dedicated command issued from the CPU 11, if the MPI dedicated command, the dedicated instruction waiting buffer (Buffer) 13 of the transfer control unit 12, this The information is stored, and at the same time, the mask information creation unit 14 in the transfer control unit 12 notifies the data notification flag register 22 in the crossbar switch 20 of the mask information, and the data notification flag in the crossbar switch 20 Mask information is set in the register 22 (mask information setting will be described in detail later).

さらに、ブロードキャスト通信により、クロスバースイッチ20を介して、全ノードに対して、Max/Sumの演算実行指示を通知する。その際、MPI_ALL_REDUCE/MPI_REDUCEのどちらの命令実行中かは、各ノード10のCPU11に通知される。 Furthermore, a Max / Sum calculation execution instruction is notified to all nodes via the crossbar switch 20 by broadcast communication. At that time, which of the MPI_ALL_REDUCE / MPI_REDUCE instruction is being executed is notified to the CPU 11 of each node 10 i .

また、同様に、各ノード10の通知命令作成部15では、ノード10のCPU11から通知専用命令(CPU11で実行した演算結果を通知するための命令)が送られてきた時に、Max/Sumの結果を、クロスバースイッチ20内のMax/Sum演算部24に通知する。この通知の際、MPI_ALL_REDUCE命令の実行時には、ノード10iのCPU11から、専用待ち合わせバッファ13の具備する命令発行元フラグをセットし、結果値返却CPU情報を格納する。 Similarly, in the notification instruction creating unit 15 of each node 10 i , when a notification dedicated instruction (an instruction for notifying the calculation result executed by the CPU 11) is sent from the CPU 11 of the node 10 i , Max / Sum Is notified to the Max / Sum calculation unit 24 in the crossbar switch 20. At the time of this notification, when the MPI_ALL_REDUCE instruction is executed, the instruction issuer flag included in the dedicated waiting buffer 13 is set from the CPU 11 of the node 10i, and the result value return CPU information is stored.

クロスバースイッチ20において、データ格納バッファは、データが滞留し、デッドロックになるのを避けるために、JOB識別するシステムにユニークなID(JID)でバッファ内アドレスを管理する機能を持つ。   In the crossbar switch 20, the data storage buffer has a function of managing the address in the buffer with an ID (JID) unique to the JOB identification system in order to avoid data accumulation and deadlock.

また、クロスバースイッチ20において、データ通知フラグレジスタ22は、
・各ノードから演算データが送られてきたことや演算完了を管理する演算フラグを格納すると共に、
・ノード10のマスク情報作成部14からの通知により、演算に使用しないノードのフラグをセットする。
In the crossbar switch 20, the data notification flag register 22
-Stores calculation flags for managing calculation data sent from each node and calculation completion,
The notification from the node 10 1 of the mask information generating unit 14 sets a flag for not using the operation node.

クロスバースイッチ20において、Max/Sum演算部24は、各ノード10の通知命令作成部15からの通知を受け取り、データ通知フラグレジスタ22の設定により、各ノード間のMax/Sum演算を実行する。 In the crossbar switch 20, the Max / Sum operation unit 24 receives the notification from the notification instruction creation unit 15 of each node 10 i and executes the Max / Sum operation between the nodes by setting the data notification flag register 22. .

この際、クロスバースイッチ20において、Max/Sum演算部24は、毎回、演算結果格納バッファ25の指定されたジョブID(JID)のアドレスに、データを格納する。   At this time, in the crossbar switch 20, the Max / Sum calculation unit 24 stores data at the address of the designated job ID (JID) in the calculation result storage buffer 25 each time.

クロスバースイッチ20において、終了通知部26は、演算実行する全てのノード間の演算が終了すると、演算完了を検出し、全ノードに対して演算結果をブロードキャスト通知する。   In the crossbar switch 20, the end notification unit 26 detects the completion of the calculation and broadcasts the calculation result to all the nodes when the calculation between all the nodes to be calculated is completed.

再び、各ノード10、10の返却データJID比較部18では、専用命令待合せバッファ13のJOB毎に指定されたIDのアドレスに格納される命令発行元フラグの情報を参照し、命令発行元ノードであるか否かを確認する。返却データJID比較部18は、命令発行元フラグが発行元であることを示していない場合、クロスバースイッチ20からの返却情報を廃棄し、一方、発行元であれば、CPU11にその情報を返却する。 Again, the return data JID comparison unit 18 of each of the nodes 10 1 , 10 i refers to the information of the instruction issuer flag stored in the address of the ID designated for each JOB of the dedicated instruction queuing buffer 13, and the instruction issuer Check if it is a node. The return data JID comparison unit 18 discards the return information from the crossbar switch 20 if the instruction issuer flag does not indicate that it is an issuer, while returning the information to the CPU 11 if it is an issuer. To do.

このようにして、複数JOBで、MPI_ALL_REDUCE命令、MPI_REDUCE命令を発行した際に、各ノード10に、ノード10内のCPUにMax/Sumの演算をするように指示し、その結果を、クロスバースイッチ20上で、デッドロックを生じさせないように考慮されたハードウェア機構により、Max/Sum演算し、各ノード10からのコネクションを接続せずに、全ノードを対象としたMax/Sumの演算結果を、全ノード(または発行元ノードにのみ)に返却することができる。 In this way, when the MPI_ALL_REDUCE instruction and the MPI_REDUCE instruction are issued by a plurality of JOBs, each node 10 i is instructed to perform the Max / Sum operation on the CPU in the node 10 i , and the result is cross-linked. on bar switch 20, the let no way considered hardware mechanism resulting deadlock, Max / Sum calculated, without connecting the connection from each node 10 i, the Max / Sum intended for all nodes The calculation result can be returned to all nodes (or only to the issuer node).

コネクション型のネットワークのネックとなる1:1でコネクションしないデータ転送ができない問題を回避し、高速に、MPI専用命令のMPI_ALL_REDUCE、MPI_REDUCEを演算でき、マルチノードシステムの演算性能を向上することができる。   It is possible to avoid MPI_ALL_REDUCE and MPI_REDUCE dedicated MPI instructions at a high speed by avoiding the problem of data transfer that does not allow 1: 1 connection, which is a bottleneck for connection-type networks, thereby improving the calculation performance of the multi-node system.

本発明においては、「コネクション型のネットワークは、データの転送先ノードに他のノードからの転送が同時に行われないように、コネクション・ロックをする必要があるが、クロスバースイッチまでの転送であれば、コネクション・ロックの必要がなく、Nodeからいつでも転送可能である。」という点に着目し、クロスバースイッチに、Node内転送データを送り、クロスバースイッチ内で1つの結果になるまで演算を行えるように、演算部を、クロスバースイッチ内に備える。   According to the present invention, “a connection-type network needs to lock the connection so that data from other nodes cannot be transferred simultaneously to the data transfer destination node. Paying attention to the point that there is no need for connection lock and transfer from Node at any time, send the transfer data in Node to the crossbar switch, and calculate until one result in the crossbar switch. An arithmetic unit is provided in the crossbar switch so that it can be performed.

また、本発明においては、1つに演算されるまでの間、その演算機構が複数ノードからのリクエストに応じて並列に動作できるように、JOBのIDで(JOBID)管理された多重実行機構を備える。   Also, in the present invention, a multiple execution mechanism managed with a JOB ID (JOBID) so that the calculation mechanism can operate in parallel in response to requests from a plurality of nodes until it is calculated as one. Prepare.

さらに、本発明においては、クロスバースイッチ20から演算結果を、全ノードにブロードキャストすることで、コネクション・ロックを行わずに、転送フェーズの動作を実現する。   Furthermore, in the present invention, the operation result of the transfer phase is realized without broadcasting the connection lock by broadcasting the calculation result from the crossbar switch 20 to all the nodes.

さらにまた、本発明においては、クロスバースイッチ20から全ノードに結果をブロードキャストし、その通知を、命令種によって選択して、CPU11に伝える転送制御部12を備え、分配フェーズでルートを通知する必要がなくなり、分配フェーズについても、ブロードキャストでのノードの演算開始を指示することが出来る(分配フェーズを簡略化できる)。   Furthermore, in the present invention, it is necessary to provide a transfer control unit 12 that broadcasts a result from the crossbar switch 20 to all nodes, selects the notification according to the instruction type, and transmits it to the CPU 11, and notifies the route in the distribution phase. In the distribution phase, it is possible to instruct the start of node calculation by broadcasting (the distribution phase can be simplified).

このように、本発明においては、各ノードが、CPU11と転送制御部12を備え、複数JOBのMPI_ALL_REDUCE命令、MPI_REDUCE命令を発行した際に、クロスバースイッチ20を介して、各ノードに、ノード内のMax/Sumの演算をするよう指示し、その結果を、クロスバースイッチ20上でデッドロックを生じさせないように考慮されたハードウェア機構により、Max/Sum演算し、各ノードからのコネクションを接続せずに、全ノードを対象としたMax/Sumの演算結果を、全ノード(または、発行元ノードにのみ)返却することができる構成としたことで、コネクション型のネットワークのネックとなる1:1でコネクションしないデータ転送ができないという問題を回避し、MPI_ALL_REDUCE/MPI_REDUCE命令を処理する転送時間を大幅に減少させることで、高速なマルチノードJOBを実現している。以下、実施例に即して説明する。   As described above, in the present invention, each node includes the CPU 11 and the transfer control unit 12, and when the MPI_ALL_REDUCE command and MPI_REDUCE command for a plurality of jobs are issued, each node is connected to each node via the crossbar switch 20. Max / Sum is instructed, and the result is subjected to Max / Sum by a hardware mechanism that is considered not to cause deadlock on the crossbar switch 20, and connections from each node are connected. In this configuration, the Max / Sum calculation results for all nodes can be returned to all nodes (or only to the issuing node), which becomes a bottleneck for connection-type networks. MPI_ALL avoids the problem of not being able to transfer data that is not connected with 1. REDUCE / MPI_Reduce transfer time to process an instruction to decrease considerably, thereby realizing a high-speed multi-node JOB. In the following, description will be made in accordance with examples.

図1は、本発明の一実施例のマルチノードシステムの構成を示す図である。図1には、複数のノード10、10(ノード数がN(ただし、Nは2以上の整数)の場合、iは2〜Nの整数)と、1つのクロスバースイッチ20によるマルチノードシステムが示されており、各ノード10、10は、同一構成とされ、それぞれが、少なくとも1つ以上のCPU11をもち演算を処理し、各々一部分を分担しながらマルチノードJOBを実行する。 FIG. 1 is a diagram showing a configuration of a multi-node system according to an embodiment of the present invention. In FIG. 1, a plurality of nodes 10 1 , 10 i (when the number of nodes is N (where N is an integer equal to or greater than 2), i is an integer of 2 to N) and a multi-node with one crossbar switch 20 A system is shown, and each node 10 1 , 10 i has the same configuration, each of which has at least one CPU 11, processes operations, and executes a multi-node JOB while sharing a part of each.

複数のノードは、どのノードからも、同様な命令が発行でき処理できる能力をもつが、構成例は説明のため、リクエスト元のノード10からのみ命令が発行されているとして、構成を説明する。 The plurality of nodes have the capability to issue and process the same command from any node, but the configuration will be described assuming that the command is issued only from the requesting node 101 1 for the sake of explanation of the configuration example. .

ノード10、10は、1つ以上のCPU11、メモリおよび転送制御部12を備えている。 The nodes 10 1 , 10 i include one or more CPUs 11, a memory, and a transfer control unit 12.

図1のリクエスト元ノード10において、CPU11は、MPI_ALL_REDUCE/MPI_REDUCE命令を処理するMPI専用命令を、転送制御部12に対して発行する。 In the request source node 10 1 in FIG. 1, CPU 11 has the MPI dedicated instructions for processing MPI_ALL_REDUCE / MPI_REDUCE instruction is issued to the transfer control unit 12.

MPI専用命令は、
・マルチノードJOBのシステムにユニークなID(JOBID)と、
・命令を演算実行する配列情報や命令を実行するノードの情報、
・命令の種類(命令種1:MPI_ALL_REDUCEか、MPI_REDUCEか、命令種2:Max演算、Sum演算か)、
・命令の返却先情報
を有し、これらの情報は、転送制御部12に通知される。
MPI dedicated instructions
-A unique ID (JOBID) for the multi-node JOB system,
-Array information for executing instructions and node information for executing instructions,
Instruction type (instruction type 1: MPI_ALL_REDUCE or MPI_REDUCE, instruction type 2: Max operation, Sum operation)
-Instruction return destination information, which is notified to the transfer control unit 12.

また、その他のノード10(iは2以上の整数)内のCPU11は、CPU11で演算したMax/Sumの結果を、マルチノード間を接続するクロスバースイッチ20に通知するために、通知専用命令を発行する機能を備えている。なお、CPU自体は任意の公知の構成が用いられるが、CPUは、最終的な返却値を演算結果として持つためにその演算実行終了を待ちあわせることになる。CPUが参照するメモリ(不図示)等の構成についても、任意の公知の構成が用いられる。 In addition, the CPU 11 in the other node 10 i (i is an integer of 2 or more) is a notification-dedicated command for notifying the result of Max / Sum calculated by the CPU 11 to the crossbar switch 20 connecting the multi-nodes. It has a function to issue. In addition, although arbitrary well-known structure is used for CPU itself, since CPU has a final return value as a calculation result, it will wait for the completion | finish of the calculation execution. Arbitrary publicly known composition is used also about composition of a memory (not shown) etc. which CPU refers.

転送制御部12は、専用命令待ち合わせバッファ13、マスク情報作成部14、通知命令作成部15、データ受信部16、データ送信部17、返却データJID比較部18、既設他命令発行機構19を備えている。なお、既設他命令発行機構19は、MPI専用命令、通知専用命令以外の他の命令の発行を制御するユニットであり、本発明の主題とは直接関係しないため、説明は省略する。   The transfer control unit 12 includes a dedicated command waiting buffer 13, a mask information creation unit 14, a notification command creation unit 15, a data reception unit 16, a data transmission unit 17, a return data JID comparison unit 18, and an existing other command issue mechanism 19. Yes. The existing other instruction issue mechanism 19 is a unit that controls the issue of instructions other than the MPI dedicated instruction and the notification dedicated instruction, and is not directly related to the subject of the present invention, so the description is omitted.

また、図1では、動作の説明の容易化のため、リクエスト元ノード10の転送制御部12がマスク情報作成部14を備え、その他の各ノード10の転送制御部12が通知命令作成部15を備えた構成とされているが、各ノードとも同一構成とされ、マスク情報作成部14、通知命令作成部15を備えている。 Further, in FIG. 1, for ease of explanation of the operation, the request source node 10 1 of the transfer control unit 12 is provided with a mask information generating unit 14, the other transfer control unit 12 of each node 10 i notice instruction preparation unit 15, each node has the same configuration, and includes a mask information creation unit 14 and a notification command creation unit 15.

リクエスト元ノード10の転送制御部12は、当該ノード10のCPU11から発行された上記MPI専用命令を受け取り、MPI専用命令の場合、転送制御部12内に具備する専用命令待合せバッファ13に、JOBID(JID)と、返却先情報を格納し、自ノードがMPI専用命令の発行元であることを示す命令発行元フラグをONにして保存する。 Transfer controller 12 of the request source node 10 1 receives the MPI dedicated instruction issued from CPU11 of the node 10 1, if the MPI dedicated instruction, the dedicated instruction waiting buffer 13 which includes the transfer control unit 12, JOBID (JID) and return destination information are stored, and the instruction issuer flag indicating that the own node is the issuer of the MPI dedicated instruction is turned on and saved.

リクエスト元ノード10の転送制御部12では、上記MPI専用命令と同時にCPU11から通知されるノード情報(演算を実行するノードの情報)より、マスク情報作成部14にて、クロスバースイッチ20内のデータ通知フラグレジスタ22に対して通知するマスク情報を作成し、データ送信部17より、作成したマスク情報をクロスバースイッチ20に対して通知する。 The transfer control unit 12 of the request source node 10 1, from node information notified simultaneously CPU11 and the MPI dedicated instruction (information nodes running operation), in the mask information generating unit 14, in the crossbar switch 20 Mask information to be notified to the data notification flag register 22 is created, and the created mask information is notified from the data transmission unit 17 to the crossbar switch 20.

リクエスト元ノード10の転送制御部12のマスク情報作成部14では、命令種1、2や、演算実行する配列情報、JOBIDをその内容としてもつブロードキャスト通信命令を作成し、データ送信部17より、クロスバースイッチ20に対して通知する。 In the mask information generating unit 14 of the transfer control unit 12 of the request source node 10 1, and instruction type 1, sequence information execution, to create a broadcast communication instruction having as its contents JOBID, from the data transmission unit 17, Notify the crossbar switch 20.

なお、ブロードキャスト通信については、クロスバースイッチがもつ公知の機能であり、クロスバースイッチ20を経由し、全ノードのCPUに対して通知される。   Broadcast communication is a known function of the crossbar switch, and is notified to the CPUs of all nodes via the crossbar switch 20.

一方、ノード10の転送制御部12では、通知専用命令がノード10内のCPU11から送られてきた時に、通知命令作成部15にて、通知専用命令を送信できる形状(形式)に変え、Max/Sumの演算結果を、データ送信部17から、クロスバースイッチ20内のMax/Sum演算部24に通知する。 On the other hand, in the transfer control unit 12 of the node 10 i , when the notification dedicated command is sent from the CPU 11 in the node 10 i , the notification command creating unit 15 changes the shape (form) so that the notification dedicated command can be transmitted. The calculation result of Max / Sum is notified from the data transmission unit 17 to the Max / Sum calculation unit 24 in the crossbar switch 20.

この通知の際に、ノード10内の専用待ち合わせバッファ13に対して、MPI_ALL_REDUCE命令実行時にはCPU11から、JOBIDと返却先情報、および発行元フラグをONにして情報を格納する。 During this notification, the node with respect to 10 i only waiting buffer 13 in, from CPU11 at MPI_ALL_REDUCE instruction execution, and stores the information in the ON JOBID the return destination information, and issues an original flag.

各ノード(リクエスト元ノード10、その他のノード10)の転送制御部12において、クロスバースイッチ20より、Max/Sum演算結果が、データ受信部16を経由して、返却データJID比較部18に通知される。 In the transfer control unit 12 of each node (request source node 10 1 , other node 10 i ), the Max / Sum calculation result is returned from the crossbar switch 20 via the data reception unit 16 and the return data JID comparison unit 18. Will be notified.

返却データJID比較部18では、Max/Sum演算結果と専用命令待ち合わせバッファ13の情報について、比較を行い、CPU11へMax/Sum演算結果を通知するか、もしくはデータの廃棄を行う。具体的には、専用命令待合せバッファ13の中に、JOB毎に指定されたID(JOBID)が、クロスバースイッチ20からデータ受信部16を通して受け取ったJOBIDと等しいものがあるかを確認し、等しいものが存在する場合には、さらに、専用命令待ち合わせバッファ13内に格納されている命令発行元フラグの情報(命令発行元フラグは、MPI専用命令の発行元である場合、オンとされる)を参照し、命令発行元フラグより、当該ノードが命令発行元でなければ、クロスバースイッチ20より通知された返却情報、および専用命令待合せバッファ13の格納情報を廃棄し、命令発行元(リクエスト元ノード)であれば、該当CPU11に、情報(Max/Sum演算結果)を返却し、専用命令待合せバッファ13の情報のみ廃棄する。   The return data JID comparison unit 18 compares the Max / Sum calculation result with the information in the dedicated instruction waiting buffer 13, and notifies the CPU 11 of the Max / Sum calculation result or discards the data. Specifically, it is confirmed whether there is an ID (JOBID) specified for each JOB in the dedicated command queuing buffer 13 that is equal to the JOBID received from the crossbar switch 20 through the data receiving unit 16. If there is something, the instruction issuer flag information stored in the dedicated instruction queuing buffer 13 (the instruction issuer flag is turned on when the MPI dedicated instruction issuer) is stored. Refer to the instruction issuer flag, if the node is not the instruction issuer, the return information notified from the crossbar switch 20 and the information stored in the dedicated instruction waiting buffer 13 are discarded, and the instruction issuer (request source node) ), The information (Max / Sum calculation result) is returned to the corresponding CPU 11 and only the information of the dedicated instruction waiting buffer 13 is returned. To disposal.

各ノードの転送制御部12は、クロスバースイッチ20からの通信情報を、データ受信部16で受け取ると、ブロードキャスト通信ならば、無条件で、これをCPU11に通知する。   When the data receiving unit 16 receives the communication information from the crossbar switch 20, the transfer control unit 12 of each node notifies the CPU 11 unconditionally if it is broadcast communication.

なお、上記ブロードキャスト通信命令(命令種1、2や、演算実行する配列情報、JOBIDをもつ)は、クロスバースイッチ20を介して、Max/Sumの演算実行のリクエストを各ノード10のCPU11に通知し、Max/Sumの演算を、各ノードのCPU11が実行する。各ノードのCPU11は、Max/Sumの演算実行後、得られたMax/Sum演算結果を、JOBIDや命令種別とともに、各ノードのCPU11から転送制御部12に、通知専用命令で通知する。 The broadcast communication command (with command types 1 and 2, array information to be executed, and JOBID) sends a request for Max / Sum operation execution to the CPU 11 of each node 10 i via the crossbar switch 20. The CPU 11 of each node executes the Max / Sum calculation. After executing Max / Sum calculation, the CPU 11 of each node notifies the transfer control unit 12 of the obtained Max / Sum calculation result from the CPU 11 of each node to the transfer control unit 12 together with the JOBID and the instruction type.

次に、本実施例のクロスバースイッチ20について説明する。クロスバースイッチ20は、ブロードキャスト実行制御部とコネクション型転送実行部(いずれも不図示)と、データフラグ通知レジスタ22と、データ格納バッファ(23、25)と、Max/Sum演算部24と、終了通知部26を備えている。   Next, the crossbar switch 20 of the present embodiment will be described. The crossbar switch 20 includes a broadcast execution control unit, a connection-type transfer execution unit (all not shown), a data flag notification register 22, a data storage buffer (23, 25), a Max / Sum calculation unit 24, and an end. A notification unit 26 is provided.

クロスバースイッチ20内のデータ通知フラグレジスタ22は、JOBID毎に、Nノード数分のビットをもつレジスタを備え、この各ビットに0がある限り、Max/Sum演算部24では、該当ノードからのデータを待ち合わせして、Max/Sum演算を行い続けるように制御する。   The data notification flag register 22 in the crossbar switch 20 includes a register having bits corresponding to the number of N nodes for each JOBID. As long as each bit has 0, the Max / Sum calculation unit 24 receives data from the corresponding node. Control is performed so that Max / Sum operation is continued after waiting for data.

演算のリクエスト元ノード10から各ノードの演算が始まる前に、そのJOBで使用しないノードのMax/Sum演算結果を待ち合わせしないために、データ通知フラグレジスタ22にマスク設定が通知され、これに従い、JOBIDに対応するレジスタ22にマスク情報を設定し(無効ノードに対応する位置のビットに1を立てる)、もしくは、ノードのMax/Sumの演算データ到着の完了で、該ノードに対応する位置のビットが1にセットされる。 Before the requesting node 10 first operational begins operation of each node, in order not to queuing the Max / Sum operation result of the node that is not used in the JOB, the mask set in the data notification flag register 22 is notified, which in accordance with, Set the mask information in the register 22 corresponding to JOBID (set the bit in the position corresponding to the invalid node to 1), or the completion of arrival of the Max / Sum operation data of the node, the bit in the position corresponding to the node Is set to 1.

データ格納バッファは、各ノード10の通知命令作成部15からの通知を受け取り管理するバッファであり、通知受信格納バッファ23と演算結果格納バッファ25を備え、各々のバッファは、JOB識別するシステムにユニークなID(JOBID)によって、データを格納するバッファ内アドレスが管理される(多重実行理機構)。 The data storage buffer is a buffer that receives and manages the notification from the notification command generation unit 15 of each node 10 i , and includes a notification reception storage buffer 23 and an operation result storage buffer 25. A buffer address for storing data is managed by a unique ID (JOBID) (multiple execution mechanism).

各ノードから通知されたデータは、一旦、通知受信格納バッファ23に格納され、複数のJOBIDの演算結果が同ノードから通知された場合でも、異なるJOBIDのデータは別のアドレスに格納されるため、消えることがなく、かつ、演算優先順序により、可変に、Max/Sum演算部24より読み出しが可能なため、先行する演算データが原因でデッドロックもしくはデータの消失は発生しない。   The data notified from each node is temporarily stored in the notification reception storage buffer 23, and even when the calculation results of a plurality of JOBIDs are notified from the same node, the data of different JOBIDs are stored at different addresses. Since it does not disappear and can be read from the Max / Sum operation unit 24 variably according to the operation priority order, deadlock or data loss does not occur due to preceding operation data.

Max/Sum演算部24は、各ノード、データ通知フラグレジスタ22の設定により、優先順位を決め、各ノード間のMax/Sum演算を実行する。この際、Max/Sum演算部24は、毎回、データ格納バッファの演算結果格納バッファ25にJOBIDとともに演算結果を渡し、指定したIDのアドレスにデータを格納させる。演算の優先順位の決め方が固定的に、若番のJOBID及びノード番号から実行する方法や、優先順位を可変にして負荷を均等にする等、任意の方法が用いられる。   The Max / Sum calculation unit 24 determines the priority order according to the setting of each node and the data notification flag register 22, and executes the Max / Sum calculation between the nodes. At this time, the Max / Sum operation unit 24 passes the operation result together with the JOBID to the operation result storage buffer 25 of the data storage buffer, and stores the data at the address of the designated ID. Arbitrary methods are used, such as a method of determining the priority of calculation from a fixed number, a method of executing from a young JOBID and a node number, or a variable priority and equalizing the load.

終了通知部26は、演算実行する全てのノード間の演算が終了すると、演算完了を検出し、演算結果を、全ノードにブロードキャスト通知する。   When the calculation between all the nodes that perform the calculation is completed, the end notification unit 26 detects the completion of the calculation and broadcasts the calculation result to all the nodes.

具体的には、データ通知フラグレジスタ22がもつJOBID毎のNビットのレジスタの各ビットが全て1の場合、終了通知部26において、AND演算結果が1になり、出力通知の出力が有効(Valid)になり、演算完了とともに、ブロードキャストで全ノードに対して最終結果を通知する。   Specifically, when all the bits of the N-bit register for each JOBID included in the data notification flag register 22 are 1, the end notification unit 26 sets the AND operation result to 1 and the output notification output is valid (Valid) When the calculation is completed, the final result is notified to all nodes by broadcast.

なお、上記実施例では、返却先は、CPUとしたが、データ通信の返却先をメモリ(不図示)として、CPUは、該メモリ領域を参照することで、命令実行終了を知る構成としてもよい。   In the above embodiment, the return destination is the CPU. However, the return destination of data communication may be a memory (not shown), and the CPU may be configured to know the end of instruction execution by referring to the memory area. .

また、演算種類に関しては、特に、制限されるものでなく、最大値を求めるMax演算のみ、総和を求めるSum演算のみとしてもよく、さらに、それ以外の四則演算やスクエアルート(SQRT)等の関数演算を行うものであってもよい。   The operation type is not particularly limited, and only the Max operation for obtaining the maximum value or the Sum operation for obtaining the sum may be used. Further, other functions such as four arithmetic operations and square route (SQRT) may be used. An operation may be performed.

次に、図1のマルチノードシステムの動作を、図2に示す動作フローを参照して説明する。なお、図1及び図2において、複数のノードと1つのクロスバースイッチによるマルチノードシステムが示されており、どのノードも少なくとも1つ以上のCPUを備え、演算処理し、各々一部分を分担しながら、マルチノードJOBを実行する。各ノードがどのノードからも同様な命令が発行でき処理できる能力をもつが、図に示した例では、説明のため、リクエスト元のノードからのみ命令が発行されているものとして、説明する。   Next, the operation of the multi-node system of FIG. 1 will be described with reference to the operation flow shown in FIG. 1 and 2, a multi-node system including a plurality of nodes and one crossbar switch is shown. Each node includes at least one CPU, performs arithmetic processing, and shares a part thereof. , Execute multi-node JOB. Each node has the capability to issue and process the same command from any node, but in the example shown in the figure, for the sake of explanation, it is assumed that the command is issued only from the requesting node.

図2(A)及び図2(B)の(1)分配のフェーズにおいて、マスタプロセス(リクエスト元ノードのCPU(プロセス))から各プロセス(CPU)へのクロスバースイッチ20を介してのブロードキャスト通信を実行する(ステップS11)。全プロセス(CPU)への通知が完了すると(ステップS12のyes分岐)、各ノードでの演算が実行される。   Broadcast communication via the crossbar switch 20 from the master process (CPU (process) of the request source node) to each process (CPU) in the (1) distribution phase of FIGS. 2 (A) and 2 (B). Is executed (step S11). When the notification to all the processes (CPU) is completed (yes branch of step S12), the calculation at each node is executed.

より詳細には、図1のリクエスト元ノード10内において、CPU11は、MPI_ALL_REDUCE/MPI_REDUCE命令を処理するMPI専用命令を転送制御部12に対して発行する。 More specifically, in the requesting node 10 1 in FIG. 1, CPU 11 issues to the transfer control unit 12 the MPI dedicated instructions for processing MPI_ALL_REDUCE / MPI_REDUCE instructions.

MPI専用命令は、
・マルチノードJOBのシステムにユニークなID(JOBID)と、
・命令を演算実行する配列情報や命令を実行するノードの情報、
・命令の種類(命令種1:MPI_ALL_REDUCEか、MPI_REDUCEか、命令種2:Max演算、Sum演算等)、及び、
・返却先情報を持つ。MPI専用命令は転送制御部12に通知される。
MPI dedicated instructions
-A unique ID (JOBID) for the multi-node JOB system,
-Array information for executing instructions and node information for executing instructions,
Instruction type (instruction type 1: MPI_ALL_REDUCE or MPI_REDUCE, instruction type 2: Max operation, Sum operation, etc.), and
・ Has return information. The MPI dedicated command is notified to the transfer control unit 12.

次に、リクエスト元ノードの転送制御部12は、CPU11から発行された上記MPI専用命令を受け取り、転送制御部12内に具備する専用命令待合せバッファ13に、JOBIDと返却先情報を格納し、命令発行元フラグをONにして保存する。   Next, the transfer control unit 12 of the request source node receives the MPI dedicated command issued from the CPU 11, stores the JOBID and return destination information in the dedicated command queuing buffer 13 provided in the transfer control unit 12, Save the issuer flag on.

また、実行するノード情報より、マスク情報作成部14が、クロスバースイッチ20のデータ通知フラグレジスタ22に対して通知するマスク情報を作成し、データ送信部17よりクロスバースイッチ20に対して通知する。   Further, the mask information creation unit 14 creates mask information to be notified to the data notification flag register 22 of the crossbar switch 20 from the node information to be executed, and notifies the crossbar switch 20 from the data transmission unit 17. .

同様にして、マスク情報作成部14では、命令種1、2や演算実行する配列情報及びJOBIDをもつブロードキャスト通信命令を作成し、データ送信部17より、クロスバースイッチに対して通知する。   Similarly, the mask information creation unit 14 creates a broadcast communication command having the command types 1 and 2 and the array information to be executed and the job ID, and notifies the crossbar switch from the data transmission unit 17.

クロスバースイッチ20のデータ通知フラグレジスタ22は、通知されたマスク情報により該当JOBIDの該当ノードの各ビット(ビットフラグ)にマスク情報を設定する。   The data notification flag register 22 of the crossbar switch 20 sets the mask information in each bit (bit flag) of the corresponding node of the corresponding JOBID based on the notified mask information.

ブロードキャスト通信については、既にクロスバースイッチが従来技術としてもつ機能であるクロスバースイッチの通信機構が動作し、クロスバースイッチ20を経由し全ノードのCPU11に対して通知される。   As for the broadcast communication, the crossbar switch communication mechanism, which is a function that the crossbar switch already has as a conventional technology, operates and is notified to the CPUs 11 of all nodes via the crossbar switch 20.

図2(A)及び図2(B)の(2)演算フェーズにおいて、各ノードでは、ブロードキャスト通信によりクロスバーを介してMax/Sumの演算実行のリクエストが、転送制御部12のデータ受信部16に通知される。   In the (2) calculation phase of FIGS. 2A and 2B, each node sends a request for execution of Max / Sum via the crossbar by broadcast communication to the data receiving unit 16 of the transfer control unit 12. Will be notified.

これを、データ受信部16はCPU11に通知し、CPU11にてMax/Sumの演算が実行される。各ノードのCPU11でMax/Sumの演算実行後、得られたMax/Sumの演算結果を、JOBIDや命令種別とともに、各ノードのCPU11から転送制御部12に通知専用命令として通知する。   The data receiving unit 16 notifies the CPU 11 of this, and the CPU 11 executes Max / Sum calculation. After the Max / Sum operation is executed by the CPU 11 of each node, the obtained Max / Sum operation result is notified from the CPU 11 of each node to the transfer control unit 12 as a notification-only instruction along with the JOBID and the instruction type.

図2(A)及び図2(B)の(3)転送フェーズにおいて、クロスバースイッチ20に各ノードから非ブロードキャスト通信で演算結果を通知する(ステップS14)。各ノードの出力がそろったところで、各ノードのMax/Sumをクロスバースイッチ20で一括演算する(ステップS16)。リクエスト元ノードを含め、全ノードにMax/Sum演算結果を通知し、リクエスト元ノードはMax/Sum演算結果を得る(ステップS17)。   In the (3) transfer phase of FIGS. 2A and 2B, the calculation result is notified to the crossbar switch 20 from each node by non-broadcast communication (step S14). When the output of each node is complete, the Max / Sum of each node is collectively calculated by the crossbar switch 20 (step S16). All nodes including the request source node are notified of the Max / Sum operation result, and the request source node obtains the Max / Sum operation result (step S17).

より詳細には、演算実行指示を受け取り演算を実行した各ノード内の転送制御部12内に具備する通知命令作成部15は、通知専用命令がCPU11から送られてきた時に、通知情報を作成し、データ送信部よりMax/Sumの結果をクロスバースイッチ20のMax/Sum演算部24に通知する。通知の際に、ノード内の専用待ち合わせバッファ13に対してMPI_ALL_REDUCE命令実行時には、CPU11から、JOBIDと、返却先情報、および、命令発行元フラグをONにして、情報を格納する。   More specifically, the notification command creating unit 15 included in the transfer control unit 12 in each node that has received the computation execution instruction and performed the computation creates notification information when a notification-only command is sent from the CPU 11. The Max / Sum result is notified from the data transmission unit to the Max / Sum calculation unit 24 of the crossbar switch 20. At the time of notification, when the MPI_ALL_REDUCE instruction is executed for the dedicated queuing buffer 13 in the node, the CPU 11 sets the JOBID, the return destination information, and the instruction issuer flag to ON and stores the information.

クロスバースイッチ20において、データ格納バッファで、データが滞留しデッドロックになるのを避けるために、JOBを識別するシステムにユニークなID(JOBID)でバッファ内アドレスを管理する機能を持つ。また、データ通知フラグレジスタ22は、各ノードから演算データが送られてきたことや、演算完了を管理する演算フラグ(JOBIDに対応するレジスタ(Nビット)のノードに対応して設けられるビット)を格納すると共に、マスク情報作成部14からの通知により、演算に使用しないノードのフラグをセットする。   The crossbar switch 20 has a function of managing the address in the buffer with an ID (JOBID) unique to the system for identifying the job in order to prevent the data storage buffer from causing data retention and deadlock. The data notification flag register 22 also indicates that operation data has been sent from each node, and an operation flag (a bit provided corresponding to the node of the register (N bit) corresponding to JOBID) for managing the completion of the operation. At the same time, the flag of the node that is not used for the calculation is set by the notification from the mask information creation unit 14.

クロスバースイッチ20のMax/Sum演算部24は、各ノードの通知命令作成部からの通知をデータ送信部経由で受け取り、演算結果格納バッファ(データ格納バッファ)25のJOBIDのアドレスに格納する。   The Max / Sum calculation unit 24 of the crossbar switch 20 receives the notification from the notification command generation unit of each node via the data transmission unit, and stores it in the JOBID address of the calculation result storage buffer (data storage buffer) 25.

クロスバースイッチ20のMax/Sum演算部24は、データ通知フラグレジスタ22の設定により、データ格納バッファより計算中のMax/Sum値及び各ノードのMax/Sum値を取り出し、各ノード間のMax/Sum演算を実行し、この結果を、再び、演算結果格納バッファ(データ格納バッファ)25のJOBIDのアドレスに格納する。これを、ノード数分繰り返し実行し、対象とする全ノードのMax/Sum演算を実行する。   The Max / Sum calculation unit 24 of the crossbar switch 20 takes out the Max / Sum value being calculated and the Max / Sum value of each node from the data storage buffer according to the setting of the data notification flag register 22, and the Max / Sum value between the nodes. The Sum operation is executed, and the result is stored again in the JOBID address of the operation result storage buffer (data storage buffer) 25. This is repeatedly executed for the number of nodes, and the Max / Sum calculation of all the target nodes is executed.

この際、Max/Sum演算部24は、毎回、演算結果格納バッファ(データ格納バッファ)25の指定されたIDのアドレスにデータを格納する。   At this time, the Max / Sum operation unit 24 stores data at the address of the designated ID in the operation result storage buffer (data storage buffer) 25 each time.

終了通知部26は、演算実行する全てのノード間の演算が終了すると、演算完了を検出し、演算結果を全ノードに通知する(終了通知が出力される際に該当JOBIDアドレスのデータ格納バッファの値はクリアされる)。   When the calculation between all the nodes that perform the calculation is completed, the end notification unit 26 detects the completion of the calculation and notifies the calculation result to all the nodes (when the end notification is output, the data storage buffer of the corresponding JOBID address). Value is cleared).

各ノードでは、返却データJID比較部18が、クロスバースイッチ20からデータ受信部を通して通信を受け取り通信内容と等しいJIDが、専用命令待合せバッファ13の中にもあるか確認する。等しいものが存在する場合、返却データJID比較部18は、さらに、専用命令待合せバッファ13内に格納されている命令発行元フラグの情報を参照し、命令発行元フラグより発行元でなければ、クロスバースイッチ20より通知された返却情報、及び専用命令待合せバッファ13の格納情報を廃棄し、命令の発行元であれば、該当CPU11に、その情報を返却し、専用命令待合せバッファ13の情報のみ廃棄する。   At each node, the return data JID comparison unit 18 receives communication from the crossbar switch 20 through the data reception unit and checks whether the JID equal to the communication content is also in the dedicated command waiting buffer 13. If there is an equal one, the return data JID comparison unit 18 further refers to the information of the instruction issuer flag stored in the dedicated instruction wait buffer 13 and if the issuer is not the issuer from the instruction issuer flag, the return data JID comparison unit 18 The return information notified from the bar switch 20 and the information stored in the dedicated command waiting buffer 13 are discarded. If the instruction is issued, the information is returned to the CPU 11 and only the information in the dedicated command waiting buffer 13 is discarded. To do.

以上のように動作することで、マルチノードJOBのMPI_ALL_REDUCE、MPI_REDUCE命令を高速に実行する。   By operating as described above, the MPI_ALL_REDUCE and MPI_REDUCE instructions of the multi-node JOB are executed at high speed.

以上説明したように、本実施例においては、下記記載の作用効果を奏する。   As described above, the present embodiment has the following operational effects.

マルチノードJOBでのMPI_ALL_REDUCE、MPI_REDUCE命令の実行過程において、コネクション型のネットワークでは、全ノード(ノード数をNとする)から1つのノードにデータを通知するために、通常N:1(2分岐ツリーでノード間転送の効率化を行った場合でも、LogN:1)の通信が発生する。1つの転送ごとにコネクションをしなおすネットワークでありながら、クロスバースイッチまでの転送であれば、コネクション・ロックの必要がなく、ノードからいつでも転送可能である。   In the execution process of MPI_ALL_REDUCE and MPI_REDUCE instructions in a multi-node job, in a connection type network, in order to notify data from all nodes (the number of nodes is N) to one node, normally N: 1 (two-branch tree) Even when the efficiency of inter-node transfer is improved, the communication of LogN: 1) occurs. Although the network re-establishes connection for each transfer, transfer to the crossbar switch does not require connection lock and can be transferred from the node at any time.

そこで、本発明は、クロスバースイッチに、ノード内転送データを送り、クロスバースイッチ内で、1つの結果になるまで、演算を行えるように演算部を、クロスバースイッチ内に具備したことにより、コネクション・ロックを要しなくし、コネクション・ロックのために費やされていた時間を、大幅に短縮し、マスチノードシステムのJOBの実行を効率化、高速化することができる。   Therefore, the present invention provides the operation unit in the crossbar switch so that the intra-node transfer data is sent to the crossbar switch and the operation can be performed until one result is obtained in the crossbar switch. By eliminating the need for connection locking, the time spent for connection locking can be greatly shortened, and execution of JOBs in the mast node system can be made more efficient and faster.

また、ノードの転送制御部において、MPI_ALL_REDUCE、MPI_REDUCE命令時のCPUとの通信を行うため、ソフトウェア(SW)として、従来技術の延長線上(かつソフトウェア処理が減る)形で、機能を実現しているので、修正が容易に対応でき、ソフトウェア資産を有効に活用することができる。   In addition, in the node transfer control unit, functions are realized as software (SW) on the extension line of the prior art (and software processing is reduced) in order to communicate with the CPU at the time of MPI_ALL_REDUCE and MPI_REDUCE instructions. Therefore, correction can be easily handled and software assets can be used effectively.

次に、本発明の他の実施例について説明する。本発明の第2の実施例として、その基本的構成は上記の通りであるが、クロスバースイッチ20のデータ通知フラグレジスタ22についてさらに工夫が施されている。なお、ノードは、図1の前記実施例と同一構成とされる。   Next, another embodiment of the present invention will be described. As a second embodiment of the present invention, the basic configuration is as described above, but the data notification flag register 22 of the crossbar switch 20 is further devised. The node has the same configuration as that of the embodiment shown in FIG.

図3は、本発明の第2の実施例の構成を示す図である。図3において、データ通知フラグレジスタ22は、JOBIDごとに、Max/Sumデータ通知カウンタ28を備えることで、図1に示したように、フラグを持つ場合よりも、ハードウェア量を削減し、ほぼ同様な機能を実現する。   FIG. 3 is a diagram showing the configuration of the second exemplary embodiment of the present invention. In FIG. 3, the data notification flag register 22 includes a Max / Sum data notification counter 28 for each JOBID, thereby reducing the amount of hardware compared to the case of having a flag as shown in FIG. A similar function is realized.

本実施例では、マスク設定時に、図1の前記実施例のように、演算に関与しないノードのビットを1にする代わりに、演算に関与する(対象となる)ノード数をカウンタに設定する。例えば10個のノードに演算指示を行う場合、Max/Sumデータ通知カウンタを10とする。   In this embodiment, at the time of mask setting, instead of setting the bit of the node not involved in the operation to 1 as in the embodiment of FIG. 1, the number of nodes involved in the operation (target) is set in the counter. For example, when a calculation instruction is given to 10 nodes, the Max / Sum data notification counter is set to 10.

また、特に制限されないが、Max/Sumデータ通知カウンタ28としてダウンカウンタを用いた場合、JOBIDの演算が実行されるたびに、Max/Sumデータ通知カウンタ28を減算していき、Max/Sumデータ通知カウンタ28のカウント値が0になったときに、終了とみなして、出力を各ノードに通知するように変更する。なお、ダウンカウンタを用いた場合と比較して、ハードウェア量は多くなるが、Max/Sumデータ通知カウンタ28の構成を変え、設定値を格納するレジスタと別に、加算するカウンタを設け、終了を判定する回路を備えて構成するようにしてもよい。   Further, although not particularly limited, when a down counter is used as the Max / Sum data notification counter 28, the Max / Sum data notification counter 28 is subtracted every time the JOBID calculation is executed, and the Max / Sum data notification is performed. When the count value of the counter 28 becomes 0, it is regarded as the end, and the output is changed to notify each node. Although the amount of hardware increases compared to the case where a down counter is used, the configuration of the Max / Sum data notification counter 28 is changed, and a counter for adding is provided separately from the register for storing the set value. You may make it comprise the circuit to determine.

このように、本実施例では、データ通知フラグレジスタをカウンタという構成で実現しているので、ハードウェア量を削減することができる、という効果が得られる。   Thus, in this embodiment, since the data notification flag register is realized by a configuration called a counter, an effect that the amount of hardware can be reduced is obtained.

以上本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にのみに限定されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。   Although the present invention has been described with reference to the above-described embodiments, the present invention is not limited to the configurations of the above-described embodiments, and various modifications that can be made by those skilled in the art within the scope of the present invention. Of course, including modifications.

本発明の一実施例の構成を示す図である。It is a figure which shows the structure of one Example of this invention. (A)、(B)は本発明の一実施例の動作を説明するための図である。(A), (B) is a figure for demonstrating operation | movement of one Example of this invention. 本発明の第2の実施例の構成を示す図である。It is a figure which shows the structure of the 2nd Example of this invention. (A)、(B)は従来のマルチノードシステムのJOB実行動作を説明するための図である。(A), (B) is a figure for demonstrating the JOB execution operation | movement of the conventional multinode system.

符号の説明Explanation of symbols

10 ノード
11 CPU
12 転送制御部
13 専用命令待ち合わせバッファ
14 マスク情報作成部
15 通知命令作成部
16 データ受信部
17 データ送信部
18 返却データJID比較部
19 他の命令発行機構
20 クロスバースイッチ
22 データ通知フラグレジスタ
23 通知受信格納バッファ
24 Max/Sum演算部
25 演算結果格納バッファ
26 終了通知部
28 Max/Sumデータ通知カウンタ
10 nodes 11 CPU
DESCRIPTION OF SYMBOLS 12 Transfer control part 13 Dedicated command waiting buffer 14 Mask information preparation part 15 Notification instruction preparation part 16 Data reception part 17 Data transmission part 18 Return data JID comparison part 19 Other instruction issue mechanism 20 Crossbar switch 22 Data notification flag register 23 Notification Reception storage buffer 24 Max / Sum calculation unit 25 Calculation result storage buffer 26 End notification unit 28 Max / Sum data notification counter

Claims (29)

複数のノードと、クロスバースイッチとを備え、
前記クロスバースイッチは、複数のノードのうちのリクエスト元のノードからの要求を受け、他のノードに対して、前記要求に対応した演算指示を、ブロードキャスト通信で分配する手段と、
前記演算指示が分配されたノードで実行された演算結果を集めて演算する演算手段と、
前記演算手段での演算結果を、少なくとも前記リクエスト元のノードに通知する手段と、
を備えている、ことを特徴とする情報処理システム。
With multiple nodes and crossbar switches,
The crossbar switch receives a request from a request source node among a plurality of nodes, and distributes calculation instructions corresponding to the request to other nodes by broadcast communication;
Calculation means for collecting and calculating the calculation results executed at the nodes to which the calculation instructions are distributed;
Means for notifying at least the request source node of the result of the calculation by the calculation means;
An information processing system comprising:
前記クロスバースイッチは、前記演算手段での演算結果を、ブロードキャスト通信で、複数のノードに通知する、ことを特徴とする請求項1記載の情報処理システム。   The information processing system according to claim 1, wherein the crossbar switch notifies a plurality of nodes of a calculation result of the calculation means by broadcast communication. 前記各ノードは、前記クロスバースイッチから受け取った演算結果が、自ノードで発行した命令に対応する演算結果であるか否か確認し、自ノードで要求したものでない場合には、前記クロスバースイッチから受け取った演算結果を廃棄する手段を備えている、ことを特徴とする請求項2記載の情報処理システム。   Each node checks whether or not the operation result received from the crossbar switch is an operation result corresponding to an instruction issued by the own node, and if it is not requested by the own node, the crossbar switch 3. The information processing system according to claim 2, further comprising means for discarding the calculation result received from. 前記クロスバースイッチにおいて、前記演算手段は、前記ノードから集めた演算結果が1つになるまで演算を行う制御を行う、ことを特徴とする請求項1又は2記載の情報処理システム。   3. The information processing system according to claim 1, wherein, in the crossbar switch, the calculation unit performs control to perform calculation until the calculation result collected from the node becomes one. 4. 前記クロスバースイッチは、前記ノードから受け取った演算結果を格納し前記演算手段に供給する記憶手段、及び、前記演算手段から出力される演算結果を記憶する記憶手段が、前記要求に対応したIDにしたがったアドレスにデータを記憶管理する、ことを特徴とする請求項4記載の情報処理システム。   In the crossbar switch, a storage unit that stores the calculation result received from the node and supplies the calculation result to the calculation unit, and a storage unit that stores the calculation result output from the calculation unit have an ID corresponding to the request. 5. The information processing system according to claim 4, wherein the data is stored and managed at an address according to the address. 演算結果を命令種に応じて、要求元のノードのCPUのほか、全ノードのCPUへ返却する、ことを特徴とする請求項1記載の情報処理システム。   2. The information processing system according to claim 1, wherein the operation result is returned to the CPUs of all nodes in addition to the CPU of the requesting node according to the instruction type. 前記各ノードは、それぞれ、CPUと転送制御部とを備え、
前記転送制御部は、前記CPUから発行されたMPI(メッセージ・パッシング・インタフェース)専用命令と、その関連情報を格納する専用命令待合せバッファと、
前記クロスバースイッチに対して、演算に使用せず演算結果の待ち合わせを行わないノードを指定するマスク情報を通知するマスク情報作成部と、
前記CPUからの通知専用命令を受け、前記クロスバースイッチに対して送信する通知命令を生成する通知命令作成部と、
前記クロスバースイッチから通知された演算結果が、自ノードのCPUが発行した命令に対応するものであるか判定し、自ノードのCPUが発行した命令に対応する場合、演算結果を前記CPUに通知し、発行した命令に対応しない場合には、廃棄する制御を行う返却データ比較部と、
を備えている、ことを特徴とする請求項1又は2記載の情報処理システム。
Each of the nodes includes a CPU and a transfer control unit,
The transfer control unit includes an MPI (Message Passing Interface) dedicated command issued from the CPU and a dedicated command queuing buffer for storing related information;
A mask information creation unit for notifying the crossbar switch of mask information for designating a node that is not used for computation and does not wait for computation results; and
A notification command generating unit that receives a notification dedicated command from the CPU and generates a notification command to be transmitted to the crossbar switch;
It is determined whether the calculation result notified from the crossbar switch corresponds to the instruction issued by the CPU of the own node. When the calculation result corresponds to the instruction issued by the CPU of the own node, the calculation result is notified to the CPU. However, if it does not correspond to the issued command, a return data comparison unit that performs control to discard,
The information processing system according to claim 1, further comprising:
前記クロスバースイッチは、データ通知フラグレジスタと、演算部と、終了通知部と、ノードからの通知データを格納する通知受信格納バッファ及び演算結果データを格納する演算結果格納バッファよりなるデータ格納バッファを備え、
前記クロスバースイッチにおいて、前記データ通知フラグレジスタには、前記リクエスト元のノードから受け取ったマスク情報が設定され、
リクエスト元ノードからの演算実行指示を受けブロードキャスト通信により、複数のノードに対して演算実行を通知し、
演算実行した複数のノードにおいて、通知専用命令が前記各ノードのCPUから送られてきた時に、前記各ノードから演算結果が、前記クロスバースイッチの前記演算部に通知され、
前記クロスバースイッチにおいて、前記演算部では、各ノードの通知命令作成部からの通知を受け取り、前記データ通知フラグレジスタの設定により、各ノード間の演算を実行し、
前記演算部において、前記データ通知フラグレジスタの設定にしたがい、演算実行する全てのノード間の演算が終了すると、前記終了通知部は、演算結果を、前記複数のノードにブロードキャスト通知する、ことを特徴とする請求項7記載の情報処理システム。
The crossbar switch has a data storage buffer comprising a data notification flag register, a calculation unit, an end notification unit, a notification reception storage buffer for storing notification data from a node, and a calculation result storage buffer for storing calculation result data. Prepared,
In the crossbar switch, the data notification flag register is set with mask information received from the request source node,
In response to an operation execution instruction from the requesting node, broadcast execution is notified to multiple nodes by broadcast communication.
When a notification-dedicated instruction is sent from the CPU of each node in the plurality of nodes that have performed the calculation, the calculation result is notified to the calculation unit of the crossbar switch from each node,
In the crossbar switch, the calculation unit receives a notification from the notification instruction creation unit of each node, and executes a calculation between the nodes by setting the data notification flag register,
According to the setting of the data notification flag register in the calculation unit, when the calculation between all the nodes performing the calculation is completed, the completion notification unit broadcasts the calculation result to the plurality of nodes. The information processing system according to claim 7.
前記データ通知フラグレジスタが、要求に関係付けられるジョブのID(「JOBID」という)毎に設けられ、前記複数のノードの個数分のビット数を有するレジスタを備え、
前記演算部は、前記データ通知フラグレジスタの前記ジョブに対応する前記レジスタのビットに第1の値がある限り、前記ビットに対応するノードからの通知データの待ち合わせをして演算を行うように制御する、ことを特徴とする請求項8記載の情報処理システム。
The data notification flag register is provided for each job ID (referred to as “JOBID”) related to a request, and includes a register having a bit number corresponding to the number of the plurality of nodes,
The arithmetic unit controls so as to wait for notification data from a node corresponding to the bit and perform an operation as long as the bit of the register corresponding to the job of the data notification flag register has a first value. The information processing system according to claim 8, wherein:
演算のリクエスト元ノードから、分配されたノードでの演算が始まる前に、ジョブで使用しないノードの演算結果を待ち合わせしないために、前記データ通知フラグレジスタにマスク情報の設定が通知され、
前記データ通知フラグレジスタの対応するレジスタにマスク情報として、無効ノードビットに第2の値が設定される、ことを特徴とする請求項9記載の情報処理システム。
The calculation request source node is notified of the setting of mask information in the data notification flag register so as not to wait for the calculation result of the node not used in the job before the calculation at the distributed node starts.
The information processing system according to claim 9, wherein a second value is set as an invalid node bit as mask information in a corresponding register of the data notification flag register.
前記データ通知フラグレジスタにおいて、前記ノードからの通知データの到着の完了により、前記ジョブに対応するレジスタのノードに対応するビットが第2の値に設定される、ことを特徴とする請求項9記載の情報処理システム。   10. The bit corresponding to the node of the register corresponding to the job is set to a second value in the data notification flag register upon completion of arrival of notification data from the node. Information processing system. 前記通知受信格納バッファ及び前記演算結果格納バッファとが、ジョブを識別するジョブIDに応じてバッファ内アドレスが管理される、ことを特徴とする請求項8記載の情報処理システム。   9. The information processing system according to claim 8, wherein the notification reception storage buffer and the calculation result storage buffer manage addresses in the buffer according to a job ID for identifying a job. 前記演算部は、前記データ通知フラグレジスタの設定により、各ノード間の演算を実行し、前記演算部は、演算の都度、前記演算結果格納バッファにジョブIDとともに演算結果を渡し、指定したジョブIDのアドレスにデータを格納する、ことを特徴とする請求項8記載の情報処理システム。   The calculation unit executes a calculation between the nodes by setting the data notification flag register. The calculation unit passes a calculation result together with a job ID to the calculation result storage buffer every time the calculation is performed, and specifies a specified job ID. 9. The information processing system according to claim 8, wherein the data is stored at an address of the information processing system. 前記終了通知部は、前記データ通知フラグレジスタがもつ、ジョブIDに対応するレジスタのビットが全て第2の値の場合、出力通知を有効とし、前記演算部での演算完了とともに、ブロードキャストで全ノードに対して最終結果を通知する制御を行う、ことを特徴とする請求項8記載の情報処理システム。   The end notification unit, when all the bits of the register corresponding to the job ID included in the data notification flag register have the second value, validates the output notification, and broadcasts all the nodes by broadcasting when the calculation unit completes the calculation. 9. The information processing system according to claim 8, wherein control for notifying a final result is performed. 前記専用命令待ち合わせバッファには、前記MPI専用命令の実行に関連するジョブのIDと、返却先情報と、MPI専用命令の発行元ノードであることを示す命令発行元フラグをオンにして保存され、
前記返却データ比較部は、前記専用命令待合せバッファの中に、ジョブ毎に指定されたIDが、前記クロスバースイッチから受け取ったジョブIDと等しいものがあるかを確認し、等しいものが存在する場合には、さらに、前記専用命令待ち合わせバッファ内に格納されている命令発行元フラグの情報を参照し、命令発行元フラグより、当該ノードが命令発行元でなければ、前記クロスバースイッチより通知された返却情報、および専用命令待合せバッファの格納情報を廃棄し、命令発行元であれば、前記CPUに、クロスバースイッチからの演算結果を返却し、前記専用命令待合せバッファの情報のみ廃棄する、ことを特徴とする請求項7記載の情報処理システム。
The dedicated instruction queuing buffer stores an ID of a job related to execution of the MPI dedicated instruction, return destination information, and an instruction issuer flag indicating that it is an issuer node of the MPI dedicated instruction.
The return data comparison unit checks whether there is an ID specified for each job in the dedicated command waiting buffer that is equal to the job ID received from the crossbar switch. In addition, referring to the information of the instruction issuer flag stored in the dedicated instruction waiting buffer, the instruction issuer flag notifies the crossbar switch if the node is not the instruction issuer. If the return information and the information stored in the dedicated instruction waiting buffer are discarded, and if it is an instruction issuer, the calculation result from the crossbar switch is returned to the CPU, and only the information of the dedicated instruction waiting buffer is discarded. The information processing system according to claim 7, wherein:
前記データ通知フラグレジスタは、ジョブIDごとに、カウンタを備え、演算の対象となるノード数を前記カウンタに設定し、
ジョブIDに対応して前記演算部で演算が実行されるたびに、対応する前記カウンタをカウントダウンしていき、カウント値が0になったときに、終了とみなして、前記終了通知部が演算結果を各ノードに通知する、ことを特徴とする請求項8記載の情報処理システム。
The data notification flag register includes a counter for each job ID, sets the number of nodes to be calculated in the counter,
Each time an operation is performed in the operation unit corresponding to the job ID, the corresponding counter is counted down, and when the count value becomes 0, it is regarded as an end, and the end notification unit outputs the operation result. The information processing system according to claim 8, wherein each node is notified.
前記データ通知フラグレジスタは、ジョブIDごとに、カウンタを備え、
ジョブIDに対応して前記演算部で演算が実行されるたびに、対応する前記カウンタをカウントアップしていき、カウント値が演算の対象となるノード数に達したときに、終了とみなして、前記終了通知部が演算結果を各ノードに通知する、ことを特徴とする請求項8記載の情報処理システム。
The data notification flag register includes a counter for each job ID,
Each time an operation is performed in the operation unit corresponding to a job ID, the corresponding counter is counted up, and when the count value reaches the number of nodes to be calculated, it is regarded as an end, The information processing system according to claim 8, wherein the end notification unit notifies the operation result to each node.
複数のノードと、クロスバースイッチとを備えたマルチノードシステムのジョブ実行方法であって、
前記各ノードは、CPUと転送制御部を有し、
リクエスト元ノードの前記転送制御部が、前記CPUから発行されたMPI(メッセージ・パッシング・インタフェース)専用命令を受け取り、専用命令待合せバッファに情報を格納する工程と、
前記リクエスト元ノードの転送制御部が、前記クロスバースイッチに対して、無効とするノードを指定するマスク情報を通知する工程と、
前記クロスバースイッチが、データ通知フラグレジスタにマスク情報を設定する工程と、
前記クロスバースイッチがブロードキャスト通信により、全ノードに対して演算実行指示を通知する工程と、
演算実行を行った各ノードにおいて、通知専用命令が前記CPUから送られてきた時に、演算結果を、前記クロスバースイッチの演算部に通知する工程と、
前記クロスバースイッチにおいて、前記演算部は、各ノードの通知命令作成部からの通知を受け取り、データ通知フラグレジスタの設定により、各ノード間の演算を実行し、演算実行する全てのノード間の演算が終了すると、演算結果を、全ノードにブロードキャスト通知する工程と、
を含む、ことを特徴とするマルチノードシステムのジョブ実行方法。
A job execution method for a multi-node system having a plurality of nodes and a crossbar switch,
Each of the nodes has a CPU and a transfer control unit,
The transfer control unit of the request source node receives an MPI (Message Passing Interface) dedicated instruction issued from the CPU and stores information in a dedicated instruction queuing buffer;
A step in which the transfer control unit of the request source node notifies the crossbar switch of mask information for designating an invalid node;
The crossbar switch sets mask information in a data notification flag register;
The crossbar switch notifying a calculation execution instruction to all nodes by broadcast communication;
In each node that has performed computation, when a notification-only instruction is sent from the CPU, a step of notifying the computation result of the crossbar switch to the computation unit;
In the crossbar switch, the calculation unit receives a notification from the notification command generation unit of each node, executes a calculation between the nodes according to the setting of the data notification flag register, and performs a calculation between all the nodes performing the calculation When is finished, a step of broadcasting the calculation result to all nodes;
A job execution method for a multi-node system, comprising:
各ノードでは、専用命令待合せバッファのジョブ毎に指定されたジョブIDのアドレスに格納される命令発行元フラグの情報を参照し、命令発行元ノードであるか否かを確認し、命令発行元フラグが発行元であることを示していない場合、前記クロスバースイッチからの返却情報を廃棄し、発行元であれば、前記CPUにその情報を返却する、ことを特徴とする請求項18記載のマルチノードシステムのジョブ実行方法。   Each node refers to the instruction issuer flag information stored in the address of the job ID specified for each job in the dedicated instruction queuing buffer, confirms whether it is an instruction issuer node, and determines the instruction issuer flag. 19. The multi-purpose device according to claim 18, wherein the return information from the crossbar switch is discarded if it is not an issuer, and the information is returned to the CPU if it is an issuer. Node system job execution method. クロスバースイッチに接続するノードであって、
CPUと転送制御部を備え、
前記転送制御部は、前記CPUから発行された転送専用命令とその関連情報を格納する専用命令待合せバッファと、
前記クロスバースイッチに対して、演算に使用せず演算結果の待ち合わせを行わないノードを指定するマスク情報を通知するマスク情報作成部と、
前記CPUからの通知専用命令を受け、前記クロスバースイッチに送信する通知命令を生成する通知命令作成部と、
前記クロスバースイッチから通知された演算結果が、自ノードのCPUが発行した命令に対応するものであるか判定し、発行した命令に対応しない場合に、廃棄する制御を行う返却データ比較部と、
を備えている、ことを特徴とするノード。
A node connected to the crossbar switch,
CPU and transfer control unit,
The transfer control unit includes a dedicated command queuing buffer for storing a dedicated transfer command issued from the CPU and related information;
A mask information creating unit for notifying the crossbar switch of mask information for designating a node that is not used for computation and does not wait for computation results; and
A notification command generating unit that receives a notification dedicated command from the CPU and generates a notification command to be transmitted to the crossbar switch;
It is determined whether the calculation result notified from the crossbar switch corresponds to an instruction issued by the CPU of its own node, and when it does not correspond to the issued instruction, a return data comparison unit that performs discard control,
A node characterized by comprising:
複数のノードに接続するクロスバースイッチであって、
データ通知フラグレジスタと、
演算部と、
終了通知部と、
ノードからの通知データを格納する通知受信バッファと、演算結果データを格納する演算結果格納バッファよりなるデータ格納バッファを備え、
前記要求元のノードからマスク情報を受け取り、前記データ通知フラグレジスタに設定し、
前記要求元のノードからの要求を受けて、ブロードキャスト通信により、複数のノードに対して演算実行を通知し、
演算実行した複数のノードにおいて、通知専用命令が前記ノードのCPUから送られてきた時に、演算結果が、前記クロスバースイッチの前記演算部に通知され、
前記演算部では、各ノードの通知命令作成部からの通知を受け取り、前記データ通知フラグレジスタの設定により、各ノード間の演算を実行し、
前記演算部で演算実行する全てのノード間の演算が終了すると、前記終了通知部は、演算結果を、全ノードにブロードキャスト通知する、ことを特徴とするクロスバースイッチ。
A crossbar switch connected to multiple nodes,
A data notification flag register; and
An arithmetic unit;
An end notification section;
A notification reception buffer for storing notification data from the node, and a data storage buffer including a calculation result storage buffer for storing calculation result data,
Receive mask information from the requesting node, set in the data notification flag register,
In response to a request from the requesting node, broadcast operation is notified to a plurality of nodes by broadcast communication,
When a notification-dedicated instruction is sent from the CPU of the node in the plurality of nodes that have performed the calculation, the calculation result is notified to the calculation unit of the crossbar switch,
In the calculation unit, the notification from the notification instruction creation unit of each node is received, and the calculation between the nodes is executed by setting the data notification flag register,
The crossbar switch, wherein when the calculation between all the nodes that are executed by the calculation unit is completed, the completion notification unit broadcasts the calculation result to all the nodes.
前記データ通知フラグレジスタが、ジョブID毎に設けられ、前記複数のノード数分のビットをもつレジスタを備え、
前記レジスタの各ビットに第1の値がある限り、前記演算部は、前記ノードからのデータを待ち合わせして演算を行い続けるように制御する、ことを特徴とする請求項21記載のクロスバースイッチ。
The data notification flag register is provided for each job ID, and includes a register having bits corresponding to the number of nodes.
The crossbar switch according to claim 21, wherein as long as each bit of the register has a first value, the arithmetic unit controls to wait for data from the node and continue to perform arithmetic operations. .
演算のリクエスト元ノードから各ノードの演算が始まる前に、ジョブで使用しないノードの演算結果を待ち合わせしないために、前記データ通知フラグレジスタにマスク設定が通知され、前記データ通知フラグレジスタの対応するレジスタにマスク情報として、ジョブで使用しないノードに対応するビットが、無効ノードビットとして、第2の値に設定される、ことを特徴とする請求項21又は22記載のクロスバースイッチ。   Before the calculation of each node starts from the calculation request source node, in order not to wait for the calculation result of the node not used in the job, the mask setting is notified to the data notification flag register, and the corresponding register of the data notification flag register 23. The crossbar switch according to claim 21, wherein a bit corresponding to a node that is not used in a job is set to a second value as an invalid node bit as mask information. 前記データ通知フラグレジスタには、ノードからの演算データの到着の完了で、前記ジョブに対応するレジスタのノードに対応するビットが第2の値に設定される、ことを特徴とする請求項21又は22記載のクロスバースイッチ。   The bit corresponding to the node of the register corresponding to the job is set to the second value in the data notification flag register upon completion of the arrival of the operation data from the node. 22. A crossbar switch according to 22. 前記通知受信格納バッファと演算結果格納バッファとは、ジョブを識別するジョブIDに応じて、データを格納するバッファ内アドレスが管理される、ことを特徴とする請求項21記載のクロスバースイッチ。   The crossbar switch according to claim 21, wherein the notification reception storage buffer and the operation result storage buffer manage addresses in the buffer for storing data in accordance with a job ID for identifying a job. 前記演算部は、前記データ通知フラグレジスタの設定により、各ノード間の演算を実行し、
前記演算部は、前記演算結果格納バッファにジョブIDとともに演算結果を渡し、指定したジョブIDのアドレスにデータを格納する、ことを特徴とする請求項25記載のクロスバースイッチ。
The calculation unit performs calculation between the nodes by setting the data notification flag register,
26. The crossbar switch according to claim 25, wherein the calculation unit passes a calculation result together with a job ID to the calculation result storage buffer, and stores data at an address of a designated job ID.
前記終了通知部は、前記データ通知フラグレジスタがもつ、ジョブIDに対応するレジスタのビットが全て第2の値の場合、出力通知を有効とし、前記演算部での演算完了とともに、ブロードキャスト通信で全ノードに対して最終結果を通知する制御を行う、ことを特徴とする請求項21記載のクロスバースイッチ。   The completion notification unit validates the output notification when all the bits of the register corresponding to the job ID of the data notification flag register have the second value, and completes the calculation by the calculation unit and broadcast communication. The crossbar switch according to claim 21, wherein control for notifying a node of a final result is performed. 前記データ通知フラグレジスタは、ジョブIDごとに、カウンタを備え、演算の対象となるノード数を前記カウンタに設定し、
ジョブIDに対応して、前記演算部で演算が実行されるたびに、対応する前記カウンタをカウントダウンしていき、カウント値が0になったときに、終了とみなして、前記終了通知部が、演算結果を各ノードに通知する、ことを特徴とする請求項21記載のクロスバースイッチ。
The data notification flag register includes a counter for each job ID, sets the number of nodes to be calculated in the counter,
Corresponding to the job ID, each time an operation is performed by the operation unit, the corresponding counter is counted down, and when the count value becomes 0, the end notification unit The crossbar switch according to claim 21, wherein the calculation result is notified to each node.
前記データ通知フラグレジスタは、ジョブIDごとに、カウンタを備え、
ジョブIDに対応して前記演算部で演算が実行されるたびに、対応する前記カウンタをカウントアップしていき、カウント値が演算の対象となるノード数に達したときに、終了とみなして、前記終了通知部が演算結果を各ノードに通知する、ことを特徴とする請求項21記載のクロスバースイッチ。
The data notification flag register includes a counter for each job ID,
Each time an operation is performed in the operation unit corresponding to a job ID, the corresponding counter is counted up, and when the count value reaches the number of nodes to be calculated, it is regarded as an end, The crossbar switch according to claim 21, wherein the end notification unit notifies each node of a calculation result.
JP2005099577A 2005-03-30 2005-03-30 Information processing system and JOB execution method Expired - Fee Related JP4336894B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005099577A JP4336894B2 (en) 2005-03-30 2005-03-30 Information processing system and JOB execution method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005099577A JP4336894B2 (en) 2005-03-30 2005-03-30 Information processing system and JOB execution method

Publications (2)

Publication Number Publication Date
JP2006277635A true JP2006277635A (en) 2006-10-12
JP4336894B2 JP4336894B2 (en) 2009-09-30

Family

ID=37212290

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005099577A Expired - Fee Related JP4336894B2 (en) 2005-03-30 2005-03-30 Information processing system and JOB execution method

Country Status (1)

Country Link
JP (1) JP4336894B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010095476A1 (en) * 2009-02-18 2010-08-26 日本電気株式会社 Processor and data collection method
US10496592B2 (en) 2014-12-26 2019-12-03 Fujitsu Limited System and method to effectively overlap computation and reduction operation of nonblocking collective communication
WO2020084693A1 (en) * 2018-10-23 2020-04-30 富士通株式会社 Computation processing device and computation processing device control method
JP2021501947A (en) * 2017-11-03 2021-01-21 コーヒレント・ロジックス・インコーポレーテッド Memory network processor

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010095476A1 (en) * 2009-02-18 2010-08-26 日本電気株式会社 Processor and data collection method
JP2010191696A (en) * 2009-02-18 2010-09-02 Nec Corp Processor and data collection method
JP4539889B2 (en) * 2009-02-18 2010-09-08 日本電気株式会社 Processor and data collection method
US8688958B2 (en) 2009-02-18 2014-04-01 Nec Corporation System for data collection from processing elements in a SIMD processor
US10496592B2 (en) 2014-12-26 2019-12-03 Fujitsu Limited System and method to effectively overlap computation and reduction operation of nonblocking collective communication
JP2021501947A (en) * 2017-11-03 2021-01-21 コーヒレント・ロジックス・インコーポレーテッド Memory network processor
JP7295104B2 (en) 2017-11-03 2023-06-20 コーヒレント・ロジックス・インコーポレーテッド memory network processor
US11829320B2 (en) 2017-11-03 2023-11-28 Coherent Logix, Incorporated Memory network processor
WO2020084693A1 (en) * 2018-10-23 2020-04-30 富士通株式会社 Computation processing device and computation processing device control method
JPWO2020084693A1 (en) * 2018-10-23 2021-09-02 富士通株式会社 Arithmetic processing unit and control method of arithmetic processing unit
JP7004083B2 (en) 2018-10-23 2022-01-21 富士通株式会社 Arithmetic processing unit and control method of arithmetic processing unit

Also Published As

Publication number Publication date
JP4336894B2 (en) 2009-09-30

Similar Documents

Publication Publication Date Title
US5991797A (en) Method for directing I/O transactions between an I/O device and a memory
EP0325384B1 (en) Data processing and communication
US7287255B2 (en) System and method for dynamic ordering in a network processor
JP3384686B2 (en) Method and apparatus for receiving information from a communication network
WO2017133623A1 (en) Data stream processing method, apparatus, and system
US6697878B1 (en) Computer having a remote procedure call mechanism or an object request broker mechanism, and data transfer method for the same
KR100277167B1 (en) Distributed computing system having a connection network using virtual buses and data communication method for the same
CN102831018B (en) Low latency FIFO messaging system
JPH05153163A (en) Method of routing message and network
JPH1185710A (en) Server device and file management method
JP4336894B2 (en) Information processing system and JOB execution method
EP1650667B1 (en) Apparatus for controlling a multi-processor system, scalable node, scalable multi-processor system, and method of controlling a multi-processor system
JP2014528611A (en) System and method for preventing single point bottlenecks in a transaction middleware machine environment
US20130013892A1 (en) Hierarchical multi-core processor, multi-core processor system, and computer product
US20200097336A1 (en) Lock manager for multi-core architectures
Coady et al. Using embedded network processors to implement global memory management in a workstation cluster
JP3115801B2 (en) Parallel computer system
JP3544140B2 (en) Exclusive control method in distributed object environment
JP7207133B2 (en) Information processing device, synchronization device, and control method for information processing device
JPH07262155A (en) Parallel computer and message broadcasting method
JP5488029B2 (en) Distributed processing system, distributed processing method, and program
Tudruj " Connection by communication" paradigm for dynamically reconfigurable multi-processor systems
JP2004348233A (en) File sharing system, server, and program
Marovac On interprocess interaction in distributed architectures
JPH10507549A (en) Data sharing method with load sharing system and communication system sharing load

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090430

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090602

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090615

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120710

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120710

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130710

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees