JP3860257B2 - チャネルの決定方法 - Google Patents
チャネルの決定方法 Download PDFInfo
- Publication number
- JP3860257B2 JP3860257B2 JP17047996A JP17047996A JP3860257B2 JP 3860257 B2 JP3860257 B2 JP 3860257B2 JP 17047996 A JP17047996 A JP 17047996A JP 17047996 A JP17047996 A JP 17047996A JP 3860257 B2 JP3860257 B2 JP 3860257B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- channel
- message
- computer
- computer node
- 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.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、複数のノードが複数のチャネル(通信路)により相互に接続された二次元トーラス状,又は二次元メッシュ状の並列計算機ネットワークにおいて、メッセージ転送の際に使用するチャネルを決定するチャネルの決定方法に関する。
【0002】
【従来の技術】
並列計算機ネットワークにおける各計算機ノード(プロセッシングエレメント:以下、「ノード」という。)間のメッセージ転送方法の一つには、ワームホールルーティングと呼ばれる方法がある。ワームホールルーティングでは、メッセージがフリットと呼ばれる最小転送単位,例えば数バイトのデータに分割される。そして、メッセージの最初のフリット,すなわちヘッダフリットが送信元ノードと送信相手先ノードとの間の中継ルートを作りながらネットワーク内で転送されていく。すなわち、あるノードがメッセージのヘッダフリットを送信元ノード側から受信すると、そのヘッダフリットが示す送信相手先ノードによって中継ルートとなるチャネルを選択し、ヘッダフリット及び後続のデータフリットをそのチャネルを介して送信相手先ノード側へ転送する。このとき、転送されるメッセージは、送信ノードと受信ノードとの間の中継ルートをずっと専有した形式、すなわち、チャネル上で数珠つなぎの形式で転送される。従って、メッセージの最後のフリットが送信ノードから出力される前にヘッダフリットが受信ノードに到着することもある。
【0003】
なお、ヘッダフリット以外のフリットは、ルーティングの情報を持っていないが、このフリットはネットワーク内の連続したチャネル上で転送されるために他のメッセージのフリットによってインターリブされることはない。もっとも、メッセージのヘッダフリットがブロックされた場合には、そのメッセージの全てのフリットの転送が停止され、さらに、そのメッセージ転送に使用されているチャネルを必要とする他のメッセージの転送もブロックされる。
【0004】
ところで、図12に示されるように、複数のノードがトーラス(円環)状に接続された並列計算機のネットワークにおいてワームホールルーティングを使用する場合には、全てのメッセージのフリットの転送がブロックされるいわゆるデッドロックの発生を回避する必要がある。以下、図13を用いてデッドロックを説明する。図13において、ネットワークは一次元トーラス状のトポロジを有し、四つのノード(1),(2),(3)及び(4),それらを接続する単一方向のチャネルa,b,c及びdによって構成されている。そして、ノード(1)がノード(3)へ,ノード(2)がノード(4)へ,ノード(3)がノード(1)へ,そしてノード(4)がノード(2)へ、同時にワームホールルーティングで右回りにメッセージの転送を開始したとする。すると、最初のクロックにおいて、ノード(1)からのフリットはチャネルa,ノード(2)からのフリットはチャネルb,ノード(3)からのフリットはチャネルc、ノード(4)からのフリットはチャネルdを用いて転送される。しかしながら、次のクロックにおいて、例えば、ノード(2)に受信されたノード(1)からのフリットは、既にチャネルbがノード(2)からのフリットの送信に用いられているために、チャネルbを使用できずにブロックされる。また、ノード(2)から送信されるメッセージの次のフリットも、同様にチャネルcを使用できずにブロックされる。ノード(3),ノード(4)から送信されるメッセージも全く同様にブロックされ、全てのメッセージがブロックされてしまう。このように同一のクロックにおけるチャネルの依存関係にループが生じ、全くメッセージ転送ができなくなってしまう状態がデッドロックである。
【0005】
このようなデッドロックを回避する方法の一つにDallyらの米国特許発明(U.S.Patent 4,933,933)がある。この発明では、デッドロック回避のアルゴリズムとして、二重の仮想チャネルが用いられている。図14は、仮想チャネルの概要を示すブロック図である。図14において、送信側ノード50と受信側ノード51とは、一つの物理チャネル52で接続されている。受信側ノード51は、一組のバッファ(FIFO; First-in First out)53a,53b及び受信処理系54を備えている。そして、送信側ノード50から別個独立の二つ(2チャネル分)のメッセージのフリットが送信されると、これらの二つのフリットは、時分割伝送により一つの物理チャネル52で伝送される。受信側ノード51では、二つのフリットが二つのメッセージにそれぞれ復元され、一方のメッセージが一方のバッファ53aに、他方のメッセージが他方のバッファ53bに格納される。そして、受信処理系54が1組のバッファ53a,53bにそれぞれ格納されたメッセージを、適宜取り出すとともに別個に処理することによって、あたかも物理チャネルが二つあるように見せかけられるのである。
【0006】
この仮想チャネルを使用したデッドロック回避方法を図15を用いて説明する。図15において、四つのノード(1),(2),(3)及び(4)が単一方向のチャネルで接続されることによって、ネットワークが構成されている。各ノード間を接続するチャネルは、図14を用いて説明した仮想チャネルによって、クラス(チャネル番号)0とクラス(チャネル番号)1との二重チャネルとして形成されている。すなわち、各ノード間が、二重の仮想チャネルa0,a1,仮想チャネルb0,b1,仮想チャネルc0,c1,及び,仮想チャネルd0,d1によって、それぞれ接続された状態になっている。
【0007】
各二重の仮想チャネルを構成する一組のバッファ(図示略)は、ノード間を転送されるメッセージのフリットが一つの場合には、いずれか一方のバッファにメッセージのフリットをストアし、このストアされたメッセージのフリットは、それ以後のクロックにおいて隣接ノードへ転送されるようになっている。これに対し、ノード間を転送されるメッセージのフリットが二つの別個独立のものである場合には、一組のバッファのそれぞれに各メッセージのフリットがそれぞれ別個にストアされるようになっている。そして、各バッファにストアされた二つの別個独立のメッセージのフリットのうち、どちらを先に隣接ノードへ転送するかが決定され、この決定順に各メッセージのフリットが別個のクロックにおいて隣接ノードへ転送されるようになっている。
【0008】
図15に示されたネットワークにおいて、ノード(1)〜(4)が、図13に示されるノード(1)〜(4)と同様に、ワームホールルーティングで右回りにそれぞれ別個のメッセージの転送を同時に開始したとする。その際における各メッセージのフリットは、以下のようなルート(チャネル)を通って各ノード間を次々と転送される。
【0009】
ノード(1)のメッセージのフリット:(1)−a0→(2)−b0→(3)
ノード(2)のメッセージのフリット:(2)−b0→(3)−c0→(4)
ノード(3)のメッセージのフリット:(3)−c0→(4)−d0→(1)
ノード(4)のメッセージのフリット:(4)−d0→(1)−a1→(2)
但し、縦に並んでいるチャネルは、あるクロックの時点で使用されているチャネルを示す。上記のように、一回目のクロックにおいては、各二重の仮想チャネルのうちチャネル番号0の仮想チャネルをメッセージのフリット転送用のチャネルとしてそれぞれ割り当てる。これに対し、二回目以降のクロックにおいては、転送される複数のメッセージのフリットのうち、ノード(1)を通過するメッセージのフリットがチャネル番号1の仮想チャネルによって転送されるとともに、その他のメッセージのフリットがチャネル番号0の仮想チャネルで転送されるように仮想チャネルを割り当てる。このようにすれば、同一のクロックにおいてメッセージ転送に使用されるチャネルの依存関係からループが取り除かれる。従って、デッドロックが回避される。
【0010】
【発明が解決しようとする課題】
しかし、上記した方法において、メッセージを中継するための仮想チャネルは、各ノード(1)〜(4)において別個に決定され割り当てられていた。すなわち、中継ノードは、メッセージのヘッダフリットを受信する度に、仮想チャネルの割当処理を行っていた。従って、不要な仮想チャネルの割当処理によって、転送スループットが低下する場合があった。この問題は、メッシュ状のネットワークの場合においても共通する問題であった。
【0011】
本発明は、上記問題に鑑みなされたものであり、二次元トーラス状のネットワークにおいて、デッドロックを回避しつつ、転送スループットの向上を図ることのできるチャネルの決定方法を提供することを第1の課題とする。
【0012】
また、二次元トーラス状のネットワークにおいて、メッセージの中継ノードにおけるチャネルの割当処理を省略し得るチャネルの決定方法を提供することを第2の課題とする。
【0013】
また、二次元メッシュ状のネットワークにおいて、メッセージの転送スループットの向上を図ることのできるチャネルの決定方法を提供することを第3の課題とする。
【0014】
さらに、二次元メッシュ状のネットワークにおいて、メッセージの中継ノードにおけるチャネルの割当処理を省略し得るチャネルの決定方法を提供することを第4の課題とする。
【0015】
【課題を解決するための手段】
本発明によるチャネルの決定方法は、上述した第1及び第2の課題を解決するため、以下の構成を採用する。すなわち、本発明は、複数の計算機ノードが複数のチャネルによって相互に接続された二次元トーラス状の並列計算機ネットワークにおいて、最初にX方向にメッセージが転送され、続いてY方向に前記メッセージが転送されることによって、前記メッセージが送信元の計算機ノードから中継計算機ノードを経由して送信相手先の計算機ノードへ転送される際に、前記送信元の計算機ノードが、前記メッセージの転送に使用するチャネルを決定するチャネルの決定方法であって、前記複数の計算機ノードに前記複数のチャネルの番号がそれぞれ割り当てられ、前記送信元の計算機ノードが、前記メッセージの転送方向をX方向からY方向へ変更する中継計算機ノードの位置を取得するとともに、その中継計算機ノードの位置に割り当てられたチャネルの番号に該当するチャネルを、少なくとも前記中継計算機ノードへの前記メッセージの転送に使用するチャネルとして決定することを特徴とする。
【0016】
ここに、複数のチャネルは、物理チャネルであっても良いが、前記複数のノード間をそれぞれ接続する二重の仮想チャネルであり、前記二重の仮想チャネルのうち、いずれか一方の仮想チャネルが、前記メッセージ転送に用いるチャネルとして決定されるようにするのが好ましい。
【0017】
また、本発明は、複数の計算機ノードが複数のチャネルによって相互に接続された二次元トーラス状の並列計算機ネットワークにおいて、最初にX方向にメッセージが転送され、続いてY方向に前記メッセージが転送されることによって、前記メッセージが送信元の計算機ノードから中継計算機ノードを経由して送信相手先の計算機ノードへ転送される際に、前記送信元の計算機ノードが、前記メッセージの転送に使用するチャネルを決定するチャネルの決定方法であって、前記並列計算機ネットワークを複数の領域に分割するとともに、各領域毎に前記複数のチャネルの番号がそれぞれ割り当てられ、前記送信元の計算機ノードが、前記メッセージの転送方向をX方向からY方向へ変更する中継計算機の位置を取得するとともに、その中継計算機ノードが前記複数の領域のいずれに存するかを判定し、さらに、前記メッセージの転送方向をX方向からY方向へ変更する中継計算機ノードが存する領域に割り当てられたチャネルの番号に該当するチャネルを、少なくとも前記中継計算機ノードへのメッセージ転送に使用するチャネルとして決定することを特徴とする。
【0018】
また、本発明は、複数の計算機ノードが複数のチャネルによって相互に接続されたトーラス状の並列計算機ネットワークにおいて、メッセージが送信元の計算機ノードから中継計算機ノードを経由して送信相手先の計算機ノードへ転送される際に、前記送信元の計算機ノードが、前記メッセージの転送に使用するチャネルを決定するチャネルの決定方法であって、前記複数の計算機ノードに前記複数のチャネルの番号がそれぞれ割り当てられ、前記メッセージを一方向にのみ転送する場合には、前記送信元の計算機ノードが、前記送信相手先の計算機ノードの位置を取得するとともに、この送信相手先の計算機ノードの位置に割り当てられたチャネルの番号に該当するチャネルを、少なくとも前記中継計算機ノードへのメッセージの転送に使用するチャネルとして決定することを特徴とする。
【0019】
ここに、トーラス状の並列計算機ネットワークは、一次元であっても良く、二次元であっても良い。また、本発明は、複数の計算機ノードが複数のチャネルによって相互に接続されたトーラス状の並列計算機ネットワークにおいて、メッセージが送信元の計算機ノードから中継計算機ノードを経由して送信相手先の計算機ノードへ転送される際に、前記送信元の計算機ノードが、前記メッセージの転送に使用するチャネルを決定するチャネルの決定方法であって、前記複数の計算機ノードに前記複数のチャネルの番号がそれぞれ割り当てられ、前記メッセージを一方向にのみ転送する場合には、前記送信元の計算機ノードが、自己の位置を取得するとともに、この自己の位置に割り当てられたチャネルの番号に該当するチャネルを、少なくとも前記中継計算機ノードへのメッセージの転送に使用するチャネルとして決定することを特徴とする。
【0020】
本発明は、チャネルの決定方法において、前記送信元の計算機ノードによって決定されたチャネルの番号に該当するチャネルが、前記送信元の計算機ノードから前記送信相手先の計算機ノードまでの間におけるメッセージの転送に使用されることで、特定することができる。
【0021】
本発明によるチャネルの決定方法は、上述した第3及び第4の課題を解決するため以下の構成を採用する。すなわち、本発明は、複数の計算機ノードが複数のチャネルによって相互に連結された二次元メッシュ状の並列計算機ネットワークにおいて、メッセージが送信元の計算機ノードから中継計算機ノードを経由して送信相手先の計算機ノードへ転送される際に、前記送信元の計算機ノードが、前記メッセージの転送に使用するチャネルを決定するチャネルの決定方法であって、前記複数の計算機ノードに前記複数のチャネルの番号がそれぞれ割り当てられ、前記送信元の計算機ノードが、前記送信相手先の計算機ノードの位置を取得するとともに、その送信相手先の計算機ノードの位置に割り当てられたチャネルの番号に該当するチャネルを、少なくとも前記中継計算機ノードへの前記メッセージの転送に使用するチャネルとして決定することを特徴とする。
【0022】
また、本発明は、複数の計算機ノードが複数のチャネルによって相互に連結された二次元メッシュ状の並列計算機ネットワークにおいて、メッセージが送信元の計算機ノードから中継計算機ノードを経由して送信相手先の計算機ノードへ転送される際に、前記送信元の計算機ノードが、前記メッセージの転送に使用するチャネルを決定するチャネルの決定方法であって、前記複数のチャネルに番号がそれぞれ割り当てられ、前記送信元の計算機ノードが、前記送信相手先の計算機ノードのX方向の位置及びY方向の位置を取得するとともに、その送信相手先の計算機ノードのX方向の位置からY方向の位置を減算した値を前記複数のチャネル数で割った際の剰余に対応する番号のチャネルを、少なくとも前記中継計算機ノードへの前記メッセージの転送に使用するチャネルとして決定することを特徴とする。
【0023】
ここに、複数のチャネルは物理チャネルでも良いが、前記複数の計算機ノード間を接続する複数の仮想チャネルであることが好ましい。また、仮想チャネルの数は2以上であれば幾つでも良いが、例えば、2又は4であることが好ましい。
【0024】
また、本発明は、チャネルの決定方法において、前記送信元の計算機ノードによって決定されたチャネル番号に該当するチャネルが、前記送信元の計算機ノードから送信相手先の計算機ノードまでの間におけるメッセージの転送に使用されることで、特定することができる。
【0025】
【発明の実施の形態】
本発明による好適な実施形態を図に基づいて詳細に説明する。
〈実施形態1〉
図1は、実施形態1によるチャネルの決定方法を使用する並列計算機のネットワークの全体構成図である。図1において、ネットワークは、二次元トーラス状のトポロジを有しており、東西方向(±x方向)に沿って8個,南北方向(±y方向)に沿って8個並べられた計64個の計算機ノード1(以下、「ノード」という。)から構成されている。このネットワークを構成する各ノード1は、東西南北方向に隣接するノードと物理チャネルCHによってそれぞれ接続されている。各物理チャネルCHは双方向のものとなっている。そして、このネットワークの中心から北西方向に向かって最も遠い位置に配置されたノード(図1のネットワークの左上頂点を形成するノード)の位置座標が原点(0,0)とされている。
【0026】
次に、各ノード1の内部構成を図2を用いて説明する。図2において、ノード1は、メッセージ生成部2,受信処理系3,ルーティングコントローラ4,及び中央処理装置5を備えている。メッセージ生成部2は、他のノードに対して転送するメッセージを生成するものであり、生成されたメッセージは、ルーティングコントローラ4に入力されるようになっている。また、受信処理系3は、ノード1が受信したメッセージを、ルーティングコントローラ4を介して受け取り適宜処理するものである。また、ルーティングコントローラ4は、メッセージ生成部2によって生成されたメッセージ,あるいは隣接ノードから転送されてきたメッセージのルーティング処理及び/又はチャネル決定を行うものである。このため、ノード1間を接続する各物理チャネルCHが、ノード1内部においてルーティングコントローラ4に接続されている。また、中央処理装置5は、CPU(Central Processing Unit),クロック等から構成されており、メッセージ生成部2に対してメッセージ生成の命令を与える。また、ルーティングコントローラ4に対してメッセージのルーティング命令を与える。さらに、受信処理系3に対して受信したメッセージの処理命令を与える等の制御を行う。
【0027】
ここで、図1に示したネットワークにおけるメッセージ転送は、ワームホールルーティングによって行われる。すなわち、メッセージ生成部2によって生成されたメッセージが、フリットと呼ばれる数バイトからなる最小単位で分割されるとともに、メッセージ転送のルーティングが、ルーティングコントローラ4によって、一番最初のフリット(ヘッダフリット)に格納されたルーティング情報に基づいて行われるようになっている。このとき、送信元ノードから送信相手先ノードまでのルートは、最短距離が選択されるとともに、最初に東西方向(±x方向)がルーティングされ、次に南北方向(±y方向)がルーティングされるように設定されている。
【0028】
図3は、ヘッダフリットの説明図である。図3において、ヘッダフリットには、その先頭にメッセージの転送方向が東(+x)方向または西(−x)方向のいずれであるかを示すxs,二番目に東または西方向のメッセージの転送距離(中継チャネル数)を示すxrcid,三番目にメッセージの転送方向が南(+y)方向または北(−y)方向のいずれであるかを示すys,四番目に南または北方向の転送距離(中継チャネル数)を示すyrcidが格納されている。そして、xsが0のとき東方向,1のとき西方向にメッセージが転送され、ysが0のとき南方向,1のとき北方向にメッセージが転送されるようになっている。例えば、図1に示されたあるノード1から西方向に3個,南方向に3個離れたノードへメッセージを転送する場合には、そのメッセージのヘッダフリットは、xs=1,xrcid=3,ys=0,yrcid=3となる。そして、メッセージが、送信元ノードから西方向へ3個離れたノードへ、次に南方向へ3個離れたノードへ転送されることによって、送信相手先ノードに送信される。
【0029】
この場合において、送信元ノードから見た送信相手先の位置座標(ノード番号:Rx,Ry)は、(−3,+3)と表される。そして、西方向(−x方向)へメッセージが1ノード進む度に(Rx,Ry)のRxがデクリメントされ、送信元ノードから西方向に3個離れたノードにヘッダフリットが到達した時には、(Rx,Ry)が(0,+3)となって、±x方向のルーティングが終了する。続いて、±y方向のルーティングが行われ、1ノード進む毎に今度はRyがデクリメントされる。そして、(Rx,Ry)が(0,0)になったときにヘッダフリットが送信相手先ノードに到達し、ルーティングが終了するようになっている。
【0030】
次に、上述したルーティングを実行するためのルーティングコントローラ4の内部構成を説明する。ルーティングコントローラ4は、LSI(大規模集積回路)により構成されており、図4において、第1受信宛先判定部6,第2受信宛先判定部7,仮想チャネル決定部8,スイッチ9,第1送信部10,及び第2送信部11から構成されている。四つの物理チャネルCHは、四つの第1受信宛先判定部6にそれぞれ接続されている。また、第2受信宛先判定部7は、メッセージ生成部2及び仮想チャネル決定部8に接続されている。これらの第1及び第2受信宛先判定部6,7は、スイッチ9に接続されている。また、スイッチ9は、四つの第1送信部10及び第2送信部11に接続されている。そして、各第1送信部10は、それぞれ物理チャネルCHに接続され、第2送信部11は、受信制御系3に接続されている。
【0031】
ここに、第1受信宛先判定部6は、一組の図示せぬバッファを有しており、各バッファが、それぞれチャネル番号0,チャネル番号1として割り当てられている。これによって、各ノード間が、二重の仮想チャネル(チャネル番号0,チャネル番号1)によって±x方向及び±y方向にそれぞれ接続された状態になっている。すなわち、物理チャネルCHから二種類のメッセージが時分割伝送で転送されてきた場合には、一方のメッセージがチャネル番号0の仮想チャネルに格納され、他方のメッセージがチャネル番号1の仮想チャネルに格納され、これらのメッセージが別個に読み出されて処理されるようになっている。また、各第1受信宛先判定部6は、受信したメッセージのヘッダフリットに格納されたルーティング情報に基づいて、東西南北のいずれの方向へメッセージを転送すべきかを判定するとともに、その判定結果に基づいてスイッチ9の切替動作を制御するようになっている。例えば、送信先ノードから見た相対的な送信相手先ノードの位置座標(Rx,Ry)が(−1,+3)であって、ヘッダフリットに格納されたxs(図3参照)が1である場合には、西方向へメッセージを転送すべきと判定し、西方向に存する隣接ノードに接続された物理チャネルCHにメッセージが転送されるようにスイッチ9を切り替える。もっとも、(Rx,Ry)が(0,0)の場合には、自ノードが送信相手先ノードであると判定し、第2送信部11にメッセージが転送されるように、スイッチ9を切り替える。さらに、第1受信宛先判定部6は、受信したメッセージのヘッダフリットの送信相手先ノードの位置座標(Rx,Ry)をデクリメントするようになっている。
【0032】
第2受信宛先判定部7は、図2に示したメッセージ生成部2によって生成されたメッセージを受け取るとともに、第1受信宛先判定部6と同様に、ヘッダフリットに格納されたルーティング情報に基づいて、東西南北いずれの方向へメッセージを転送すべきかを判定し、その判定結果に基づいてスイッチ9を切り替えるようになっている。
【0033】
仮想チャネル決定部8は、第2受信宛先判定部7からメッセージを受け取って、そのメッセージのヘッダフリットに格納されたルーティング情報,自己が保有する自ノードの位置座標(ノード番号:Px,Py),及びネットワークの東西方向の大きさ(Nx)並びに南北方向の大きさ(Ny)を用い、そのメッセージの転送に使用する仮想チャネルのチャネル番号を、チャネル番号0,チャネル番号1のいずれから決定するようになっている。
【0034】
スイッチ9は、上述したように、第1受信宛先判定部6または第2受信宛先判定部7の判定結果によってその切替動作が制御され、この判定結果に該当する方向の隣接ノードに接続された物理チャネルCHに第1送信部10を介してメッセージを転送するようになっている。また、各第1送信部10はインターフェイスとして機能し、メッセージのフリットを隣接ノードへ送出するようになっている。また、第2送信部11は第1送信部10とほぼ同様の構成を有し、メッセージのフリットを受信処理系4に対して送出するようになっている。
【0035】
次に、仮想チャネル決定部8による仮想チャネルの決定方法を説明する。図5は、仮想チャネルの決定方法を示す説明図である。前提として、図5に示されるように、図1に示されるネットワークは、±x方向に沿って二等分する仮想軸(軸X)で分割されるとともに、ネットワークをy方向に沿って二等分する仮想軸(軸Y)で分割されることによって、均等に4分割される。さらに、軸Xと軸Yとの交点を原点とした場合において、第3象限に該当する領域A,及び第1象限に該当する領域Dに存するノードに対してチャネル番号0が割り当てられる。一方、第4象限に該当する領域B,及び第2象限に該当する領域Cに存するノードに対してチャネル番号1が割り当てられる。そして、転送メッセージのルーティング方向を±x方向から±y方向に変更する中継ノード(目的ノード)が領域A〜Dのいずれに属するかを、仮想チャネル決定部8が算出することによって、仮想チャネルのチャネル番号が決定される。
【0036】
具体的には、上記した送信元ノード番号(Px,Py),ネットワークの大きさ(Nx,Ny),及び送信元ノードからみた送信相手先ノード番号(Rx)を用いて以下の演算を行う。
【0037】
RAx=Nx−Px ・・・(式1)
R1x=−Px ・・・(式2)
R2x=Nx/2−Px・・・(式3)
ここに、(式1)のRAxは、(Px,Py)を原点とした場合の+x方向端部のx座標であり、(式2)のR1xは、(Px,Py)を原点とした場合の−x方向端部のx座標であり、(式3)のR2xは、(Px,Py)を原点とした場合のx軸上のx座標である。
【0038】
Hx: Px≧Nx/2 ・・・(式4)
Hy: Py≧Ny/2 ・・・(式5)
ここに、(式4)のHxは、Pxがx軸よりも+x方向に存する場合には1,−x方向に存するときには0を意味するものである。また、(式5)のHyは、Pyがy軸よりも+y方向に存するときには1,−y方向に存するときには0を意味するものである。
【0039】
Ax: RAx≧Rx ・・・(式6)
Bx: Rx≧R1x ・・・(式7:但し、−Nx/2≦Rx≦Nx/2)
Cx: Rx≧R2x ・・・(式8)
ここに、(式6)のAxは、目的ノードの位置が+x端を越えないことを意味するものである。また、(式7)のBxは、目的ノードの位置が−x端を越えないことを意味するものである。さらに、(式8)のCxは、目的ノードの位置がx軸よりも+x方向に存することを意味するものである。
【0040】
そして、以下の(式9)の演算式によって、仮想チャネル番号を決定する。
channel=((Hx)?Ax&Cx:!(Bx&!Cx))!=Hy ・・・(式9)
但し、(式9)中の”&”は演算子ANDを意味し、”!”は演算子NOTを意味する。また、”?〜:”は、Hxが1の時には、Ax&Cxの値を取り、Hxが0の時には!(Bx&!Cx)の値を取ることを意味する。さらに、”!=”は、Ax&Cx又は!(Bx&!Cx)の値とHyとを対比し、これらが等しくない場合には0(チャネル番号0)を決定し、等しい場合には1(チャネル番号1)を決定することを意味する。
【0041】
上記のようにして、ルーティング方向を±x方向から±y方向に変更する中継ノードが、領域A又は領域Dに存する場合には、メッセージ転送に使用する仮想チャネルとしてチャネル番号0が決定される。これに対し、中継ノードが領域B又は領域Cに存する場合には、チャネル番号1が決定される。
【0042】
なお、±x方向のみをルーティングする場合は、上述の場合における±x方向から±y方向にルーティング方向を変更する中継ノードが、送信相手先ノードとなることに等しいことから、送信相手先ノードの位置が領域A〜Dのいずれに属するかによって、チャネル番号を決定するようになっている。一方、±y方向のみをルーティングする場合には、上述の場合における±x方向から±y方向にルーティング方向を変更する中継ノードが、送信元ノードとなることに等しいことから、送信元ノード位置が領域A〜Dのいずれに属するかによって、チャネル番号が決定されるようになっている。
【0043】
図1に示されるネットワークにおいて、例えば、領域Bに存するノードαが、領域Cに存するノードβに対し、中継ノードh〜lを介してメッセージを転送する場合について以下に説明する。最初に、送信元ノードαのメッセージ生成部2(図4参照)によってメッセージが生成される。次に、メッセージがルーティングコントローラ4に入力され、第2受信宛先判定部7に送られる。第2受信宛先判定部7は、メッセージのヘッダフリット(図3参照)に格納されたルーティング情報に基づいて、メッセージを西方向(−x方向)へ転送すべきと判断し、西方向の物理チャネルCHに接続された第1送信部10にメッセージが入力されるようにスイッチ9を切り替える。また、仮想チャネル決定部8は、メッセージのヘッダフリットを第2受信宛先判定部7から受け取るとともに、上述した方法によってルーティング方向を±x方向から±y方向に変更する中継ノード(この場合は中継ノードj)が領域Aに存すると判断し、メッセージ転送に使用する仮想チャネルとしてチャネル番号0を決定する。この決定された仮想チャネルのチャネル番号0は、メッセージ転送の前に、第1送信部10を介して中継ノードh〜l及び送信相手先ノードβに通知される。
【0044】
続いて、メッセージのフリットが、第1送信部10を介して西方向の物理チャネルCHから西方向の隣接ノード(中継ノードh)へ転送される。中継ノードhにおける第1受信宛先判定部6では、予め通知されたチャネル番号0に従って、図示せぬチャネル番号0のバッファにメッセージを格納する。すなわち、チャネル番号0の仮想チャネルを通じてメッセージのフリットが転送された状態になる。そして、中継ノードhの第1受信宛先判定部6は、送信元ノードαにおける第1宛先判定部6と同様にして、メッセージの宛先を判定するとともにスイッチ9を切り替える。そして、メッセージのフリットは第1送信部10を介して中継ノードiに転送される。中継ノードiの第1受信宛先判定部7も、中継ノードhの場合と同様にして、チャネル番号0のバッファにメッセージのフリットを格納する。このように、メッセージ転送には、送信元ノードから送信相手先ノードまで、送信元ノードαにおいて決定されたチャネル番号の仮想チャネル(この場合にはチャネル番号0)が割り当てられる。
そして、メッセージのヘッダフリットが中継ノードjに転送された場合には、その第1受信宛先判定部6は、ヘッダフリットのルーティング情報からルーティング方向を西方向(−x方向)から南方向(+y方向)へ変更すべきと判定し、南方向に延びた物理チャネルCHにメッセージのフリットが転送されるようにスイッチ9を切り替える。これによって、+y方向のルーティングが行われ、中継ノードk,lを介してメッセージのフリットが送信相手先ノードβに転送される。送信相手先ノードβでは、第1受信判定部6が、自ノードが送信相手先ノードであると判定し、第2送信部11にメッセージが送られるようにスイッチ9を切り替える。そして、メッセージが第2送信部11から受信処理系3に送られ適宜処理される。
【0045】
実施形態1によるチャネルの決定方法によれば、図1に示されるネットワークにおいて、例えば、位置座標(0,0)から(0,7)の位置に存する八つのノード1が、東(+x)方向に二つ離れたノード1に対し、同時に右回りでメッセージの転送を開始した場合には、位置座標(0,0),(0,1),(0,6)及び(0,7)に存するノード1が、メッセージ転送にチャネル番号0の仮想チャネルを使用する。一方、位置座標(0,2),〜(0,5)に存するノード1が、メッセージ転送にチャネル番号1の仮想チャネルを使用する。このため、同一のクロックにおけるチャネルの依存関係にループが生じない。従って、デッドロック発生を回避することができる。
【0046】
また、送信元ノードにおいてチャネルの番号を決定し、そのチャネル番号に該当する仮想チャネルを用いてメッセージ転送を行うため、中継ノードにおいて仮想チャネルを決定することを要しない。従って、中継ノードにおける仮想チャネル決定に要する時間だけ転送スループットを向上させることができる。また、中継ノードにおける仮想チャネル決定処理を要しないことから、従来のルーティングコントローラに搭載されていた中継メッセージのチャネル決定手段を省略することができる。従って、ルーティングコントローラを簡易な構成とでき、コストの向上を図ることもできる。もっとも、図4に示されるルーティングコントローラ4の各第1受信宛先判定部6に仮想チャネル決定部8がそれぞれ接続され、中継ノードが、中継したメッセージを転送するためのチャネルを決定するようにされていても良い。
〈実施形態2〉
本発明の実施形態2によるチャネルの決定方法を説明する。図6は、実施形態2によるチャネルの決定方法を用いる並列計算機ネットワークの全体構成図である。図6において、ネットワークは二次元メッシュ状のトポロジを有しており、東西方向(±x方向)×南北方向(±y方向)=8×8=64個のノード1によって構成されている。各ノード1は、実施形態1と同様の方法による双方向の二重仮想チャネルによって、隣接ノードと東西南北方向でそれぞれ接続されている。なお、ネットワークの中心から北西方向に沿って最も遠い位置に配置されているノードの位置が原点(0,0)に設定されている。
【0047】
ネットワークを構成する各ノード1の内部構成(図7参照),ネットワークにおけるメッセージ転送の方法,メッセージ転送のルーティングに使用するヘッダフリット(図8参照)及びルーティングコントローラ4の内部構成(図9参照)は、実施形態1とほぼ同様の構成を有している。このため、共通点については説明を省略し、相違点について説明する。
【0048】
図9に示された各第1受信宛先判定部6は、実施形態1と同様に一組の図示せぬバッファを備え、これにより各ノード1間が二重の仮想チャネルで接続された状態となっている。そして、各仮想チャネルには、チャネル番号0,チャネル番号1のチャネル番号が割り当てられている。また、仮想チャネル決定部8は、自ノードの位置座標(ノード番号:Px,Py)を保有している。そして、第2受信宛先判定部7から、メッセージのヘッダフリットを受け取って、仮想チャネルを、チャネル番号0又はチャネル番号1のいずれか一方から決定するようになっている。すなわち、送信元ノードにおける仮想チャネル決定部8は、図8に示されたヘッダフリットを第2受信宛先判定部7から受け取ると、最初に、ヘッダフリットに格納されたルーティング情報から、送信元ノードから見た相対的な送信相手先ノードの位置座標(ノード番号:Rx,Ry)を得る。次に、仮想チャネル決定部8は、自己の保有する自ノード番号(Px,Py)から、送信相手先ノードの絶対位置座標(Dx,Dy)を割り出す。そして、仮想チャネル決定部8は、自己が保有する以下の算出式(式10)を用いてチャネルの番号を決定するようになっている。
【0049】
channel=(Dx−Dy) mod 2 ・・・(式10)
以下、実施形態2によるチャネルの決定方法を説明する。例えば、図6に示されたノード番号(Px,Py)=(1,0)のノードから東方向へ2つ,南方向へ4つ離れたノード(ノード番号(3,4))へメッセージを送信する場合において、送信元ノードの仮想チャネル決定部8は、図8に示すヘッダフリットを受け取ると、最初に、ヘッダフリットのルーティング情報から、(Rx,Ry)=(+2,+4)を得る。次に、仮想チャネル決定部8は、自己が保有する自ノード番号(1,0)から、送信相手先ノードの絶対位置座標(Dx,Dy)=(3,4)を得るとともに、上記した(式10)に代入する。すなわち、
channel=(3−4) mod 2=1
が得られる。これに従い、仮想チャネル決定部8は、メッセージ転送に使用する仮想チャネルのチャネル番号を1と決定する。そして、このチャネル番号1が決定された旨の情報は、メッセージのフリットの転送に先だって、第1送信部10を介してメッセージのフリットの中継ノード及び送信相手先ノードに通知される。そして、通知を受けたノードにおけるチャネル番号1の仮想チャネルが、メッセージの転送に使用する仮想チャネルとして割り当てられる。なお、本方法によれば、送信相手先ノードの絶対位置座標(Dx,Dy)に対応して割り当てられる仮想チャネルのチャネル番号は、図10に示されるようになる。もっとも、図10に示される仮想チャネルのチャネル番号の配列は、(式10)の代わりに別の式を用いること等によって適宜変更可能である。このとき、仮想チャネルのチャネル番号は、ランダムに配置され、同一のチャネル番号が散逸するように設定するのが好ましい。
【0050】
実施形態2によるチャネルの決定方法によると、仮想チャネルのチャネル番号が、送信元ノードの仮想チャネル決定部8において、送信相手先ノードの絶対位置座標(Dx,Dy)に基づいて決定される。従って、実施形態1と同様に、中継ノードにおける仮想チャネルのチャネル番号の決定を不要として転送スループット向上を図るとともに、ルーティングコントローラ4を簡易な構成にすることができる。
【0051】
なお、図6に示されるネットワークの各ノード1が、東西南北方向にそれぞれ四つの仮想チャネルでそれぞれ接続されている場合には、仮想チャネル決定部8が保有する(式10)の代わりに、以下の(式11)を保有させる。
【0052】
channel=(Dx−Dy) mod 4 ・・・(式11)
これにより、実施形態2における仮想チャネル決定方法と同様の方法を4チャネルの場合にも用いることが可能となる。なお、4チャネルの場合では、送信相手先ノードの絶対位置座標(Dx,Dy)に対応して割り当てられる仮想チャネルのチャネル番号は、図11に示されるようになる。もっとも、図11に示される仮想チャネルのチャネル番号の配列も、(式11)の代わりに別の式を用いる等によって適宜変更可能である。
【0053】
また、図6に示されるネットワークに、予め図10のようにチャネル番号が割り当てられ、仮想チャネル決定部8が、上記した(式10)の代わりに、各ノード番号とチャネル番号とを対応させたテーブルを有し、さらに、仮想チャネル8が送信相手先ノードの絶対位置座標(Dx,Dy)を得るとともに、これを検索キーとしてテーブルを検索することにより、該当するチャネル番号を検出し、このチャネル番号の仮想チャネルを、メッセージ転送に使用する仮想チャネルとして使用するようにしても良い。
【0054】
【発明の効果】
本発明のチャネルの決定方法によれば、二次元トーラス状のネットワークにおいて、デッドロックを回避しつつ、転送スループットの向上を図ることができる。
また、二次元トーラス状のネットワークにおいて、メッセージの中継ノードにおけるチャネルの割当処理を省略することができる。
【0055】
また、二次元メッシュ状のネットワークにおいて、メッセージの転送スループットの向上を図ることができる。さらに、二次元メッシュ状のネットワークにおいて、メッセージの中継ノードにおけるチャネルの割当処理を省略することができる。
【図面の簡単な説明】
【図1】実施形態1による仮想チャネルの決定方法を使用する並列計算機ネットワークの全体構成図。
【図2】ノード1の内部構成を示すブロック図。
【図3】ヘッダフリットの説明図。
【図4】ルーティングコントローラの内部構成を示すブロック図。
【図5】仮想チャネルの決定方法を示す説明図。
【図6】実施形態2による仮想チャネルの決定方法を使用する並列計算機ネットワークの全体構成図。
【図7】ノード1の内部構成を示すブロック図。
【図8】ヘッダフリットの説明図。
【図9】ルーティングコントローラの内部構成を示すブロック図。
【図10】ネットワークにおける仮想チャネルの割り当て例を示す図。
【図11】ネットワークにおける仮想チャネルの割り当て例を示す図。
【図12】二次元トーラス状のネットワークの構成例を示す図。
【図13】デッドロックの説明図。
【図14】仮想チャネルの説明図。
【図15】デッドロック回避方法の説明図。
【符号の説明】
1 ノード
4 ルーティングコントローラ
6 第1受信宛先判定部
7 第2受信宛先判定部
8 仮想チャネル決定部
9 スイッチ
Claims (16)
- 複数の計算機ノードが複数のチャネルによって相互に接続された二次元トーラス状の並列計算機ネットワークにおいて、送信元の計算機ノードから送信されたメッセージが最初にX方向に転送され、続いてY方向に転送されることによって中継計算機ノードを経由して送信相手先の計算機ノードへ転送される場合の、前記送信元の計算機ノードが、前記メッセージの転送に使用するチャネルを決定するチャネルの決定方法であって、
前記各計算機ノードにネットワーク内の各計算機ノードの位置に応じた前記複数のチャネルのいずれか1つのチャネルを示すチャネル番号をそれぞれ割り当てるステップと、
前記送信元の計算機ノードが、前記メッセージの転送方向をX方向からY方向へ変更する前記中継計算機ノードの位置に関する位置情報を取得するステップと、
前記取得された中継計算機ノードの位置情報に基づいて、その中継計算機ノードに割り当てられたチャネル番号を取得するステップと、
前記取得されたチャネル番号に該当するチャネルを、少なくとも前記中継計算機ノードへの前記メッセージの転送に使用するチャネルとして決定するステップと、
を備えることを特徴とするチャネルの決定方法。 - 複数の計算機ノードが複数のチャネルによって相互に接続された二次元トーラス状の並列計算機ネットワークにおいて、送信元の計算機ノードから送信されたメッセージが最初にX方向に転送され、続いてY方向に転送されることによって中継計算機ノードを経由して送信相手先の計算機ノードへ転送される場合の、前記送信元の計算機ノードが、前記メッセージの転送に使用するチャネルを決定するチャネルの決定方法であって、
前記並列計算機ネットワークを複数の領域に分割し、各領域に前記複数のチャネルのいずれか1つのチャネルを示すチャネル番号をそれぞれ割り当てるステップと、
前記送信元の計算機ノードが、前記メッセージの転送方向をX方向からY方向へ変更する前記中継計算機の位置に関する位置情報を取得するステップと、
前記取得された中継計算機ノードの位置情報に基づいて、その中継計算機ノードが前記複数の領域のいずれに存するかを判定するステップと、
前記判定された中継計算機ノードが存する領域に割り当てられたチャネル番号を取得するステップと、
前記取得されたチャネル番号に該当するチャネルを、少なくとも前記中継計算機ノードへのメッセージ転送に使用するチャネルとして決定するステップと、
を備えることを特徴とするチャネルの決定方法。 - 複数の計算機ノードが複数のチャネルによって相互に接続されたトーラス状の並列計算機ネットワークにおいて、メッセージが送信元の計算機ノードから中継計算機ノードを経由して送信相手先の計算機ノードへ転送される際に、前記送信元の計算機ノードが、前記メッセージの転送に使用するチャネルを決定するチャネルの決定方法であって、
前記並列計算機ネットワークを複数の領域に分割し、各領域に前記複数のチャネルのいずれか1つのチャネルを示すチャネル番号をそれぞれ割り当てるステップと、
前記メッセージを一方向にのみ転送する場合には、前記送信元の計算機ノードが、前記送信相手先の計算機ノードの位置に関する位置情報を取得するステップと、
前記取得された送信相手先の計算機ノードの位置情報に基づいて、その送信相手先の計算機ノードが前記複数の領域のいずれに存するかを判定するステップと、
前記判定された送信相手先の計算機ノードが存する領域に割り当てられたチャネル番号を取得するステップと、
前記取得されたチャネル番号に該当するチャネルを、少なくとも前記送信相手先の計算機ノードへのメッセージ転送に使用するチャネルとして決定するステップと、
を備えることを特徴とするチャネルの決定方法。 - 複数の計算機ノードが複数のチャネルによって相互に接続されたトーラス状の並列計算機ネットワークにおいて、メッセージが送信元の計算機ノードから中継計算機ノードを経由して送信相手先の計算機ノードへ転送される際に、前記送信元の計算機ノードが、前記メッセージの転送に使用するチャネルを決定するチャネルの決定方法であって、
前記並列計算機ネットワークを複数の領域に分割し、各領域に前記複数のチャネルのいずれか1つのチャネルを示すチャネル番号をそれぞれ割り当てるステップと、
前記メッセージを一方向にのみ転送する場合には、前記送信元の計算機ノードが、自己の位置に関する位置情報を取得するステップと、
前記取得された送信元の計算機ノードの位置情報に基づいて、その送信元の計算機ノードが前記複数の領域のいずれに存するかを判定するステップと、
前記判定された送信元の計算機ノードが存する領域に割り当てられたチャネル番号を取得するステップと、
前記取得されたチャネル番号に該当するチャネルを、少なくとも前記中継計算機ノードへのメッセージ転送に使用するチャネルとして決定するステップと、
を備えることを特徴とするチャネルの決定方法。 - 複数の計算機ノードが複数のチャネルによって相互に連結された二次元メッシュ状の並列計算機ネットワークにおいて、メッセージが送信元の計算機ノードから中継計算機ノードを経由して送信相手先の計算機ノードへ転送される際に、前記送信元の計算機ノードが、前記メッセージの転送に使用するチャネルを決定するチャネルの決定方法であって、
前記各計算機ノードに前記並列計算機ネットワーク内の各計算機ノードの絶対位置に応じた前記複数のチャネルのいずれか1つのチャネルを示すチャネル番号をそれぞれ割り当てるステップと、
前記送信元の計算機ノードが、前記送信相手先の計算機ノードの絶対位置に関する絶対位置情報を取得するステップと、
前記取得された送信相手先の計算機ノードの絶対位置情報に基づいて、その送信相手先の計算機ノードに割り当てられたチャネル番号を取得するステップと、
前記取得されたチャネル番号に該当するチャネルを、少なくとも前記中継計算機ノードへの前記メッセージの転送に使用するチャネルとして決定するステップと、
を備えることを特徴とするチャネルの決定方法。 - 複数の計算機ノードが複数のチャネルによって相互に連結された二次元メッシュ状の並列計算機ネットワークにおいて、メッセージが送信元の計算機ノードから中継計算機ノードを経由して送信相手先の計算機ノードへ転送される際に、前記送信元の計算機ノードが、前記メッセージの転送に使用するチャネルを決定するチャネルの決定方法であって、
前記各チャネルに番号をそれぞれ割り当てるステップと、
前記送信元の計算機ノードが、前記送信相手先の計算機ノードの前記二次元メッシュ状の並列計算機ネットワーク内におけるX方向の位置及びY方向の位置を含む絶対位置情報を取得するステップと、
前記取得された送信相手先の計算機ノードの絶対位置情報に含まれるX方向の位置及びY方向の位置に関し、このX方向の位置からY方向の位置を減算した値を前記複数のチャネル数で割った際の剰余を算出するステップと、
前記算出された剰余の数に対応する番号の割り当てられたチャネルを、少なくとも前記中継計算機ノードへの前記メッセージの転送に使用するチャネルとして決定するステップと、
を備えることを特徴とするチャネルの決定方法。 - 複数の計算機ノードが複数のチャネルによって相互に接続され、送信元計算機ノードから、計算機ノードの位置に対応するチャネル番号が割り当てられた送信先計算機ノード或いは中継計算機ノードに向けてメッセージを転送する並列計算機ネットワークにおける、 メッセージの転送に使用するチャネルの決定方法であって、
前記送信元計算機ノードが、
前記並列計算機ネットワーク内の前記中継計算機ノード或いは前記送信先計算機ノードの位置を取得するステップと、
前記取得された中継計算機ノード或いは送信先計算機ノードの位置に基づいて、前記中継計算機ノード或いは前記送信先計算機ノードに割り当てられたチャネル番号に該当するチャネルを、前記中継計算機ノード或いは前記送信先計算機ノードへのメッセージ転送に用いるチャネルとして決定するステップと、
前記決定されたチャネルを介して、前記中継計算機ノード或いは前記送信先計算機ノードへメッセージを転送するステップと、
を備えることを特徴とするチャネルの決定方法。 - 複数の計算機ノードが複数のチャネルによって相互に接続され、送信元計算機ノードから中継計算機ノード或いは送信先計算機ノードにメッセージを転送する、複数の領域に分割された並列計算機ネットワークにおける、メッセージの転送に使用するチャネルの決定方法であって、
前記送信元計算機ノードが、
前記中継計算機ノード或いは前記送信先計算機ノードが属する前記並列計算機ネットワークの領域を判定するステップと、
前記判定された領域に対して割り当てられたチャネル番号を取得するステップと、
前記取得されたチャネル番号に対応したチャネルを介して、前記中継計算機ノード或いは前記送信先計算機ノードにメッセージを転送するステップと、
を備えることを特徴とするチャネルの決定方法。 - 複数の計算機ノードが複数のチャネルによって相互に接続され、メッセージが送信元の計算機ノードから送信相手先の計算機ノードへ転送される並列計算機ネットワークにおける、メッセージの転送に使用するチャネルを決定するチャネルの決定方法であって、
前記送信元の計算機ノードが、
前記並列計算機ネットワーク内における自己の位置を取得するステップと、
前記取得された自己の位置に割り当てられたチャネルの番号に該当するチャネルを、前
記送信先の計算機ノードへのメッセージ転送に使用するチャネルとして決定するステップと、
を備えることを特徴とするチャネルの決定方法。 - 複数の計算機ノードが複数のチャネルによって相互に接続され、メッセージが送信元の計算機ノードから中継計算機ノードを経由して送信相手先の計算機ノードへ転送される並列計算機ネットワークにおける、メッセージの転送に使用するチャネルの決定方法であって、
前記送信元の計算機ノードが、
前記送信相手先の計算機ノードのX方向の位置及びY方向の位置を取得するステップと、
前記送信相手先の計算機ノードのX方向の位置からY方向の位置を減算した値を前記複数のチャネル数で割った際の剰余に対応する番号のチャネルを、前記中継計算機ノードへのメッセージ転送に使用するチャネルとして決定するステップと、
を備えることを特徴とするチャネルの決定方法。 - 複数のノードが複数のチャネルによって相互に接続され、送信元ノードにて生成されたメッセージが中継ノードに向けて転送された後に、前記中継ノードから送信先ノードに向けてメッセージが転送されるネットワークシステムにおいて、
前記複数のノードのそれぞれに、前記ネットワークシステム内の前記ノードの位置に応 じた、前記複数のチャネルのいずれかを示すチャネル番号が割り当てられ、
前記送信元ノードが、
前記中継ノードの位置を取得する手段と、
前記中継ノードの位置に対応して割り当てられたチャネル番号を取得する手段と、
前記取得されたチャネル番号を有するチャネルを、前記中継ノードにメッセージを転送するチャネルとして決定する手段と、
前記決定されたチャネルを介して、前記中継ノードにメッセージを転送する手段と、
を備えることを特徴とするネットワークシステム。 - 複数のノードが複数のチャネルによって相互に接続され、送信元ノードから中継ノードにメッセージが転送された後に、前記中継ノードから送信先ノードにメッセージが転送されるネットワークシステムにおいて、
前記ネットワークシステムが複数の領域に分割されているとともに、前記分割された領域ごとに、前記複数のチャネルのいずれかを示すチャネル番号が割り当てられ、
前記送信元ノードが、
前記中継ノードが存在する前記ネットワークシステムの領域を判定する手段と、
前記判定された領域に割り当てられたチャネル番号を取得する手段と、
前記取得されたチャネル番号を有するチャネルを、前記中継ノードにメッセージを転送するチャネルとして割り当てる手段と、
前記割り当てられたチャネルを介して、前記中継ノードにメッセージを転送する手段と、
を備えることを特徴とするネットワークシステム。 - 複数のノードが複数のチャネルによって相互に接続され、送信元ノードにて生成されたメッセージが送信先ノードに対して転送されるネットワークシステムにおいて、
前記複数のノードのそれぞれに、前記ネットワークシステム内の前記ノードの位置に応じた、前記複数のチャネルのいずれかを示すチャネル番号が割り当てられ、
メッセージの送信元となるノードが、
前記メッセージの送信先となるノードの位置を取得する手段と、
前記送信先ノードの位置に対応して割り当てられたチャネル番号を判別する手段と、
前記判別されたチャネル番号を有するチャネルを、前記送信先ノードへメッセージを転送するチャネルとして決定する手段と、
前記決定されたチャネルを介して、前記送信先ノードにメッセージを転送する手段と、
を備えることを特徴とするネットワークシステム。 - 複数のノードが複数のチャネルによって相互に接続されたネットワークシステムにおいて、
前記ネットワークシステムは複数の領域に分割されているとともに、前記分割された領域ごとに、前記複数のチャネルのいずれかを示すチャネル番号が割り当てられ、
前記ノードが、
自装置が属する前記ネットワークシステムの領域に対して割り当てられているチャネル番号を取得する手段と、
前記取得されたチャネル番号を有するチャネルを、送信先ノードへメッセージを送信するチャネルとして選択する手段と、
前記選択されたチャネルを介して、前記送信先ノードにメッセージを転送する手段と、
を備えることを特徴とするネットワークシステム。 - 複数のノードが複数のチャネルによって相互に接続され、送信元ノードから中継ノードにメッセージが転送された後に、前記中継ノードから送信先ノードにメッセージが転送されるネットワークシステムにおいて、
前記複数のノードのそれぞれに、前記ネットワークシステム内の前記ノードの位置に応じた、前記複数のチャネルのいずれかを示すチャネル番号が割り当てられ、
前記メッセージの送信元となるノードが、
前記メッセージの送信先となるノードの位置を取得する手段と、
前記位置が取得された送信先ノードに割り当てられたチャネル番号を判別する手段と、
前記判別されたチャネル番号を有するチャネルを、前記中継ノードへメッセージを転送するチャネルとして決定する手段と、
前記決定されたチャネルを介して、前記中継ノードにメッセージを転送する手段と、
を備えることを特徴とするネットワークシステム。 - 複数のノードが複数のチャネルによってX方向及びY方向に相互に接続され、送信元ノードから中継ノードにメッセージが転送された後に、前記中継ノードから送信先ノードにメッセージが転送されるネットワークシステムにおいて、
前記複数のノードのそれぞれに、前記ネットワークシステム内の前記ノードの位置に応じた、前記複数のチャネルのいずれかを示すチャネル番号が割り当てられ、
前記メッセージの送信元となるノードが、
前記メッセージの送信先となるノードのX方向及びY方向の位置を取得する手段と、
前記送信先ノードのX方向の位置からY方向の位置を減算した値を、前記複数のチャネルの数で割った際の剰余に対応する番号をチャネル番号として有するチャネルを、前記中継ノードにメッセージを転送するチャネルとして決定する手段と、
前記決定されたチャネルを介して、前記中継ノードにメッセージを転送する手段と、
を備えることを特徴とするネットワークシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17047996A JP3860257B2 (ja) | 1996-06-28 | 1996-06-28 | チャネルの決定方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17047996A JP3860257B2 (ja) | 1996-06-28 | 1996-06-28 | チャネルの決定方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1021208A JPH1021208A (ja) | 1998-01-23 |
JP3860257B2 true JP3860257B2 (ja) | 2006-12-20 |
Family
ID=15905718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17047996A Expired - Fee Related JP3860257B2 (ja) | 1996-06-28 | 1996-06-28 | チャネルの決定方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3860257B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5388323B2 (ja) * | 2007-11-09 | 2014-01-15 | 独立行政法人 宇宙航空研究開発機構 | 計算機 |
WO2010087002A1 (ja) | 2009-01-30 | 2010-08-05 | 富士通株式会社 | 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体 |
US8549092B2 (en) | 2009-02-19 | 2013-10-01 | Micron Technology, Inc. | Memory network methods, apparatus, and systems |
JP2010218364A (ja) * | 2009-03-18 | 2010-09-30 | Fujitsu Ltd | 情報処理システム、通信制御装置および方法 |
WO2011070913A1 (ja) * | 2009-12-07 | 2011-06-16 | 日本電気株式会社 | オンチップ並列処理システム及び通信方法 |
JP6499388B2 (ja) * | 2013-08-14 | 2019-04-10 | 富士通株式会社 | 並列計算機システム、管理装置の制御プログラムおよび並列計算機システムの制御方法 |
NO2776466T3 (ja) * | 2014-02-13 | 2018-01-20 |
-
1996
- 1996-06-28 JP JP17047996A patent/JP3860257B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1021208A (ja) | 1998-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6393026B1 (en) | Data packet processing system and method for a router | |
CN106980582B (zh) | 数据处理方法和装置 | |
US7889725B2 (en) | Computer cluster | |
US20140331027A1 (en) | Asymmetric mesh noc topologies | |
JPH01126760A (ja) | 並列計算機システム | |
KR19980070065A (ko) | 통신 스택의 상대적으로 대규모인 데이터 객체의 처리를 관리하기 위한 시스템 및 그 방법 | |
JPH08185380A (ja) | 並列計算機 | |
US5557266A (en) | System for cascading data switches in a communication node | |
JP3860257B2 (ja) | チャネルの決定方法 | |
JPH07101413B2 (ja) | データブロック選択方法および制御ブロック選択システム | |
JP2017502418A (ja) | 可変な数のコア群、入出力(i/o)装置、ディレクトリ構造、及びコヒーレンシポイントを有する、キャッシュコヒーレントnoc(ネットワークオンチップ) | |
US5808886A (en) | Reconfiguring control system in a parallel processing system by replacing an error-detected processing unit | |
JP4894013B2 (ja) | ネットワークに含まれるノード間の経路を探索するためのシステムおよび方法 | |
JP6946955B2 (ja) | 情報処理装置、演算処理装置及び情報処理装置の制御方法 | |
CN107291638A (zh) | 并行处理装置和控制通信的方法 | |
CN116915708A (zh) | 路由数据包的方法、处理器及可读存储介质 | |
US5553078A (en) | Communication control system between parallel computers | |
US6567856B1 (en) | Deadlock-free routing | |
JP3620719B2 (ja) | データ交換装置におけるルーティング処理システム | |
JPH06266684A (ja) | プロセッサ間ルーティング方式 | |
JP3304177B2 (ja) | 回線間中継装置 | |
JP2002344463A (ja) | 双方向リングネットワーク、ノード装置および双方向リングネットワーク制御方法 | |
JP3661932B2 (ja) | 並列計算機システムおよびクロスバスイッチ | |
JP4689917B2 (ja) | 分散処理システムにおける相互プロセス通信 | |
KR20190069722A (ko) | 스마트 디바이스 간 실시간 장애 처리 및 연결 복구를 위한 링 네트워크 통신 방법 및 그 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060512 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060523 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060721 |
|
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: 20060905 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060921 |
|
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: 20090929 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100929 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100929 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110929 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120929 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120929 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130929 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |