JPH09330304A - プロセッサ間の通信スケジュールを決定する方法 - Google Patents

プロセッサ間の通信スケジュールを決定する方法

Info

Publication number
JPH09330304A
JPH09330304A JP8142440A JP14244096A JPH09330304A JP H09330304 A JPH09330304 A JP H09330304A JP 8142440 A JP8142440 A JP 8142440A JP 14244096 A JP14244096 A JP 14244096A JP H09330304 A JPH09330304 A JP H09330304A
Authority
JP
Japan
Prior art keywords
communication
processor
processors
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
Application number
JP8142440A
Other languages
English (en)
Inventor
Hideaki Komatsu
秀昭 小松
Takeshi Ogasawara
武史 小笠原
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP8142440A priority Critical patent/JPH09330304A/ja
Priority to US08/869,902 priority patent/US6126331A/en
Publication of JPH09330304A publication Critical patent/JPH09330304A/ja
Priority to US09/361,316 priority patent/US6253372B1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【課題】 並列計算機や分散マルチ・プロセッサ・シス
テムを構成するプロセッサ間でデータの送受信を行う場
合において、最適な通信スケジュールを生成すること。 【解決手段】プロセッサ間通信を行うプロセッサを複数
のグループに分類し(ステップ40)、ノードをグルー
プに一対一で対応付けると共に、それぞれの辺をこの通
信に対応付けた通信グラフを生成する(ステップ4
3)。このグラフは、ノード間の距離ごとに生成する。
そして、ノード間の距離ごとの通信グラフを、プロセッ
サ間通信における通信ステップに対応付ける(ステップ
46)。通信グラフで、実行すべき通信を全体的に把握
し、通信グラフの辺を、ある通信ステップで行われるプ
ロセッサ間の通信に対応付けていることで、通信を最適
化することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する利用分野】本発明は、並列計算機や分散
マルチ・プロセッサ・システムを構成するプロセッサ間
でデータの送受信を行う場合の通信スケジュールを生成
する方法に関する。本発明は、特に、並列化コンパイラ
自身が有する機能の一つとして実現することができる
他、並列化コンパイラによりコンパイルされた目的プロ
グラムを実行する際に呼び出される通信ライブラリにお
いても用いることができる。
【0002】
【従来の技術】並列計算機や分散マルチ・プロセッサ・
システムの性能向上のために重要なことは、プロセッサ
間でデータを送受信する際に、どのような通信手順で通
信を実行するかということである。プロセッサ間の通信
速度は、プロセッサの演算速度と比べてかなり遅いた
め、非効率的な通信を行っていては、システムのパフォ
ーマンスの向上は望めない。
【0003】図1は、このようなシステムの具体的な構
成を示す図である。複数のプロセッサ要素11がバスに
接続されている。それぞれのプロセッサ要素11は、C
PU12、メモリ装置13及び通信装置14を有してい
る。通信装置14は、入力専用のバッファと出力専用の
バッファを有していて、この装置14は、並列に入出力
を行うことが可能である。一般に、CPU12と通信装
置14とを接続するローカル・バスは、二重化されてい
ないが、時分割しても使用しても、通信の遅延が生じな
い程度に広い転送バンド幅を有している。
【0004】上記システムでは、一対一の通信を同時に
複数実行することが可能である。一対一の通信とは、1
つのプロセッサが、同時に通信できるのが、1つの送信
または1つの受信のみであること、若しくは、1つの送
受信のみであるような通信をいう。このように、1つの
プロセッサが同時に送信及び受信の両方を行うことがで
きる通信方式は、全二重通信と呼ばれており、HPS
(ハイ・パフォーマンス・スイッチ)などで用いられて
いる。
【0005】一般的な並列計算機において、プログラム
を実行する際に発生する複数のプロセッサ間の通信は、
非同期通信の通信ライブラリに基づいて実行される。例
えば、MPIやEUIといった通信ライブラリは、送信
(send)や受信(recieve)といった通常の命令以外にも、
頻繁に利用される比較的単純な通信パターンを用意して
いる。
【0006】この通信パターンには、Shift通信, Broad
Cast通信, Scatter通信, Gater通信などがある。Shift
通信とは、図17(a)に示すように、各プロセッサが
隣接するプロセッサに対して、一定の方向にデータを送
信するような通信形態をいう。また、Broad Cast通信と
は、図17(b)に示すように、1つのプロセッサが有
するデータを、残りの全てのプロセッサに送信するよう
な通信形態をいう。Scatter通信とは、Broad Cast通信
の変形であり、同図(c)に示すように、対応プロセッ
サ毎に異なるデータを送信するような通信形態をいう。
さらに、Gather通信とは、同図(d)に示すように、全
プロセッサのデータを1つのプロセッサに集める通信形
態をいう。
【0007】これらを用いてプロセッサ間の通信を行う
場合、上記通信パターンに基づいて、あるプロセッサが
データを受信する全ての通信を非同期的に実行する。次
に、そのプロセッサが送信する全ての通信を非同期的に
実行する。そして、通信ライブラリにより実行される通
信の全てが終了するまで、そのプロセッサは待機状態と
なる。
【0008】このように、データの通信を非同期的に実
行することにより、あるプロセッサは、全てのデータを
確実に受信または送信することができる。しかしなが
ら、この通信方式は、通信パターンに基づく非同期的な
ものであり、実行されるべき通信の全体を把握した上で
行われる方式ではない。従って、複雑な通信では、効率
的な通信を実行することが困難な場合が生じる。送信し
たい相手が受信状態である場合では、送信が待ち状態に
なってしまうため、全体の通信ステップ(時間)が増加
してしまうからである。
【0009】また、通信ライブラリに一度に大量のデー
タを渡してしまうため、大量のデータをコピーする必要
が生じ、キャッシュ・メモリや仮想記憶システムの効率
を低下させてしまう。これは、結果的にシステムの効率
を著しくて低下させるおそれがある。
【0010】図2は行列積を求めるプログラムリストを
示した図である。このようなプログラムは、HPF(ハ
イ・パフォーマンス・フォートラン)コンパイラが並列
化の対象として処理するものであり、ソース・プログラ
ム中に頻繁に現れる。
【0011】この並列処理が可能なプログラムを並列計
算機で実行する場合、非同期通信の通信ライブラリに基
づいたプロセッサ間の通信の一例が、図3に示すような
通信ステップである。単純な通信パターンに基づいて決
定された結果、5つの通信ステップを必要としており、
最適なスケジューリングで通信が行われているとはいえ
ない。
【0012】
【発明が解決しようとする課題】このように従来の方法
では、非同期的な通信ライブラリが用意している比較的
単純な通信パターンを用いて、プロセッサ間通信を行っ
ていた。そのため、通信の待ち状態が頻繁に生じる可能
性があった。その結果、このような方法を用いて動作す
る並列計算機は、十分に高いパフォーマンスを発揮でき
ない場合が生じていた。
【0013】そこで、本発明の目的は、並列計算機や分
散マルチ・プロセッサ・システムを構成するプロセッサ
間の通信において、最適な通信スケジュールを生成する
ことである。
【0014】また、本発明の別の目的は、メモリや仮想
記憶システムの効率を低下を防ぐことにより、システム
の効率の低下を防ぐことである。
【0015】
【課題を解決するための手段】上記目的を解決するため
に、第1の発明は、複数のプロセッサを有するシステム
で、プロセッサ間でデータを通信する場合の通信スケジ
ュールを決定する方法において、プロセッサ間通信でデ
ータを送信するプロセッサ及びデータを受信するプロセ
ッサを複数のグループに分類するステップと、ノードを
グループに一対一で対応付けると共に、それぞれの辺を
プロセッサ間で生じる通信に対応付けた通信グラフを、
ノード間の距離ごとに、生成するステップと、ノード間
の距離ごとに生成された通信グラフのそれぞれを、プロ
セッサ間通信における通信ステップに対応付けることに
より、プロセッサ間通信の通信スケジュールを決定する
ステップとを有する方法を提供する。
【0016】また、第2の発明は、複数のプロセッサを
有するシステムで、プロセッサ間でデータを通信する場
合の通信スケジュールを決定する方法において、プロセ
ッサ間通信でデータを送信するプロセッサ及びデータを
受信するプロセッサをN個のグループに分類するステッ
プと、N個のノードをグループに一対一で対応付けると
共に、それぞれの辺を前記プロセッサ間で生じる通信に
対応付けた通信グラフを、ノード間距離1からノード間
距離N−1までそれぞれ生成するステップと、ノード間
の距離ごとに生成されたN−1個の前記通信グラフのそ
れぞれを、プロセッサ間通信における通信ステップに対
応付けることにより、プロセッサ間通信の通信スケジュ
ールを決定するステップとを有する方法を提供する。
【0017】第3の発明は、複数のプロセッサを有する
システムで、プロセッサ間でデータを通信する場合の通
信スケジュールを決定するコンピュータ・プログラムが
記録された記録媒体において、プロセッサ間通信でデー
タを送信するプロセッサ及びデータを受信するプロセッ
サを複数のグループに分類する第1の命令手段と、ノー
ドをこのグループに一対一で対応付けると共に、それぞ
れの辺をプロセッサ間で生じる通信に対応付けた通信グ
ラフを、ノード間の距離ごとに、生成する第2の命令手
段と、ノード間の距離ごとに生成された通信グラフのそ
れぞれを、プロセッサ間通信における通信ステップに対
応付けることにより、プロセッサ間通信の通信スケジュ
ールを決定する第3の命令手段とを有する記録媒体を提
供する。
【0018】第4の発明は、複数のプロセッサを有する
システムで、プロセッサ間でデータを通信する場合の通
信スケジュールを決定するコンピュータ・プログラムが
記録された記録媒体方法において、プロセッサ間通信で
データを送信するプロセッサ及びデータを受信するプロ
セッサをN個のグループに分類する第1の命令手段と、
N個のノードをこのグループに一対一で対応付けると共
に、それぞれの辺をプロセッサ間で生じる通信に対応付
けた通信グラフを、ノード間距離1からノード間距離N
−1までそれぞれ生成する第2の命令手段と、ノード間
の距離ごとに生成されたN−1個の通信グラフのそれぞ
れを、プロセッサ間通信における通信ステップに対応付
けることにより、プロセッサ間通信の通信スケジュール
を決定する第3の命令手段とを有する記憶媒体を提供す
る。
【0019】第5の発明は、複数のプロセッサ要素を有
し、それぞれのプロセッサ要素は、プロセッサ、メモリ
手段及び通信手段を有し、通信手段は、データの入力と
出力を同時に行うことができるシステムにおいて、並列
化コンパイラが、ソース・プログラムのコンパイル時
に、上記第1または第2の発明を実行することにより生
成された前記プロセッサ要素間の通信スケジュールを含
む目的プログラムを実行するシステムを提供する。
【0020】さらに第6の発明は、複数のプロセッサ要
素を有し、それぞれの前記プロセッサ要素は、プロセッ
サ、メモリ手段及び通信手段を有し、通信手段は、デー
タの入力と出力を同時に行うことができるシステムにお
いて、並列化コンパイラが、ソース・プログラムを目的
プログラムにコンパイルする際に、ソース・プログラム
中の並列処理が可能なプログラム領域を、上記第1間他
は第2の発明を実行する実行時ライブラリに関連づけ、
目的プログラムの実行時に、実行時ライブラリを実行す
ることにより決定された前記プロセッサ要素間の通信ス
ケジュールに基づき、目的プログラムを実行するシステ
ムを提供する。
【0021】
【作用】上記の発明によれば、プロセッサ間の通信関係
を示す通信グラフを生成して、実行すべき通信を全体的
に把握している。その上で、ノード間の距離が同じであ
るような通信グラフの辺を、ある通信ステップで行われ
るプロセッサ間の通信に対応付けている。従って、ある
通信ステップにおいて、あるプロセッサが関係する一の
通信を実行する際、そのプロセッサが別の通信で占有さ
れていることを有効に防ぐことができるため、待ち状態
の発生を低減できる。
【0022】特に、N個のノードに対して、距離が1か
ら距離がN−1までの通信グラフを生成した場合には、
これらのグラフは、ノード数Nの完全通信グラフを生成
することと等価である。通信量が等しい完全通信グラフ
の最適な通信スケジュールは、完全グラフの彩色問題と
して考えることができ、N−1色、すなわちN−1個の
通信ステップが最適である。これを用いて、最適な通信
ステップを生成している。
【0023】
【発明の実施の形態】図1は、複数のプロセッサを有す
るシステムのブロック図である。複数のプロセッサ要素
11がバスに接続されている。それぞれのプロセッサ要
素11は、CPU12、メモリ装置13及び通信装置1
4を有している。通信装置14は、入力専用のバッファ
と出力専用のバッファを有していて、この装置14は、
並列に入出力を行うことが可能である。一般に、CPU
12と通信装置14とを接続するローカル・バスは、二
重化されていないが、時分割しても使用しても、通信の
遅延が生じない程度に広い転送バンド幅を有している。
【0024】このようなシステム中の各プロセッサ要素
が計算を並列かつ効率的に実行させるために、例えば、
並列化コンパイラはソース・プログラムを並列処理可能
な目的プログラムにコンパイルする。この場合、プロセ
ッサ間で通信を実行する必要が生じるが、このプロセッ
サ間通信のスケジューリングは、図4に示す本アルゴリ
ズムの動作フローにより決定される。なお、これら一連
の手順は、実行時に呼び出される通信ライブラリが行う
のが一般的であるが、並列化コンパイラ自身がこれらの
手順を実行してもよい。この点については、後述する。
また、本アルゴリズムを実装したコンピュータ・プログ
ラムは、一般に、フロッピー・ディスク等の記録媒体に
記録されており、ユーザはこの記録媒体を入手すること
により、このプログラムを使用することができる。
【0025】プロセッサの分類(ステップ40) 並列計算機や分散マルチ・プロセッサ・システムを構成
する複数のプロセッサを、データを受信するプロセッサ
のグループ(受信プロセッサ・グループ)とデータを送
信するプロセッサのグループ(送信プロセッサ・グルー
プ)とに分類する。あるプロセッサがデータの送信及び
データの受信の両方を行う場合には、このプロセッサ
は、受信プロセッサ・グループ及び送信プロセッサ・グ
ループの両方に含める。従って、全てのプロセッサが、
送信及び受信の両方を行う場合には、受信プロセッサ・
グループと送信プロセッサ・グループは一致する。
【0026】プログラムを実行する際に、6台のプロセ
ッサ(P1からP6)の間で図5に示すような通信を行
う必要が生じた場合、受信プロセッサ・グループ及び送
信プロセッサ・グループは、図6(a)、(b)のよう
になる。
【0027】通信グラフのノードの決定(ステップ4
1) 受信プロセッサ・グループから、1つの受信プロセッサ
を取り出すと共に、送信プロセッサ・グループから1つ
の送信プロセッサを取り出す。この1対の受信プロセッ
サ及び送信プロセッサを、以下に生成する通信グラフの
1つのノードとする。一方のプロセッサ・グループの要
素の数が他方のプロセッサ・グループのそれよりも多く
て、上記のような1対を構成することができない場合に
は、単独で1つのノードとする。
【0028】図6(c)は、図6(a)、(b)のグル
ープから決定された通信グラフのノードの一例を示して
いる。ノードの決定方法は、さまざまな方法が考えられ
る。この例では、送受信のプロセッサ・グループの表中
の要素が番号の小さいもの淳にソートされているので、
両方の表を1回走査しながら、マージするだけで、完全
通信グラフのノードを生成することができる。従って、
ノード生成のための計算量が少なくて済む。すなわち、
Pを要素数の大きいプロセッサ・グループの要素数とす
ると、ノードを生成するための計算量は、Pに対して線
形的に増加する。しかしながら、この増加は、表がソー
トされていない場合の計算量PlogPと比べて小さい。
【0029】全体のプロセッサ数に対して、通信を行う
プロセッサ数が比較的に多い場合には、ソートの必要が
ないビット・ワイズによる実装が効果的である。ビット
・ワイズとは、プロセッサ番号をビット列のビット番号
に対応させて、1ビットによって、そのプロセッサが存
在するかしないかを表現することである。ビット・ワイ
ズ表現を用いることにより、ビットのサーチ時間が1ク
ロックですむため、ノード決定のための計算が少なくて
済む。計算量は、全体のプロセッサ数に対して線形的に
増加するが、ビットワイズ表現を用いることにより、3
2ビット・プロセッサでは、32倍加速される。一方、
この例のように、プロセッサ・グループが既にソートさ
れているような場合や、全体のプロセッサ数に比べて、
通信を行うプロセッサ数が少ない場合には、ソートリス
トのマージの方が高速である。従って、通信の状況に応
じて、ノードの生成方法を切り替えるように構成しても
よい。
【0030】初期値設定(n=1)(ステップ42) 以下のステップで生成される通信グラフのノード間距離
を規定する変数nを定義して、その初期値を1に設定す
る。
【0031】距離nの通信グラフの生成(ステップ4
3) ステップ41で決定されたノードに基づいて、ノード間
距離nの通信グラフを生成する。まず、距離1(n=
1)の通信グラフを生成する。
【0032】ステップ41で生成されたノードのエント
リ番号に基づいて、その番号間の距離を通信スケジュー
ルにおける各通信ステップに対応付ける。例えば、距離
1の辺を第1の通信ステップに対応付け、距離2の辺を
第2の通信ステップに対応付ける。まず、あるプロセッ
サは、距離1のエントリの受信プロセッサに送信し、距
離−1のエントリの送信プロセッサから受信する。そし
て、送信から受信する向きに有向辺を対応付けること
で、距離1の通信グラフを作成する。
【0033】図6(c)に示す通信グラフのノード表に
基づき、ノード間距離1の通信グラフを生成すると図7
(a)のようになる。この図において、ノード4に属す
るプロセッサは、受信プロセッサP6のみであるにも関
わらず、ノード4からノード1の方向に有向辺が存在し
ている。これは、ノード4には仮想的に出力プロセッサ
Φが存在するものとして取り扱っている。実際の通信ス
テップは、後に述べるステップ46で最終的に決定され
るので、実際には存在しない仮想的なプロセッサを、こ
こではプロセッサΦとする。
【0034】n=N−1かどうかの判断(ステップ4
4) 変数nがN−1でない場合には、ステップ45で、変数
nに1を加えて、ステップ43に戻る。ここで、Nは、
通信グラフのノードの数である。変数nがN−1である
場合には、ステップ46を実行する。
【0035】ステップ44は、通信グラフを距離1から
距離N−1までそれぞれ求めることを意味している。こ
れは、ノード数Nの完全グラフを生成することと等価で
ある。本実施例では、完全グラフを用いることにより、
これを通信スケジューリングに用いている。つまり、通
信におけるデータの交換のプロセスを送信と受信とに分
割し、それぞれを異なった時間で通信することにより、
ノード数Nに対して、N−1の通信コストで通信を実行
することが可能となる。これは、完全グラフの彩色問題
では、この彩色数が最適解であることから、N−1回の
通信ステップが最も効率的であることがわかる。
【0036】n=n+1(ステップ45) ステップ43により、nに1が加えられてる。n=2の
場合には、距離1の場合の手順と同様に、距離2のエン
トリの受信プロセッサに送信し、距離−2のエントリの
送信プロセッサから受信を同時に行う。このようにし
て、距離3から距離N−1について同様に実行する。図
7(b)、(c)は、距離2及び距離3の通信グラフで
ある。なお、図7(a),(b),(c)の全ての通信
グラフを合わせたものが、完全通信グラフになる。
【0037】実際の通信スケジュールの決定(ステップ
46) 上記のステップで生成されたそれぞれの距離における通
信グラフは仮想的なものである。すなわち、このグラフ
は、実際には存在しないプロセッサ(Φ)を含んでお
り、また、異なるプロセッサを同一のノードに含めてい
る。従って、この仮想的な完全通信グラフに基づいて、
実際に必要な通信スケジュールを決定する必要がある。
【0038】まず、上記の各通信グラフから、プロセッ
サΦを含む有向辺を除く。これが、各通信ステップで実
行される通信である。すなわち、この通信は、3つの通
信ステップを必要とし、各通信ステップでは、それぞれ
距離1、2または3の通信を実行する。
【0039】図8は、図7の完全通信グラフから抽出さ
れた実際の通信スケジュールを示す図である。この図に
おける距離1、距離2、距離3の通信を各通信ステップ
に対応付ける。さらに、同一ノード間でもプロセッサが
異なれば通信が必要であるから、初期設定(距離0)の
通信を実際の通信ステップに加える必要がある。従っ
て、最終的には、4つの通信ステップが必要となる。
【0040】なお、この図には、初期設定の斜線で示し
たプロセッサP4のように、P4からP4への通信が存
在する。これは、必要ならば、このタイミングでローカ
ルコピーを行うことによって、遅延を引き起こさないこ
とを意味する。もし、ローカルコピーが必要でないなら
ば、ここでは何もする必要はない。
【0041】上記実施例は、ノード間の距離1から距離
N−1までの通信グラフ、すなわち完全通信グラフを生
成して、これに基づき通信スケジュールを決定してい
る。しかしながら、本発明は、必ずしも完全通信グラフ
を生成する必要はなく、ノード間の距離ごとの通信グラ
フを各通信ステップに対応付けている点が重要であるこ
とに留意されたい。
【0042】
【実施例】上記のアルゴリズムを用いて、実際に、図2
の行列積を求めるためのプログラムリストにおける通信
解析を行う。ここでは、このプログラムリストに記述さ
れている各配列データが、図9(a)に示すように16
台のプロセッサにブロック毎に分割されている場合につ
いて説明する。すなわち、配列A(i,j)(但し、1≦i≦
1000,1≦j≦1000)は、1次元方向に対して
4台のプロセッサにブロック毎に分割して記憶されてお
り、また2次元方向に対しても4台のプロセッサにブロ
ック毎に分割して記憶されている。例えば、配列A(1,1)
から配列A(250,250)までのデータはプロセッサP1に記
憶されており、配列A(251,1)から配列A(500,250)までは
プロセッサP2に記憶されている。配列B(i,j)、C(i,j)
についても、図9(a)のように各プロセッサにこのよ
うなブロック毎に分割して記憶されている。
【0043】多くのHPF(High Performance FORTRAN)
処理系において、ある代入文の計算は、その左辺の配列
データを自己のローカル・メモリに記憶しているプロセ
ッサが行っている。このように、ある代入文の計算を行
うプロセッサをオーナーと呼ぶ。代入文の右辺の配列デ
ータがオーナー以外の他のプロセッサのローカル・メモ
リに記憶されているならば、このデータをオーナーに送
信する必要が生じる。
【0044】図2のプログラムリスト中の代入文(a)を
計算するオーナーは、左辺の配列データA(i,j)を記憶し
ているプロセッサである。例えば、i=1,j=1のD
Oループにおいて、代入文(a)の計算は、左辺に存在す
るA(1,1)の配列データを記憶しているプロセッサ1が実
行する。この場合、プロセッサ1が左辺の配列データA
(1,1)を計算するために必要となる右辺の配列データ
は、A(1,1)、B(1,1)からB(1,1000)及びC(1,1)からC(100
0,1)である。
【0045】図9(a)のような配列データの分割情報
を用いて、代入文の結果を求めるために通信が必要とな
る領域を求める。なお、右辺のA(1,1)は、左辺と全く同
じインデックス式を有し、オーナーであるプロセッサP
1に記憶されているデータであるから通信の必要はな
い。
【0046】図9(b)は、代入文(a)の左辺の配列A
を計算するために必要となるプロセッサ間の通信を示す
図である。この図において、プロセッサP1は、配列A
の斜線で示す部分を計算しようとする場合、配列Bの斜
線部分及び配列Cの斜線部分が計算のために必要となる
から、これらを記憶したプロセッサの間で通信が生じ
る。
【0047】この図からわかるように、配列A(1,1)を計
算するために、配列Bに関しては、プロセッサP1(オ
ーナー)が記憶するB(1,1)からB(1,250)間でのデータ、
プロセッサP5が記憶するB(1,251)からB(1,500)までの
データ、プロセッサP9が記憶するB(1,501)からB(1,75
0)までのデータ及びプロセッサP13が記憶するB(1,75
1)からB(1,1000)までのデータが必要になる。従って、
2次元方向に対してデータをブロック毎に分割して記憶
しているプロセッサ(P1、P5、P9、P13)の間
で1つの完全通信が行われることがわかる。
【0048】配列Cに関しても、プロセッサP1(オー
ナー)が記憶するC(1,1)からC(250,1)までのデータ、プ
ロセッサP2が記憶するC(251、1)からC(500、1)までのデ
ータ、プロセッサP3が記憶するC(501,1)からC(750,1)
までのデータ及びプロセッサP4が記憶するC(751,1)か
らC(1000,1)までのデータが必要になる。従って、1次
元方向に対してデータをブロック毎に分割して記憶して
いるプロセッサ(P1、P2、P3、P4)の間で1つ
の完全通信が行われることがわかる。
【0049】最初のグループ(P1、P5、P9、P1
3)に関する受信プロセッサ・グループと送信プロセッ
サ・グループは、以下のようになる。
【0050】
【数1】受信プロセッサグループ:(P1、P5、P
9、P13) 送信プロセッサグループ:(P1、P5、P9、P1
3)
【0051】これらのグループから完全通信グラフのノ
ードを生成すると、以下のようになる。
【0052】
【数2】 inout: P1 ・・・ Node P1 inout: P5 ・・・ Node P5 inout: P9 ・・・ Node P9 inout: P13 ・・・ Node P13
【0053】ノード数が4つなので(N=4)、距離3
(N−1=3)までの完全通信グラフをそれぞれ生成す
る。その結果を図10に示す。
【0054】図10の例では、同一ノード内に異なるプ
ロセッサは存在しないため、初期設定は必要ない。ま
た、プロセッサΦは存在しない。従って、図10の3つ
の完全通信グラフがそのまま実際の通信パターンとな
る。つまり、距離1、2及び3の通信グラフにそれぞれ
が対応した3回の通信ステップで通信が完了する。
【0055】上記の説明は、配列A(1,1)に関するもので
あるが、配列A(1,2)以降A(250,250)までの計算について
も全く同様である。
【0056】上記の手順に従い配列BをB(1,1)からB(10
00,1000)まで考慮した場合、通信解析によって、2次元
方向に対してグループ化されたプロセッサ間で4つの完
全通信が行なわれる。つまり、グループ(P1、P5、
P9、P13)で1つの完全通信が行なわれる。同様
に、グループ(P2、P6、P10、P14)、グルー
プ(P3、P7、P11、P14)及びグループ(P
4、P8、P12、P16)でそれぞれ完全通信が行な
われる。
【0057】このような4つの完全通信が並列に行われ
ることによって、配列Bに対して必要となる通信が完了
する。この場合、必要な通信ステップは、距離1、2及
び3に対応した3つのステップであり、通信のコストは
3である。本アルゴリズムを用いた通信コストの方が、
図3に示す従来の方法の通信コストよりも少なくなって
いる点に留意されたい。
【0058】なお、配列Cの場合は1次元方向に4つの
完全通信グループができ、配列Bの場合と同様の手順を
実行することにより3つの通信ステップで通信が完了す
ることができる。
【0059】上記の実施例は、通信装置が全二重化され
ている場合を説明したが、半二重通信においても適用す
ることができる。半二重通信の場合には、各ステップを
2つに分割すればよい。
【0060】さらに、本実施例に示すアルゴリズムは、
上記の例のように、メッセージ・ベクトル化によってル
ープを並列化するためにデータのプリフェッチに適用で
きる他に、データを再分散する場合や、分散されたデー
タベースを再構築する場合においても適用することがで
きる。
【0061】図11は、全体のプロセッサ間でデータを
再分散する場合の状態遷移図である。このような再分散
は、あるアルゴリズムが2次元配列の1次元方向に並列
性があり、別のアルゴリズムが2次元配列のうち2次元
方向に並列性がある場合や、ブロック分割からサイクリ
ック分割にデータの分割方式を変更する場合などに発生
する。
【0062】このような再分散の例は、プロセッサ全体
が完全通信グラフになるものであり、上記のアルゴリズ
ムを使うことにより、最適な通信スケジュールを決定す
ることができる。なお、この場合には、初期設定の必要
がないので、プロセッサ数より1少ない通信ステップで
通信を行うことができる。図12は、図11のデータ再
分散の実際の通信ステップを示したものである。それぞ
れの距離がそれぞれの通信ステップに対応しているの
で、通信ステップ数は3である。
【0063】図13は、プロセッサ数を減らすようなデ
ータ分散を行う場合の状態遷移図である。この場合、送
信プロセッサ・グループ、受信プロセッサ・グループ及
びの完全通信グラフのノードは、図14のようになり、
この例に対する完全通信グラフは図15のようになる。
このグラフから図16のような、最適な実際の通信スケ
ジュールが求められる。この図で示すとおり、4つの通
信ステップで通信を行うことができる。
【0064】なお、本アルゴリズムは、並列化コンパイ
ラ自身が有する機能の一つとして、このコンパイラに実
装させてもよい。さらに、通信スケジュール決定ルーチ
ンとして実行時ライブラリの一つとすることも可能であ
る。
【0065】図18は、並列化コンパイラ自身がこのア
ルゴリズムを有する場合に、生成された目的プログラム
の状態を示す図である。並列化コンパイラは、図2に示
したような並列処理が可能なプログラムをソース・プロ
グラム中から検出し、本アルゴリズムに従ってプロセッ
サ間の通信スケジュールをコンパイル時に決定する。こ
の場合、この通信における最適なの手順を示すコードを
含めた目的プログラムが生成される。
【0066】また、図19は、通信スケジュール決定ル
ーチンとして本アルゴリズムを用いる場合に、生成され
た目的プログラムの状態を示す図である。並列化コンパ
イラは、図2に示すソース・プログラムを検出した場
合、このプログラム部分を通信スケジュール決定ルーチ
ンと関連づけた目的プログラムを生成する。すなわち、
コンパイル時において、並列化コンパイラは、この部分
を実行時ライブラリ中のあるルーチンと関連づけるのみ
で、具体的な通信スケジュールを決定しない。システム
が、目的プログラムを実行した場合、この関連づけられ
たルーチンが呼び出されて、このルーチンが実行時に最
適な通信スケジュールを決定する。この最適な通信スケ
ジュールを決定のために要する計算量はそれ程多くはな
いので、実行時にこのような計算を行っても、従来の方
法よりも速くプロセッサ間の通信を実行することが可能
である。
【0067】なお、本アルゴリズムは、プロセッサ間通
信のスケジューリングを目的プログラムの実行時に行う
必要が多いが、この通信を解析するためのオーバーヘッ
ドは僅かなものであり、実質的には待ち時間なしの最適
な通信を行うことが可能となる。また、本アルゴリズム
を用いた通信ライブラリも非常に高速なものを実装する
ことが可能となる。
【0068】さらに、本アルゴリズムは、HPSのよう
に同時に1対1の送受信を行うことができるネットワー
クを主たる対象としているが、トークンリングやLAN
(システム全体で1対1の送受信が1つだけに制約され
たもの)でも適用が可能である。
【0069】
【効果】このように、本発明では、並列計算機などにお
ける複数プロセッサ間の通信を行う場合に、実行すべき
通信全体を把握した上で、通信スケジュールを生成して
いる。従って、データを送受信する際に待ち状態が発生
することを有効に低減できるため、効率的なプロセッサ
間通信を行うことができる。特に、完全通信グラフを用
いることにより、最適な通信スケジューリングを行うこ
とが可能となる。また、メモリや仮想記憶システムの不
必要な占有を防ぐことにより、システムの効率の低下を
防ぐことができる。
【図面の簡単な説明】
【図1】複数のプロセッサを有するシステムのブロック
図である。
【図2】行列積を求めるためのプログラムリストであ
る。
【図3】従来の方法を用いたプロセッサ間の通信スケジ
ュールである。
【図4】本実施例における動作フロー図である。
【図5】6台のプロセッサ間で生じた通信状態を示す概
略図である。
【図6】図5の例における送受信プロセッサグループ及
び仮想間全通信ノードを示す図である。
【図7】図6に基づき生成された完全通信グラフの図で
ある。
【図8】図7の完全通信グラフから抽出された実際の通
信スケジュールを示す図である。
【図9】配列のブロック毎の分割とそのブロックが記憶
されているプロセッサを示す図である。
【図10】図2のプログラムリストに関する完全通信グ
ラフである。
【図11】全体のプロセッサ間でデータを再分散する場
合の状態遷移図である。
【図12】図11のデータ再分散の実際の通信ステップ
を示す図である。
【図13】プロセッサ数を減らすようなデータ分散を行
う場合の状態遷移図である。
【図14】図13の例における送信プロセッサ・グルー
プ、受信プロセッサ・グループ及びの完全通信グラフの
ノードを示す図である。
【図15】図14の例における完全通信グラフを示す図
である。
【図16】図15の例における実際の通信ステップを示
す図である。
【図17】従来の通信ライブラリが用意する単純な通信
パターンの通信形態を示す図である。
【図18】並列化コンパイラ自身が通信スケジュールを
決定する場合に生成される目的プログラムの状態を示す
図である。
【図19】実行時ルーチンが通信スケジュールを決定す
る場合に生成される目的プログラムの状態を示す図であ
る。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 小笠原 武史 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 東京基礎研究所 内

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサを有するシステムで、前
    記プロセッサ間でデータを通信する場合の通信スケジュ
    ールを決定する方法において、 プロセッサ間通信でデータを送信するプロセッサ及びデ
    ータを受信するプロセッサを複数のグループに分類する
    ステップと、 ノードを前記グループに一対一で対応付けると共に、そ
    れぞれの辺を前記プロセッサ間で生じる通信に対応付け
    た通信グラフを、前記ノード間の距離ごとに、生成する
    ステップと、 前記ノード間の距離ごとに生成された前記通信グラフの
    それぞれを、前記プロセッサ間通信における通信ステッ
    プに対応付けることにより、前記プロセッサ間通信の通
    信スケジュールを決定するステップとを有することを特
    徴とする方法。
  2. 【請求項2】複数のプロセッサを有するシステムで、前
    記プロセッサ間でデータを通信する場合の通信スケジュ
    ールを決定する方法において、 プロセッサ間通信でデータを送信するプロセッサ及びデ
    ータを受信するプロセッサをN個のグループに分類する
    ステップと、 N個のノードを前記グループに一対一で対応付けると共
    に、それぞれの辺を前記プロセッサ間で生じる通信に対
    応付けた通信グラフを、前記ノード間距離1からノード
    間距離N−1までそれぞれ生成するステップと、 前記ノード間の距離ごとに生成されたN−1個の前記通
    信グラフのそれぞれを、前記プロセッサ間通信における
    通信ステップに対応付けることにより、前記プロセッサ
    間通信の通信スケジュールを決定するステップとを有す
    ることを特徴とする方法。
  3. 【請求項3】前記分類するステップは、データを送信す
    る前記プロセッサ及びデータを受信する前記プロセッサ
    から構成される対ごとに、1つの前記グループを形成す
    ることを特徴とする請求項1または2に記載の方法。
  4. 【請求項4】同一の前記ノードに属する前記プロセッサ
    が異なる場合には、前記同一ノードに属するプロセッサ
    間で通信を行う通信ステップを、前記通信スケジュール
    に追加するステップをさらに有することを特徴とする請
    求項1または2に記載の方法。
  5. 【請求項5】複数のプロセッサを有するシステムで、前
    記プロセッサ間でデータを通信する場合の通信スケジュ
    ールを決定するコンピュータ・プログラムが記録された
    記録媒体において、 プロセッサ間通信でデータを送信するプロセッサ及びデ
    ータを受信するプロセッサを複数のグループに分類する
    第1の命令手段と、 ノードを前記グループに一対一で対応付けると共に、そ
    れぞれの辺を前記プロセッサ間で生じる通信に対応付け
    た通信グラフを、前記ノード間の距離ごとに、生成する
    第2の命令手段と、 前記ノード間の距離ごとに生成された前記通信グラフの
    それぞれを、前記プロセッサ間通信における通信ステッ
    プに対応付けることにより、前記プロセッサ間通信の通
    信スケジュールを決定する第3の命令手段とを有するこ
    とを特徴とする記録媒体。
  6. 【請求項6】複数のプロセッサを有するシステムで、前
    記プロセッサ間でデータを通信する場合の通信スケジュ
    ールを決定するコンピュータ・プログラムが記録された
    記録媒体方法において、 プロセッサ間通信でデータを送信するプロセッサ及びデ
    ータを受信するプロセッサをN個のグループに分類する
    第1の命令手段と、 N個のノードを前記グループに一対一で対応付けると共
    に、それぞれの辺を前記プロセッサ間で生じる通信に対
    応付けた通信グラフを、前記ノード間距離1からノード
    間距離N−1までそれぞれ生成する第2の命令手段と、 前記ノード間の距離ごとに生成されたN−1個の前記通
    信グラフのそれぞれを、前記プロセッサ間通信における
    通信ステップに対応付けることにより、前記プロセッサ
    間通信の通信スケジュールを決定する第3の命令手段と
    を有することを特徴とする記憶媒体。
  7. 【請求項7】前記第1の命令手段は、データを送信する
    前記プロセッサ及びデータを受信する前記プロセッサか
    ら構成される対ごとに、1つの前記グループを形成する
    ことを特徴とする請求項5または6に記載の記録媒体。
  8. 【請求項8】同一の前記ノードに属する前記プロセッサ
    が異なる場合には、前記同一ノードに属するプロセッサ
    間で通信を行う通信ステップを、前記通信スケジュール
    に追加する第4の命令手段をさらに有することを特徴と
    する請求項5または6に記載の記録媒体。
  9. 【請求項9】複数のプロセッサ要素を有し、それぞれの
    前記プロセッサ要素は、プロセッサ、メモリ手段及び通
    信手段を有し、前記通信手段は、データの入力と出力を
    同時に行うことができるシステムにおいて、 並列化コンパイラが、ソース・プログラムのコンパイル
    時に、請求項1乃至4に記載された方法を実行すること
    により生成された前記プロセッサ要素間の通信スケジュ
    ールを含む目的プログラムを実行するシステム。
  10. 【請求項10】複数のプロセッサ要素を有し、それぞれ
    の前記プロセッサ要素は、プロセッサ、メモリ手段及び
    通信手段を有し、前記通信手段は、データの入力と出力
    を同時に行うことができるシステムにおいて、 並列化コンパイラが、ソース・プログラムを目的プログ
    ラムにコンパイルする際に、前記ソース・プログラム中
    の並列処理が可能なプログラム領域を、請求項1乃至4
    に記載された方法を実行する実行時ライブラリに関連づ
    け、前記目的プログラムの実行時に、前記実行時ライブ
    ラリを実行することにより決定された前記プロセッサ要
    素間の通信スケジュールに基づき、目的プログラムを実
    行するシステム。
JP8142440A 1996-05-06 1996-06-05 プロセッサ間の通信スケジュールを決定する方法 Pending JPH09330304A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP8142440A JPH09330304A (ja) 1996-06-05 1996-06-05 プロセッサ間の通信スケジュールを決定する方法
US08/869,902 US6126331A (en) 1996-06-05 1997-06-05 Determining a communication schedule between processors
US09/361,316 US6253372B1 (en) 1996-05-06 1999-07-27 Determining a communication schedule between processors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8142440A JPH09330304A (ja) 1996-06-05 1996-06-05 プロセッサ間の通信スケジュールを決定する方法

Publications (1)

Publication Number Publication Date
JPH09330304A true JPH09330304A (ja) 1997-12-22

Family

ID=15315370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8142440A Pending JPH09330304A (ja) 1996-05-06 1996-06-05 プロセッサ間の通信スケジュールを決定する方法

Country Status (2)

Country Link
US (2) US6126331A (ja)
JP (1) JPH09330304A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008114440A1 (ja) * 2007-03-20 2008-09-25 Fujitsu Limited 一意情報集団通信プログラム、コンピュータ、一意情報集団通信方法、および記録媒体
US7756144B2 (en) 2006-03-17 2010-07-13 Fujitsu Limited Reduction processing method for parallel computer, and parallel computer
JP2011053876A (ja) * 2009-09-01 2011-03-17 Fujitsu Ltd 並列計算システムおよび通信制御プログラム
CN103106174A (zh) * 2011-11-09 2013-05-15 深圳市德赛微电子技术有限公司 一种复杂soc的片上通信方法

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434594B1 (en) 1999-03-09 2002-08-13 Talk2 Technology, Inc. Virtual processing network enabler
US6817016B1 (en) * 2000-09-29 2004-11-09 International Business Machines Corp. Dominant edge identification for efficient partition and distribution
US7010789B1 (en) * 2000-09-29 2006-03-07 International Business Machines Corporation Independent net task identification for efficient partition and distribution
US7415601B2 (en) * 2002-06-28 2008-08-19 Motorola, Inc. Method and apparatus for elimination of prolog and epilog instructions in a vector processor using data validity tags and sink counters
US7140019B2 (en) * 2002-06-28 2006-11-21 Motorola, Inc. Scheduler of program instructions for streaming vector processor having interconnected functional units
US7159099B2 (en) * 2002-06-28 2007-01-02 Motorola, Inc. Streaming vector processor with reconfigurable interconnection switch
US7290122B2 (en) * 2003-08-29 2007-10-30 Motorola, Inc. Dataflow graph compression for power reduction in a vector processor
US20060020701A1 (en) * 2004-07-21 2006-01-26 Parekh Harshadrai G Thread transfer between processors
US7509244B1 (en) 2004-12-22 2009-03-24 The Mathworks, Inc. Distributed model compilation
US20080082644A1 (en) * 2006-09-29 2008-04-03 Microsoft Corporation Distributed parallel computing
US8201142B2 (en) * 2006-09-29 2012-06-12 Microsoft Corporation Description language for structured graphs
US7844959B2 (en) * 2006-09-29 2010-11-30 Microsoft Corporation Runtime optimization of distributed execution graph
US8713582B2 (en) * 2006-10-26 2014-04-29 International Business Machines Corporation Providing policy-based operating system services in an operating system on a computing system
US8656448B2 (en) * 2006-10-26 2014-02-18 International Business Machines Corporation Providing policy-based application services to an application running on a computing system
US8032899B2 (en) 2006-10-26 2011-10-04 International Business Machines Corporation Providing policy-based operating system services in a hypervisor on a computing system
US7958274B2 (en) 2007-06-18 2011-06-07 International Business Machines Corporation Heuristic status polling
US8296430B2 (en) * 2007-06-18 2012-10-23 International Business Machines Corporation Administering an epoch initiated for remote memory access
US8082424B2 (en) * 2007-08-01 2011-12-20 International Business Machines Corporation Determining when a set of compute nodes participating in a barrier operation on a parallel computer are ready to exit the barrier operation
US9065839B2 (en) 2007-10-02 2015-06-23 International Business Machines Corporation Minimally buffered data transfers between nodes in a data communications network
US20090113308A1 (en) * 2007-10-26 2009-04-30 Gheorghe Almasi Administering Communications Schedules for Data Communications Among Compute Nodes in a Data Communications Network of a Parallel Computer
US7984450B2 (en) * 2007-11-28 2011-07-19 International Business Machines Corporation Dispatching packets on a global combining network of a parallel computer
US7945768B2 (en) * 2008-06-05 2011-05-17 Motorola Mobility, Inc. Method and apparatus for nested instruction looping using implicit predicates
US8458722B2 (en) * 2008-06-09 2013-06-04 International Business Machines Corporation Thread selection according to predefined power characteristics during context switching on compute nodes
US8140704B2 (en) * 2008-07-02 2012-03-20 International Busniess Machines Corporation Pacing network traffic among a plurality of compute nodes connected using a data communications network
US8495603B2 (en) * 2008-08-11 2013-07-23 International Business Machines Corporation Generating an executable version of an application using a distributed compiler operating on a plurality of compute nodes
US8161127B2 (en) * 2009-02-23 2012-04-17 International Business Machines Corporation Process mapping in parallel computing
US9235445B2 (en) 2009-02-23 2016-01-12 International Business Machines Corporation Process mapping parallel computing
US20110225297A1 (en) 2010-03-11 2011-09-15 International Business Machines Corporation Controlling Access To A Resource In A Distributed Computing System With A Distributed Access Request Queue
US9348661B2 (en) * 2010-03-11 2016-05-24 International Business Machines Corporation Assigning a unique identifier to a communicator
US8606979B2 (en) * 2010-03-29 2013-12-10 International Business Machines Corporation Distributed administration of a lock for an operational group of compute nodes in a hierarchical tree structured network
US8365186B2 (en) 2010-04-14 2013-01-29 International Business Machines Corporation Runtime optimization of an application executing on a parallel computer
US8621446B2 (en) * 2010-04-29 2013-12-31 International Business Machines Corporation Compiling software for a hierarchical distributed processing system
US8504730B2 (en) 2010-07-30 2013-08-06 International Business Machines Corporation Administering connection identifiers for collective operations in a parallel computer
US8565120B2 (en) 2011-01-05 2013-10-22 International Business Machines Corporation Locality mapping in a distributed processing system
US9317637B2 (en) 2011-01-14 2016-04-19 International Business Machines Corporation Distributed hardware device simulation
US8689228B2 (en) 2011-07-19 2014-04-01 International Business Machines Corporation Identifying data communications algorithms of all other tasks in a single collective operation in a distributed processing system
US9250948B2 (en) 2011-09-13 2016-02-02 International Business Machines Corporation Establishing a group of endpoints in a parallel computer
US9063826B2 (en) * 2011-11-28 2015-06-23 International Business Machines Corporation Process mapping in parallel computing
GB201409796D0 (en) 2014-06-02 2014-07-16 Quanta Fluid Solutions Ltd Method of heat sanitization of a haemodialysis water circuit using a calculated dose
US10831691B1 (en) * 2019-05-24 2020-11-10 International Business Machines Corporation Method for implementing processing elements in a chip card

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4387427A (en) * 1978-12-21 1983-06-07 Intel Corporation Hardware scheduler/dispatcher for data processing system
US4598400A (en) * 1983-05-31 1986-07-01 Thinking Machines Corporation Method and apparatus for routing message packets
US4814973A (en) * 1983-05-31 1989-03-21 Hillis W Daniel Parallel processor
US4972314A (en) * 1985-05-20 1990-11-20 Hughes Aircraft Company Data flow signal processor method and apparatus
US4984235A (en) * 1987-04-27 1991-01-08 Thinking Machines Corporation Method and apparatus for routing message packets and recording the roofing sequence
US5247694A (en) * 1990-06-14 1993-09-21 Thinking Machines Corporation System and method for generating communications arrangements for routing data in a massively parallel processing system
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5737623A (en) * 1995-04-19 1998-04-07 Liebrock; Lorie M. Multi-processor parallel computer architecture using a parallel machine with topology-based mappings of composite grid applications
US5742821A (en) * 1995-11-08 1998-04-21 Lucent Technologies Inc. Multiprocessor scheduling and execution

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7756144B2 (en) 2006-03-17 2010-07-13 Fujitsu Limited Reduction processing method for parallel computer, and parallel computer
WO2008114440A1 (ja) * 2007-03-20 2008-09-25 Fujitsu Limited 一意情報集団通信プログラム、コンピュータ、一意情報集団通信方法、および記録媒体
US8185656B2 (en) 2007-03-20 2012-05-22 Fujitsu Limited Process and computer for collectively transmitting unique messages, and recording medium storing a program for collectively transmitting unique messages
JP5056844B2 (ja) * 2007-03-20 2012-10-24 富士通株式会社 一意情報集団通信プログラム、計算ノード、および一意情報集団通信方法
JP2011053876A (ja) * 2009-09-01 2011-03-17 Fujitsu Ltd 並列計算システムおよび通信制御プログラム
CN103106174A (zh) * 2011-11-09 2013-05-15 深圳市德赛微电子技术有限公司 一种复杂soc的片上通信方法

Also Published As

Publication number Publication date
US6253372B1 (en) 2001-06-26
US6126331A (en) 2000-10-03

Similar Documents

Publication Publication Date Title
JPH09330304A (ja) プロセッサ間の通信スケジュールを決定する方法
EP0237013B1 (en) Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element
Barthels et al. Distributed join algorithms on thousands of cores
US6212617B1 (en) Parallel processing method and system using a lazy parallel data type to reduce inter-processor communication
Hayes et al. Hypercube supercomputers
US6106575A (en) Nested parallel language preprocessor for converting parallel language programs into sequential code
US6292822B1 (en) Dynamic load balancing among processors in a parallel computer
US6088511A (en) Nested parallel 2D Delaunay triangulation method
JPH1040223A (ja) 分散並列システムにおける集合通信認識の最適化方法
JP2014525640A (ja) 並列処理開発環境の拡張
WO2003060748A2 (en) Parallel processing systems and method
Proficz Improving all-reduce collective operations for imbalanced process arrival patterns
Quinn et al. On the utility of communication–computation overlap in data-parallel programs
JPH0793269A (ja) データ転送の一括化処理方法
Burton Storage management in virtual tree machines
Ramakrishnan et al. Efficient techniques for nested and disjoint barrier synchronization
Livny et al. Distributed computation via active messages
Wang et al. An efficient algorithm for irregular redistributions in parallelizing compilers
Reeves et al. The Paragon programming paradigm and distributed memory multicomputers
Boku et al. INSPIRE: A general purpose network simulator generating system for massively parallel processors
Bouvry et al. Mapping and load balancing on distributed memory systems
León et al. A PRAM oriented programming system
JPH07114515A (ja) 同期通信用ネットワークを有する分散メモリ計算機
Zhou et al. Parallel implementation of maximum likelihood methods for phylogenetic analysis
Kikuchi et al. Presto: A bus-connected multiprocessor for a Rete-based production system