JP2006058956A - マルチノードコンピュータシステム、マルチノード間におけるデータの転送方法及びプログラム - Google Patents
マルチノードコンピュータシステム、マルチノード間におけるデータの転送方法及びプログラム Download PDFInfo
- Publication number
- JP2006058956A JP2006058956A JP2004237368A JP2004237368A JP2006058956A JP 2006058956 A JP2006058956 A JP 2006058956A JP 2004237368 A JP2004237368 A JP 2004237368A JP 2004237368 A JP2004237368 A JP 2004237368A JP 2006058956 A JP2006058956 A JP 2006058956A
- Authority
- JP
- Japan
- Prior art keywords
- node
- transfer
- communication
- data
- inter
- 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.)
- Pending
Links
Images
Landscapes
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
【課題】 高スループットのノード間通信を維持しつつ、システム構築にかかるコストを削減するとともにノード間通信のための専用ソフトウェアをそのまま使用しつつ低コストでマルチノードコンピュータシステムを構築又は変更できる。
【解決手段】 本発明によるマルチノードコンピュータシステムは、ノード間通信に汎用I/Oインターフェースを使用し、各ノード10に存在する通信制御装置105がデータ転送のための専用ソフトウェアで作成された転送コマンドTCを解釈して汎用I/Oインターフェースの制御を行い、ノード間のデータの転送を行う。
【選択図】 図1
【解決手段】 本発明によるマルチノードコンピュータシステムは、ノード間通信に汎用I/Oインターフェースを使用し、各ノード10に存在する通信制御装置105がデータ転送のための専用ソフトウェアで作成された転送コマンドTCを解釈して汎用I/Oインターフェースの制御を行い、ノード間のデータの転送を行う。
【選択図】 図1
Description
本発明は、ノードとノード間通信制御装置を、汎用インタフェースを使用して接続するマルチノードコンピュータシステムに関する。
近年、演算速度及び記憶容量が増加したスーパーコンピュータは、取扱うデータ量が膨大であるため、複数のスーパーコンピュータをノード間接続装置で接続し、クラスタ化したマルチノードコンピュータシステムを構築することで、より大容量のデータを使用した大規模計算を実現している。
そのため、コンピュータ間において、大容量のファイルデータを高速に転送する必要性が高まってきている。
従来のマルチノードコンピュータシステムは、ノード間通信接続装置として超高速の専用クロスバスイッチを用い、ノード間のデータや信号の転送を制御するための通信制御装置やI/Oインタフェースは、専用に設計される。又、マルチノードシステム全体での実効的な演算性能を確保するためには、ノード間のデータ転送経路であるスイッチ部に対しては短TATかつ高スループットでなければならないという要求があり、実装が非常に高コストとなり、システムの構築や変更のたびに莫大な費用と労力を要している(非特許文献1参照)。
このため、専用に設計されたノード間の転送機構を使用するマルチノードコンピュータシステムよりも、実効性能を犠牲にして比較的安価にマルチノード間転送を実現するものとしてmyrinetがある。しかし、これを利用すると、低コストのシステムに変更しようとする場合、マルチノード転送制御のソフトウェアやそれらを使用するアプリケーションを書き換える必要がでてくるため、従来のソフトウェア資産をそのまま使用することができなくなってしまう。
鈴木勝巳他5名、「SX−6のノード間ネットワーク・出力系ハードウェア」、NEC技報、日本電気株式会社、2002年9月25日、第55巻、第9号、p16−19
鈴木勝巳他5名、「SX−6のノード間ネットワーク・出力系ハードウェア」、NEC技報、日本電気株式会社、2002年9月25日、第55巻、第9号、p16−19
本発明の目的は、システム構築のコストを低減した、高スループットのマルチノードコンピュータシステムを提供することにある。
本発明の他の目的は、ノード間の接続に汎用インタフェースを使用しても、ノード間通信のための専用ソフトウェアとの互換性を保つことができるマルチノードコンピュータシステムを提供することにある。
以下に、[発明を実施するための最良の形態]で使用される番号・符号を括弧付きで用いて、[課題を解決するための手段]を説明する。この番号・符号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]の記載との対応関係を明らかにするために付加されたものであるが、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明によるマルチノードコンピュータシステムは、データを保持するコンピュータ装置である複数のノード(10)と、複数のノード(10)に接続され、ノード間のデータの転送における交換処理を行なうスイッチ(20)と、スイッチ(20)に接続され、ノード間の通信調停を行うノード間通信制御装置(30)とを備え、ノード(10)は、他ノード(10)とデータの転送を行なうための通信制御を実行する通信制御部(105)と、通信制御部(105)に接続され、他ノードとの間の通信パスを形成する複数の汎用I/Oインタフェース(106)とを備え、通信制御部(105)は、他ノードにデータを転送するための転送コマンド(TC)を汎用I/Oインタフェース(105)に対応したコマンドに変更して他ノード(10)との間でデータの転送を行なう。
ノード間通信制御装置(30)は、スイッチ(20)と接続され、ノード(10)との通信パスを形成する汎用I/Oインタフェース(304)と、汎用I/Oインタフェース(304)に接続され、ノード間の通信調停を実行するノード間通信調停部(303)を備え、ノード(10)との通信を実行する際、ノード間通信調停部(303)は、汎用I/Oインタフェース(304)に対応する通信形式に変更してノード(10)との通信を行なう。
通信制御部(105)は、転送コマンド(TC)に基づき、汎用I/Oインタフェース(106)に対応する制御コマンド(CC)を作成し、I/Oインタフェース(106)を介して制御コマンド(CC)をノード間通信制御装置(30)に送信して転送路を確保するための調停を要求し、ノード間通信制御装置(30)から転送路の使用許可を受信するとノード内のデータに汎用I/Oインタフェース(106)に対応する制御情報を付加し、I/O汎用インタフェース(106)を介して他ノード(10)にデータを転送する。
通信制御部(105)は、配下の汎用I/Oインタフェース(106)の中の1つの汎用I/Oインタフェース(106)を用いて、ノード間通信制御装置(30)との間の制御用の通信パスを形成し、他の汎用I/Oインタフェース(106)を使用して、データの転送を行なう。
本発明のマルチコンピュータシステムによれば、高スループットのノード間通信を維持しつつ、システム構築にかかるコストを削減できる。
又、ノード間通信のための専用ソフトウェアをそのまま使用しつつ低コストでマルチノードコンピュータシステムを構築又は変更できる。
以下、添付図面を参照して、本発明によるマルチノードコンピュータシステムの実施の形態を説明する。
図1から図3を参照して本発明によるマルチノードコンピュータシステムの第1の実施の形態を説明する。
図1に、本発明によるマルチノードコンピュータシステムの構成を示す。
本発明によるマルチノードコンピュータシステムは、複数のノード10と、複数のノード10に接続され、ノード間通信の交換処理を行なうファイバチャネルスイッチ20と、ファイバチャネルスイッチ20に接続され、ノード間通信の通信制御を行なうノード間通信制御装置30とを備える。又、汎用I/Oインタフェースを使用して、ノード10とファイバチャネルスイッチ20との間の物理的接続を行ない、ノード間のデータ転送を実行する。
尚、複数のノード10は、それぞれ、ノード10−1、ノード10−2・・ノード10−nと表記するが、区別して使用しない場合は、ノード10と表記する。又、各ノード10を構成する装置も同様に、ノード10に付記した追番に対応する追番を付記し、区別しない場合は、前記追番は付けない(例:ノード10−1のノードCPU101−1)。
ノード10は、大容量のデータを取扱うサーバや、スーパーコンピュータ等のコンピュータ装置であり、ノード内の各装置を制御するノードCPU101、ノード主メモリ102、入出力制御部103、通信制御部105を備え、入出力制御部103の配下にはチャネルカード104が、通信制御部105の配下にはノードファイバチャネルカード106が、PCIなどの汎用IOバスを介して、複数接続されている。
ノード間におけるデータ転送の際、ノードCPU101は、通信制御部105に対し転送のための転送コマンドTCを発行する。又、転送要求に基づき、ノード主メモリ102から所要のデータを抽出し、あるいは、受信するデータをノード主メモリ102に記憶させる。
データ転送の際にノードCPU101から発行される転送コマンドTCの一例を図2に示す。図2(a)はライト動作である場合の転送コマンドTCである。転送元であるノード10のノードCPU101が発行するライトリクエストの転送コマンドTCは、転送先ノード10へのライトであることを示すコマンドヘッダ、転送先のノード番号、転送先のノード主メモリ102上のアドレス、転送データ長、ライトデータが格納されているノード10のノード主メモリ102上のアドレスを含む。
図2(b)はリクエスト動作である場合の転送コマンドTCである。転送要求を受けたノード10のノードCPU101が発行するリードリクエストの転送コマンドTCは、他ノード10からのリードであることを示すコマンドヘッダ、転送先ノード番号、転送先のノード主メモリ102上のアドレス、転送データ長、リードデータが格納されているノード10のノード主メモリ102上のアドレスを含む。
ノード主メモリ102は、大容量のデータを保持する他、ノードCPU101で使用する各種プログラムが記録されている記憶装置である。
入出力制御部103は、ノードCPU101からの指令により、チャネルカード104を介して接続する各種装置(サーバやストレージ装置等)とのデータや信号の入出力を制御する。
チャネルカード104は、入出力制御部103から制御を受け外部装置との間に通信パスを形成し、外部装置との通信に使用するインタフェースカードである。
通信制御部105は、ノード間の通信専用に用いられる通信制御装置であり、ノード間にけるデータ転送の際、ノードCPU101から受け取る転送コマンドTCに基づき、ノード間通信制御装置30と制御用の通信を確保する為のノードファイバチャネルカード106Aを指定し、転送経路の調停を行なう為の制御コマンドCCをノード間通信制御装置30に送信して、転送経路の調停を行う。制御コマンドCCは図3に示すように、調停要求を示すコマンドヘッダと、転送先ノードの番号と、転送元ノードの番号である。
又、制御用に使用するノードファイバチャネルカード106A以外のノードファイバチャネルカード106Bを用いてノード間のデータの転送を実施する。
通信制御部105は、ノードCPU101が専用プロオグラムを用いて発行する命令に基づき、I/Oインタフェースカードの規格に応じた制御を行うため、ノードの転送プログラムに応じた専用のインタフェースを作成する必要がなく、様々な規格のインタフェースに応じて通信制御部105に変更することで、安価にマルチノードコンピュータシステムのインタフェースを変更することができる。
ノードファイバチャネルカード106は、ノード間の高速のデータ転送に適したデータ転送方式であるファイバチャネルに使用される汎用I/Oインタフェースカードであり、通信制御部105の制御を受け、他ノード10との間、又はノード間通信制御装置との間の通信パスを形成する。
このように、ノードに接続される他装置との通信に利用する入出力制御部103とノード間の通信を制御する通信制御部105とを分離することで、ノード間におけるデータ転送の通信方式を変更する際、入出力制御部103に影響を与えることがないため、柔軟且つ安価にデータ転送における通信方式を変更することができる。
ファイバチャネルスイッチ20は、ファイバチャネルを利用した通信回線における汎用スイッチであり、ノード間のデータ転送の際、転送データTDに含まれる転送先ノード番号に基づきデータの交換処理を行なう。
マルチノードシステムにおけるノード間通信を制御するノード間通信制御装置30は、CPU301、メモリ302、ノード間調停部303、ファイバチャネルカード304を備え、それぞれ汎用IOバスで接続される。
CPU301は、ノード間通信制御装置30全体を制御する。各ノードからの転送経路の調停要求に対してノード間通信調停部303を制御して転送経路の確保や開放を実行させる。
メモリ302は、マルチノードコンピュータシステムにおけるノード間の転送経路の使用状況を確認する為のテーブルを保持しており、テーブルには、転送元のノード番号と転送先のノード番号と、転送先の使用を示すビジーフラグの入力欄がある。転送経路を確保する場合、転送元のノード番号と転送先のノード番号にそれぞれビジーフラグをセットする。
ノード間通信調停部303は、各ノード10からファイバチャネルカード304を介して受信される調停要求に応じて、CPU301からの指令に基づき転送元のノード10に対し通信許可を通知するともに、メモリ302内のテーブルの転送先ノード10にビジーフラグをつけて、転送経路の確保を行う。又、データ転送の終了の際、転送経路の開放を行う。転送経路が使用中の場合は、転送元のノード10に転送を保留させる。
ファイバチャネルカード304は、ファイバチャネルに使用される汎用I/Oインタフェースカードであり、ノード間通信調停部303の制御を受けてファイバチャネルスイッチ20を介して各ノード10との通信を行なう。
尚、本実施の形態では、通信方式にファイバチャネルを利用したマルチノードコンピュータシステムを一例として示すが、通信制御部105や、ノード間通信調停部303が他のI/Oインタフェースに対応した制御方式を採用すれば、イーサネット(登録商標)等、ファイバチャネル以外の通信方式を利用したシステムとしても構わない。通信方式としてイーサネット(登録商標)を採用する場合、使用する汎用I/Oインタフェースカードはイーサネットカード(イーサネットは登録商標)を、汎用スイッチは、イーサネットスイッチ(イーサネットは登録商標)を使用する。これにより、データの転送量やネットワークの使用頻度、あるいはシステム構築のための費用対効果に応じてマルチノードコンピュータシステムを簡易に変更することが出来る。
図5及び図6に本発明によるマルチノードコンピュータシステムの動作の流れを示す。
図5にノード10−1からノード10−2にデータを転送する(ライト動作)場合の本発明によるマルチノードコンピュータシステムの動作を示す。
ノード10−1のノードCPU101−1から他ノード10−2のノード主メモリ102−2へデータライトを行う場合、図2(a)に示す転送コマンドTCを通信制御部105−1に発行する。(ステップSA2)
ノードCPU101−1が発行するライトリクエストの転送コマンドTCは、転送先ノード10−2へのライトであることを示すコマンドヘッダ、転送先ノード10−2の番号、転送先であるノード10−2のノード主メモリ102−2上のアドレス、転送データ長、ライトデータが格納されている転送元ノード10−1のノード主メモリ102−1上のアドレスを含む。
通信制御部105−1は、ノードCPU101−1から受け取った転送コマンドTCを解釈し、ノード10−1からノード10−2へのデータ転送経路を占有するための調停要求である制御コマンドCCを作成する(ステップSA4)。制御コマンドCCは図3に示されるような、調停要求(この場合、転送経路確保)であることを示すヘッダ、転送元ノード番号、すなわち自ノード番号(ここでは1)、転送先ノード番号(ここでは2)を含む。
次に、通信制御部105−1は、配下のノードファイバチャネルカード106−1の中からノードファイバチャネルカード106−1Aを一つ指定し、ノード間通信制御装置30との制御用の通信パスを確保させ、制御コマンドCCをノード間通信制御装置30に送出して調停要求を行う(ステップSA6)。
ノード間通信制御装置30のファイバチャネルカード304は、調停要求である制御コマンドCCを受信すると、ノード間通信調停部303に転送する(ステップSA8)。ノード間通信調停部303は転送された調停要求の転送先ノード番号(この場合、ノード番号2)を参照し、メモリ302にあるテーブル内のノード番号2にビジーフラグが有るか無いかを確認することで、転送先のノード10−2が、別のノード間通信を実行中であるか否かを確認する(ステップSA10)。
ノード10−2がノード間通信を実行中でなければ通信許可を要求元であるノード10−1に返却する(ステップSA12)。転送先ノード10−2がノード間通信を実行中である場合には、その転送の終了通知を受信するまでノ−ド10−1への通信許可を保留する(ステップSA13)。ノード間通信調停部303はノード10−1への通信許可を返却する際、転送元であるノード10−1と転送先であるノード10−2について、ノード10−1から通信終了が通知されるまで、他のノード10からのノード10−1あるいはノード10−2に対する通信の調停要求は保留しなければならないので、メモリ302にあるテーブルのノード10−1及びノード10−2のノード番号にビジーフラグをセットし、転送路を確保する(ステップSA14)。
ノード10−1の通信制御部105−1は、ノードファイバチャネルカード106−1Aを経由して通信許可を受信すると(ステップSA16)、ノードCPU101から発行された転送コマンドTCで示される主メモリ102−1上のアドレスから転送データ長のライトデータを読み出し(ステップSA18)、転送先ノード10−2に対する制御情報を付加して、転送データTDを作成する(ステップSA20)。
制御情報を付加された転送データTDを図4(a)に示す。転送データTDは、ライトリクエストであることを示すコマンドヘッダ、転送先ノード10−2の番号、転送元ノード10−1の番号、転送先のノード主メモリ102−2上のアドレス、転送データ長、ライトデータを含む。
通信制御部105−1は、データ転送用のノードファイバチャネルカード106−1としてノードファイバチャネルカード106−1Bを指定し、ノードファイバチャネルカード106−1Bを通信パスとしてノード10−2への転送データTDを送出する(ステップSA22)。
ノード10−1からの転送データTDを受け取ったファイバチャネルスイッチ20は、転送データTDに含まれる転送先ノード番号2に基づき、転送データTDをノード10−2に送出する(ステップSA24)。転送データTDの転送開始前にノード10−1とノード10−2間の転送経路はロックしているので、ファイバチャネルスイッチ20上で他の転送データTDと衝突を起こすことない。従って、固定時間でデータ転送が行われることが期待できる。
ノード10−2のノードファイバチャネルカード106−2はファイバチャネルスイッチ20からの転送データTDを受信すると通信制御部105−2に転送する(ステップSA26)。通信制御部105−2はこの転送データTDのライトを示すコマンドヘッダを参照して、ライトデータをノード主メモリ102−2の指定されたアドレスに記録する(ステップSA28)。
ノード10−1の通信制御部105−1は、転送データTDの送信を終了すると、ノードファイバチャネルカード106−1Aを介してノード間通信制御装置30に対し転送終了を示す制御コマンドCCを送信する(ステップSA30)。転送終了を示す制御コマンドCCは、調停要求(転送終了)であることをしめすヘッダ、転送元のノード番号、すなわち自ノード10−1の番号(ここでは1)、転送先のノード10−2の番号(ここでは2)を含む。
ノード間通信制御装置30のファイバチャネルカード304は転送終了を告げる制御コマンドCCを受信すると、ノード間通信調停部304に転送する。ノード間通信調停部は制御コマンドCCの転送元ノード10−1及び転送先ノード10−2のビジーフラグをリセットし転送経路を開放する。
次にノード10−1がノード10−2のノード主メモリ102−2内のデータをリードする動作(リードリクエストに対する動作)について図6を参照して説明する。
図6にノード10−1からノード10−2にデータを転送する(リードリクエスト動作)場合の本発明によるマルチノードコンピュータシステムの動作を示す。
ノード10−1のノードCPU101は、他のノード10−2のノード主メモリ102−2からデータのリード(読み出し)を行う場合、図2(b)に示されるような転送コマンドTCをノード10−1の通信制御部105−1に発行する(ステップSB2)。
リードリクエストの場合の転送コマンドTCは、他ノード10−2からのリードであることを示すコマンドヘッダ、転送先であるノード10−2の番号、転送元であるノード10−1の番号、リードデータのあるノード主メモリ102−2上のアドレス、転送データ長、リードデータを格納するノード10−1のノード主メモリ102−1上のアドレスを含む。
通信制御部105−1は、ノードCPU101−1から受け取った転送コマンドTCを解釈し、ノード10−1からノード10−2へのデータ転送経路を占有するための調停要求である制御コマンドCCを作成する(ステップSB4)。制御コマンドCCは、図3に示されるような、調停要求(この場合、転送経路確保)であることを示すヘッダ、転送元ノード番号、すなわち自ノード番号(ここでは1)、転送先ノード番号(ここでは2)を含む。
次に、通信制御部105−1は、配下のノードファイバチャネルカード106−1の中からノードファイバチャネルカード106−1Aを一つ指定し、ノード間通信制御装置30との制御用の通信パスを確保させ、制御コマンドCCをノード間通信制御装置30に送出して調停要求を行う(ステップSB6)。
ノード間通信制御装置30のファイバチャネルカード304は、調停要求である制御コマンドCCを受信すると、ノード間通信調停部303に転送する(ステップSB8)。ノード間通信調停部303は転送された調停要求の転送先ノード番号(この場合、ノード番号2)を参照し、メモリ302にあるテーブル内のノード番号2にビジーフラグが有るか無いかを確認することで、転送先のノード10−2が、別のノード間通信を実行中であるか否かを確認する(ステップSB10)。
ノード10−2がノード間通信を実行中でなければ通信許可を要求元であるノード10−1に返却する(ステップSB12)。転送先ノード10−2がノード間通信を実行中である場合には、その転送の終了通知を受信するまでノ−ド10−1への通信許可を保留する(ステップSB13)。ノード間通信調停部303はノード10−1への通信許可を返却する際、転送元であるノード10−1と転送先であるノード10−2について、ノード10−1から通信終了が通知されるまで、他のノード10からのノード10−1あるいはノード10−2に対する通信の調停要求を保留するため、メモリ302にあるテーブルのノード10−1及びノード10−2のノード番号にビジーフラグをセットし、転送路を確保する(ステップSB14)。
ノード10−1の通信制御部105−1は、ノードファイバチャネルカード106−1Aを経由して通信許可を受信すると(ステップSB16)、リードリクエストである転送コマンドTCに転送先ノード10−2に対する制御情報を付加し、リードリクエストRRを作成する(ステップSB18)。
制御情報を付加された転送データTDを図4(b)に示す。転送データTDは、リードリクエストであることを示すコマンドヘッダ、転送先ノード10−2の番号、転送元ノード10−1の番号、リードデータのある転送先のノード主メモリ102−2上のアドレス、転送データ長を含む。
通信制御部105−1は、データ転送用のノードファイバチャネルカード106−1としてノードファイバチャネルカード106−1Bを指定し、ノードファイバチャネルカード106−1Bを通信パスとしてノード2へのリードリクエストRRを送出する(ステップSB20)。
ノード10−1からのリードリクエストRRを受け取ったファイバチャネルスイッチ20は、リードリクエストRRに含まれる転送先ノード番号2に基づき、リードリクエストRRをノード10−2に送出する(ステップSB22)。リードリクエストRRの転送開始前にノード10−1とノード10−2間の転送経路はロックしているので、ファイバチャネルスイッチ20上で他の転送データTDと衝突を起こすことない。従って、固定時間でデータ転送が行われることが期待できる。
ノード10−2のノードファイバチャネルカード106−2はファイバチャネルスイッチ20からのリードリクエストRRを受信すると通信制御部105−2に転送する(ステップSB24)。通信制御部105−2はこのリードリクエストRRのリードを示すコマンドヘッダを参照して、転送データ長分のリードデータをノード10−2のノード主メモリ102−2の指定されたアドレスから抽出し(ステップSB26)、転送先ノード10−1に対する制御情報を付加して、転送データTDを作成する(ステップSB28)。
制御情報を付加された転送データTDは、ライト動作の場合と同じく図4(a)に示す構成であり、ライトリクエストであることを示すコマンドヘッダ、転送先ノード10−1の番号、転送元ノード10−2の番号、転送先のノード主メモリ102−1上のアドレス、転送データ長、ライトデータ(ステップSB26で抽出されたリードデータ)を含む。
通信制御部105−2は、データ転送用のノードファイバチャネルカード106−2としてノードファイバチャネルカード106−2Bを指定し、ノードファイバチャネルカード106−2Bを通信パスとしてノード10−2への転送データTDを送出する(ステップSB30)。
ノード10−2からの転送データTDを受け取ったファイバチャネルスイッチ20は、転送データTDに含まれる転送先ノード番号1に基づき、転送データTDをノード10−2に送出する(ステップSB32)。
ノード10−1のノードファイバチャネルカード106−1Bはファイバチャネルスイッチ20からの転送データTDを受信すると通信制御部105−1に転送する(ステップSB34)。通信制御部105−1はこの転送データTDのライトを示すコマンドヘッダを参照して、ライトデータをノード10−1のノード主メモリ102−1の指定されたアドレスに記録する(ステップSB36)。
リードリクエストRRの転送元であるノード10−1の通信制御部105−1は、転送データTDの受信を終了すると、ノードファイバチャネルカード106−1Aを介してノード間通信制御装置30に対し転送終了を示す制御コマンドCCを送信する(ステップSB38)。転送終了を示す制御コマンドCCは、調停要求(転送終了)であることをしめすヘッダ、転送元のノード番号、すなわち自ノード10−1の番号(ここでは1)、転送先のノード10−2の番号(ここでは2)を含む。
ノード間通信制御装置30のファイバチャネルカード304は転送終了を告げる制御コマンドCCを受信すると、ノード間通信調停部304に転送する。ノード間通信調停部は制御コマンドCCの転送元ノード10−1及び転送先ノード10−2のビジーフラグをリセットし、転送経路を開放する(ステップSB40)。
以上のように、本発明によるマルチノードコンピュータシステムは、ノード間のデータ転送のためにノードCPU101が発行する転送コマンドTCをハードウェアである通信制御部105が解釈して汎用IO機器で構成されたノードファイバチャネルカード106を制御し、又、ノード間通信装置30が受信する転送経路の調停要求をノード間調停部で解釈し、汎用IO機器で構成されたファイバチャネルスイッチを制御して転送経路の確保や開放を行なう。このため、ノードCPU101がデータ転送に用いる専用プログラムを変更する事なく、汎用インタフェースを用いてノード間通信ができるため、専用に製作されたソフトウェア資産を生かしつつマルチノードコンピュータシステムを低コストで構成、あるいは、変更することができる。
又、ノード10に接続されるストレージやサーバ等の外部装置との通信を制御する機構と、ノード間におけるデータ転送に使用する通信を制御する機構、すなわち入出力制御部103と通信制御部105を分けることにより、従来のシステムに比べ、システム構築の柔軟性を向上することができる。
以下、図7及び図8を参照して、本発明によるマルチノードコンピュータシステムの第2に実施の形態の説明をする。
図7に、第2の実施の形態における本発明によるマルチノードコンピュータシステムの構成を示す。
第2の実施の形態における本発明によるマルチノードコンピュータシステムは、複数のノード10と、複数のノード10に接続され、ノード間通信の交換処理を行なうファイバチャネルスイッチ20とを備え、ノード間通信の通信制御を行なうノード間通信調停部303及びファイバチャネルカード304を、いずれかのノード10、例えばノード10−nの入出力制御部103−nの配下に配置する。
ファイバーチャネルのネットワーク上に配置されたノード間通信制御装置30ではなく、ノード間通信調停部が配置されたノード10−nが、ノード間通信制御装置30の役割を兼ねているということで、データ転送の動作は、第1の実施例と同じである。この際、CPU301、メモリ302の動作を、それぞれノードCPU101−n、ノード主メモリ102−nが実行する。
このように、本実施例では、ノード間通信制御装置30の機能を既存のノードに持たせているので、第1の実施の形態と比べてさらにコストを削減できるという効果が得られる。
又、ノード10−nにおいて、ノード間通信調停部303及びファイバチャネルカード304が、入出力制御部103に接続されているので、ノード間通信専門に使用される通信制御部105に影響を与えずノード間通信の調停を行なうことが可能となる。
ノード間通信調停部303は、その調停機能を具現できれば、装置でも、プログラムでもあるいは、装置とプログラムの組合せでも構わない。図8に示すように、ノード間通信調停部303をプログラムとして、チャネルカード104のうち一つを通信調停用のインタフェースとして使用することにより、更に安価にマルチノードコンピュータシステムを構成することができる。ただし、ノード間通信の調停処理がソフトウェア化されたために、ノード間通信のオーバーヘッドが若干増大し、実効的な性能は低下する可能性がある。
以上のように、ノード間通信そのものは汎用のインターフェースを使用し、各ノード10に存在する通信制御装置105が、データの転送のための専用ソフトウェアで作成された転送コマンドTCを解釈して汎用IO制御を行う。これにより、ノードCPU101が発行する転送コマンドTCはハードウェアで解釈するためにソフトウェア見えの変更はなくなり、従来のソフトウェア資産を生かしつつ、もっともコストの高いノード間接続機構を汎用インターフェース機器に置き換えて低コストでマルチノードコンピュータシステムを構築可能となる。
10:ノード
101:ノードCPU
102:ノード主メモリ
103:入出力制御部
104:チャネルカード
105:通信制御部
106:ノードファイバチャネルカード
20:ファイバチャネルスイッチ
30:ノード間通信制御装置
301:CPU
302:メモリ
303:ノード間通信調停部
304:ファイバチャネルカード
TC:転送コマンド
CC:制御コマンド
TD:転送データ
RR:リードリクエスト
101:ノードCPU
102:ノード主メモリ
103:入出力制御部
104:チャネルカード
105:通信制御部
106:ノードファイバチャネルカード
20:ファイバチャネルスイッチ
30:ノード間通信制御装置
301:CPU
302:メモリ
303:ノード間通信調停部
304:ファイバチャネルカード
TC:転送コマンド
CC:制御コマンド
TD:転送データ
RR:リードリクエスト
Claims (19)
- データを保持するコンピュータ装置である複数のノードと、
前記複数のノードに接続され、前記ノード間の前記データの転送における交換処理を行なうスイッチと、
前記スイッチに接続され、前記ノード間の通信調停を行うノード間通信制御装置とを備え、
前記ノードは、他ノードと前記データの転送を行なうための通信制御を実行する通信制御部と、前記通信制御部に接続され、前記他ノードとの間の通信パスを形成する複数の汎用I/Oインタフェースとを備え、
前記通信制御部は、前記他ノードに前記データを転送するための転送コマンドを前記汎用I/Oインタフェースに対応したコマンドに変更して前記他ノードとの間で前記データの転送を行なう
マルチノードコンピュータシステム。 - 請求項1に記載のマルチノードコンピュータシステムにおいて、
前記ノード間通信制御装置は、
前記スイッチと接続され、前記ノードとの通信パスを形成する調停用汎用I/Oインタフェースと、
前記調停用汎用I/Oインタフェースに接続され、ノード間の通信調停を実行するノード間通信調停部を備え、
前記ノードとの通信を実行する際、前記ノード間通信調停部は、前記調停用汎用I/Oインタフェースに対応する通信形式に変更して前記ノードとの通信を行なう
マルチノードコンピュータシステム。 - 請求項1又は2に記載のマルチノードシステムにおいて、
前記通信制御部は、前記転送コマンドに基づき、前記汎用I/Oインタフェースに対応する制御コマンドを作成し、前記I/Oインタフェースを介して前記制御コマンドを前記ノード間通信制御装置に送信して転送路を確保するための調停を要求し、前記ノード間通信制御装置から前記転送路の使用許可を受信すると前記ノード内の前記データに前記汎用I/Oインタフェースに対応する制御情報を付加し、前記I/O汎用インタフェースを介して前記他ノードに前記データを転送する
マルチノードコンピュータシステム。 - 請求項1から3いずれか1項に記載のマルチノードコンピュータシステムにおいて、
前記通信制御部は、第1の前記汎用I/Oインタフェースを用いて、前記ノード間通信制御装置に転送路の調停を要求し、第2の前記汎用I/Oインタフェースを使用して、前記データの転送を行なう
マルチノードコンピュータシステム。 - 請求項1から4いずれか1項に記載のマルチノードコンピュータシステムにおいて、
前記ノード間通信制御装置は、転送元の前記ノードから前記制御コマンドを受信すると、前記転送元ノードと転送先の前記ノードとの間の前記転送経路の使用状況を確認し、使用していない場合、前記転送元ノードに対し、通信許可を通知する
マルチノードコンピュータシステム。 - 請求項1から5いずれか1項に記載のマルチノードコンピュータシステムにおいて、
前記転送元ノードの前記通信制御部は、前記転送先ノードとの間のデータの転送が終了すると転送終了通知を前記ノード間通信制御装置に送信し、
前記ノード間通信制御装置は、前記転送終了通知に基づき前記転送路を開放する
マルチノードコンピュータシステム。 - 請求項1から6いずれか1項に記載のマルチノードコンピュータシステムにおいて、
前記ノード間通信制御装置は、前記調停要求に対し、使用していない転送路の使用許可を前記転送元ノードに通知すると同時に前記転送路を確保し、前記転送終了通知を受信するまで、前記転送路とコンフリクトを起こす可能性のある他の前記ノードからの調停要求に対して許可を保留する
マルチノードコンピュータシステム。 - 請求項1から7いずれか1項に記載のマルチノードコンピュータシステムにおいて、
前記転送コマンドには、前記転送元ノードが保有する前記データを前記転送先ノードに記憶させるためのライトリクエストを含み、
前記ライトリクエスト含むコマンドを受信する前記転送先ノードは、転送されるデータを自ノードの主メモリに記録する
マルチノードコンピュータシステム。 - 請求項1から8いずれか1項に記載のマルチノードコンピュータシステムにおいて、
前記転送コマンドには、前記転送先ノードにある前記データを転送元ノードに記憶させるためのリードリクエストを含み、
前記リードリクエストを受信する前記転送先ノードは要求されるデータを自ノードのメモリから読み出して前記転送元ノードに向けて送信し、前記転送元ノードは、受信される前記データを自ノードの主メモリに記録する
マルチノードコンピュータシステム。 - データを保持するコンピュータ装置である複数のノードと、
前記複数のノードに接続され、前記ノード間の前記データの転送における交換処理を行なうスイッチとを備え、
前記ノードは、他ノードと前記データの転送を行なうための通信制御を実行する通信制御部と、前記ノードの接続される外部装置との間の通信を制御する入出力制御部を備え、
前記複数のノードのいずれか1つのノードの前記入出力制御部は、前記ノードとの通信パスを形成する前記調停用汎用I/Oインタフェースと、
前記ノード間通信調停部とを備え、
前記ノードとの通信を実行する際、前記ノード間通信調停部は、前記調停用汎用I/Oインタフェースに対応する通信形式に変更して前記ノードとの通信を行ない、前記ノード間の前記データの転送を行なう際、転送経路の通信調停を実行する
マルチノードコンピュータシステム。 - 請求項1に記載のマルチノードコンピュータシステムにおいて、
前記ノードが、前記データを他ノードに転送するための転送コマンドを発行するステップと、
前記通信制御装置が、前記転送コマンドを参照し、前記汎用I/Oインタフェースに対応するデータの転送経路を確保するための制御コマンドを作成して送信するステップと、
前記ノード間通信制御装置が、受信する前記制御コマンドを参照し、前記転送経路の使用の有無を確認するステップと、
使用可能の場合、前記転送経路を確保し、通信許可を前記ノードに送信するステップと、
前記ノードが、前記通信許可を受信し、前記他ノードに前記データを転送するステップとを備える
マルチノード間におけるデータ転送方法。 - 請求項10に記載のマルチノード間におけるデータの転送方法であって、
前記ノード間通信制御装置が、受信する前記制御コマンドを参照し、前記転送経路の使用の有無を確認するステップにおいて、
前記調停用汎用I/Oインタフェースが受信した前記制御コマンドを前記ノード間通信調停部に転送するステップと、
前記ノード間通信調停部が前記制御コマンドに基づき前記転送経路の使用状況を確認するステップと、
前記転送経路が使用されていない場合、前記通信許可を前記調停用汎用I/Oインタフェースに対応した形式に変更して前記ノードに送信するステップとを更に備える
マルチノード間におけるデータの転送方法。 - 他のノードにデータを転送するための転送コマンドを発行するCPUと、
前記データを保持する主メモリと、前記転送コマンドに基づき前記他ノードとの通信制御を行なう前記通信制御部とを備え、
前記通信制御部は、複数の汎用I/Oインタフェースに接続され、前記転送コマンドに基づき、前記汎用I/Oインタフェースに対応する制御コマンドを作成し、第1の前記汎用I/Oインタフェースを介して、前記ノード間通信制御装置に対し、前記転送路を確保するための調停を要求し、前記データを前記主メモリから抽出し、前記汎用I/Oインタフェースに対応するコマンドを付加して第2の前記汎用I/Oインタフェースを介して、前記データの転送を行なう
コンピュータ装置。 - 他のノードにデータを転送するための転送コマンドを汎用I/Oインタフェースに対応する制御コマンドに変更するステップと、
前記制御コマンドを使用し、第1の汎用I/Oインタフェースを介してノード間のデータ転送に使用する転送経路を確保するための調停要求を行なうステップと、
前記データに前記汎用I/Oインタフェースに対応するコマンドを付加するステップと、
第2の汎用I/Oインタフェースから前記調停要求により確保された転送経路を経由して前記データを他のノードに送信するステップとを備える
マルチノード間におけるデータの転送方法。 - 請求項14に記載のマルチノード間におけるデータの転送方法をコンピュータに実行させるための
マルチノード間におけるデータの転送プログラム。 - 請求項2に記載のマルチノードコンピュータシステムにおいて、
ノード間のデータの転送経路の使用の有無を示すテーブルと、
前記転送経路の通信調停を行なうノード間通信調停部とを備え、
前記ノード間通信調停部は、前記転送経路の確保を要求する制御コマンドを受け取ると、前記テーブルを確認し、転送先ノードにビジーフラグがセットされている場合、前記転送経路は使用中であると認識し、前記データの転送を保留し、前記ビジーフラグがセットされていない場合、前記テーブルの前記転送先ノードと前記転送元ノードに前記ビジーフラグをセットして前記転送経路を確保し、前記転送元ノードに使用許可の通知をする
ノード間通信制御装置。 - 請求項16に記載のノード間通信制御装置において、
前記ノード間通信調停部は、前記転送元ノードから転送終了を告げる前記制御コマンドを受信すると、前記テーブルの前記転送元ノードと前記転送先ノードのビジーフラグをリセットし、前記転送経路を開放する
ノード間通信制御装置。 - 請求項2に記載のマルチノードコンピュータシステムにおいて
前記調停用汎用I/Oインタフェースが受信した前記制御コマンドを前記ノード間通信調停部に転送するステップと、
前記ノード間通信調停部が前記制御コマンドに基づき前記転送経路の使用状況を確認するステップと、
前記転送経路が使用されていない場合、前記通信許可を前記調停用汎用I/Oインタフェースに対応した形式に変更して前記ノードに送信するステップとを更に備える
マルチノード間におけるデータの転送方法。 - 請求項18に記載のマルチノード間におけるデータの転送方法をコンピュータに実行させるための
マルチノード間におけるデータの転送プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004237368A JP2006058956A (ja) | 2004-08-17 | 2004-08-17 | マルチノードコンピュータシステム、マルチノード間におけるデータの転送方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004237368A JP2006058956A (ja) | 2004-08-17 | 2004-08-17 | マルチノードコンピュータシステム、マルチノード間におけるデータの転送方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006058956A true JP2006058956A (ja) | 2006-03-02 |
Family
ID=36106401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004237368A Pending JP2006058956A (ja) | 2004-08-17 | 2004-08-17 | マルチノードコンピュータシステム、マルチノード間におけるデータの転送方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006058956A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008158917A (ja) * | 2006-12-26 | 2008-07-10 | Nec Corp | 並列計算機システム |
JP2013161184A (ja) * | 2012-02-02 | 2013-08-19 | Canon Inc | プロセッサ間通信制御方法及びシステム |
WO2015015652A1 (ja) * | 2013-08-02 | 2015-02-05 | 株式会社日立製作所 | サーバ間通信機構を備えるサーバシステムおよびその複数サーバ間における通信方法 |
-
2004
- 2004-08-17 JP JP2004237368A patent/JP2006058956A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008158917A (ja) * | 2006-12-26 | 2008-07-10 | Nec Corp | 並列計算機システム |
JP2013161184A (ja) * | 2012-02-02 | 2013-08-19 | Canon Inc | プロセッサ間通信制御方法及びシステム |
WO2015015652A1 (ja) * | 2013-08-02 | 2015-02-05 | 株式会社日立製作所 | サーバ間通信機構を備えるサーバシステムおよびその複数サーバ間における通信方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101559644B1 (ko) | 통신 제어 시스템, 스위치 노드 및 통신 제어 방법 | |
US9842075B1 (en) | Presenting multiple endpoints from an enhanced PCI express endpoint device | |
JP4808514B2 (ja) | 大域的非同期ネットワークオンチップシステムにおける通信ノードアーキテクチャ | |
US9025495B1 (en) | Flexible routing engine for a PCI express switch and method of use | |
US8995302B1 (en) | Method and apparatus for translated routing in an interconnect switch | |
JP4638216B2 (ja) | オンチップバス | |
TWI222288B (en) | End node partitioning using virtualization | |
US20090198956A1 (en) | System and Method for Data Processing Using a Low-Cost Two-Tier Full-Graph Interconnect Architecture | |
CN103117929A (zh) | 一种基于PCIe数据交换的通信方法及系统 | |
JP2006254449A (ja) | システムオンチップの大域的非同期通信アーキテクチャ | |
US20140317221A1 (en) | System, computer-implemented method and computer program product for direct communication between hardward accelerators in a computer cluster | |
JP7309580B2 (ja) | 通信装置、通信方法及びプログラム | |
CN107851078B (zh) | 一种PCIe设备的聚合友好型地址分配的方法和系统 | |
JP2020535739A (ja) | データ伝送 | |
CN101227296A (zh) | 一种pcie数据传输的方法、系统及板卡 | |
US20180365185A1 (en) | Peripheral component interconnect express (pcie) switching for multi-host computing system deployments | |
CN114679415B (zh) | 一种满足AXI5-Lite协议标准的无阻塞banyan网络 | |
EP1193914A2 (en) | Data transmission and reception | |
US10229073B2 (en) | System-on-chip and method for exchanging data between computation nodes of such a system-on-chip | |
US20090292856A1 (en) | Interserver communication mechanism and computer system | |
JP2006058956A (ja) | マルチノードコンピュータシステム、マルチノード間におけるデータの転送方法及びプログラム | |
US11836105B2 (en) | Communication device, information processing system, and communication method | |
CN112463680A (zh) | 数据搬运方法及装置 | |
JP5212476B2 (ja) | ノード間通信方法、サーバ装置、ノード間通信プログラム | |
JP2004336798A (ja) | 複数の相互接続デバイスの間のデータ通信を制御する方法及びシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070301 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070517 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070629 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080407 |