JP5056844B2 - 一意情報集団通信プログラム、計算ノード、および一意情報集団通信方法 - Google Patents

一意情報集団通信プログラム、計算ノード、および一意情報集団通信方法 Download PDF

Info

Publication number
JP5056844B2
JP5056844B2 JP2009505039A JP2009505039A JP5056844B2 JP 5056844 B2 JP5056844 B2 JP 5056844B2 JP 2009505039 A JP2009505039 A JP 2009505039A JP 2009505039 A JP2009505039 A JP 2009505039A JP 5056844 B2 JP5056844 B2 JP 5056844B2
Authority
JP
Japan
Prior art keywords
node
communication
nodes
area
information
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
Application number
JP2009505039A
Other languages
English (en)
Other versions
JPWO2008114440A1 (ja
Inventor
生人 細川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2008114440A1 publication Critical patent/JPWO2008114440A1/ja
Application granted granted Critical
Publication of JP5056844B2 publication Critical patent/JP5056844B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1886Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with traffic restrictions for efficiency improvement, e.g. involving subnets or subdomains

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Description

本発明はトーラス網内の一ノードとして機能するコンピュータにより一意情報集団通信を行うための一意情報集団通信プログラム、一意情報集団通信を実行するコンピュータ、一意情報集団通信方法、および一意情報集団通信プログラムを記録した記録媒体に関し、特に伝送路の負荷の平準化を考慮した一意情報集団通信を行うための一意情報集団通信プログラム、伝送路の負荷の平準化を考慮した一意情報集団通信を実行するコンピュータ、伝送路の負荷の平準化を考慮した一意情報集団通信方法、および伝送路の負荷の平準化を考慮した一意情報集団通信を行うための一意情報集団通信プログラムを記録した記録媒体に関する。
科学技術計算のような大規模な演算をコンピュータで行わせる場合、複数のコンピュータによって並列で演算処理を行うことで、短時間での演算を可能にしている。複数のコンピュータに並列処理を実行させる場合、コンピュータ間の相互のデータ通信効率が、全体の処理効率に大きな影響を及ぼす。そこで、効率的なデータ通信を行うための相互結合網として、単純メッシュ型やトーラス型が考えられている。なお、複数のコンピュータで構成されたシステムを構成する各コンピュータをノードと呼ぶ。
メッシュ型のネットワークは、格子状に組まれた通信経路の格子点にノードが配置される。トーラス型のネットワークは、メッシュ型の横方向および縦方向に並べられたノード配列の両端同士を伝送路で接続したものである。メッシュ型やトーラス型のネットワークでは、ノード間の通信データを含むメッセージが、たとえば、バケツリレー式で伝送される。バケツリレー式通信では、メッセージを受信した各ノードが、通信の宛先に近い方に隣接するノードへメッセージを渡す(ルーティングする)。
このとき、各ノードは、どのルートが最も効率よく伝送できるのかを、そのノード自身が判断してメッセージを転送する。たとえば、周囲のプロセッサの負荷量に基づいて、各プロセッサの負荷量が平均化するようにデータの転送先を決定する技術がある(特許文献1参照)。
特開昭63−198150号公報
ところで、メッシュ型やトーラス型でノード間が接続された計算機システムでは、一対多や多対多の通信(集団通信)が発生することがある。集団通信のうち、1台のノードから他の全てのノードへのデータ送信が発生するものとして、broadcast、Scatter、AllToAllがある。そのうち、同一の情報を多ノードに送信するbroadcastは、1つのメッセージに必要なデータを含め、バケツリレー式通信などによって完了できる。
しかし、それとは異なりScatter、AllToAllなどの集団通信では、大量のメッセージの通信が発生し、ネットワークの特定の通信経路に輻輳が発生する可能性がある。ここで、Scatterは、ある1台のノードから多数のノードへ個別のデータを送信する集団通信である。AllToAllは、全てのノードが、自己以外の他のノード全てに対して個別のデータを送信する集団通信である。なお、AllToAllは、全てのノードがScatterを実行する場合と同じである。これらの集団通信は、通信元と通信先とのノードの組それぞれで一意の情報通信をすることが、broadcastと大きく異なる(以下、Scatter、AllToAllなどの集団通信を「一意情報集団通信」と呼ぶ)。
例えば、メッシュ型およびトーラス型のネットワークで構成されたn並列(nはノード数を示す自然数)の計算機システムの一意情報集団通信では、Scatterでn回、AllToAllでnの2乗回のバケツリレー式通信が発生する。このような大量のデータ通信を無秩序に開始すると、特定の経路に負荷が集中して輻輳が発生する可能性がある。その結果、一意情報集団通信の開始から終了までの時間が延びてしまう。この問題は、特に多対多の通信を行うAllToAllにおいて顕著となる。
従来は、単純メッシュやトーラス網で構成された並列計算機システムにおける一意情報集団通信は、潜在的に通信網に対して高負荷な通信処理でありながら効率のよい通信負荷分散方法が提案されていなかった。そのため、特定の伝送路への負荷の集中を招いていた。
本発明はこのような点に鑑みてなされたものであり、一対多または多対多の一意の情報通信を効率よく行うことができる一意情報集団通信プログラム、計算ノード、および一意情報集団通信方法を提供することを目的とする。
本発明では上記課題を解決するために、図1に示すような一意情報集団通信プログラムが提供される。本発明に係る一意情報集団通信プログラムは、トーラス網内の一ノードとして機能するコンピュータ1からトーラス網内の他のノードに個別のデータを送信する一意情報集団通信を行うために、図1に示す機能をコンピュータ1に実行させることができる。
システム構成情報記憶手段1aは、トーラス網に属する各ノードの絶対座標が設定されたシステム構成情報を記憶する。所属領域判定手段1bは、システム構成情報に基づいて、コンピュータの位置を原点とした相対座標系を原点からの方向に応じて複数の領域に均等に分割し、ノードの相対座標に基づいてノードそれぞれが属する領域を判定し、ノードそれぞれの相対座標とノードが属する領域とを示す所属領域情報を生成する。所属領域情報記憶手段1cは、所属領域判定手段1bで生成された所属領域情報を記憶する。一意情報集団通信実行手段1dは、一意情報集団通信の実行指示が入力されると、所属領域情報記憶手段を参照し、ノードに一意のデータを含むメッセージの全てのノードに対する送信を、領域それぞれについて所定の基準時間あたり均等な回数ずつ順番に実行する。
このような一意情報集団通信プログラムをコンピュータ1に実行させると、所属領域判定手段1bにより、コンピュータの位置を原点とした相対座標系が原点からの方向に応じて複数の領域に均等に分割され、ノードの相対座標に基づいてノードそれぞれの属する領域が判定される。その後、一意情報集団通信の実行指示が入力されると、一意情報集団通信実行手段1dにより、ノードに一意のデータを含むメッセージの送信が、領域それぞれについて所定の基準時間あたり均等な回数ずつ順番に実行される。
本発明では、コンピュータの位置を原点とした相対座標系を原点からの方向に応じて複数の領域に均等に分割し、全てのノードに対するメッセージの送信を領域それぞれについて所定の基準時間あたり均等な回数ずつ順番に実行するようにした。これにより、一意情報集団通信における所定の基準時間あたりに領域に対して送出されるメッセージ数が均等となり、伝送路における輻輳の発生を低減できる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
発明の概要を示す図である。 本実施の形態の計算機システム構成例を示す図である。 本実施の形態に用いる管理サーバのハードウェア構成例を示す図である。 トーラス網を構成するノードのハードウェア構成例を示す図である。 管理サーバとノードの機能を示すブロック図である。 システム構成情報の例を示す図である。 所属領域情報を示す図である。 各ノードへのホップ数を示す図である。 第1象限の通信順を示す図である。 領域内順位情報を示す図である。 領域内順位情報に基づいた通信による負荷の分散状況を示す図である。 5×5のトーラス網の領域内順位情報を示す図である。 領域内順位情報に基づいた通信による負荷の分散状況を示す図である。 一意情報集団通信処理の手順を示すフローチャートである。 第2の実施の形態の管理サーバとノードとの機能を示すブロック図である。 運用情報記憶部のデータ構造例を示す図である。 第2の実施の形態における一意情報集団通信処理の手順を示すフローチャートである。 領域の他の4分割例を示す図である。 領域の8分割例を示す図である。 三次元空間の第1の分割例を示す図である。 三次元空間の第2の分割例を示す図である。
以下、本発明の実施の形態を図面を参照して説明する。
図1は、発明の概要を示す図である。コンピュータ1は、システム構成情報記憶手段1a、所属領域判定手段1b、所属領域情報記憶手段1c、一意情報集団通信実行手段1dを有している。
システム構成情報記憶手段1aは、トーラス網に属する各ノードの絶対座標が設定されたシステム構成情報を記憶する。なお、コンピュータ1自身の絶対座標も設定されている。たとえば、コンピュータ1のワークメモリ上にシステム構成情報記憶手段1aが設けられる。
所属領域判定手段1bは、システム構成情報に基づいて、コンピュータの位置を原点とした相対座標系を原点からの方向に応じて複数の領域に均等に分割する。次に、所属領域判定手段1bは、ノードの相対座標に基づいてノードそれぞれが属する領域を判定する。そして、所属領域判定手段1bは、ノードそれぞれの相対座標とノードが属する領域とを示す所属領域情報を生成する。
所属領域情報記憶手段1cは、所属領域判定手段1bで生成された所属領域情報を記憶する。たとえば、コンピュータ1のワークメモリ上に所属領域情報記憶手段1cが設けられる。
一意情報集団通信実行手段1dは、一意情報集団通信の実行指示が入力されると、所属領域情報記憶手段を参照し、ノードに一意のデータを含むメッセージの全てのノードに対する送信を、領域それぞれについて所定の基準時間あたり均等な回数(たとえば、1回)ずつ順番に実行する。
このような一意情報集団通信プログラムをコンピュータ1に実行させると、所属領域判定手段1bにより、コンピュータの位置を原点とした相対座標系が原点からの方向に応じて複数の領域に均等に分割され、ノードの相対座標に基づいてノードそれぞれの属する領域が判定される。その後、一意情報集団通信の実行指示が入力されると、一意情報集団通信実行手段1dにより、ノードに一意のデータを含むメッセージの送信が、領域それぞれについて所定の基準時間あたり均等な回数ずつ順番に実行される。メッセージは、隣接するノード2〜5のうち、送信先となるノードへの最もホップ数が少なくなるルート上のノードに対して送出される。
これにより、一意情報集団通信における所定の基準時間あたりに領域に対して送出されるメッセージ数が均等となり、伝送路における輻輳の発生を低減できる。
すなわち、各格子点に計算ノードをもつトーラス網で構成された並列計算機において、基点ノードと残りの全ノードの間で1対1通信を実施することで一意情報集団通信が実現できる。このとき、基点ノードから見て特定の方向にあるノード群に対する通信を、空間的および時間軸上に平準化することで通信負荷を分散できると考えられる。
空間的に平準化するには、トーラス網のもつ「任意の格子点1つを原点とみなした際にすべての格子点が原点からの相対座標で表現できる」という特徴を利用する。この性質を利用することにより、任意の計算ノードを基点としたときの相対座標系に対する負荷分散方法を考慮すればよくなる。
その実現方法として、図1に示した方法がある。これは、任意の計算ノードを基点としたときに基点を取り囲む形で全ノードを2以上に等分割し、その際各1対1通信が各領域について所定の基準時間あたり均等な回数行われるようにしたものである。これにより、所定の基準時間内に送出されるメッセージを同じ方向に集中させずにすむ。すなわち、空間的な負荷の均等化が図られる。
また、時間的にも負荷の均等化を図ることができる。それぞれの1対1通信については、全ノード間における相互通信路のバンド幅が等しいとき、通信のホップ数に比例して通信時に占有される通信路の経路長が増加する。このことから、通信負荷の重み付けとしてホップ数に着目し、所定の基準時間あたりに行われる通信のホップ数の合計を一定にできれば、時間軸における通信負荷も分散できると考えることができる。
具体的には、まず、上記の方法によって分割された各領域内における1対1通信に関し、基点ノードからのホップ数によって各計算ノードを順序付けし、各領域への通信順を昇順と降順とで半分ずつになるように組分けする。そして、各領域へ送信される基準時間あたりのメッセージ数を均等にして、設定された通信順で各ノードへメッセージを送信する。これにより、微小時間あたり均等な合計ホップ数となる。
また、代表となる1つまたは複数の領域の空間におけるノードの通信順に沿った走査の軌跡を、代表ではない残りの領域間に対して対称(flip)、回転(rotate)、平行移動(shift)またはそれらを組み合わせて複製する。複製された走査の軌跡に沿って、残りの領域の各ノードの通信順を設定する。この方法でも、各基準時間あたりのホップ数を均等にすることができる。特に、代表となる領域とそれらの複製領域との間に各座標軸の正負間で対称性を持つ場合、各座標軸の正方向負方向それぞれにおける各基準時間あたりのホップ数を均等にできる。
なお、代表の領域におけるノードの通信順の決定方法として、単純なホップ数による昇順降順だけでなく、ホップ数の近い方からの昇順と遠い方とからの降順とで交互にノードを選択し、選択順を通信順とすることもできる。
ホップ数によって順序を決定する際にノード間の各相互通信路のバンド幅(通信速度)が一定ではない場合、伝送路のバンド幅に応じた値を仮想ホップ値として、通信路上の仮想ホップ値の合計を実効ホップ数とする。この際、仮想ホップ値は、バンド幅が広いほど小さな値となる。数式で表すと、以下のようになる。
Figure 0005056844
ここで、iは通信路上の各伝送路に振られた番号であり、1以上ホップ数以下の整数である。バンド幅iは、i番の伝送路のバンド幅である。
このようにして算出した実効ホップ数を通常のホップ数に置き換えて、上記のノードの通信順判定に適用することで、バンド幅の異なる伝送路で接続されたトーラス網にも適用可能となる。
以下、これらの方法を組み合わせた実施の形態について詳細に説明する。
[第1の実施の形態]
図2は、本実施の形態の計算機システム構成例を示す図である。本実施の形態の計算機システムは、複数のノードで構成されるトーラス網10と、そのトーラス網10を管理するための管理サーバ70で構成される。
図2の例では、6×6の二次元トーラス網が示されている。トーラス網10は36台のノード11〜16,21〜26,31〜36,41〜46,51〜56,61〜66で構成されている。ノード11〜16は、格子状のネットワークの同一行に並べられており、隣り合ったノード同士が光通信などの高速の伝送路で接続されている。また、配列の両端に位置するノード11,16同士も、高速の伝送路で接続されている。ノード11〜16の接続関係と同様に、ノード21〜26間、ノード31〜36間、ノード41〜46間、ノード51〜56間、ノード61〜66間がそれぞれ接続されている。
また、ノード11,21,31,41,51,61は、格子状のネットワークの同一列に並べられており、隣り合ったノード同士が光通信などの高速の伝送路で接続されている。また、配列の両端に位置するノード11,61同士も、高速の伝送路で接続されている。このノード11,21,31,41,51,61の接続関係と同様に、ノード12,22,32,42,52,62間、ノード13,23,33,43,53,63間、ノード14,24,34,44,54,64間、ノード15,25,35,45,55,65間、ノード16,26,36,46,56,66間が接続されている。
このように、格子状に配列された各ノードの横方向および縦方向に隣り合ったノード同士が接続されると共に、それぞれの方向の両端に位置するノード同士が接続されている。これらのノードが互いに通信して連携を取りながらジョブ(与えられた処理)を並列で実行することで、高速の処理が可能となる。
トーラス網10の各ノードには、管理用のネットワークを介して管理サーバ70が接続されている。管理サーバ70は、トーラス網10の各ノードに対してジョブの実行指示を与える。また、システムの起動時には、管理サーバ70から各ノードに対して、システムの構成情報や、それぞれのノードのアドレスが通知される。
図3は、本実施の形態に用いる管理サーバのハードウェア構成例を示す図である。管理サーバ70は、CPU(Central Processing Unit)70aによって装置全体が制御されている。CPU70aには、バス70gを介してRAM(Random Access Memory)70b、ハードディスクドライブ(HDD:Hard Disk Drive)70c、グラフィック処理装置70d、入力インタフェース70e、および通信インタフェース70fが接続されている。
RAM70bには、CPU70aに実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM70bには、CPU70aによる処理に必要な各種データが格納される。HDD70cには、OSやアプリケーションプログラムが格納される。
グラフィック処理装置70dには、モニタ81が接続されている。グラフィック処理装置70dは、CPU70aからの命令に従って、画像をモニタ81の画面に表示させる。入力インタフェース70eには、キーボード82とマウス83とが接続されている。入力インタフェース70eは、キーボード82やマウス83から送られてくる信号を、バス70gを介してCPU70aに送信する。
通信インタフェース70fは、トーラス網10に接続されている。通信インタフェース70fは、トーラス網10を介して、他のコンピュータとの間でデータの送受信を行う。
図4は、トーラス網を構成するノードのハードウェア構成例を示す図である。ノード44は、CPU44aによって装置全体が制御されている。CPU44aには、バス44iを介してRAM44b、ハードディスクドライブ44c、および複数の通信インタフェース44d〜44hが接続されている。
RAM44bには、CPU44aに実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM44bには、CPU44aによる処理に必要な各種データが格納される。HDD44cには、OSやアプリケーションプログラムが格納される。
通信インタフェース44d〜44gは、それぞれ高速の伝送路を介してノード43,45,34,54に接続されている。通信インタフェース44d〜44gは、ノード43,45,34,54との間でデータの送受信を行う。
通信インタフェース44hは、管理用のネットワークを介して管理サーバ70に接続されている。通信インタフェース44hは、管理サーバ70との間でデータ通信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、トーラス網10を構成するノードに関してはノード44のハードウェア構成を代表として説明したが、他のノードも同様のハードウェアで実現できる。
図5は、管理サーバとノードの機能を示すブロック図である。管理サーバ70は、システム構成通知部71とジョブ実行要求部72とを有している。
システム構成通知部71は、各ノードの起動時に、起動されたノードに対してトーラス網10のシステム構成情報を通知する。通知されるシステム構成情報には、起動されたノードのアドレスや他のノードのアドレスが含まれる。例えば、システム構成通知部71は、トーラス網10の各ノードの起動が完了した時点で運用管理者からの操作入力を受け付ける。そして、システム構成通知部71は、その操作入力に基づいて、各ノードに対してシステム構成情報を送信する。
ジョブ実行要求部72は、ジョブの実行要求をノードに対して送信する。具体的には、ジョブ実行要求部72は、操作入力などによってジョブの投入指示を受け付ける。その投入指示には、ジョブの実行に必要なノード数が示される。ジョブ実行要求部72は、トーラス網10を構成するノードのうち現在ジョブを実行していないノードを、ジョブの実行に必要な数だけ選択する。そして、ジョブ実行要求部72は、選択したノードに対してジョブの実行要求を送信する。
ノード44は、所属領域判定部441、システム構成情報記憶部442、所属領域情報記憶部443、領域内順位判定部444、領域内順位情報記憶部445、ジョブ管理部446、ジョブプロセス447、一意情報集団通信実行部448、周期カウンタ448a、および領域カウンタ448bを有している。
所属領域判定部441は、他のノードとの間で一意情報集団通信をおこなうために、ノード44自身を基点として他のノードの所属領域を判定する。具体的には、所属領域判定部441は、管理サーバ70から送られたシステム構成情報を、システム構成情報記憶部442に格納する。次に、所属領域判定部441は、ノード44自身の絶対座標と他のノードの絶対座標とに基づいて、他のノードの所属領域を決定する。所属領域は、2次元平面における所定の領域を表している。そして、所属領域判定部441は、自身を原点としたときの他のノードの相対座標と、各ノードの所属領域とを示す所属領域情報を作成し、所属領域情報記憶部443に格納する。
システム構成情報記憶部442は、システム構成情報を記憶するための記憶領域である。たとえば、RAM44bの記憶領域の一部がシステム構成情報記憶部442として使用される。
所属領域情報記憶部443は、所属領域情報を記憶するための記憶領域である。たとえば、RAM44bの記憶領域の一部が所属領域情報記憶部443として使用される。
領域内順位判定部444は、所属領域判定部441で作成された所属領域情報に基づいて、各領域内でのノード間通信を行う相手ノードの順番を決定する。順番の決定アルゴリズムについては、予め領域内順位判定部444に定義されている。そして、領域内順位判定部444は、決定された順番に基づく各領域内の各ノードの通信順を定義した領域内順位情報を作成し、領域内順位情報記憶部445に格納する。
領域内順位情報記憶部445は、領域内順位情報を記憶するための記憶領域である。たとえば、RAM44bの記憶領域の一部が領域内順位情報記憶部445として使用される。なお、本実施の形態では、領域内順位情報は、所属領域情報に示された各ノードの所属領域に関する情報を包含している。そのため、一意情報集団通信を行う際には、領域内順位情報を参照することで、各ノードの相対座標、各ノードの所属領域、および各ノードの領域内での通信順を認識できる。
ジョブ管理部446は、管理サーバ70からのジョブ実行要求に基づいてジョブプロセス447にジョブを実行させる。なお、実行すべきジョブの処理内容が記載されたプログラムは、たとえば、HDD44cから読み出される。その場合、ジョブ管理部446は、HDD44cに格納されているプログラムを指定した実行要求を示すコマンドをノード44のOSに入力し、その際、ジョブ実行要求に示される実行条件に応じた変数などを、コマンドの引数として指定する。その結果、OSによってジョブプロセス447が起動される。
ジョブプロセス447は、起動時に指定されたプログラムに従ったデータ処理を実行する。すなわち、ジョブプロセス447は、プログラム中に示された命令を順番に実行する。なお、ジョブプロセス447は、並列ジョブを実行している場合、他のノード上で機能しているジョブプロセスとの間で連携した処理を実行する。
このとき、実行すべき命令が一意情報集団通信を指示する命令の場合、ジョブプロセス447は、一意情報集団通信実行部448に対して一意情報集団通信の実行を依頼する。たとえば、一意情報集団通信実行部448の呼び出し用の関数をOSに予め定義しておくことができる。その場合、ジョブプロセス447によって一意情報集団通信実行部448の呼び出し用の関数が呼び出されると、OSによって一意情報集団通信実行部448が起動される。また、ジョブプロセス447は、一意情報集団通信を指示する場合、他の全てのノードそれぞれに一意のデータ(他のノードに1対1の通信で渡すべきデータ)を一意情報集団通信実行部448に渡す。
一意情報集団通信実行部448は、ジョブプロセス447から一意情報集団通信の実行依頼を受け取ると、他の全てのノードとの間でそのノードに一意の情報を通信する。具体的には、一意情報集団通信実行部448は、領域内順位情報記憶部445に格納された所属領域管理テーブルを参照し、他のノードそれぞれが属する領域と、各領域内でのノードの通信順を取得する。次に、一意情報集団通信実行部448は、基準時間の一周期ごとに、それぞれの領域内の該当周期で通信すべきノード相手のメッセージ送信を行う。基準時間は、各象限への1回ずつのメッセージの送出に必要な時間である。メッセージには、送信相手のノードに一意のデータが含まれる。メッセージ送信の際、一意情報集団通信実行部448は、周期カウンタ448aを用いて現在何周期目なのかを判断する。また、一意情報集団通信実行部448は、領域カウンタ448bを用いて、一周期内で次に通信対象とすべきノードが属する領域を判断する。
周期カウンタ448aは、一意情報集団通信が開始されてからの周期をカウントした値を記憶する記憶領域である。たとえば、RAM44bの記憶領域の一部が周期カウンタ448aとして使用される。
領域カウンタ448bは、一意情報集団通信の一周期内で、次に通信相手とすべきノードが属する領域を示す値を記憶する記憶領域である。たとえば、RAM44bの記憶領域の一部が領域カウンタ448bとして使用される。
次に、一意情報集団通信に使用される情報の内容を具体的に説明する。
図6は、システム構成情報の例を示す図である。システム構成情報442aには、各ノードの絶対座標が示されている。図6では、各ノードを示す矩形の中にそのノードの絶対座標を示している。
この例では、6×6の二次元のトーラス網10をX−Y座標によって表している。すなわち、X軸の0から5までの整数、Y軸の0から5までの整数を組み合わせて作成される二次元座標が、各ノードに割り当てられている。原点の座標(0,0)には、ノード11が配置されている。ノード44の絶対座標は(3,3)である。
このように全てのノードが他のノードの座標を知っていることで、通信相手の座標を指定してメッセージを送信すれば、間に挟まっているノードが指定された座標に向けてメッセージを転送する。メッセージの転送は、ノードの配置に基づいて、隣接するノードの中から送信相手に近いノードに対して行われる。
このようなシステム構成情報442aに基づいて、所属領域判定部441が各ノードの所属領域を判定する。そして、各ノードに対して、基点のノードからの相対座標を付与することで、所属領域管理テーブルが作成される。ここで、基点のノード44から4方向に境界線を引き、2次元平面をその境界線の間の領域に分割する場合を想定する。
図7は、所属領域情報を示す図である。所属領域情報443aは、各ノードが属する領域と、基点のノードと各ノードとの間の相対座標で構成される。この例では、ノード44を基点ノードとし、6×6の二次元のトーラス網10をx,y座標の正負によって四象限で分割している。なお、この例では、x軸の座標値が0のノードは、xの正数の領域(第1または第4象限)に属するものとする。また、y軸の座標値が0のノードは、yの正数の領域(第1または第2象限)に属するものとする。
本実施の形態では、x軸上のノード(相対座標のy値が0)またはy軸上のノード(相対座標のx値が0)の所属領域の決定方法は、基点のノードの絶対座標に基づいて判断する。その詳細は後述する。
各ノードには、ノード44からの相対座標が定義される。この相対座標は、各ノードの絶対座標から、ノード44の絶対座標を減算することで求められる。相対座標のx値が正、y値が正のノードは、第1象限に属する。相対座標のx値が負、y値が正のノードは、第2象限に属する。相対座標のx値が負、y値が負のノードは、第3象限に属する。相対座標のx値が正、y値が負のノードは、第4象限に属する。
このような所属領域情報443aに基づいて、領域内順位判定部444において、各領域内での各ノードの通信順が決定される。このとき、一意情報集団通信は、原点である基点ノードを通信元として、1周期あたりそれぞれ各象限に所属する通信先ノードに対して等しい回数(必ずしも1回である必要はない)ずつ通信を行うこととする(たとえば、通信先ノードが属する象限をそれぞれ第1象限−第2象限−第3象限−第4象限−第1象限・・・というような順番で走査するなど)。
ここで、同一領域内の通信順の決定ルール(捜査順序ルール)は、基点のノードからのホップ数に応じた昇順、逆にホップ数の降順、インターリーブなどが考えられる。以下にこれらの捜査順序ルールについて説明する。なお、ホップ数とは、送信相手のノードまでに何回の転送(ルーティング)が必要かを示している。
図8は、各ノードへのホップ数を示す図である。図8に示すように、基点のノード44から遠ざかるに従って、ホップ数が増加する。このホップ数を用い、ホップ数が小さいノードから昇順に通信順が設定される。
ここで、同一象限内に、ホップ数が同じノードが複数存在する。そこで、ホップ数が同一の場合に通信順を決定するルールが必要となる。本実施の形態では、第1象限に関して、x軸の座標値が大きいノードを優先するものとする。
図9は、第1象限の通信順を示す図である。基点であるノード44の通信順は「1」である。これは、他の象限の通信順の決定に必要であることから便宜上設定したものである。すなわち、ノード44に通信順「1」が設定されているからといって、第1周期にノード44に対する何らかの通信処理が発生するわけではない。ただし、一意情報集団通信ではノード44上で機能するジョブプロセス447に対しても所定のデータが渡される場合がある。そのようなデータの受け渡しは、ノード44の内部処理によって行われる。
ノード45とノード54は、共にホップ数が「1」であるが、ノード45の方がx軸の正の値が大きい。そのため、ノード45の通信順が「2」、ノード54の通信順が「3」とされている。
残りの象限については、まず、第1象限とx軸,y軸それぞれについて線対称(flip)に順位付けが行われる。その上で第2および第4象限については順位の上位と下位を並べ替える。すなわち、第2および第4象限については、ホップ数が大きいノードの通信順を先にする。
このようにして定義した各ノードの通信順が、領域内順位情報に設定される。
図10は、領域内順位情報を示す図である。領域内順位情報445aに示すように、第2象限の通信順は、第1象限の各ノードの通信順を、y軸について線対称となる第2象限の各ノードに設定し、順位の上位と下位とを逆に並べ替えたものである。
第3象限の通信順は、第1象限の各ノードの通信順を、y軸について線対称となる第2象限の各ノードに設定し、さらに第2象限の各ノードの通信順を、x軸について線対称となる第3象限の各ノードに設定したものである。これは、第1象限の各ノードの通信順を、原点について点対称となる第4象限の各ノードに設定した場合と同じである。
第4象限の通信順は、第1象限の各ノードの通信順を、x軸について線対称となる第4象限の各ノードに設定し、順位の上位と下位とを逆に並べ替えたものである。
一意情報集団通信が開始されると、このような領域内順位情報445aに基づいて、周期番号と同じ順位のノードを通信先として1対1通信が行われる。
なお、図10では、通信順を分かりやすくするために各ノードをトーラス網10での配置の通り並べて示している。実際に一意情報集団通信を行う上で必要な情報は、各ノードの絶対座標と、通信順である。従って、領域内順位情報445aは、最低限、各ノードの絶対座標に対応付けて、そのノードの通信順が設定されていればよい。
このようにして定義された通信順に沿って一意情報集団通信が行われる。これにより、1周期あたりの空間的に各象限に対して発生する通信がほぼ均等になる。すなわち、第1周期において第1象限のノードに対する通信が発生しない以外は、各周期において各象限それぞれに属する1つのノードに対する通信が行われる。
図11は、領域内順位情報に基づいた通信による負荷の分散状況を示す図である。この図には、周期、ホップ(Hop)方向、第1象限、第2象限、第3象限、第4象限、小計、および合計の欄が設けられている。
周期の欄は、一意情報集団通信を開始してからの通信の周期番号を示している。ホップ方向の欄は、基点のノードから見たときの通信相手のノードの通信方向を示している。ホップ方向は、x軸の正方向(x+)、x軸の負方向(x−)、y軸の正方向(y+)、y軸の負方向(y−)のいずれかである。
第1象限の欄には、各周期で第1象限のノード相手に開始される通信のホップ数を示している。ホップ数は、ホップ方向別に示される。第2象限の欄には、各周期で第2象限のノード相手に開始される通信のホップ数を示している。ホップ数は、ホップ方向別に示される。第3象限の欄には、各周期で第3象限のノード相手に開始される通信のホップ数を示している。ホップ数は、ホップ方向別に示される。第4象限の欄には、各周期で第4象限のノード相手に開始される通信のホップ数を示している。ホップ数は、ホップ方向別に示される。
小計の欄には、各周期で発生した通信のホップ数を、ホップ方向別に合計した値が示されている。合計の欄には、各周期で発生した通信のホップ数の、周期ごとの合計が示されている。
図11の例では正負合わせた合計値が、全9周期において常に12ホップとなる。すなわち、各周期において、均等に12ホップ分ずつの通信が開始されている。これにより、時間軸における負荷が分散できていることがわかる。
なお、x,yの正負方向における小計では、各軸の正方向が常に2、負方向が常に4である。これは、象限分割の際にx軸上、y軸上のノード(xの座標値またはyの座標値が0)をともに正数と扱ったために発生している。たとえば、第2象限ではx軸の負方向に1だけ余分にホップ数が必要となり、第4象限ではy軸の負方向に1だけ余分にホップ数が必要となり、第3象限ではx軸およびy軸それぞれの負方向に1ずつ余分にホップ数が必要となる。これらの数値を合計すると、x軸およびy軸それぞれの負方向に2ずつのホップ数が余分となる。その結果、負方向のホップ数は、正方向のホップ数より常に2だけ多くなるのである。
このように負の方向に生じる余分なホップは、領域の境界を越えるための伝送に相当する。すると、トーラス網の規模がどれだけ大きくなっても、4つの象限に領域を分割している限り、各軸の負の方向に生じる余分なホップ数は2である。
このような負の方向に生じる余分なホップを差し引いて考えると、全軸の全方向が常に2ホップになり負荷分散できていることがわかる。この均等性は、ノード数が増大しても崩れることはない。従って、大規模なトーラス網では、各軸の負の方向に2ずつ余分なホップ数が生じることは大きな問題とはならず、1周期ごとのデータ通信について、データ通信方向の均等性が保たれていることが分かる。
次に、x軸上のノード(相対座標のy値が0)またはy軸上のノード(相対座標のx値が0)の所属領域の決定方法について詳細に説明する。
各軸のノード数が偶数で各軸の正負によって領域を分割する場合、象限分割の境界線の設定次第で特定軸の特定方向に余分にホップ数が必要になる。すると、上記のような走査順序ルールが全てのノードにおいて適用された場合、全てのノードにおける一意情報集団通信において、各軸の負の方向に2ずつ余分なホップが生じる。Scatterのように、1つのノードから他の全てのノード相手に一意情報集団通信を行う場合には大きな問題ではないが、AllToAllが行われると、余分なホップが無視できない場合も考えられる。
その場合、相対座標の0を正数と扱うか負数と扱うかに関して、基点ノードの絶対座標の各軸値が偶数か奇数かで判断するようなルールにすることで、AllToAllにおける特定方向へのホップ数の偏りを避けることが可能である。
たとえば、基点ノードの絶対座標におけるX軸の値が偶数であれば、そのノードの所属領域判定処理では相対座標のxの0を負数と見なす。基点ノードの絶対座標におけるX軸の値が奇数であれば、そのノードの所属領域判定処理では相対座標のxの0を正数と見なす。基点ノードの絶対座標におけるY軸の値が偶数であれば、そのノードの所属領域判定処理では相対座標のyの0を負数と見なす。基点ノードの絶対座標におけるY軸の値が奇数であれば、そのノードの所属領域判定処理では相対座標のyの0を正数と見なす。
このように所属領域判定を行うと、図6に示すノード44を基点ノードとした場合、ノード44は第1象限に属する。基点のノードが第1象限であれば、余分なホップ数は、x軸の負方向に2、y軸の負方向に2である。ノード43を基点ノードとした場合、ノード43は第2象限に属する。基点のノードが第2象限であれば、余分なホップ数は、x軸の正方向に2、y軸の負方向に2である。ノード33を基点ノードとした場合、ノード33は第3象限に属する。基点のノードが第3象限であれば、余分なホップ数は、x軸の正方向に2、y軸の正方向に2である。ノード34を基点ノードとした場合、ノード34は第4象限に属する。基点のノードが第4象限であれば、余分なホップ数は、x軸の負方向に2、y軸の正方向に2である。
この結果、AllToAllをした場合の余分なホップ数を各軸のホップ方向別に合計すると、均等になることが分かる。
ところで、上記の例は6×6の二次元のトーラス網10における一意情報集団通信のための各ノードの所属領域判断、および領域内での各ノードの通信順を定義したものである。この方法は、偶数×偶数の全ての二次元のトーラス網に適用可能である。一方、奇数×奇数のトーラス網の場合、上記の方法をそのまま適用することができない。以下に、奇数×奇数のトーラス網における各ノードの所属領域判断、および領域内での各ノードの通信順の決定方法について説明する。
図12は、5×5のトーラス網の領域内順位情報を示す図である。これは、各軸の要素数が奇数の場合の代表例であり、5×5の二次元トーラス網をx,y座標の正負によって四象限で分割している。
ここで、相対座標の座標値が0のノードは、正数負数どちらにも属するものとして扱っている。すなわち、x座標値が0であり、y座標値が正のノード43,53は、第1象限と第2象限との両方に属する。x座標が0であり、y座標値が負のノード13,23は、第3象限と第4象限との両方に属する。y座標値が0であり、x座標値が正のノード34,35は、第1象限と第4象限との両方に属する。y座標が0であり、x座標値が負のノード31,32は、第2象限と第3象限との両方に属する。x座標値とy座標値とが0のノード33(基点のノード)は、第1から第4象限の全てに属する。
このようにして所属領域を決定した後、各領域(象限)に属するノード内で通信順を決定する。この例で適用した捜査順序ルールでは、まず、第1象限の通信順を決定する。
第1象限のホップ数に基づいて、図9に示したと同様にx軸正の値を大きいノードを優先して、仮の順位付けを行う。次に、領域内のノード数をm(mは、1以上の整数)として、ホップ数に基づいて設定した仮の順位M(1以上m以下の整数)に対して、M=1,m,2,m−1,…という順番(インターリーブ方式)で、通信順を設定する。その結果、仮の順位Mが「1」であるノード33の通信順が「1」、仮の順位Mが「9(=m)」であるノード55の通信順が「2」、仮の順位Mが「2」であるノード34の通信順が「3」、仮の順位Mが「8(=m−1)」であるノード54の通信順が「4」、・・・となる。
このようにして決定された第1象限の各ノードの通信順を平行移動(shift)して他の象限の各ノードの通信順とする。
このようにして、領域ごとの通信順を決定した結果、複数の領域に属するノードに関しては、それぞれの領域における通信順が与えられる。これは、複数の領域に属するノードは、1回の一意情報集団通信において複数回の通信機会が与えられることを意味する。そこで、通信回数が複数回となるノードに関しては、通信データを与えられた通信回数に応じた数に分割し、通信順の周期になったときに、分割されたデータをメッセージに含めて通信することとする。
具体的には、一意情報集団通信を実行する際に、任意のノードにおける各座標軸の通過数の合計をn(nは、0以上の整数)としたとき1/2n倍のデータサイズで通信内容を分割して1対1通信を行う。そのときのホップ数のカウントについてもホップ数を1/2n倍に補正する。図12の例では、ノード13,23,31,32,34,35,43,53は、1つの座標軸上にある(x座標値またはy座標値の一方のみが0)。この場合、n=1として、通信1回あたりのデータサイズを、全体のデータサイズの1/2として、各ノードと基点ノードとの間の通信が行われる。なお、ノード33は2つの座標軸上にある(x座標値とy座標値との両方が0)が、基点ノードであるため、実際の通信は発生しない。
図13は、領域内順位情報に基づいた通信による負荷の分散状況を示す図である。図13では、図12についてのそれぞれの周期に関する各四象限におけるx,yの正負方向の補正後のホップ数とそれらの小計および正負方向合わせた合計を示している。ここでは正負合わせた合計値が6から8で7±1ホップに収まっており、概ね負荷分散できていることがわかる。
また、各軸の正負方向の方向別の小計については、各1周期だけに着目すると偏っているようにも見える。ところが、隣接する奇数と偶数の周期同士における平均をみると1.5ないし2.0となり概ね負荷分散できていることがわかる。すなわち、2周期分を時間分割の1単位として見ると、各所定の基準時間あたりに発生する通信で発生するホップ数は、各方向とも3から4の間であり、その差は1しかない。これはホップ数に関する単純な昇順降順ではなく1,m,2,m−1,…というインターリーブ方式で通信順を決定したことにより、特定の軸方向にホップ数が偏らないようにできたためである。
なお、トーラス網の形態として要素数が偶数×奇数や奇数×偶数という形態も考えられる。すなわち、トーラス網における各軸方向のノード数は、軸ごとに異なっている場合もある。このような場合には、奇数のノードが並べられた軸方向に領域を分割したときの各ノードが属する領域の決定方法については、先に説明した奇数×奇数のノードの所属の決め方によって各ノードが属する領域を決定する。また、偶数のノードが並べられた軸方向に領域を分割したときの各ノードが属する領域の決定方法については、先に説明した偶数×偶数のノードの所属の決め方によって各ノードが属する領域を決定する。
次に、ノード44における一意情報集団通信処理の手順について説明する。
図14は、一意情報集団通信処理の手順を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。なお、以下の処理は、ノード44が起動され、トーラス網内の1つのノードとしてデータ処理サービスを開始すべく旨の指示が入力されたときに開始される。サービス開始の指示は、ノード44の起動時にOSが自動的に発行することができる。また、システムの運用管理者が管理サーバ70を介して入力することもできる。
[ステップS11]所属領域判定部441は、管理サーバ70からシステム構成情報を取得する。所属領域判定部441は、取得したシステム構成情報をシステム構成情報記憶部442に格納する。
[ステップS12]所属領域判定部441は、トーラス網10の座標空間を所定数の領域に分割し、各ノードが属する領域を判定する。具体的には、所属領域判定部441は、システム構成情報に基づいて、ノード44自身の絶対座標を認識する。そして、所属領域判定部441は、ノード44を基点のノードとして、ノード44から見た他の全てのノードの相対座標を求める。
次に、所属領域判定部441は、相対座標による二次元の座標空間を、四つの象限に分割する。第1の象限は、x軸が正、y軸が正の領域である。第2の象限は、x軸が負、y軸が正の領域である。第3の象限は、x軸が負、y軸が負の領域である。第4の象限は、x軸が正、y軸が負の領域である。
ここで、所属領域判定部441は、システム構成情報に基づいて、トーラス網の「x軸方向のノード数」×「y軸方向のノード数」が偶数×偶数なのか、奇数×奇数なのか、奇数×偶数なのか、あるいは偶数×奇数なのかを判断する。
所属領域判定部441は、偶数×偶数のトーラス網の場合、基点のノード44の絶対座標に基づいて、相対座標のx軸、y軸の座標値が0のノードが所属する領域の判定方法を決定する。ノード44の絶対座標のX座標値が偶数であれば、相対座標におけるx座標値の0を負数と見なす。ノード44の絶対座標のX座標値が奇数であれば、相対座標におけるx座標値の0を正数と見なす。ノード44の絶対座標のY座標値が偶数であれば、相対座標におけるy座標値の0を負数と見なす。ノード44の絶対座標のY座標値が奇数であれば、相対座標におけるy座標値の0を正数と見なす。
図6に示すトーラス網10であれば、ノード44の絶対座標は(3,3)であり、X座標値、Y座標値ともに奇数である。すると、相対座標におけるx座標値の0と、y座標値の0との両方を正の数と見なして、各ノードの所属領域を判断する。その結果、図7に示すような所属領域情報443aが生成される。
また、所属領域判定部441は、トーラス網が奇数×奇数の場合、相対座標系におけるx軸上、y軸上のノードは、そのノードを横切る軸で分けられた双方の領域(象限)に属すると判断する。
トーラス網が奇数×偶数の場合、ノード数が奇数であるx軸の座標値が0のノード(y軸上のノード)は、y軸で分けられた双方の領域(象限)に属すると判断する。また、ノード数が偶数であるy軸の座標値が0のノード(x軸上のノード)については、基点のノード44の絶対座標に基づいて、相対座標のy軸の座標値が0のノードが所属する領域の判定方法を決定する。ノード44の絶対座標のY座標値が偶数であれば、相対座標におけるy座標値の0を負数と見なす。ノード44の絶対座標のY座標値が奇数であれば、相対座標におけるy座標値の0を正数と見なす。
トーラス網が偶数×奇数の場合、ノード数が偶数であるx軸の座標値が0のノード(y軸上のノード)については、基点のノード44の絶対座標に基づいて、相対座標のx軸の座標値が0のノードが所属する領域の判定方法を決定する。ノード44の絶対座標のX座標値が偶数であれば、相対座標におけるx座標値の0を負数と見なす。また、ノード44の絶対座標のX座標値が奇数であれば、相対座標におけるx座標値の0を正数と見なす。ノード数が奇数であるy軸の座標値が0のノード(x軸上のノード)は、x軸で分けられた双方の領域(象限)に属すると判断する。
所属領域判定部441は、各ノードが属する所属領域を示す所属領域情報を作成し、所属領域情報記憶部443に格納する。
[ステップS13]領域内順位判定部444は、領域内順位を判定する。具体的には、領域内順位判定部444は、所属領域情報記憶部443に格納された所属領域情報を参照し、まず、第1象限に属するノードを取得する。そして、基点のノード(ノード44)から各ノードまでのホップ数が少ない順に、通信順の順位付けを行う。ここで、ホープ数が同じノードに関しては、x軸の座標値が大きいノードを優先(先の順位)とする。
次に、領域内順位判定部444は、トーラス網の「x軸方向のノード数」×「y軸方向のノード数」が偶数×偶数なのか、奇数×奇数なのか、奇数×偶数なのか、偶数×奇数なのかを判断する。
偶数×偶数の場合、まず領域内順位判定部444は、第1象限の各ノードの通信順を、y軸に線対称で第2象限の各ノードに割り当てる。領域内順位判定部444は、このとき割り当てた通信順を仮の順位とし、各ノードの仮の順位の配列を前後逆に入れ替え、その結果を通信順とする。次に、領域内順位判定部444は、第1象限の各ノードの通信順を、原点に点対称で第4象限の各ノードに割り当て、通信順とする。さらに、領域内順位判定部444は、第2象限の各ノードの通信順を、x軸に線対称で第4象限の各ノードに割り当てる。領域内順位判定部444は、このとき割り当てた通信順を仮の順位とし、各ノードの仮の順位の配列を前後逆に入れ替え、その結果を通信順とする。
奇数×奇数の場合、まず領域内順位判定部444は、第1象限の各ノードの通信順を、そのまま第2象限に平行移動した先のノードに割り当てる。領域内順位判定部444は、このとき割り当てた通信順を仮の順位とし、領域内のノード数をmとして、仮の順位M(1以上m以下の整数)に対して、M=1,m,2,m−1,…という順番(インターリーブ方式)で、通信順を設定する。次に、領域内順位判定部444は、第1象限の各ノードの通信順を、そのまま第4象限に平行移動した先のノードに割り当て、そのノードの通信順とする。さらに、領域内順位判定部444は、第1象限の各ノードの通信順を、そのまま第4象限に平行移動した先のノードに割り当てる。領域内順位判定部444は、このとき割り当てた通信順を仮の順位としインターリーブ方式で、通信順を設定する。
奇数×偶数の場合および偶数×奇数の場合には、奇数×奇数の場合と同様の方法で、通信順を決定する。
領域内順位判定部444は、以上のようにして決定された各領域内の通信順に基づいて、領域内順位情報が生成し、領域内順位情報記憶部445に格納する。
[ステップS14]一意情報集団通信実行部448は、ジョブプロセス447から一意情報集団通信のリクエスト(ScatterまたはAllToAll)があるか否かを判断する。一意情報集団通信実行部448は、リクエストが入力されると、処理をステップS15に進める。リクエストがなければ、処理がステップS15に進められる。
[ステップS15]一意情報集団通信実行部448は、サービス停止の指示が入力されたか否かを判断する。サービス停止の指示は、たとえば、運用管理者の操作入力に基づいて管理サーバ70を介して入力される。サービ停止が指示された場合、一意情報集団通信実行部448は、一意情報集団通信の処理を終了する。サービス停止が指示されていなければ、処理がステップS14に進められる。
[ステップS16]一意情報集団通信実行部448は、周期カウンタ448aの値を1に初期化する。
[ステップS17]一意情報集団通信実行部448は、領域カウンタ448bの値を1に初期化する。
[ステップS18]一意情報集団通信実行部448は、周期カウンタ448aで示される周期における領域カウンタ448bで示される領域(象限)で通信順となっているノードを通信先ノードとして、そのノードに一意のデータを含むメッセージを送信する。具体的には、一意情報集団通信実行部448は、領域内順位情報内の領域カウンタ448bで示される象限を参照する。参照先は、領域カウンタ448bの値が1であれば第1象限、値が2であれば第2象限、値が3であれば第3象限、値が4であれば第4象限である。次に、一意情報集団通信実行部448は、参照している象限のなかで、周期カウンタ448aで示される値が通信順として設定されているノードを判定し、そのノードの相対座標を読み出す。一意情報集団通信実行部448は、読み出した相対座標を絶対座標に変換し、その絶対座標をメッセージの宛先とする。なお、相対座標から絶対座標への変換は、相対座標の各座標値に対して、基点のノード44の絶対座標の各座標値を加算すればよい。
次に、一意情報集団通信実行部448は、トーラス網が、奇数×奇数、奇数×偶数、あるいは偶数×奇数のいずれかであるか否か(少なくとも一方の軸方向のノード数が奇数)を判断する。ノード数が奇数となる軸方向がある場合、その軸に直交する座標軸(以下、ノード分割軸と呼ぶ)上のノードは複数の領域に属する。そこで、ノード数が奇数となる軸を有するトーラス網であれば、一意情報集団通信実行部448は、通信先ノードがノード分割軸上のノードか否かを判断する。ノード分割軸上のノードであれば、一意情報集団通信実行部448は、そのノードに対して送信すべきデータの1/2n倍(nは、ノードを通過するノード分割軸の合計)のデータサイズ分を、未送信のデータの先頭から取り出し、メッセージに含める。
ノード数が奇数となる軸を有するトーラス網のノード分割軸上のノード以外のノードが通信先ノードであれば、リクエストで指定されたデータ全体がメッセージに含められる。
そして、一意情報集団通信実行部448は、通信先ノードに対してメッセージを送信する。この際、一意情報集団通信実行部448は、システム構成情報に基づいて、通信先ノードへのホップ数が最短になるルートを判断する。ホップ数が最短となるルートが複数存在する場合、所定のアルゴリズムによってルートを決定する。たとえば、まず、最初のホップで別の領域に入るルートを最優先とし、最短のホープ数で別の領域に入るルート領域が複数あれば、x軸方向を優先する。このようなルートの決定方法は、メッセージを中継する各ノードにおいても同様に用いられる。
たとえば、図7に示したような所属領域となっている場合、ノード44からノード11までの最短のホップ数は6である。ただし、ノード44から見た場合、隣接するノード34,43,45,54のいずれにメッセージを送信しても、ホップ数6でメッセージを送信できる。ここで、たとえば、ノード54、ノード64、ノード65、ノード66、ノード16、ノード11という順でメッセージが転送されると、ノード11が第3象限に属するにも拘わらず、メッセージ転送のほとんどが第1象限内で行われている。このようなメッセージ送信を行ってしまうと、同一周期内にそれぞれの領域内のノードに対して送信されるメッセージに関し、ホップ数の均等化を図った意味がなくなってしまう。
そこで、ノード44からノード11へメッセージを送信する場合、まず、別領域に属するノード(ノード34またはノード43)を送信先とする。本実施の形態では、x軸方向を優先するものとし、ノード43に接続された通信インタフェース44dからメッセージを送出する。ノード43では、通信先の絶対座標より、ノード11にメッセージを転送すべきことを認識する。
ノード43からノード11へは最短のホップ数5で送信可能なルートが複数ある。たとえば、ノード53、ノード63、ノード13、ノード12、ノード11で送信するルートであってもホップ数は5である。しかし、本実施の形態では、最初のホップで別領域に入るルートを優先するため、ノード33にメッセージが転送される。以後は、第3象限内でメッセージが転送され、ノード11に渡される。
[ステップS19]一意情報集団通信実行部448は、領域カウンタ448bに対してインクリメント(1を加算)を行う。
[ステップS20]一意情報集団通信実行部448は、1周期分の各領域へのメッセージ送信が完了したか否かを判断する。具体的には、一意情報集団通信実行部448は、領域カウンタ448bの値が、領域数を超えた場合、1周期分のメッセージ送信が完了したものと判断する。1周期分のメッセージ送信が完了したら、処理がステップS21に進められる。1周期内でメッセージ送信を行っていない領域があれば、処理がステップS18に進められる。
[ステップS21]一意情報集団通信実行部448は、周期カウンタ448aの値をインクリメントする。
[ステップS22]一意情報集団通信実行部448は、全ノードに対しての通信が完了したか否かを判断する。具体的には、一意情報集団通信実行部448は、周期カウンタ448aの値が、領域内順位情報における通信順位の最大値を超えた場合に、全ノードへの通信が完了したと判断する。全ノードへの通信が完了したら、処理がステップS14に進められ、一意情報集団通信実行部448は次のリクエストを待つ。未通信のノードがあれば、処理がステップS17に進められる。
このようにして、空間的および時間的に均等に一意情報集団通信を行うことができる。その結果、一部の伝送路のみが過負荷になることを防止できる。すなわち、同一周期内で送信するメッセージに関しては、異なる領域内のノードに対して送信するため、伝送ルートの重なりが最小限に抑えられる。
しかも、各周期内で送信するメッセージのホップ数を均等化を図ることで、あるノードが実行した一意情報集団通信によって、トーラス網10内で通信されるデータ総量が、ある短い時間だけ過大となることを防止できる。たとえば、あるノードがScatterを行う場合を考える。ここで、ホップ数が多いノードへのメッセージ転送は、ホップ数の分だけ時間がかかる。そのため、Scatterによる他の全てのノードへのメッセージ送信を最短の時間で完了することを目的とするのであれば、ホップ数が多いノード(データ伝送に時間のかかるノード)から順にメッセージを送信することとなる。すると、最も近いノードに対してメッセージを送信した頃には、Scatterによって送出されたメッセージが、トーラス網内に溢れていることになる。短い時間であっても、1つのノードで実行されたScatterによるメッセージが、トーラス網全体で伝送されている総データ量のうちの大きな割合を占めると、他のノードによるデータ通信を阻害する可能性がある。
特に、AllToAllが行われると、全てのノードがScatterを実行する。このとき、全てのノードが、ホップ数の多いノードから順にメッセージを送信すると、近くのノードにメッセージを送信するころにはトーラス網の至る所で輻輳が発生してしまう可能性がある。すると、並列ジョブの実効に伴う通常のデータ通信すら困難になりかねず、システム全体の処理効率の低下を招く。
本実施の形態では、同一周期で通信されるメッセージのホップ数の均等化を図っているため、一意情報集団通信を実行したことによって他のノード間のデータ通信を阻害することを防止できる。AllToAllであっても、AllToAllによって発生するデータ総量を所定値以下に抑えることが可能となる。
[第2の実施の形態]
第2の実施の形態は、伝送路の実効通信速度が不均一の場合でも最適な負荷の均等化を図ることができるようにしたものである。
図15は、第2の実施の形態の管理サーバとノードとの機能を示すブロック図である。なお、第1の実施の形態と同じ機能の要素には、図5に示した第1の実施の形態の要素と同じ符号を付し説明を省略する。
管理サーバ70Aは、運用状況管理部73を有する点が第1の実施の形態と異なる。運用状況管理部73は、トーラス網10内の各ノードの運用状況、および各ノード間の通信状況を監視する。そして、運用状況管理部73は、各ノードが起動されたときにノード間通信の実効速度を各ノードに通知する。また、運用状況管理部73は、定期的にノード間通信の実効速度を各ノードに通知する。さらに、運用状況管理部73は、故障などによって運用が停止したノードを検出すると、停止したノードの絶対座標を各ノードに通知する。
ノード44Aは、運用情報問い合わせ部449aと運用情報記憶部449bとを有する点が、第1の実施の形態と異なる。また、領域内順位判定部444aの機能が、第1の実施の形態の領域内順位判定部444の機能と異なる。
運用情報問い合わせ部449aは、管理サーバ70Aの運用状況管理部73から運用情報を取得し、その内容を運用情報記憶部449bに格納する。取得する運用情報には、各ノード間の実効通信速度を示すバンド幅情報と、各ノードの運用の有無を示す故障情報とがある。
運用情報記憶部449bは、運用情報を格納するための記憶領域である。たとえば、RAM44bの記憶領域の一部が運用情報記憶部449bとして使用される。運用情報は、バンド幅情報テーブルと故障情報テーブルに分けて記憶される。バンド幅情報テーブルには、各ノード間のデータ通信の実効速度が登録されている。故障情報テーブルには、各ノードが運用しているか否かを示す情報が登録されている。
領域内順位判定部444aは、所属領域情報記憶部443に格納された所属領域情報と、運用情報記憶部449bに格納された運用情報とに基づいて、各領域内での各ノードの通信順を決定する。そして、領域内順位判定部444aは、判定した順位を、領域内順位情報として、領域内順位情報記憶部445に格納する。
図16は、運用情報記憶部のデータ構造例を示す図である。運用情報記憶部449bには、バンド幅情報テーブル449cと故障情報テーブル449dとが含まれている。
バンド幅情報テーブル449cには、伝送路とバンド幅との欄が設けられている。伝送路の欄には、隣接するノード間通信における送信元ノードの絶対座標と、送信先ノードの絶対座標とが設定されている。バンド幅の欄には、ノード間通信における通信速度が設定されている。
故障情報テーブル449dには、ノードと状態との欄が設けられている。ノードの欄には、トーラス網を構成するノードの絶対座標が設定されている。状態の欄には、対応するノードが運用中か、故障などにより停止中かを示す情報が設定されている。
次に、ノード44Aにおける一意情報集団通信処理の手順について説明する。
図17は、第2の実施の形態における一意情報集団通信処理の手順を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。なお、以下の処理は、ノード44Aが起動され、トーラス網内の1つのノードとしてデータ処理サービスを開始する旨の指示が入力されたときに開始される。
ステップS31,S33,S36〜S44の処理は、それぞれステップS11,S12,S14〜S22と同様であるため説明を省略し、ステップS32、S34、及びS35のみ説明する。
[ステップS32]運用情報問い合わせ部449aは、管理サーバ70Aに対して運用情報を問い合わせる。他のノードが運用中か否かを示す故障情報と、各ノード間の通信速度を示すバンド幅情報とを取得する。そして、運用情報問い合わせ部449aは、取得した情報を運用情報記憶部449bに格納する。
なお、運用情報問い合わせ部449aは、その後も管理サーバ70Aから運用情報が送られると、その運用情報に基づいて、運用情報記憶部449bの内容を更新する。
その後、ステップS33において、領域分割後の各ノードの所属領域が判定されステップS34に処理が進められる。
[ステップS34]領域内順位判定部444aは、運用情報記憶部449bを参照し、基点のノード44A自身から他のノードへの実効ホップ数を計算する。具体的には、まず、領域内順位判定部444aは、故障情報テーブル449dを参照し、他のノードが運用中か否かを判断する。そして、運用中の各ノードを経由した各ノードへの伝送ルートを判断する。この際、基点ノードと異なる領域に属するノードを通信先とする場合、メッセージが通信先のノードが属する領域内のノードに渡されるまでは、通信先ノードが属する領域内のノードへメッセージを送信するルートを優先する。
次に、領域内順位判定部444aは、各伝送ルートにおける実効ホップ数を計算する。実効ホップ数は、伝送ルート上の各ノード間のバンド幅の逆数を、全て加算することで算出される。計算式は、式(1)で示した通りである。このような計算により、伝送ルート上のノード間のバンド幅が太ければ(伝送速度が速ければ)、実効ホップ数は小さくなる。
[ステップS35]領域内順位判定部444aは、各ノードの領域内での通信順を判定する。具体的には、領域内順位判定部444aは、第1象限について、実効ホップ数の小さい順による仮の順位を設定する。その際、実効ホップ数が同一のノードが複数ある場合、xの座標値が大きい方を優先する。仮の順位を設定後は、第1の実施の形態における領域内順位判定部444の仮の順位設定後の処理と同様である。
その後、ステップS36以降の処理で、ジョブプロセスから一意情報集団通信のリクエストが入るごとに、領域内順位情報に基づく順番で、他のノードとの間で通信が行われる。
このようにして、ノード間のバンド幅が異なる場合でも、一意情報集団通信の空間的および時間的な負荷の均等化を図ることができる。
[その他の例]
上記の実施の形態では、二次元平面をx軸とy軸とを境界とした四象限に分割しているが、別の方法で分割することもできる。
図18は、領域の他の4分割例を示す図である。この例では、相対座標における原点を基準としてx軸の正の方向から反時計回りに45°、135°、225°、315°の各方向に引いた線分を境界線として、平面を4分割し4つの領域を生成している。
図19は、領域の8分割例を示す図である。この例では、x軸およびy軸を境界線とすると共に、相対座標における原点を基準としてx軸の正の方向から反時計回りに0°、45°、90°、135°、180°、225°、270°、315°の各方向に引いた線分を境界線として、平面を8分割し8つの領域を生成している。
図20は、三次元空間の第1の分割例を示す図である。この例では、x−y平面、y−z平面、z−x平面を境界面として、空間を8分割している。
図21は、三次元空間の第2の分割例を示す図である。この例では、立方体の8つの辺それぞれを底辺とし、原点を頂点とする二等辺三角形を境界面として、空間を6分割している。
図示しないが、トーラス網は1次元(リング)から次元を増やして四次元以上も理論上は可能であり、上記したような手法を多次元に拡張する形で多次元空間を分割し、本発明を実施することができる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、管理サーバや各ノードが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
符号の説明
1 コンピュータ
1a システム構成情報記憶手段
1b 所属領域判定手段
1c 所属領域情報記憶手段
1d 一意情報集団通信実行手段
2、3,4,5 ノード

Claims (10)

  1. トーラス網に含まれる複数の計算ノードのいずれか一の計算ノードから他の計算ノードに対して、送信元の計算ノードと送信先の計算ノードのそれぞれの組み合わせ間において一意であるデータを送信する一意情報集団通信を行う一意情報集団通信プログラムにおいて、
    前記計算ノードを、
    前記トーラス網における各計算ノードの絶対座標が設定された構成情報を記憶する構成情報記憶手段から読み出した構成情報に基づいて、前記計算ノードの位置を原点として前記原点からの方向に応じて分割された複数の領域のうち、相対座標に基づいて各計算ノードが属する領域を判定し、各計算ノードの相対座標と各計算ノードが属する領域とを示す所属領域情報を生成し、生成した所属領域情報を記憶する所属領域情報記憶手段に記憶させる所属領域判定手段、
    一意情報集団通信の実行指示が入力されると、前記所属領域情報記憶手段に記憶された所属領域情報を参照し、送信元の計算ノードと送信先の計算ノードのそれぞれの組み合わせ間において一意であるデータを含むメッセージを全ての送信先の計算ノードに対して送信する場合、所定時間あたりの各領域に属する計算ノードが順番に送信先となる回数が各領域間で均等な回数となるように、前記メッセージの送信を実行する一意情報集団通信実行手段、
    として機能させることを特徴とする一意情報集団通信プログラム。
  2. 前記計算ノードをさらに、
    前記所属領域情報記憶手段に記憶された所属領域情報に基づいて、前記所定時間あたりに送信する全メッセージの転送回数の合計を均等化して、領域に属する各計算ノードの通信順を設定し、各計算ノードの前記領域内での通信順を示す領域内順位情報を生成する領域内順位判定手段、
    前記領域内順位判定手段が生成した領域内順位情報を記憶する領域内順位情報記憶手段、
    として機能させ、
    前記一意情報集団通信実行手段は、前記領域内順位情報記憶手段に記憶された領域内順位情報を参照し、各領域に属する各計算ノードに対して、参照した前記領域内順位情報に示される通信順で前記メッセージを送信することを特徴とする請求項1記載の一意情報集団通信プログラム。
  3. 前記領域内順位判定手段は、領域のうち半分の領域に対し、前記原点に位置する計算ノードからみてホップ数の少ない計算ノードから順に通信順を割り当て、各領域のうち残りの半分の領域に対し、前記原点に位置する計算ノードからみてホップ数の多い計算ノードから順に通信順を割り当てることを特徴とする請求項2記載の一意情報集団通信プログラム。
  4. 前記領域内順位判定手段は、隣接する2つの領域に関し、一方の領域については前記原点に位置する計算ノードからみてホップ数の少ない計算ノードから順に通信順を割り当て、他方の領域については前記原点に位置する計算ノードからみてホップ数の多い計算ノードから順に通信順を割り当てることを特徴とする請求項3記載の一意情報集団通信プログラム。
  5. 前記所属領域判定手段は、前記トーラス網のx軸またはy軸のいずれか1軸方向の計算ノード数が偶数の場合、前記相対座標が前記複数の領の境界上となる計算ノードを、予め定義された規則に従って前記境界の両側の領域のいずれかに属するものと判定することを特徴とする請求項1記載の一意情報集団通信プログラム。
  6. 前記所属領域判定手段は、前記トーラス網のx軸またはy軸のいずれか1軸方向の計算ノード数が奇数の場合、前記相対座標が前記複数の領の境界上となる計算ノードを、前記境界の両側の領域の双方に属するものと判定することを特徴とする請求項1記載の一意情報集団通信プログラム。
  7. 前記領域内順位判定手段は、隣接する計算ノード間の各伝送路の通信速度を記録する運用情報記憶手段から各伝送路の通信速度を読み出し、伝送路に対して、通信速度が大きいほど小さい値の仮想ホップ値を設定し、前記原点に位置する計算ノードからみて前記計算ノードまでの経路上の伝送路に設定された仮想ホップ値の合計値を各計算ノードの実効ホップ数と定義し、前記複数の領域のうち半分の領域に対して実効ホップ数の少ない計算ノードから順に通信順を割り当て、残りの半分の領域に対して実効ホップ数の多い計算ノードから順に通信順を割り当てることを特徴とする請求項2記載の一意情報集団通信プログラム。
  8. 前記計算ノードを、さらに、
    管理用のネットワークを介して接続された管理装置から隣接する各計算ノード間の各伝送路の通信速度を取得し、前記運用情報記憶手段内の情報を更新する運用情報問い合わせ手段として機能させることを特徴とする請求項7記載の一意情報集団通信プログラム。
  9. トーラス網に含まれる複数の計算ノードのいずれか一の計算ノードから他の計算ノードに対して、送信元の計算ノードと送信先の計算ノードのそれぞれの組み合わせ間において一意であるデータを送信する一意情報集団通信を行う計算ノードにおいて、
    前記トーラス網における各計算ノードの絶対座標が設定された構成情報を記憶する構成情報記憶手段と、
    前記構成情報記憶手段から読み出した構成情報に基づいて、前記計算ノードの位置を原点として前記原点からの方向に応じて分割された複数の領域のうち、相対座標に基づいて各計算ノードが属する領域を判定し、各計算ノードの相対座標と各計算ノードが属する領域とを示す所属領域情報を生成し、生成した所属領域情報を記憶する所属領域情報記憶手段に記憶させる所属領域判定手段と、
    一意情報集団通信の実行指示が入力されると、前記所属領域情報記憶手段に記憶された所属領域情報を参照し、送信元の計算ノードと送信先の計算ノードのそれぞれの組み合わせ間において一意であるデータを含むメッセージを全ての送信先の計算ノードに対して送信する場合、所定時間あたりの各領域に属する計算ノードが順番に送信先となる回数が各領域間で均等な回数となるように、前記メッセージの送信を実行する一意情報集団通信実行手段を有することを特徴とする計算ノード。
  10. トーラス網に含まれる複数の計算ノードのいずれか一の計算ノードから他の計算ノードに対して、送信元の計算ノードと送信先の計算ノードのそれぞれの組み合わせ間において一意であるデータを送信する一意情報集団通信を行う一意情報集団通信方法において、
    前記計算ノードが、
    前記トーラス網における各計算ノードの絶対座標が設定された構成情報を記憶する構成情報記憶手段から読み出した構成情報に基づいて、前記計算ノードの位置を原点として前記原点からの方向に応じて分割された複数の領域のうち、相対座標に基づいて各計算ノードが属する領域を判定し、各計算ノードの相対座標と各計算ノードが属する領域とを示す所属領域情報を生成し、生成した所属領域情報を記憶する所属領域情報記憶手段に記憶し、
    一意情報集団通信の実行指示が入力されると、前記所属領域情報記憶手段に記憶された所属領域情報を参照し、送信元の計算ノードと送信先の計算ノードのそれぞれの組み合わせ間において一意であるデータを含むメッセージを全ての送信先の計算ノードに対して送信する場合、所定時間あたりの各領域に属する計算ノードが順番に送信先となる回数が各領域間で均等な回数となるように、前記メッセージの送信を実行することを特徴とする一意情報集団通信方法。
JP2009505039A 2007-03-20 2007-03-20 一意情報集団通信プログラム、計算ノード、および一意情報集団通信方法 Expired - Fee Related JP5056844B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/055739 WO2008114440A1 (ja) 2007-03-20 2007-03-20 一意情報集団通信プログラム、コンピュータ、一意情報集団通信方法、および記録媒体

Publications (2)

Publication Number Publication Date
JPWO2008114440A1 JPWO2008114440A1 (ja) 2010-07-01
JP5056844B2 true JP5056844B2 (ja) 2012-10-24

Family

ID=39765561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009505039A Expired - Fee Related JP5056844B2 (ja) 2007-03-20 2007-03-20 一意情報集団通信プログラム、計算ノード、および一意情報集団通信方法

Country Status (3)

Country Link
US (1) US8185656B2 (ja)
JP (1) JP5056844B2 (ja)
WO (1) WO2008114440A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210157658A1 (en) * 2019-11-25 2021-05-27 Fujitsu Limited Information processing apparatus and computer-readable storage medium storing parallel computing program

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5369775B2 (ja) * 2009-03-11 2013-12-18 富士通株式会社 n次元トーラス型分散処理システム、集団通信方法及び集団通信プログラム
JP5540609B2 (ja) * 2009-09-01 2014-07-02 富士通株式会社 並列計算システムおよび通信制御プログラム
GB2487684B (en) * 2009-11-16 2016-09-14 Ibm Method for scheduling plurality of computing processes including all-to-all (a2a) communication across plurality of nodes (processors) constituting network, p
US8914415B2 (en) * 2010-01-29 2014-12-16 International Business Machines Corporation Serial and parallel methods for I/O efficient suffix tree construction
FR2979512B1 (fr) * 2011-08-30 2014-04-04 Bull Sas Procede d'echange de donnees entre nœuds d'une grappe de serveurs et grappe de serveurs mettant en œuvre ce procede
EP2940584A4 (en) * 2012-12-28 2016-01-27 Fujitsu Ltd INFORMATION PROCESSING SYSTEM, ADMINISTRATIVE PROCESS FOR INFORMATION PROCESSING SYSTEM AND PROGRAM FOR MANAGING AN INFORMATION PROCESSING SYSTEM
US9424229B2 (en) * 2013-02-13 2016-08-23 Advanced Micro Devices, Inc. Parallel torus network interconnect
JP6499388B2 (ja) 2013-08-14 2019-04-10 富士通株式会社 並列計算機システム、管理装置の制御プログラムおよび並列計算機システムの制御方法
JP6191332B2 (ja) 2013-08-22 2017-09-06 富士通株式会社 並列計算機システム、並列計算機システムの制御方法及び管理装置の制御プログラム
JP6447329B2 (ja) * 2015-04-09 2019-01-09 富士通株式会社 並列計算制御装置、並列計算システムおよびマイグレーション時間推定プログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04235654A (ja) * 1991-01-10 1992-08-24 Fujitsu Ltd ネットワーク制御方式
JPH05151181A (ja) * 1991-11-26 1993-06-18 Fujitsu Ltd 並列計算機およびその全対全通信方法
JPH07262155A (ja) * 1994-03-24 1995-10-13 Hitachi Ltd 並列計算機およびメッセージ放送方法
JPH09330304A (ja) * 1996-06-05 1997-12-22 Internatl Business Mach Corp <Ibm> プロセッサ間の通信スケジュールを決定する方法
JP2003067354A (ja) * 2001-08-29 2003-03-07 Hitachi Ltd 並列計算機システム及びプロセッサ間通信処理方法
US20030191855A1 (en) * 2002-03-21 2003-10-09 Lee Whay S. Message routing in a torus interconnect
US20050044195A1 (en) * 2003-08-08 2005-02-24 Octigabay Systems Corporation Network topology having nodes interconnected by extended diagonal links

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63198150A (ja) 1987-02-13 1988-08-16 Fujitsu Ltd ル−テイング処理方式
US5822605A (en) * 1994-03-24 1998-10-13 Hitachi, Ltd. Parallel processor system with a broadcast message serializing circuit provided within a network
US6285679B1 (en) * 1997-08-22 2001-09-04 Avici Systems, Inc. Methods and apparatus for event-driven routing
US20050100035A1 (en) * 2003-11-11 2005-05-12 Avici Systems, Inc. Adaptive source routing and packet processing
US7633940B1 (en) * 2005-06-27 2009-12-15 The Board Of Trustees Of The Leland Stanford Junior University Load-balanced routing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04235654A (ja) * 1991-01-10 1992-08-24 Fujitsu Ltd ネットワーク制御方式
JPH05151181A (ja) * 1991-11-26 1993-06-18 Fujitsu Ltd 並列計算機およびその全対全通信方法
JPH07262155A (ja) * 1994-03-24 1995-10-13 Hitachi Ltd 並列計算機およびメッセージ放送方法
JPH09330304A (ja) * 1996-06-05 1997-12-22 Internatl Business Mach Corp <Ibm> プロセッサ間の通信スケジュールを決定する方法
JP2003067354A (ja) * 2001-08-29 2003-03-07 Hitachi Ltd 並列計算機システム及びプロセッサ間通信処理方法
US20030191855A1 (en) * 2002-03-21 2003-10-09 Lee Whay S. Message routing in a torus interconnect
US20050044195A1 (en) * 2003-08-08 2005-02-24 Octigabay Systems Corporation Network topology having nodes interconnected by extended diagonal links

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210157658A1 (en) * 2019-11-25 2021-05-27 Fujitsu Limited Information processing apparatus and computer-readable storage medium storing parallel computing program
US11656920B2 (en) * 2019-11-25 2023-05-23 Fujitsu Limited Information processing apparatus and computer-readable storage medium storing parallel computing program
JP7440739B2 (ja) 2019-11-25 2024-02-29 富士通株式会社 情報処理装置および並列演算プログラム

Also Published As

Publication number Publication date
US20090292787A1 (en) 2009-11-26
WO2008114440A1 (ja) 2008-09-25
JPWO2008114440A1 (ja) 2010-07-01
US8185656B2 (en) 2012-05-22

Similar Documents

Publication Publication Date Title
JP5056844B2 (ja) 一意情報集団通信プログラム、計算ノード、および一意情報集団通信方法
JP6904127B2 (ja) 中継ノード決定プログラム、中継ノード決定方法および並列処理装置
Abdelbaky et al. Docker containers across multiple clouds and data centers
US8566402B2 (en) Dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes
EP2710470B1 (en) Extensible centralized dynamic resource distribution in a clustered data grid
JP2011505617A (ja) データ・ストレージ方法、管理サーバ、ストレージ設備及びシステム
JP2005353039A (ja) データオーバーレイ、自己編成メタデータオーバーレイおよびアプリケーションレベルマルチキャスティング
JP2012199644A (ja) 仮想ネットワーク管理システム、仮想ネットワーク管理方法および仮想ネットワーク管理用プログラム
CN111130858A (zh) 一种sd-wan场景下的动态多目标虚拟网络映射方法
JP2011516998A (ja) ワークロード・スケジューリング方法、システム、及びコンピュータ・プログラム
US20160301754A1 (en) Distributed file system using torus network and method for configuring and operating distributed file system using torus network
US20060031439A1 (en) Method and apparatus for network management
WO2005116832A1 (ja) 分散処理環境におけるジョブの実行を制御するためのコンピュータシステム、方法及びプログラム
JP2006221423A (ja) データ配布方法、装置、及び記憶媒体
JP4604824B2 (ja) 情報配信システム、処理プログラム、管理プログラム及び情報配信方法等
WO2013042349A1 (ja) 割当て資源を決定する方法および装置並びに資源提供システム
WO2012172588A1 (ja) リクエスト振分け計算機、リクエスト振分け方法及びプログラム
CN115941604A (zh) 一种流量分配方法、装置、设备、存储介质和程序产品
JP6383336B2 (ja) サーバ管理装置およびサーバ管理方法
US11656920B2 (en) Information processing apparatus and computer-readable storage medium storing parallel computing program
Shah et al. Convergence of the dynamic load balancing problem to Nash equilibrium using distributed local interactions
JP7310378B2 (ja) 情報処理プログラム、情報処理方法、および情報処理装置
JP6219771B2 (ja) 負荷分散装置、負荷分散方法、および、負荷分散システム
JP2019028853A (ja) 情報処理システム、情報処理方法及びプログラム
WO2021187476A1 (ja) クライアント、i/oサーバ、方法、および記録媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120614

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: 20120703

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: 20120716

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

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5056844

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees