JP2005285042A - Data batch transfer method and apparatus - Google Patents
Data batch transfer method and apparatus Download PDFInfo
- Publication number
- JP2005285042A JP2005285042A JP2004101887A JP2004101887A JP2005285042A JP 2005285042 A JP2005285042 A JP 2005285042A JP 2004101887 A JP2004101887 A JP 2004101887A JP 2004101887 A JP2004101887 A JP 2004101887A JP 2005285042 A JP2005285042 A JP 2005285042A
- Authority
- JP
- Japan
- Prior art keywords
- data
- transfer
- nodes
- node
- unit
- 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
Landscapes
- Multi Processors (AREA)
Abstract
Description
本発明はデータ一括転送方法および装置に関し、特に複数のコンピュータ(ノード)を接続して高速データ転送を行いながら計算すると共に1つの命令でノード間の大容量転送を実行可能にする、計算システム又はディスタンス転送によるクラスタ内データを一括転送するデータ一括転送方法および装置に関する。 The present invention relates to a data batch transfer method and apparatus, and more particularly to a calculation system or a computer system that performs calculation while performing high-speed data transfer by connecting a plurality of computers (nodes) and enables execution of large-capacity transfer between nodes with one command. The present invention relates to a data batch transfer method and apparatus for batch transfer of intra-cluster data by distance transfer.
複数のノードに跨る大型計算システムにおいて、処理速度の高速化等のために、並列処理が行われる。ノード間に跨る平行実行プログラムは、主に各ノードの計算フェーズと、ノード間で同期転送する転送フェーズに処理が別れる。急速に向上する計算性能に対して、この転送フェーズの転送時間を軽減することが重要である。 In a large-scale computing system spanning a plurality of nodes, parallel processing is performed in order to increase processing speed. The parallel execution program that spans between nodes is mainly divided into a calculation phase for each node and a transfer phase for synchronous transfer between nodes. It is important to reduce the transfer time of this transfer phase for rapidly increasing computing performance.
特に、科学計算分野(例えば、各種のシミュレーション)においては、主として、
(1)各ノードでの計算に先立ち、あるノードで大配列データを構築し、これを分割して書くノードへ割り当ててデータを各ノードに転送する作業、また最後に逆に転送しデータを統合する作業および
(2)計算フェーズの間の転送フェーズでの転送(隣接する計算領域の境界のデータの加算演算等をするため、各ノード間で転送しあう)
の2種類の転送が発生する。そこで、これらの転送時間を軽減することが求められる。
In particular, in the field of scientific calculation (for example, various simulations)
(1) Prior to the calculation at each node, large array data is constructed at a certain node, this is divided and assigned to the nodes to be written, and the data is transferred to each node. (2) Transfer in the transfer phase during the calculation phase (transfer between each node to perform addition operation of data at the boundary of adjacent calculation areas)
Two types of transfers occur. Therefore, it is required to reduce these transfer times.
斯かる技術分野における従来技術は、種々の技術文献に開示されている。各々ローカルエリアネットワークに接続された複数のCPU(演算処理装置)、データ転送装置および共有メモリを備える複数のクラスタをクラスタ間ネットワークで相互接続するデータ処理装置およびそのデータ処理方法が開示されている(例えば、特許文献1参照。)。また、二次元配列データ内のサブアレイデータ全体をアクセスする場合に、サブアレイデータの要素数に拘らず、総転送用素数をサブアレイデータの要素数で割った分だけデータ転送命令を発行することを不要とし、データ転送時の転送効率を改善する情報処理装置および情報処理システムが開示されている(例えば、特許文献2参照。)。
Conventional techniques in such technical fields are disclosed in various technical documents. A data processing apparatus and a data processing method for interconnecting a plurality of clusters each including a plurality of CPUs (arithmetic processing apparatuses), data transfer apparatuses, and a shared memory connected to a local area network through an inter-cluster network are disclosed ( For example, see
上述の如き従来技術を、図8を参照して説明する。従来技術のデータ(又は情報)処理装置100は、図8の左上に示す如く、それぞれ複数のCPU(図中ではCPと略記する)110、これら複数のCPU110に共通のメモリ120およびRCU(ノード間転送制御ユニット)130を含むノード0乃至ノードnの複数のノードを有する。そして、これら複数のノードを、ノード間スイッチ140により切替選択するように構成され、RCU130単位でノード間転送を実施している。この際の、RCU130から見たメモリ120のメモリアドレスのイメージを、図8中に左下に図示している。
The prior art as described above will be described with reference to FIG. As shown in the upper left of FIG. 8, the prior art data (or information)
次に、図9乃至図11を参照して従来のディスタンス転送を説明する。
図9は ディスタンス転送のイメージ図であり、メモリーメモリ間転送時に各要素のアドレスをルールに従って変更して転送する。図中、BLはローカルノード内主記憶転送開始アドレスを、BLはローカルノード内主記憶転送開始アドレスを、BRはリモートノード内主記憶転送開始アドレスを、FL1は第1ディスタンス転送要素数、FL2は第2ディスタンス転送ブロック数、TLは総転送要素数、DL1はローカルノード第1ディスタンス、DL2はローカルノード第2ディスタンス、DL3はローカルノード第3ディスタンス、DR1はリモートノード第1ディスタンス、DR2はリモートノード第2ディスタンス、DR3はリモートノード第3ディスタンスをそれぞれ示す。
Next, conventional distance transfer will be described with reference to FIGS.
FIG. 9 is an image diagram of distance transfer. When transferring between memories, the address of each element is changed according to a rule and transferred. In the figure, BL is the local node main memory transfer start address, BL is the local node main memory transfer start address, BR is the remote node main memory transfer start address, FL1 is the number of first distance transfer elements, and FL2 is Number of second distance transfer blocks, TL is the total number of transfer elements, DL1 is the first distance of the local node, DL2 is the second distance of the local node, DL3 is the third distance of the local node, DR1 is the first distance of the remote node, and DR2 is the remote node The second distance and DR3 indicate the remote node third distance, respectively.
図10はディスタンス転送の仕組みを説明する原理図であり、連続するアドレスに格納された配列に対して演算を実施し、規則的に点在(アドレスが飛ぶ)する配列を、別の規則に並べ直して転送先に格納するものである。転送元メモリ内の状態と転送先ノードのメモリ内の状態が示されている。ここで、配列の開始アドレスを0x80000として表示している。 FIG. 10 is a principle diagram for explaining the mechanism of distance transfer. An operation is performed on arrays stored at consecutive addresses, and arrays that are regularly scattered (addresses fly) are arranged in another rule. It is corrected and stored in the transfer destination. The state in the transfer source memory and the state in the transfer destination node memory are shown. Here, the start address of the array is displayed as 0x80000.
図11はディスタンス転送の利用方法の説明図である。図9において、各情報が転送指示情報である。このうちローカルノード側の情報が転送元配置情報であり、リモートノード側情報が転送先情報である。図10は、配列の構成とメモリ内の配置イメージを示す。大配列を分割して各ノードで演算するためには、配列中を点在するデータを一定のルールを持ってかき集めて転送し、1つの配列として集めて計算を行う。また、図11に示す如く、上述した分割・転送(図11(A)参照)のみならず、逆方向の転送・統合(図11(B)参照)、圧縮・拡大(図(C11)参照)および転置転送(変形)(図11(D)参照)等の種々の利用が行われる。 FIG. 11 is an explanatory diagram of a method of using distance transfer. In FIG. 9, each piece of information is transfer instruction information. Among these, information on the local node side is transfer source arrangement information, and remote node side information is transfer destination information. FIG. 10 shows a configuration of the array and an arrangement image in the memory. In order to divide a large array and perform calculation at each node, data scattered in the array is collected and transferred with a certain rule, and is collected as one array for calculation. Further, as shown in FIG. 11, not only the above-described division / transfer (see FIG. 11A), but also reverse transfer / integration (see FIG. 11B), compression / enlargement (see FIG. C11). In addition, various uses such as transposition transfer (deformation) (see FIG. 11D) are performed.
図8に示す従来例において、CPU110からもRCU130からもメモリ120には自ノードのメモリ120にしかアクセスすることができない。この条件の中で、並列実行プログラムの転送では、ノードごとの転送の際に競合調停が入ることで、転送時間に該当ノードへの転送待ち時間が加わることになる。特に、複数ノードへの転送を行うノードは、初めに競合調停で転送待ちになってしまうと、後続の転送も一緒に転送待ちとすることになり(所謂ヘッドブロッキング現象)、この競合調停時間が増加するという課題を有する。
In the conventional example shown in FIG. 8, both the
本発明は、従来技術の上述の如き課題に鑑みなされたものであり、クラスタ内の一括転送の機構を持つことにより、並列実行プログラム等でもこの競合調停時間を1回以下に低減し、転送時間を短縮する計算システム、即ちデータ一括転送方法および装置を提供することを主目的とする。また、ディスタンス転送の原理を変更することなく、ソフトウェア制御として実現され、新たな複雑な制御を行うことなく効率的且つ高速でプログラム実行可能にするデータ一括転送方法および装置を提供することを付加的な目的とする。 The present invention has been made in view of the above-described problems of the prior art, and by having a batch transfer mechanism in a cluster, this contention arbitration time can be reduced to one time or less even in a parallel execution program or the like. It is a main object of the present invention to provide a calculation system, that is, a data batch transfer method and apparatus. Further, it is additionally provided to provide a data batch transfer method and apparatus that can be realized as software control without changing the principle of distance transfer and that can execute programs efficiently and at high speed without performing new complicated control. With a purpose.
前述の課題を解決するため、本発明によるデータ一括転送方法および装置は次のような特徴的な構成を採用している。 In order to solve the above-described problems, the data batch transfer method and apparatus according to the present invention employs the following characteristic configuration.
(1)各々複数のCPUおよびメモリを有する複数のノード(コンピュータ)により構成され、前記ノードの前記メモリのデータを一括転送するデータ一括転送方法において、
前記複数のノードの前記全てのメモリのデータをデータストア部の連続したアドレスに一括ストアして一元管理するデータ一括転送方法。
(1) In a data batch transfer method comprising a plurality of nodes (computers) each having a plurality of CPUs and memories, and batch transferring the memory data of the nodes,
A data batch transfer method in which the data of all the memories of the plurality of nodes are collectively stored at consecutive addresses in a data store unit and managed in an integrated manner.
(2)前記ノードを跨るディスタンスが前記ノード内のメモリサイズと定義してディスタンスアクセスを行う上記(1)のデータ一括転送方法。 (2) The data batch transfer method according to (1) above, wherein the distance across the nodes is defined as a memory size in the nodes and distance access is performed.
(3)前記各ノードのデータは、アドレス変換テーブルに基づいて前記データストア部に一括ストアする上記(1)又は(2)のデータ一括転送方法。 (3) The data batch transfer method according to (1) or (2), wherein the data of each node is stored in the data store unit in a batch based on an address conversion table.
(4)各々複数のCPUと該複数のCPUに共通のメモリを有する複数のノード(コンピュータ)を備え、該複数のノードの前記メモリのデータを一括して転送するデータ一括転送装置において、
前記複数のノードの全てのメモリに共通接続された単一のノード間転送制御ユニット(RCU)を備え、該RCUは、前記各ノードのメモリのデータをストアするデータストア部および該データストア部のアドレスを決定するアドレス変換部を備え、前記複数のノードの前記メモリの全てのデータを一括転送するデータ一括転送装置。
(4) In a data batch transfer apparatus that includes a plurality of CPUs and a plurality of nodes (computers) each having a common memory for the plurality of CPUs, and collectively transfers the data in the memories of the plurality of nodes.
A single inter-node transfer control unit (RCU) commonly connected to all the memories of the plurality of nodes, the RCU including a data store unit that stores data of the memory of each node, and the data store unit A data batch transfer device comprising an address conversion unit for determining an address, and batch transferring all data in the memory of the plurality of nodes.
(5)前記アドレス変換部は、前記CPUからの転送指示情報通知部に接続され、それぞれ転送元ノードとアドレスおよび転送先ノードとアドレスが供給されるデータロード部およびデータストア部を備える上記(4)のデータ一括転送装置。 (5) The address conversion unit is connected to the transfer instruction information notification unit from the CPU, and includes a data load unit and a data store unit to which a transfer source node and an address and a transfer destination node and an address are supplied, respectively (4 ) Data batch transfer device.
(6)前記複数のノードを纏めたクラスタを複数設け、該各クラスタの前記RCUに接続されるクラスタ間スイッチを介して前記複数のクラスタが相互接続される上記(4)又は(5)のデータ一括転送装置。 (6) The data according to (4) or (5), wherein a plurality of clusters each including the plurality of nodes are provided, and the plurality of clusters are interconnected via an inter-cluster switch connected to the RCU of each cluster. Batch transfer device.
(7)前記RCUの前記データストア部およびデータロード部は、それぞれデータ蓄積バッファとクラスタ間データ受信部およびデータ蓄積バッファとクラスタ間データ送信部を介して前記クラスタ間スイッチに接続される上記(6)のデータ一括転送装置。 (7) The data store unit and data load unit of the RCU are connected to the intercluster switch via the data storage buffer, the intercluster data receiving unit, the data storage buffer, and the intercluster data transmitting unit, respectively (6 ) Data batch transfer device.
本発明のデータ一括転送方法および装置によると、次の如き実用上の顕著な効果が得られる。即ち、アドレス変換手段を備えて一括転送することにより、クラスタ内又は指定クラスタのノード転送毎に発生する転送競合調停時間を、クラスタ内全ノード転送で1回に時間短縮可能である。また、ソフトウェア命令のインタフェースを変更せずに実現するので、ソフトウェア制御を複雑化せず、転送手続きのソフトウェア制御が複雑化することなくハードウェアの本来の性能を引き出すことが可能である。 According to the data batch transfer method and apparatus of the present invention, the following significant effects can be obtained. In other words, by carrying out batch transfer with the address conversion means, it is possible to reduce the transfer contention arbitration time that occurs for each node transfer within a cluster or for a designated cluster to one time for all node transfers within the cluster. Further, since the software instruction interface is realized without changing, it is possible to bring out the original performance of the hardware without complicating the software control and without complicating the software control of the transfer procedure.
以下、本発明によるデータ一括転送方法および装置の好適実施例の構成および動作を、添付図面を参照して詳細に説明する。 Hereinafter, the configuration and operation of a preferred embodiment of a data batch transfer method and apparatus according to the present invention will be described in detail with reference to the accompanying drawings.
先ず、本発明は、以下の説明から明らかな如く、次に3点に集約できる。第1に、従来は、ノード(コンピュータ)1つ毎に保有するノード間転送制御ユニット(以下、RCUという)を複数のノードに対して1つ持つ(以下、その固まりをクラスタという)構成にし、且つそのRCUにおいて、個々のクラスタ内ノードのメモリ領域を連続アドレスとして、RCUからアクセスできるためのノード間クラスタ内のアドレス変換機構を有する。尚、本明細書中で『クラスタ』とは、各クラスタ内のノードのメモリは、ノード内の各CPUからはアクセス可能であるが、他のノードのCPUからはRCUを介してノード間転送を行い、自ノード内のメモリ上にデータを転送しないとデータを参照不可能な構成とし、各ノードが他のノードのメモリをダイレクトに参照(および更新)することが不可なノードを複数構成させたものを意味する。 First, the present invention can be summarized into three points as will be apparent from the following description. First, conventionally, each node (computer) has a node-to-node transfer control unit (hereinafter referred to as RCU) for a plurality of nodes (hereinafter referred to as a cluster). In addition, the RCU has an address translation mechanism in the inter-node cluster that can be accessed from the RCU using the memory area of each intra-cluster node as a continuous address. In this specification, “cluster” means that the memory of a node in each cluster can be accessed from each CPU in the node, but transfer from one node to another is performed from the CPU of another node via the RCU. Configured so that the data cannot be referred to unless the data is transferred to the memory in the own node, and a plurality of nodes in which each node cannot directly refer to (and update) the memory of the other node are configured. Means things.
第2に、ある1ノードの1CPUから転送命令(1命令)が発行されたときに、上述したアドレス変換機構を介し、CPUの指定するアドレスを変換し、各メモリからデータをロードして連続したデータとしてRCU内に取り込むデータロード機構を有する。そして、このデータロード機能により1カ所に集められたデータを、連続したデータとして一括してCPUの転送指示に従ってアドレスを変換し、各ノードに分かれている各メモリへデータをストア(蓄積)するデータストア機構を有する。 Second, when a transfer instruction (one instruction) is issued from one CPU of a certain node, the address designated by the CPU is converted through the above-described address conversion mechanism, and data is continuously loaded by loading data from each memory. It has a data load mechanism that takes it into the RCU as data. Then, the data collected in one place by this data load function is converted into continuous data in accordance with the transfer instruction of the CPU, and the data is stored (accumulated) in each memory divided into each node. Has a store mechanism.
更に第3に、CPUからの命令である転送指示をディスタンス命令(メモリ上に規則的に点在する配列データをそのアドレス飛びルール〔転送元配列の配置ルールと転送先配列の配置ルール〕で指定することにより、一括ノード間転送する命令)で発行することである。これにより、クラスタ内のノード間に跨るアドレスの飛び幅を新たなディスタンスとして加えた単一ノード間ディスタンス転送のソフトウェア制御でありながら、クラスタ内の全ノード間の転送を一括転送可能にする。 Thirdly, a transfer instruction, which is an instruction from the CPU, is specified by a distance instruction (array data regularly scattered on the memory is specified by its address skip rule [placement rule for transfer source array and placement rule for transfer destination array]). Is issued by a batch command between nodes). As a result, it is possible to perform batch transfer of all nodes in the cluster while performing software control of distance transfer between single nodes in which a jump distance of addresses across nodes in the cluster is added as a new distance.
図1は、本発明のデータ一括転送装置の好適実施例の基本構成を示すブロック図である。図1に示すデータ一括転送装置10は、それぞれ複数のCPU12を含む複数のノート(ノード0〜ノードn)、ノード毎に設けられ、CPUに接続されたメモリ14およびこれら複数のノードの全てのメモリ14に接続されたRCU20により構成される。
FIG. 1 is a block diagram showing the basic configuration of a preferred embodiment of the data batch transfer apparatus of the present invention. The data
そして、RCU20は、図1の右側に示す如く、CPU12からの転送指示情報通知部21、データロード部22、データストア部23、アドレス変換部24およびデータ蓄積バッファ25を含んでいる。ここで、CPUからの転送指示情報通知部21、データロード部22およびデータストア部23は、バスを介して相互接続されている。アドレス変換部24は、CPUからの転送指示情報通知部21から出力を得て、データロード部22およびデータストア部23に出力する。また、データ蓄積バッファ25は、データロード部22およびデータストア部23間に接続されている。
The
このように、データ一括転送装置10は、複数のノードに接続されたRCU20を備え、このRCU20は、アドレス変換部24を有し、複数のノードに接続された複数のCPU12のうちの1ノードに内在するCPUから転送命令(メモリ上に規則的に点在する配列データを、そのアドレス飛びルール〔転送元配列の配置ルールと転送先配列の配置ルール〕で指定することにより、一括ノード間転送する命令)による転送指示情報を受け取る。ノード間転送制御ユニット20の内部では、CPU12からの転送指示情報(転送元配置情報および転送先配置情報が含まれる)により、転送元データを複数のノードから並行して取り込み、またこれを各ノードのメモリ14に配置する。
As described above, the data
次に、上述したデータ一括転送装置10を構成する各部の主要機能を説明する。アドレス変換部24は、CPU12からの転送指示情報の転送元情報に示されたアドレス開始位置およびアドレスの飛び幅等のデータの点在するルールに基づき、これを連続したデータの塊に分解する。更に、実際にどのデータをどのノードのどのアドレスから持ってくるのか示したアドレス変換テーブル(後述する図5参照)により一意に変換し、これを通知する。また、同様にCPU12からの転送指示情報の転送先情報に示されたアドレス開始位置およびアドレスの飛び幅等のデータの点在するルールに基づき、実際にどのデータをどのノードのどのアドレスへ書き込むか一意に変換する機能を有する。これにより、アドレス変換部24は、実際にメモリアクセスするノードおよびそのメモリアドレス(一塊のブロック毎)を特定し、この情報をデータロード部22に伝える。
Next, main functions of each unit constituting the data
データロード部22は、指定されたノードの指定されたメモリアドレス(開始アドレス)にアクセスし、ブロック毎のデータを一括ロードする。データロード部22は、ロードする際にアドレス変換部24で変換されたアドレスの順序を保持し、各ノードから非同期に返却されるデータを、要求したアドレスの順序が保障されるようにデータ蓄積バッファ25への格納を指示する。具体的には、順序のためのシーケンスIDを有し、これをデータ蓄積バッファ25の書き込みアドレスにする等して順序を保障する。データストア部23は、データ蓄積バッファ25からデータを取り出し、通知された転送先配置情報を元にアドレス変換部24が変換した転送先ノードおよび転送先アドレスに従い、指定するノードの指定するアドレス(開始アドレス)にブロック毎のデータを一括ストアする。
The data load
このようにして、本発明のデータ一括転送方法および装置では、ディスタンス命令1命令で複数のノードに点在する配列をクラスタ毎に処理するアドレス変換部24、データロード部22およびデータストア部23を有している。従って、ノード単位の転送に発生する競合調停が、クラスタ単位の1回になるため競合調停時間が減少でき且つディスタンス転送命令に基づき転送を実現することでSW制御を複雑にすることなく一括転送が実現できる。
In this way, in the data batch transfer method and apparatus according to the present invention, the
次に、図2は、図1の具体例としてのノード0〜ノード3の合計4個のノードを束ねたクラスタ構成のブロック図が示されている。図2に示す具体例において、RCU(ノード間転送制御ユニット)20は、複数のノード(ノード0〜ノード3)と接続される。各ノードは、メモリ14および1以上のCPU12で構成される。RCU20は、複数のノードとの接続で各メモリ14とのデータの送受を行う。また、各ノードは、CPU12からメモリ14を経路としてRCU20に情報の通知を行う。ここで、RCU20は、CPUからの転送指示情報通知部21、データロード部22、データストア部23、アドレス変換部24a、24b、データ蓄積バッファ25a、25b、アドレス指示情報バッファ26a、26b、クラスタ間データ送出部27およびクラスタ間データ受信部28を含んでいる。
Next, FIG. 2 shows a block diagram of a cluster configuration in which a total of four nodes of
複数のノードのうちの1ノードに内在するCPU12が、転送命令(メモリ上に規則的に点在する配列データをそのアドレス飛びルールを指定することにより、一括転送命令(図3参照))による転送指示情報を受け取る。CPU12からの転送指示情報通知部21は、転送指示を複数個保持(キューイング)しながら一番古い指示情報から随時、転送元データ配置情報をアドレス変換部24に、転送先データ配置情報をアドレス指示情報バッファ26に通知する。
アドレス変換部24は、予め内部にデータをロードしておき、これを保持するアドレス変換テーブル(図5参照)を持ち、CPU12からの転送指示情報通知部21から通知された転送元データ配置情報をノードとデータの固まり(ブロックという)毎のアドレスに分解し、これをデータロード部22に通知する。データロード部22は、ブロック毎に各ノードのメモリ14内の指定アドレスよりデータをロードし、データをアドレス変換部24からアドレスを通知された順序になるようにデータ蓄積バッファ25に格納する。
The
クラスタ間データ送出部27は、クラスタ間のデータ転送の競合調停を行い、データ転送の制御を行う。データの転送が可能な場合には、アドレス指示情報バッファ26とデータ蓄積バッファ25から各情報およびデータを取り出し、これを転送する。クラスタ内への自クラスタから自クラスタへ転送の場合には、クラスタ間データ受信部28にデータを送信する。クラスタ間データ受信部28は、アドレス指示情報バッファ26とデータ蓄積バッファ25に転送先データ配置情報とデータを格納する。アドレス指示情報バッファ26は、アドレス変換部24に転送先データ配置情報を通知する。アドレス変換部24bは、予め内部にデータをロードしておき、これを保持するアドレス変換テーブル(図5参照)を有し、アドレス指示情報バッファ26から通知された転送先データ配置情報をノードとデータの固まり(ブロック)毎のアドレスに分解し、これをデータストア部23に通知する。データストア部23は、ブロック毎に各ノードのメモリ14内の指定アドレスにデータをストアする。
The inter-cluster
以上、本発明の実施例の構成および各部の機能を詳述したが、図2のCPU12、メモリ14およびクラスタ間スイッチ30は、当業者に周知であり、また本発明とは直接関係しないので、その詳細構成は省略する。尚、上述の実施例では、クラスタは単一であってもよく、複数個存在してもよい。また、CPU12の数も特に制限はない。また、アドレス変換テーブル(図6)は、ページサイズ64MB、主記憶1TB、クラスタ内ノード数4の場合の具体例であるが、これらは1例に過ぎず、これらの数に特に制限はない。主記憶のページ管理については、当業者に周知であり、また本発明とは直接関係しないので、その詳細な構成は省略する。
The configuration of the embodiment of the present invention and the function of each unit have been described in detail. However, the
次に、本発明による新ディスタンス転送の原理を、図3を参照して説明する。従来のディスタンス転送において、ノード内メモリのサイズを1つのディスタンスとして定義して、大きな1枚のメモリの中の一部分が1ノードに割り当てられるイメージで指定ディスタンス毎(即ち、各ノードへの同時アクセス)に一括してデータを転送する。図3では、ノードを跨るディスタンス=ノード内メモリサイズ(1TBと想定)と定義してディスタンスアクセスを行っている。本例では、複数ノードに分散したデータを1ノードに統合している。ここでは、AsubとAは簡単のため一次元配列として説明している。 Next, the principle of the new distance transfer according to the present invention will be described with reference to FIG. In the conventional distance transfer, the size of the memory in the node is defined as one distance, and an image in which a part of one large memory is allocated to one node for each designated distance (ie, simultaneous access to each node) Transfer data in batches. In FIG. 3, distance access is performed by defining distance across nodes = in-node memory size (assuming 1 TB). In this example, data distributed to a plurality of nodes is integrated into one node. Here, Sub and A are described as one-dimensional arrays for simplicity.
図5は、図2中のアドレス変換部24の説明図である。アドレス変換部24は、図5(A)に示す如く、複数の加算器等を含む従来構成のディスタンスアドレス分解回路241およびその出力側に設けられるアドレス変換テーブル242により構成される。図5(B)は、このアドレス変換テーブル242の具体例の説明である。
FIG. 5 is an explanatory diagram of the
次に、図4におけるデータ転送について、図2のシステムの動作を、図6(A)、(B)に示すタイミングチャートを参照して説明する。先ず、ノードのシステム立ち上げ時に、アドレス変換部24にアドレステーブルの書き込みを行う。これは、RCU20の一部へのデータ書き込みという形でCPU12等から値を設定する。このようにして、予め実際の転送に先立って設定される。その後、(1)のタイミングで、CPU12が、ディスタンス転送命令を発行する。この転送命令は、転送指示情報をメモリ14に対して通知する。メモリ14は、これをRCU20に受け渡す。次に、(2)のタイミングで、転送指示情報がRCU20内のCPUからの転送指示情報通知部21に到着する。図4では、Asub_nが隣接する配列Aのサブ空間(Asub_n+1等)のAsub_nに隣接する配列部分を1〜3命令(3次元配列ならば3命令)で一括して隣接ノードに転送することができる。
Next, regarding the data transfer in FIG. 4, the operation of the system in FIG. 2 will be described with reference to timing charts shown in FIGS. First, the address table is written to the
CPUからの転送指示情報通知部21では、転送指示を複数個保持(キューイング)しながら一番古い指示情報から随時、転送指示情報内の転送元データ配置情報をアドレス変換部24に、転送先データ配置情報をアドレス指示情報バッファ26に、(3)のタイミングで通知する。アドレス変換部24は、CPUからの転送指示情報通知部21から通知された転送元データ配置情報を、ディスタンス転送でのアドレス分解回路を動作させることでデータの固まり(ブロック)毎のアドレスに分解し(タイミング4〜7)、これをアドレス変換テーブルで変換することにより、RCU20のポート番号と送出するメモリアクセスリクエストのメモリアドレスおよびデータ長に変換する。変換後は、これをデータロード部22に通知する(タイミング8〜11)。
In the transfer instruction
データロード部22は、ブロック毎に指定されたポートに出力する(タイミング12〜15)。これら各タイミングで戻ってきたデータ(各ノードのメモリ内指定アドレスからのデータ)をそれぞれロードする(タイミング16〜19)。データをアドレス変換部24からアドレスを通知された順序になるようにデータ蓄積バッファ25aに格納する(タイミング20)。データが全て来たか否かを、データ蓄積バッファ25はロードしたデータの個数により判別する。
The data load
次に、データ蓄積バッファ25aにデータが全て揃うと、クラスタ間データ送出部27に転送可能通知が発行される(タイミング21)。これにより、クラスタ間データ送出部27は、クラスタ間のデータ転送の競合調停を行い、データ転送の制御を行う(タイミング22)。データの転送が可能な場合には、アドレス指示情報バッファ26aおよびデータ蓄積バッファ25aから各情報およびデータを取り出し、これを転送する(タイミング23)。クラスタ内への自クラスタから自クラスタへ転送の場合には、クラスタ間データ受信部28にデータを送信する(タイミング24)。
Next, when all the data is collected in the
クラスタ間データ受信部28は、アドレス指示情報バッファ26bおよびデータ蓄積バッファ25bに転送先データ配置情報およびデータを格納する(タイミング25)。アドレス指示情報バッファ26bは、アドレス変換部24bに転送先データ配置情報を通知する(タイミング26)。アドレス変換部24bは、アドレス指示情報バッファ26bから通知された転送先データ配置情報をディスタンス転送でのアドレス分解回路を動作させることでデータの固まり(ブロック)毎のアドレスに分解する(タイミング27〜30)。そして、これをアドレス変換テーブルで変換することにより、RCU20のポート番号と送出するメモリアクセスリクエストのメモリアドレスおよびデータ長に変換する。この変換後は、これをデータストア部23に通知する。データストア部23は、ブロック毎に各ノードのメモリ14内の指定アドレスにデータをそれぞれストアする(タイミング31〜34)。これにより、図4に示す如く、各ノードから転送データが複数ノードから複数ノードに一括して転送される。
The inter-cluster
次に、図7を参照して本発明の第2実施例について説明する。この基本構成は、図2を参照して上述した通りであるが、ディスタンス命令の通知について更に工夫している。実施例として、今まで説明した事例は基本的に転送元クラスタから転送先クラスタ(自クラスタを含む)にデータを転送する形をとり、転送元クラスタのCPU12からの通知で転送を開始する。図7において、CPU12からの転送指示情報通知部21は、別クラスタのCPUからのリクエストを通知するリクエスト転送手段とリクエスト受信手段を持ち、リクエスト受信手段が転送指示情報を受け取ったとき、これをCPU12からの転送指示情報通知部21に通知する。以後、CPU12からの転送指示情報通知部21からの処理は、上述した第1実施例と同様である。
Next, a second embodiment of the present invention will be described with reference to FIG. This basic configuration is as described above with reference to FIG. 2, but further devised for the notification of the distance command. As an embodiment, the examples described so far basically take the form of transferring data from a transfer source cluster to a transfer destination cluster (including its own cluster), and transfer is started by a notification from the
このように、第2実施例では、他クラスタに対してもクラスタ内の一括転送が可能なため、複数のクラスタで構成されるシステムについて、動作を統括する1ノードの1CPUから、全てのクラスタで並列してクラスタ内の一括転送処理を行うことにより、実行時間を更に短縮することが可能である。 As described above, in the second embodiment, batch transfer within a cluster is possible with respect to other clusters. Therefore, in a system composed of a plurality of clusters, from one CPU of one node that supervises operation to all clusters. The execution time can be further shortened by performing batch transfer processing in the cluster in parallel.
図8に、本発明によるデータ一括転送装置10および従来のデータ一括転送装置100を、RCU側から見たメモリアドレスのイメージと共に対比して示す。図8に右側に示す本発明によるデータ一括転送装置10によると、各々複数のCPU12とメモリ14を含む複数のノードの複数のメモリ14に共通のRCU20を使用し、このRCU20からクラスタ間スイッチ30を介して他のクラスタと接続される。従って、クラスタ内をグローバルアドレス化してRCU20から見たメモリアドレスは、点在するアドレスのデータを一定のルールでかき集めて1回の一括転送が可能であることが分かる。
FIG. 8 shows the data
以上、本発明の好適実施例の構成および動作を詳述した。しかし、斯かる実施例は、本発明の単なる例示に過ぎず、何ら本発明を限定するものではないことに留意されたい。本発明の要旨を逸脱することなく、特定用途に応じて種々の変形変更が可能であること、当業者には容易に理解できよう。 The configuration and operation of the preferred embodiment of the present invention have been described in detail above. However, it should be noted that such examples are merely illustrative of the invention and do not limit the invention in any way. Those skilled in the art will readily understand that various modifications and changes can be made according to a specific application without departing from the gist of the present invention.
10 データ一括転送装置
12 CPU
14 メモリ
20 RCU(ノード間転送制御ユニット)
21 CPUからの転送指示情報通知部
22 データロード部
23 データストア部
24 アドレス変換部
25 データ蓄積バッファ
26 アドレス指示情報バッファ
27 クラスタ間データ送出部
28 クラスタ間データ受信部
30 クラスタ間スイッチ
10 Data
14
21 Transfer instruction
Claims (7)
前記複数のノードの前記全てのメモリのデータをデータストア部の連続したアドレスに一括ストアして一元管理することを特徴するデータ一括転送方法。 In a data batch transfer method comprising a plurality of nodes (computers) each having a plurality of CPUs and memories, and batch transferring the memory data of the nodes,
A data batch transfer method characterized in that the data in all the memories of the plurality of nodes are collectively stored in a continuous address of a data store unit and integratedly managed.
前記複数のノードの全てのメモリに共通接続された単一のノード間転送制御ユニット(RCU)を備え、該RCUは、前記各ノードのメモリのデータをストアするデータストア部および該データストア部のアドレスを決定するアドレス変換部を備え、前記複数のノードの前記メモリの全てのデータを一括転送することを特徴とするデータ一括転送装置。 In a data batch transfer device comprising a plurality of CPUs and a plurality of nodes (computers) each having a memory common to the plurality of CPUs, and collectively transferring the data of the memories of the plurality of nodes,
A single inter-node transfer control unit (RCU) commonly connected to all the memories of the plurality of nodes, the RCU including a data store unit that stores data of the memory of each node, and the data store unit A data batch transfer apparatus comprising: an address conversion unit for determining an address; and batch transferring all data in the memory of the plurality of nodes.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004101887A JP4117621B2 (en) | 2004-03-31 | 2004-03-31 | Data batch transfer device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004101887A JP4117621B2 (en) | 2004-03-31 | 2004-03-31 | Data batch transfer device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005285042A true JP2005285042A (en) | 2005-10-13 |
JP4117621B2 JP4117621B2 (en) | 2008-07-16 |
Family
ID=35183311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004101887A Expired - Fee Related JP4117621B2 (en) | 2004-03-31 | 2004-03-31 | Data batch transfer device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4117621B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015116075A1 (en) * | 2014-01-30 | 2015-08-06 | Hewlett-Packard Development Company, L.P. | Copy message from application buffer to send buffer within kernel |
EP3021210A1 (en) | 2014-11-12 | 2016-05-18 | Fujitsu Limited | Information processing apparatus, communication method, communication program and information processing system |
JP2017126237A (en) * | 2016-01-15 | 2017-07-20 | 日本電気株式会社 | Processor and data transfer method |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0737182U (en) * | 1993-12-03 | 1995-07-11 | 一郎 栗原 | Portable medicine box |
-
2004
- 2004-03-31 JP JP2004101887A patent/JP4117621B2/en not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015116075A1 (en) * | 2014-01-30 | 2015-08-06 | Hewlett-Packard Development Company, L.P. | Copy message from application buffer to send buffer within kernel |
US10042682B2 (en) | 2014-01-30 | 2018-08-07 | Hewlett Packard Enterprise Development Lp | Copy message from application buffer to send buffer within kernel |
EP3021210A1 (en) | 2014-11-12 | 2016-05-18 | Fujitsu Limited | Information processing apparatus, communication method, communication program and information processing system |
US9841919B2 (en) | 2014-11-12 | 2017-12-12 | Fujitsu Limited | Information processing apparatus, communication method and information processing system for communication of global data shared by information processing apparatuses |
JP2017126237A (en) * | 2016-01-15 | 2017-07-20 | 日本電気株式会社 | Processor and data transfer method |
US10733128B2 (en) | 2016-01-15 | 2020-08-04 | Nec Corporation | Processor and data transfer method |
Also Published As
Publication number | Publication date |
---|---|
JP4117621B2 (en) | 2008-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7039914B2 (en) | Message processing in network forwarding engine by tracking order of assigned thread in order group | |
US9952975B2 (en) | Memory network to route memory traffic and I/O traffic | |
CN102446158B (en) | Multi-core processor and multi-core processor set | |
EP2159694B1 (en) | Method and device for barrier synchronization, and multicore processor | |
US7802025B2 (en) | DMA engine for repeating communication patterns | |
JPH0581216A (en) | Parallel processor | |
JP2010218364A (en) | Information processing system, and communication control apparatus and method | |
KR102539571B1 (en) | Network-on-chip data processing method and device | |
EP3788493B1 (en) | Data processing network with flow compaction for streaming data transfer | |
CN102446159A (en) | Method and device for managing data of multi-core processor | |
US6092136A (en) | Multi-processor central processing unit | |
EP1508100B1 (en) | Inter-chip processor control plane | |
KR102539572B1 (en) | Network-on-chip data processing method and device | |
JP2731742B2 (en) | Parallel computer with cluster configuration | |
JP4117621B2 (en) | Data batch transfer device | |
KR102539573B1 (en) | Network-on-chip data processing method and device | |
JP2008065478A (en) | Information processor, data transfer method, and program | |
US20090307463A1 (en) | Inter-processor, communication system, processor, inter-processor communication method, and communication method | |
US5860026A (en) | Information processing system for controlling operations of input/output devices of another clusters according to control instructions issued from a cluster | |
KR102539574B1 (en) | Network-on-chip data processing method and device | |
CN114237717A (en) | Multi-core heterogeneous processor on-chip temporary storage dynamic scheduling manager | |
JP2001236335A (en) | Decentralized memory type parallel computer and its data transfer end confirming method | |
JP2006139766A (en) | Information processor | |
KR100978083B1 (en) | Procedure calling method in shared memory multiprocessor and computer-redable recording medium recorded procedure calling program | |
JP2000112912A (en) | Processing system for test and copy against remote memory in distributed memory-type parallel computer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060815 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060901 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061030 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070601 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070730 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20080205 |
|
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: 20080328 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080410 |
|
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: 20110502 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110502 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120502 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |