JP2006277635A - Information processing system and job execution method - Google Patents
Information processing system and job execution method Download PDFInfo
- 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
Links
Images
Abstract
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のリクエスト元ノード101において、CPU11は、MPI_ALL_REDUCE/MPI_REDUCE命令を処理するMPI専用命令を発行する。
In the
同様に、各ノード10iのCPU11は、演算したMax/Sum(最大値/総和)の結果を、マルチノード間を接続するクロスバースイッチ20に通知するために、通知専用命令を発行する。
Similarly, the
リクエスト元ノード101の転送制御部12は、CPU11から発行されたMPI専用命令/通知専用命令を受け取り、MPI専用命令の場合、転送制御部12内の専用命令待合せバッファ(バッファ)13が、この情報を格納し、同時に、転送制御部12内のマスク情報作成部14が、クロスバースイッチ20内のデータ通知フラグレジスタ22に対して、マスク情報を通知し、クロスバースイッチ20内のデータ通知フラグレジスタ22でマスク情報を設定をする(マスク情報の設定については後に詳述される)。
さらに、ブロードキャスト通信により、クロスバースイッチ20を介して、全ノードに対して、Max/Sumの演算実行指示を通知する。その際、MPI_ALL_REDUCE/MPI_REDUCEのどちらの命令実行中かは、各ノード10iのCPU11に通知される。
Furthermore, a Max / Sum calculation execution instruction is notified to all nodes via the
また、同様に、各ノード10iの通知命令作成部15では、ノード10iのCPU11から通知専用命令(CPU11で実行した演算結果を通知するための命令)が送られてきた時に、Max/Sumの結果を、クロスバースイッチ20内のMax/Sum演算部24に通知する。この通知の際、MPI_ALL_REDUCE命令の実行時には、ノード10iのCPU11から、専用待ち合わせバッファ13の具備する命令発行元フラグをセットし、結果値返却CPU情報を格納する。
Similarly, in the notification
クロスバースイッチ20において、データ格納バッファは、データが滞留し、デッドロックになるのを避けるために、JOB識別するシステムにユニークなID(JID)でバッファ内アドレスを管理する機能を持つ。
In the
また、クロスバースイッチ20において、データ通知フラグレジスタ22は、
・各ノードから演算データが送られてきたことや演算完了を管理する演算フラグを格納すると共に、
・ノード101のマスク情報作成部14からの通知により、演算に使用しないノードのフラグをセットする。
In the
-Stores calculation flags for managing calculation data sent from each node and calculation completion,
The notification from the
クロスバースイッチ20において、Max/Sum演算部24は、各ノード10iの通知命令作成部15からの通知を受け取り、データ通知フラグレジスタ22の設定により、各ノード間のMax/Sum演算を実行する。
In the
この際、クロスバースイッチ20において、Max/Sum演算部24は、毎回、演算結果格納バッファ25の指定されたジョブID(JID)のアドレスに、データを格納する。
At this time, in the
クロスバースイッチ20において、終了通知部26は、演算実行する全てのノード間の演算が終了すると、演算完了を検出し、全ノードに対して演算結果をブロードキャスト通知する。
In the
再び、各ノード101、10iの返却データJID比較部18では、専用命令待合せバッファ13のJOB毎に指定されたIDのアドレスに格納される命令発行元フラグの情報を参照し、命令発行元ノードであるか否かを確認する。返却データJID比較部18は、命令発行元フラグが発行元であることを示していない場合、クロスバースイッチ20からの返却情報を廃棄し、一方、発行元であれば、CPU11にその情報を返却する。
Again, the return data
このようにして、複数JOBで、MPI_ALL_REDUCE命令、MPI_REDUCE命令を発行した際に、各ノード10iに、ノード10i内のCPUにMax/Sumの演算をするように指示し、その結果を、クロスバースイッチ20上で、デッドロックを生じさせないように考慮されたハードウェア機構により、Max/Sum演算し、各ノード10iからのコネクションを接続せずに、全ノードを対象としたMax/Sumの演算結果を、全ノード(または発行元ノードにのみ)に返却することができる。
In this way, when the MPI_ALL_REDUCE instruction and the MPI_REDUCE instruction are issued by a plurality of JOBs, each
コネクション型のネットワークのネックとなる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
さらにまた、本発明においては、クロスバースイッチ20から全ノードに結果をブロードキャストし、その通知を、命令種によって選択して、CPU11に伝える転送制御部12を備え、分配フェーズでルートを通知する必要がなくなり、分配フェーズについても、ブロードキャストでのノードの演算開始を指示することが出来る(分配フェーズを簡略化できる)。
Furthermore, in the present invention, it is necessary to provide a
このように、本発明においては、各ノードが、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
図1は、本発明の一実施例のマルチノードシステムの構成を示す図である。図1には、複数のノード101、10i(ノード数がN(ただし、Nは2以上の整数)の場合、iは2〜Nの整数)と、1つのクロスバースイッチ20によるマルチノードシステムが示されており、各ノード101、10iは、同一構成とされ、それぞれが、少なくとも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
複数のノードは、どのノードからも、同様な命令が発行でき処理できる能力をもつが、構成例は説明のため、リクエスト元のノード101からのみ命令が発行されているとして、構成を説明する。 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. .
ノード101、10iは、1つ以上のCPU11、メモリおよび転送制御部12を備えている。
The
図1のリクエスト元ノード101において、CPU11は、MPI_ALL_REDUCE/MPI_REDUCE命令を処理するMPI専用命令を、転送制御部12に対して発行する。
In the
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
また、その他のノード10i(iは2以上の整数)内のCPU11は、CPU11で演算したMax/Sumの結果を、マルチノード間を接続するクロスバースイッチ20に通知するために、通知専用命令を発行する機能を備えている。なお、CPU自体は任意の公知の構成が用いられるが、CPUは、最終的な返却値を演算結果として持つためにその演算実行終了を待ちあわせることになる。CPUが参照するメモリ(不図示)等の構成についても、任意の公知の構成が用いられる。
In addition, the
転送制御部12は、専用命令待ち合わせバッファ13、マスク情報作成部14、通知命令作成部15、データ受信部16、データ送信部17、返却データJID比較部18、既設他命令発行機構19を備えている。なお、既設他命令発行機構19は、MPI専用命令、通知専用命令以外の他の命令の発行を制御するユニットであり、本発明の主題とは直接関係しないため、説明は省略する。
The
また、図1では、動作の説明の容易化のため、リクエスト元ノード101の転送制御部12がマスク情報作成部14を備え、その他の各ノード10iの転送制御部12が通知命令作成部15を備えた構成とされているが、各ノードとも同一構成とされ、マスク情報作成部14、通知命令作成部15を備えている。
Further, in FIG. 1, for ease of explanation of the operation, the
リクエスト元ノード101の転送制御部12は、当該ノード101のCPU11から発行された上記MPI専用命令を受け取り、MPI専用命令の場合、転送制御部12内に具備する専用命令待合せバッファ13に、JOBID(JID)と、返却先情報を格納し、自ノードがMPI専用命令の発行元であることを示す命令発行元フラグをONにして保存する。
リクエスト元ノード101の転送制御部12では、上記MPI専用命令と同時にCPU11から通知されるノード情報(演算を実行するノードの情報)より、マスク情報作成部14にて、クロスバースイッチ20内のデータ通知フラグレジスタ22に対して通知するマスク情報を作成し、データ送信部17より、作成したマスク情報をクロスバースイッチ20に対して通知する。
The
リクエスト元ノード101の転送制御部12のマスク情報作成部14では、命令種1、2や、演算実行する配列情報、JOBIDをその内容としてもつブロードキャスト通信命令を作成し、データ送信部17より、クロスバースイッチ20に対して通知する。
In the mask
なお、ブロードキャスト通信については、クロスバースイッチがもつ公知の機能であり、クロスバースイッチ20を経由し、全ノードのCPUに対して通知される。
Broadcast communication is a known function of the crossbar switch, and is notified to the CPUs of all nodes via the
一方、ノード10iの転送制御部12では、通知専用命令がノード10i内のCPU11から送られてきた時に、通知命令作成部15にて、通知専用命令を送信できる形状(形式)に変え、Max/Sumの演算結果を、データ送信部17から、クロスバースイッチ20内のMax/Sum演算部24に通知する。
On the other hand, in the
この通知の際に、ノード10i内の専用待ち合わせバッファ13に対して、MPI_ALL_REDUCE命令実行時にはCPU11から、JOBIDと返却先情報、および発行元フラグをONにして情報を格納する。
During this notification, the node with respect to 10 i only waiting
各ノード(リクエスト元ノード101、その他のノード10i)の転送制御部12において、クロスバースイッチ20より、Max/Sum演算結果が、データ受信部16を経由して、返却データJID比較部18に通知される。
In the
返却データ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
各ノードの転送制御部12は、クロスバースイッチ20からの通信情報を、データ受信部16で受け取ると、ブロードキャスト通信ならば、無条件で、これをCPU11に通知する。
When the
なお、上記ブロードキャスト通信命令(命令種1、2や、演算実行する配列情報、JOBIDをもつ)は、クロスバースイッチ20を介して、Max/Sumの演算実行のリクエストを各ノード10iのCPU11に通知し、Max/Sumの演算を、各ノードのCPU11が実行する。各ノードのCPU11は、Max/Sumの演算実行後、得られたMax/Sum演算結果を、JOBIDや命令種別とともに、各ノードのCPU11から転送制御部12に、通知専用命令で通知する。
The broadcast communication command (with
次に、本実施例のクロスバースイッチ20について説明する。クロスバースイッチ20は、ブロードキャスト実行制御部とコネクション型転送実行部(いずれも不図示)と、データフラグ通知レジスタ22と、データ格納バッファ(23、25)と、Max/Sum演算部24と、終了通知部26を備えている。
Next, the
クロスバースイッチ20内のデータ通知フラグレジスタ22は、JOBID毎に、Nノード数分のビットをもつレジスタを備え、この各ビットに0がある限り、Max/Sum演算部24では、該当ノードからのデータを待ち合わせして、Max/Sum演算を行い続けるように制御する。
The data
演算のリクエスト元ノード101から各ノードの演算が始まる前に、そのJOBで使用しないノードのMax/Sum演算結果を待ち合わせしないために、データ通知フラグレジスタ22にマスク設定が通知され、これに従い、JOBIDに対応するレジスタ22にマスク情報を設定し(無効ノードに対応する位置のビットに1を立てる)、もしくは、ノードのMax/Sumの演算データ到着の完了で、該ノードに対応する位置のビットが1にセットされる。
Before the requesting
データ格納バッファは、各ノード10iの通知命令作成部15からの通知を受け取り管理するバッファであり、通知受信格納バッファ23と演算結果格納バッファ25を備え、各々のバッファは、JOB識別するシステムにユニークなID(JOBID)によって、データを格納するバッファ内アドレスが管理される(多重実行理機構)。
The data storage buffer is a buffer that receives and manages the notification from the notification
各ノードから通知されたデータは、一旦、通知受信格納バッファ23に格納され、複数のJOBIDの演算結果が同ノードから通知された場合でも、異なるJOBIDのデータは別のアドレスに格納されるため、消えることがなく、かつ、演算優先順序により、可変に、Max/Sum演算部24より読み出しが可能なため、先行する演算データが原因でデッドロックもしくはデータの消失は発生しない。
The data notified from each node is temporarily stored in the notification
Max/Sum演算部24は、各ノード、データ通知フラグレジスタ22の設定により、優先順位を決め、各ノード間のMax/Sum演算を実行する。この際、Max/Sum演算部24は、毎回、データ格納バッファの演算結果格納バッファ25にJOBIDとともに演算結果を渡し、指定したIDのアドレスにデータを格納させる。演算の優先順位の決め方が固定的に、若番のJOBID及びノード番号から実行する方法や、優先順位を可変にして負荷を均等にする等、任意の方法が用いられる。
The Max /
終了通知部26は、演算実行する全てのノード間の演算が終了すると、演算完了を検出し、演算結果を、全ノードにブロードキャスト通知する。
When the calculation between all the nodes that perform the calculation is completed, the
具体的には、データ通知フラグレジスタ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
なお、上記実施例では、返却先は、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
より詳細には、図1のリクエスト元ノード101内において、CPU11は、MPI_ALL_REDUCE/MPI_REDUCE命令を処理するMPI専用命令を転送制御部12に対して発行する。
More specifically, in the requesting
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
次に、リクエスト元ノードの転送制御部12は、CPU11から発行された上記MPI専用命令を受け取り、転送制御部12内に具備する専用命令待合せバッファ13に、JOBIDと返却先情報を格納し、命令発行元フラグをONにして保存する。
Next, the
また、実行するノード情報より、マスク情報作成部14が、クロスバースイッチ20のデータ通知フラグレジスタ22に対して通知するマスク情報を作成し、データ送信部17よりクロスバースイッチ20に対して通知する。
Further, the mask
同様にして、マスク情報作成部14では、命令種1、2や演算実行する配列情報及びJOBIDをもつブロードキャスト通信命令を作成し、データ送信部17より、クロスバースイッチに対して通知する。
Similarly, the mask
クロスバースイッチ20のデータ通知フラグレジスタ22は、通知されたマスク情報により該当JOBIDの該当ノードの各ビット(ビットフラグ)にマスク情報を設定する。
The data
ブロードキャスト通信については、既にクロスバースイッチが従来技術としてもつ機能であるクロスバースイッチの通信機構が動作し、クロスバースイッチ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
図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
これを、データ受信部16はCPU11に通知し、CPU11にてMax/Sumの演算が実行される。各ノードのCPU11でMax/Sumの演算実行後、得られたMax/Sumの演算結果を、JOBIDや命令種別とともに、各ノードのCPU11から転送制御部12に通知専用命令として通知する。
The
図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
より詳細には、演算実行指示を受け取り演算を実行した各ノード内の転送制御部12内に具備する通知命令作成部15は、通知専用命令がCPU11から送られてきた時に、通知情報を作成し、データ送信部よりMax/Sumの結果をクロスバースイッチ20のMax/Sum演算部24に通知する。通知の際に、ノード内の専用待ち合わせバッファ13に対してMPI_ALL_REDUCE命令実行時には、CPU11から、JOBIDと、返却先情報、および、命令発行元フラグをONにして、情報を格納する。
More specifically, the notification
クロスバースイッチ20において、データ格納バッファで、データが滞留しデッドロックになるのを避けるために、JOBを識別するシステムにユニークなID(JOBID)でバッファ内アドレスを管理する機能を持つ。また、データ通知フラグレジスタ22は、各ノードから演算データが送られてきたことや、演算完了を管理する演算フラグ(JOBIDに対応するレジスタ(Nビット)のノードに対応して設けられるビット)を格納すると共に、マスク情報作成部14からの通知により、演算に使用しないノードのフラグをセットする。
The
クロスバースイッチ20のMax/Sum演算部24は、各ノードの通知命令作成部からの通知をデータ送信部経由で受け取り、演算結果格納バッファ(データ格納バッファ)25のJOBIDのアドレスに格納する。
The Max /
クロスバースイッチ20のMax/Sum演算部24は、データ通知フラグレジスタ22の設定により、データ格納バッファより計算中のMax/Sum値及び各ノードのMax/Sum値を取り出し、各ノード間のMax/Sum演算を実行し、この結果を、再び、演算結果格納バッファ(データ格納バッファ)25のJOBIDのアドレスに格納する。これを、ノード数分繰り返し実行し、対象とする全ノードのMax/Sum演算を実行する。
The Max /
この際、Max/Sum演算部24は、毎回、演算結果格納バッファ(データ格納バッファ)25の指定されたIDのアドレスにデータを格納する。
At this time, the Max /
終了通知部26は、演算実行する全てのノード間の演算が終了すると、演算完了を検出し、演算結果を全ノードに通知する(終了通知が出力される際に該当JOBIDアドレスのデータ格納バッファの値はクリアされる)。
When the calculation between all the nodes that perform the calculation is completed, the
各ノードでは、返却データJID比較部18が、クロスバースイッチ20からデータ受信部を通して通信を受け取り通信内容と等しいJIDが、専用命令待合せバッファ13の中にもあるか確認する。等しいものが存在する場合、返却データJID比較部18は、さらに、専用命令待合せバッファ13内に格納されている命令発行元フラグの情報を参照し、命令発行元フラグより発行元でなければ、クロスバースイッチ20より通知された返却情報、及び専用命令待合せバッファ13の格納情報を廃棄し、命令の発行元であれば、該当CPU11に、その情報を返却し、専用命令待合せバッファ13の情報のみ廃棄する。
At each node, the return data
以上のように動作することで、マルチノード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
図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
本実施例では、マスク設定時に、図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.
10 ノード
11 CPU
12 転送制御部
13 専用命令待ち合わせバッファ
14 マスク情報作成部
15 通知命令作成部
16 データ受信部
17 データ送信部
18 返却データJID比較部
19 他の命令発行機構
20 クロスバースイッチ
22 データ通知フラグレジスタ
23 通知受信格納バッファ
24 Max/Sum演算部
25 演算結果格納バッファ
26 終了通知部
28 Max/Sumデータ通知カウンタ
10
DESCRIPTION OF
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:
前記転送制御部は、前記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.
前記演算部は、前記データ通知フラグレジスタの前記ジョブに対応する前記レジスタのビットに第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.
前記返却データ比較部は、前記専用命令待合せバッファの中に、ジョブ毎に指定された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に対応して前記演算部で演算が実行されるたびに、対応する前記カウンタをカウントダウンしていき、カウント値が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に対応して前記演算部で演算が実行されるたびに、対応する前記カウンタをカウントアップしていき、カウント値が演算の対象となるノード数に達したときに、終了とみなして、前記終了通知部が演算結果を各ノードに通知する、ことを特徴とする請求項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:
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.
前記レジスタの各ビットに第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. .
前記演算部は、前記演算結果格納バッファにジョブ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に対応して、前記演算部で演算が実行されるたびに、対応する前記カウンタをカウントダウンしていき、カウント値が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に対応して前記演算部で演算が実行されるたびに、対応する前記カウンタをカウントアップしていき、カウント値が演算の対象となるノード数に達したときに、終了とみなして、前記終了通知部が演算結果を各ノードに通知する、ことを特徴とする請求項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.
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)
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 |
-
2005
- 2005-03-30 JP JP2005099577A patent/JP4336894B2/en not_active Expired - Fee Related
Cited By (11)
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 |