JPH1040223A - 分散並列システムにおける集合通信認識の最適化方法 - Google Patents
分散並列システムにおける集合通信認識の最適化方法Info
- Publication number
- JPH1040223A JPH1040223A JP8155831A JP15583196A JPH1040223A JP H1040223 A JPH1040223 A JP H1040223A JP 8155831 A JP8155831 A JP 8155831A JP 15583196 A JP15583196 A JP 15583196A JP H1040223 A JPH1040223 A JP H1040223A
- Authority
- JP
- Japan
- Prior art keywords
- communication
- itr
- processor
- array
- dimension
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/453—Data distribution
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】
【課題】分散並列システムにおける集合通信認識を最適
化すること。 【解決手段】均質な問題に対して、通信セットをアクセ
ス規則性を生かしたデータ構造及びプロセッサ数に左右
されないプロセッサ表現を導入し、データ構造とプロセ
ッサ表現とを使って配列の次元ごとに通信セットを計算
し、次元ごとの通信セットから通信を構築する際に集合
通信を抽出する。
化すること。 【解決手段】均質な問題に対して、通信セットをアクセ
ス規則性を生かしたデータ構造及びプロセッサ数に左右
されないプロセッサ表現を導入し、データ構造とプロセ
ッサ表現とを使って配列の次元ごとに通信セットを計算
し、次元ごとの通信セットから通信を構築する際に集合
通信を抽出する。
Description
【0001】
【発明の属する利用分野】本発明は分散並列システムに
おける集合通信認識の最適化方法に関する。
おける集合通信認識の最適化方法に関する。
【0002】
【従来の技術】分散並列計算機などの分散並列システム
用にデータ並列言語で記述されたアプリケーションで
は、遠隔ホスト上にある計算に必要なデータをローカル
・ホストへ通信するコードが、コンパイラによって生成
される。このデータ並列言語は、並列計算機上で並列プ
ログラムを書く際に、重要な役割を有している。特に、
このようなシステムに大規模な数値計算を実行させる
際、コンパイラがプロセッサの集合通信を適切に検出で
きることは非常に重要である。そこで、まず本発明が対
象とする「コンパイラ処理系による集合通信認識」の重
要性を以下の順序で説明した後に、従来の技術の内容及
び問題点について説明する。 (1)データ並列言語プログラムにおける通信の種類 (2)コンパイラによる通信の最適化 (3)集合通信ライブラリ
用にデータ並列言語で記述されたアプリケーションで
は、遠隔ホスト上にある計算に必要なデータをローカル
・ホストへ通信するコードが、コンパイラによって生成
される。このデータ並列言語は、並列計算機上で並列プ
ログラムを書く際に、重要な役割を有している。特に、
このようなシステムに大規模な数値計算を実行させる
際、コンパイラがプロセッサの集合通信を適切に検出で
きることは非常に重要である。そこで、まず本発明が対
象とする「コンパイラ処理系による集合通信認識」の重
要性を以下の順序で説明した後に、従来の技術の内容及
び問題点について説明する。 (1)データ並列言語プログラムにおける通信の種類 (2)コンパイラによる通信の最適化 (3)集合通信ライブラリ
【0003】(1)データ並列言語プログラムにおける
通信の種類 データ並列言語プログラムにおけるプロセッサ間通信の
種類は、主として、並列化ループ実行前のデータのプリ
フェッチのための通信と、配列の分配方式を変更、すな
わち再分配のための通信がある。プリフェッチは、ルー
プ実行前に、予め、読み出し参照する右辺配列領域のデ
ータを有するプロセッサから実行文の計算を行うプロセ
ッサに、そのデータを転送することである。
通信の種類 データ並列言語プログラムにおけるプロセッサ間通信の
種類は、主として、並列化ループ実行前のデータのプリ
フェッチのための通信と、配列の分配方式を変更、すな
わち再分配のための通信がある。プリフェッチは、ルー
プ実行前に、予め、読み出し参照する右辺配列領域のデ
ータを有するプロセッサから実行文の計算を行うプロセ
ッサに、そのデータを転送することである。
【0004】また、再分配とは配列を分配し直すことで
あるが、これは次の場合に必要となる。まず、アルゴリ
ズムの性質上、配列の分配方式を変更した方が実行性能
の向上を見込める場合である。この場合、アルゴリズム
の実行前に、読み出し参照する右辺配列領域を適切に分
配し直す。また、サブルーチンの境界で引数配列の分配
方法が変わる場合にも再分配が行われる。
あるが、これは次の場合に必要となる。まず、アルゴリ
ズムの性質上、配列の分配方式を変更した方が実行性能
の向上を見込める場合である。この場合、アルゴリズム
の実行前に、読み出し参照する右辺配列領域を適切に分
配し直す。また、サブルーチンの境界で引数配列の分配
方法が変わる場合にも再分配が行われる。
【0005】プリフェッチについて図1に示すハイ・パ
フォーマンス・フォートラン(以下HPFという)で記
述されたプログラムリストを例(LU分解のカーネル・
ループ)にさらに説明する。データ並列言語コンパイラ
が行う通信解析は、ループ実行中にアクセスされる右辺
配列領域RkをプロセッサPiがプロセッサPjへ通信す
る、という通信セットの計算である。
フォーマンス・フォートラン(以下HPFという)で記
述されたプログラムリストを例(LU分解のカーネル・
ループ)にさらに説明する。データ並列言語コンパイラ
が行う通信解析は、ループ実行中にアクセスされる右辺
配列領域RkをプロセッサPiがプロセッサPjへ通信す
る、という通信セットの計算である。
【0006】ループを並列化するために、コンパイラ
は、2重ループの前に右辺配列オペランドa(i,k)のプリ
フェッチ通信コードを生成する。NP台のプロセッサで
「所有者計算(owner computers)方針」に沿ってループ
を実行すると、配列領域a(:,k)が分割、保持されるプロ
セッサpは、配列領域a(k+1:n,k)を、左辺でアクセスさ
れる配列領域a(k+1:n,k+1:n)を所有するプロセッサに通
信する必要がある。つまり通信セットは、送信としてa
(k+1:n,k)とそれを分配されたプロセッサp、受信とし
てa(k+1:n,k+1:n)を分配されたプロセッサ・グループで
ある。
は、2重ループの前に右辺配列オペランドa(i,k)のプリ
フェッチ通信コードを生成する。NP台のプロセッサで
「所有者計算(owner computers)方針」に沿ってループ
を実行すると、配列領域a(:,k)が分割、保持されるプロ
セッサpは、配列領域a(k+1:n,k)を、左辺でアクセスさ
れる配列領域a(k+1:n,k+1:n)を所有するプロセッサに通
信する必要がある。つまり通信セットは、送信としてa
(k+1:n,k)とそれを分配されたプロセッサp、受信とし
てa(k+1:n,k+1:n)を分配されたプロセッサ・グループで
ある。
【0007】図2はプリフェッチにおけるデータ通信を
説明する概念図である。この図において、記号(k,
i,j,n)は図1のプログラム中の変数に対応してい
る。また、縦たんざく状の領域は配列がサイクリック(c
yclic)分割されていることを示しており、斜線部分は通
信される配列領域を示している。
説明する概念図である。この図において、記号(k,
i,j,n)は図1のプログラム中の変数に対応してい
る。また、縦たんざく状の領域は配列がサイクリック(c
yclic)分割されていることを示しており、斜線部分は通
信される配列領域を示している。
【0008】次に再分割についてさらに説明する。配列
が(block,block)で分割されている場合、図3に示すプ
ログラムリストに示されているサブルーチンを呼ぶと再
分配が発生する。図4は再分配におけるデータ通信を説
明する概念図である。この図において、正方形の領域は
配列aが分割された領域を示している。2次元プロセッ
サ形式p(i,j)に最初に分配された配列領域をAijとして
いる。サブルーチン呼び出し(call sub(a))の際に、2
次元プロセッサの1次元目iの各プロセッサが同じ配列
領域(Ai1、・・・、Ain)を有するように再分配が起こ
る。通信セットは、プロセッサP(i,:)が配列領域
(Ai1、・・・、Ain)をそれぞれの分配先から受信し、
プロセッサp(i,j)がAijをプロセッサp(i,:)に送信す
る。
が(block,block)で分割されている場合、図3に示すプ
ログラムリストに示されているサブルーチンを呼ぶと再
分配が発生する。図4は再分配におけるデータ通信を説
明する概念図である。この図において、正方形の領域は
配列aが分割された領域を示している。2次元プロセッ
サ形式p(i,j)に最初に分配された配列領域をAijとして
いる。サブルーチン呼び出し(call sub(a))の際に、2
次元プロセッサの1次元目iの各プロセッサが同じ配列
領域(Ai1、・・・、Ain)を有するように再分配が起こ
る。通信セットは、プロセッサP(i,:)が配列領域
(Ai1、・・・、Ain)をそれぞれの分配先から受信し、
プロセッサp(i,j)がAijをプロセッサp(i,:)に送信す
る。
【0009】(2)コンパイラによる通信の最適化 HPFなどのデータ並列言語で記述されたプログラム中
で必要となるプロセッサ間の通信は、コンパイラが抽出
する。この抽出において、並列計算機の性能を十分に発
揮させプログラムの実行速度を向上させるために、その
計算機の特性を生かすように、通信を最適化することが
重要である。特にプロセッサ毎にメモリを有するような
分散メモリ並列計算機の場合、データ並列言語では配列
をプロセッサ間に分配するため、この最適化が非常に重
要になる。このような計算機において、ローカル・プロ
セッサが、自己のメモリ中に存在しないデータを使って
計算を実行する場合にプロセッサ間の通信が生じる。こ
の通信のための時間は、メモリのアクセスの時間と比べ
て非常に遅いので、通信のオーバーヘッドは並列計算機
のパフォーマンスに直接影響を与える。
で必要となるプロセッサ間の通信は、コンパイラが抽出
する。この抽出において、並列計算機の性能を十分に発
揮させプログラムの実行速度を向上させるために、その
計算機の特性を生かすように、通信を最適化することが
重要である。特にプロセッサ毎にメモリを有するような
分散メモリ並列計算機の場合、データ並列言語では配列
をプロセッサ間に分配するため、この最適化が非常に重
要になる。このような計算機において、ローカル・プロ
セッサが、自己のメモリ中に存在しないデータを使って
計算を実行する場合にプロセッサ間の通信が生じる。こ
の通信のための時間は、メモリのアクセスの時間と比べ
て非常に遅いので、通信のオーバーヘッドは並列計算機
のパフォーマンスに直接影響を与える。
【0010】(3)集合通信ライブラリ 並列計算機システムには、ネットワークを有効に活用す
る最適化通信サブシステムである集合通信(collective
data movement)ライブラリが提供されている。あるプロ
セッサ・グループにおいて通信が必要となった際に、そ
の通信がライブラリ中の定められたパターンに合致する
場合には、このライブラリに従って最適な通信が行われ
る。集合通信ライブラリの国際的な標準としてMPIが
よく知られている。並列アプリケーションのパフォーマ
ンスを向上させるためには、通信が必要な場合に、集合
通信ライブラリをいかに活用できるかということが重要
である。例えば、図1のプログラムリストでは、放送(b
roadcast)というライブラリを適用することができ、ま
た図3のリストでは、全収集(all gather)というライブ
ラリを適用することができる。
る最適化通信サブシステムである集合通信(collective
data movement)ライブラリが提供されている。あるプロ
セッサ・グループにおいて通信が必要となった際に、そ
の通信がライブラリ中の定められたパターンに合致する
場合には、このライブラリに従って最適な通信が行われ
る。集合通信ライブラリの国際的な標準としてMPIが
よく知られている。並列アプリケーションのパフォーマ
ンスを向上させるためには、通信が必要な場合に、集合
通信ライブラリをいかに活用できるかということが重要
である。例えば、図1のプログラムリストでは、放送(b
roadcast)というライブラリを適用することができ、ま
た図3のリストでは、全収集(all gather)というライブ
ラリを適用することができる。
【0011】従来の集合通信を認識するアプローチは、
ループ本体中に存在する左辺配列と右辺配列の分配方法
がコンパイル時に決められ、分配されているプロセッサ
形式が同じであると仮定して、上述のような集合通信の
認識を行うものである。この方式は、コンパイル時に認
識するものはプロセッサ形式を1つしか許さないという
強い制約を持つ。また、分配方式が実行時に決まる場合
や、実行時に通信すべき配列領域が変化する場合には対
応しない。従って、以下のような場合には適用できな
い。 ・左辺と右辺のプロセッサ形式が相違している場合 ・右辺または左辺の配列の分配方式が実行時に決定され
る場合 ・右辺または左辺のアクセス領域が実行時に決定される
場合
ループ本体中に存在する左辺配列と右辺配列の分配方法
がコンパイル時に決められ、分配されているプロセッサ
形式が同じであると仮定して、上述のような集合通信の
認識を行うものである。この方式は、コンパイル時に認
識するものはプロセッサ形式を1つしか許さないという
強い制約を持つ。また、分配方式が実行時に決まる場合
や、実行時に通信すべき配列領域が変化する場合には対
応しない。従って、以下のような場合には適用できな
い。 ・左辺と右辺のプロセッサ形式が相違している場合 ・右辺または左辺の配列の分配方式が実行時に決定され
る場合 ・右辺または左辺のアクセス領域が実行時に決定される
場合
【0012】一般的なアプリケーションは、プリフェッ
チまたは再分割が、任意のプロセッサ形式、任意の配列
分割方法で行われる場合が多くあるので、従来の技術の
ようなコンパイル時における手法は現実のアプリケーシ
ョンに有効に適用できないという問題を有している。一
方、実行時に集合通信を認識する方法(scatter, gathe
r, alltoallを活用する手法)も提案されているが、m次
元配列についての高価な計算量O(n0+・・・+nm-1)
(niはi次元目の配列サイズ)なので大規模な数値計
算には向かない。
チまたは再分割が、任意のプロセッサ形式、任意の配列
分割方法で行われる場合が多くあるので、従来の技術の
ようなコンパイル時における手法は現実のアプリケーシ
ョンに有効に適用できないという問題を有している。一
方、実行時に集合通信を認識する方法(scatter, gathe
r, alltoallを活用する手法)も提案されているが、m次
元配列についての高価な計算量O(n0+・・・+nm-1)
(niはi次元目の配列サイズ)なので大規模な数値計
算には向かない。
【0013】
【発明が解決しようとする課題】このような課題を解決
するために、本発明は、分散並列システムにおける集合
通信認識の最適化方法において、均質な問題に対して、
通信セットをアクセス規則性を生かしたデータ構造と
し、プロセッサ数に左右されないプロセッサ表現を導入
し、データ構造とプロセッサ表現とを使って配列の次元
ごとに通信セットを計算し、次元ごとの通信セットから
通信を構築する際に集合通信を抽出することを特徴とす
る方法を提供する。
するために、本発明は、分散並列システムにおける集合
通信認識の最適化方法において、均質な問題に対して、
通信セットをアクセス規則性を生かしたデータ構造と
し、プロセッサ数に左右されないプロセッサ表現を導入
し、データ構造とプロセッサ表現とを使って配列の次元
ごとに通信セットを計算し、次元ごとの通信セットから
通信を構築する際に集合通信を抽出することを特徴とす
る方法を提供する。
【0014】
【課題を解決するための手段】均質な問題に対して、通
信セットをアクセス規則性を生かしたデータ構造(IT
Rリスト)とし、プロセッサ数に左右されないプロセッ
サ表現(4つ組表現)を導入し、データ構造とプロセッ
サ表現とを使って配列の次元ごとに通信セットを計算
し、次元ごとの通信セットから通信を構築する際に集合
通信を抽出することを特徴とする方法。
信セットをアクセス規則性を生かしたデータ構造(IT
Rリスト)とし、プロセッサ数に左右されないプロセッ
サ表現(4つ組表現)を導入し、データ構造とプロセッ
サ表現とを使って配列の次元ごとに通信セットを計算
し、次元ごとの通信セットから通信を構築する際に集合
通信を抽出することを特徴とする方法。
【0015】
【作用】図5は、本発明が適用可能な範囲を説明するた
めの概念図である。本発明では、ITRリストと4つ組
表現を用いるため、実行時に他プロセッサと情報の交換
を行う必要がなく、プリフェッチと再分配の両方につい
て同じ手法で、配列次元数のオーダーの計算量で集合通
信を抽出できる。これは、配列サイズや並列計算機の規
模に依存しない。
めの概念図である。本発明では、ITRリストと4つ組
表現を用いるため、実行時に他プロセッサと情報の交換
を行う必要がなく、プリフェッチと再分配の両方につい
て同じ手法で、配列次元数のオーダーの計算量で集合通
信を抽出できる。これは、配列サイズや並列計算機の規
模に依存しない。
【0016】
【発明の実施の形態】まず、本アルゴリズムが有する特
徴であるITRリスト及び4つ組表現について説明し、
それに基づく実行時における集合通信の高速認識につい
て述べる。 [ITRリスト]均質な問題に対して、通信セットをア
クセス規則性を生かしたデータ構造としてITRリスト
を生成する。通信セットを配列の各次元ことのITRリ
ストで表現する。ITRリストは、次に示すITRの列
とその管理情報であるITRマスタから構成される。
徴であるITRリスト及び4つ組表現について説明し、
それに基づく実行時における集合通信の高速認識につい
て述べる。 [ITRリスト]均質な問題に対して、通信セットをア
クセス規則性を生かしたデータ構造としてITRリスト
を生成する。通信セットを配列の各次元ことのITRリ
ストで表現する。ITRリストは、次に示すITRの列
とその管理情報であるITRマスタから構成される。
【0017】ITR:{開始:終了:跳び幅}の3つ組
で指定される配列領域とその領域の相手プロセッサ群を
表現 ITRマスタ:管理データ構造。リスト上のどのITR
をどのプロセッサ群が取得すべきかという情報
で指定される配列領域とその領域の相手プロセッサ群を
表現 ITRマスタ:管理データ構造。リスト上のどのITR
をどのプロセッサ群が取得すべきかという情報
【0018】図6は、ITRリスト上での通信セット計
算を説明するための概念図である。通信解析の際、使用
するITRリスト上のITRを各プロセッサ上で計算す
る。均質な問題であればほとんどの場合、配列アクセス
方法にプロセッサ間規則性があるため、その規則性が、
ITRリストによりリストの規則による圧縮という形で
表現される。例えば、blockで5台のプロセッサに分配
された配列a(100)において、a(1:100)でアクセスされれ
ば、プロセッサpがアクセスする配列は、a(1+p*20:20+
p*20)の用に、プロセッサIDでパラメータ化できる。
算を説明するための概念図である。通信解析の際、使用
するITRリスト上のITRを各プロセッサ上で計算す
る。均質な問題であればほとんどの場合、配列アクセス
方法にプロセッサ間規則性があるため、その規則性が、
ITRリストによりリストの規則による圧縮という形で
表現される。例えば、blockで5台のプロセッサに分配
された配列a(100)において、a(1:100)でアクセスされれ
ば、プロセッサpがアクセスする配列は、a(1+p*20:20+
p*20)の用に、プロセッサIDでパラメータ化できる。
【0019】通信セットの計算では配列の各次元ごと
に、配列の持ち方ITRリストと配列ITRリストを入
力とする演算を行うことで結果のITRリストを得る。
通信する配列セクションは、各次元のITRリストから
各プロセッサが自分用に取得したITRリストの組み合
わせによって表現される。
に、配列の持ち方ITRリストと配列ITRリストを入
力とする演算を行うことで結果のITRリストを得る。
通信する配列セクションは、各次元のITRリストから
各プロセッサが自分用に取得したITRリストの組み合
わせによって表現される。
【0020】ITRリストのデータ構造について具体的
に説明する。図9に示すようなIOS(後述する)は配
列の次元ことにITRリストで表現される。上述の如
く、ITRリストはITRブロックと管理データ構造で
あるITRマスタとから構成されている。
に説明する。図9に示すようなIOS(後述する)は配
列の次元ことにITRリストで表現される。上述の如
く、ITRリストはITRブロックと管理データ構造で
あるITRマスタとから構成されている。
【0021】ITRブロックは、開始(bg):終了(ed):
跳び幅(st)の3つ組で指定される配列区間RITRと、そ
の領域の通信相手を指定する4つ組QITR=(dx:ps:nd:n
p)とから構成され、次式のように表現されるITRの集
まりである。
跳び幅(st)の3つ組で指定される配列区間RITRと、そ
の領域の通信相手を指定する4つ組QITR=(dx:ps:nd:n
p)とから構成され、次式のように表現されるITRの集
まりである。
【数1】 ITR=[RITR,QITR] =[bg:eg:st,dx:ps:nd:np]
【0022】ITRリスト上のITRブロックも4つ組
で指定される。これを通信元4つ組と呼ぶ。これと区別
するために、ITRが記述している4つ組を通信先4つ
組と呼ぶ。送信の場合は、前者は送信プロセッサを、後
者は受信プロセッサを表し、受信の場合のその逆とな
る。ITRマスタMITRLには、通信元4つ組のmps,mnd,
mnpが記述される。
で指定される。これを通信元4つ組と呼ぶ。これと区別
するために、ITRが記述している4つ組を通信先4つ
組と呼ぶ。送信の場合は、前者は送信プロセッサを、後
者は受信プロセッサを表し、受信の場合のその逆とな
る。ITRマスタMITRLには、通信元4つ組のmps,mnd,
mnpが記述される。
【0023】各プロセッサは、自分のプロセッサIDを
通信元4つ組に変換し、自分が関連するITRブロック
を得る。pidをIDとするプロセッサを含む通信元4つ
組は、MITRLには、通信元4つ組のmps、mnd、mnpが記
述される。各プロセッサは、自分のプロセッサIDを通
信元4つ組に変換し、自分が関連するITRブロックを
得る。pidをIDとするプロセッサを含む通信元4つ組
は、MITRLを使って分割位置mdxを求める次式によって
計算される。
通信元4つ組に変換し、自分が関連するITRブロック
を得る。pidをIDとするプロセッサを含む通信元4つ
組は、MITRLには、通信元4つ組のmps、mnd、mnpが記
述される。各プロセッサは、自分のプロセッサIDを通
信元4つ組に変換し、自分が関連するITRブロックを
得る。pidをIDとするプロセッサを含む通信元4つ組
は、MITRLを使って分割位置mdxを求める次式によって
計算される。
【数2】
【0024】この分割位置mdxがITRリスト上のIT
Rブロック位置を示す。ITRリストITRLを次のよ
うに表記する。
Rブロック位置を示す。ITRリストITRLを次のよ
うに表記する。
【数3】
【0025】こうして得られた配列次元ごとのITRブ
ロックが含むITRは、以下に示すITR積(◇で表
す)によって、すべての次元で組み合わされ、1つの配
列領域とその通信相手プロセッサを指定する。d次元の
配列の場合、i次元目で選ばれた、ni(1≦i≦d)
個のITRのそれぞれをITRi ki(1≦ki≦ni)と
し、ITRブロックを{ITRi ki}ki=1...niとする。
するとプロセッサが関連するすべての通信、すなわち通
信セットは、次式で表される。
ロックが含むITRは、以下に示すITR積(◇で表
す)によって、すべての次元で組み合わされ、1つの配
列領域とその通信相手プロセッサを指定する。d次元の
配列の場合、i次元目で選ばれた、ni(1≦i≦d)
個のITRのそれぞれをITRi ki(1≦ki≦ni)と
し、ITRブロックを{ITRi ki}ki=1...niとする。
するとプロセッサが関連するすべての通信、すなわち通
信セットは、次式で表される。
【数4】
【0026】ここで、ITR1 k1◇...◇ITRd kdは通
信記述子である。ITR積の具体的な操作は以下のよう
になる。ITRi kiの2つの構成要素である配列区間と
通信先4つ組をそれぞれ、Ri ki、Qi kiとすると、IT
R1 k1◇...◇ITRd kdは次式で表される。
信記述子である。ITR積の具体的な操作は以下のよう
になる。ITRi kiの2つの構成要素である配列区間と
通信先4つ組をそれぞれ、Ri ki、Qi kiとすると、IT
R1 k1◇...◇ITRd kdは次式で表される。
【数5】
【0027】ここで、‖R,Q‖は通信する配列セクシ
ョンR、通信先プロセッサQをもつ通信記述子である。
Rは、ITRブロックをRi kiの集合とみなしたITR
ブロックの直積集合(Cartesian product)の要素であ
る。QはQi kiをプロセッサの集合とみなした時の積集
合である。積集合演算はビット・ベクタの論理積なので
高速に実行できる。
ョンR、通信先プロセッサQをもつ通信記述子である。
Rは、ITRブロックをRi kiの集合とみなしたITR
ブロックの直積集合(Cartesian product)の要素であ
る。QはQi kiをプロセッサの集合とみなした時の積集
合である。積集合演算はビット・ベクタの論理積なので
高速に実行できる。
【0028】また、ITRリストはAugmented Regular
Section Descriptorと同様に、ITRブロックの周期性
を生かしてITRブロック列が圧縮される。例えば、[i
*10-9:i*10:1,i+1:4:32]i=1..3は3つのITRを表現す
る圧縮形である。圧縮形によって、プロセッサは自分以
外のプロセッサが関連するITRの内容である配列区間
通信先プロセッサをITRリストを検索せずに知ること
ができる。シフト通信を認識する際に活用される。
Section Descriptorと同様に、ITRブロックの周期性
を生かしてITRブロック列が圧縮される。例えば、[i
*10-9:i*10:1,i+1:4:32]i=1..3は3つのITRを表現す
る圧縮形である。圧縮形によって、プロセッサは自分以
外のプロセッサが関連するITRの内容である配列区間
通信先プロセッサをITRリストを検索せずに知ること
ができる。シフト通信を認識する際に活用される。
【0029】ITR積の際、通信元4つ組mdx:MITRLに
ついても演算∩が行われる。∩演算の結果は同じ通信記
述子を有するプロセッサである。同じ通信元4つ組を有
するプロセッサは複数存在する。通信元4つ組は配列各
次元ごとに同じ通信パターンをとるプロセッサ仲間の自
然な表現になっている。以上から、プロセッサは自分が
関連する通信記述子を計算することによって、同様の通
信パターンを有する自分以外のプロセッサを知ることが
できる。
ついても演算∩が行われる。∩演算の結果は同じ通信記
述子を有するプロセッサである。同じ通信元4つ組を有
するプロセッサは複数存在する。通信元4つ組は配列各
次元ごとに同じ通信パターンをとるプロセッサ仲間の自
然な表現になっている。以上から、プロセッサは自分が
関連する通信記述子を計算することによって、同様の通
信パターンを有する自分以外のプロセッサを知ることが
できる。
【0030】図9に示したIOSは2次元配列の例であ
る。ここで例としてプロセッサP3が関連する通信をI
OSの各次元ごとのITRリストから抽出する。配列1
次元目では、上記数3に図9の表の値を代入した1+mod
((3-1)/1,2)より1番目、配列2次元目では1+mod((3-1)
/2,2)より2番目のITRブロックを各次元から1つず
つ(1次元目のITRブロックには2つのITR。2次
元目には1つのITR)抽出することが分かる。1次元
目の[50:50,2:1,2:4]と2次元目の[50:99,2:2,2:4]との
ITR積を考えると、配列セクションは(50,50:99)、通
信先4つ組は(4:1:4:4)が得られる。これはP3がP4
と配列セクション(50,50:99)を通信することを表す。通
信元4つ組についても(1:1:2:8)∩(2:2:2:8)でP7が同
じ通信を行うことが分かる。
る。ここで例としてプロセッサP3が関連する通信をI
OSの各次元ごとのITRリストから抽出する。配列1
次元目では、上記数3に図9の表の値を代入した1+mod
((3-1)/1,2)より1番目、配列2次元目では1+mod((3-1)
/2,2)より2番目のITRブロックを各次元から1つず
つ(1次元目のITRブロックには2つのITR。2次
元目には1つのITR)抽出することが分かる。1次元
目の[50:50,2:1,2:4]と2次元目の[50:99,2:2,2:4]との
ITR積を考えると、配列セクションは(50,50:99)、通
信先4つ組は(4:1:4:4)が得られる。これはP3がP4
と配列セクション(50,50:99)を通信することを表す。通
信元4つ組についても(1:1:2:8)∩(2:2:2:8)でP7が同
じ通信を行うことが分かる。
【0031】[4つ組表現]プロセッサ数に左右されな
いプロセッサ表現として4つ組表現を用いる。ITRリ
スト上のITRとそのITRが記述する通信相手プロセ
ッサは次の4つ組で表現される。
いプロセッサ表現として4つ組表現を用いる。ITRリ
スト上のITRとそのITRが記述する通信相手プロセ
ッサは次の4つ組で表現される。
【0032】・分割位置 ・プロセッサ跳び幅 ・分割数 ・プロセッサ合計数
【0033】図7は4つ組表現に基づく通信参加プロセ
ッサの計算を示す概略図である。この図における繰り返
し数については後述する。4つ組表現によるプロセッサ
群は、任意のプロセッサ形式の1次元プロセッサ形式表
現である。これにより、異なるプロセッサ形式に分配さ
れた配列間での通信におけるプロセッサ形式の違いを吸
収する。通信する配列セクションを求める組み合わせの
際に、ITRとITRマスタのそれぞれで4つ組でのプ
ロセッサ集合演算を行い、通信相手プロセッサ群と通信
元プロセッサ群をそれぞれ計算する。1次元プロセッサ
形式は、一般にビット・ベクタで実現され、計算機はビ
ット・ベクタ演算を高速に処理できるため、並列計算機
の台数が多い場合においても高速な演算ができる。
ッサの計算を示す概略図である。この図における繰り返
し数については後述する。4つ組表現によるプロセッサ
群は、任意のプロセッサ形式の1次元プロセッサ形式表
現である。これにより、異なるプロセッサ形式に分配さ
れた配列間での通信におけるプロセッサ形式の違いを吸
収する。通信する配列セクションを求める組み合わせの
際に、ITRとITRマスタのそれぞれで4つ組でのプ
ロセッサ集合演算を行い、通信相手プロセッサ群と通信
元プロセッサ群をそれぞれ計算する。1次元プロセッサ
形式は、一般にビット・ベクタで実現され、計算機はビ
ット・ベクタ演算を高速に処理できるため、並列計算機
の台数が多い場合においても高速な演算ができる。
【0034】また、本アルゴリズムでは、通信するプロ
セッサ、すなわち配列要素の所有者が複数化している
(リプリテイケド)状態、または受信するプロセッサが
複数存在する状態においても、上記と全く同様な扱いで
集合通信を認識する。送信プロセッサが複数有ることを
活用して、通信を送信プロセッサの数で分割して、プロ
セッサ間の同期を減らすことが可能となる。
セッサ、すなわち配列要素の所有者が複数化している
(リプリテイケド)状態、または受信するプロセッサが
複数存在する状態においても、上記と全く同様な扱いで
集合通信を認識する。送信プロセッサが複数有ることを
活用して、通信を送信プロセッサの数で分割して、プロ
セッサ間の同期を減らすことが可能となる。
【0035】4つ組の詳細な構造について説明する。4
つ組のデータ構造は以下のようになっている。 ・分割情報(dx) ・プロセッサ跳び幅(ps) ・分割数(nd) ・プロセッサ合計数(np)
つ組のデータ構造は以下のようになっている。 ・分割情報(dx) ・プロセッサ跳び幅(ps) ・分割数(nd) ・プロセッサ合計数(np)
【0036】4つ組(dx:ps:nd:np)は1次元プロセッサ
形式上において複数のプロセッサを指定する。4要素間
の関係は次の通りである。まずプロセッサ合計値npだけ
のプロセッサ群(プロセッサ1...np)を考える。次に1
つでps個のプロセッサ群を表現するプロセッサ分割(dec
omp)という概念を導入する。1次元プロセッサ形式は、
分割数nd文のプロセッサ分割の、さらにrf回の繰り返し
というプロセッサ分割の列で構成されると考えられる。
この場合、以下の数6が成立する。
形式上において複数のプロセッサを指定する。4要素間
の関係は次の通りである。まずプロセッサ合計値npだけ
のプロセッサ群(プロセッサ1...np)を考える。次に1
つでps個のプロセッサ群を表現するプロセッサ分割(dec
omp)という概念を導入する。1次元プロセッサ形式は、
分割数nd文のプロセッサ分割の、さらにrf回の繰り返し
というプロセッサ分割の列で構成されると考えられる。
この場合、以下の数6が成立する。
【数6】rf=np/ps/nd
【0037】4つ組の分割位置dxは、個のプロセッサ分
割列の内nd個の中の位置を指定する。1つのプロセッサ
分割を指定することは、図8に示すように、ps×rf個の
プロセッサを指定することに等しい。
割列の内nd個の中の位置を指定する。1つのプロセッサ
分割を指定することは、図8に示すように、ps×rf個の
プロセッサを指定することに等しい。
【0038】例えば、4つ組(1:2:4:32)を考える。32
台の1次元プロセッサ形式上、1つのプロセッサ分割は
2台のプロセッサを代表する。4つのプロセッサ分割
が、32/(2*4)、すなわち4回繰り返す。1回の繰り返し
は8台である。分割位置1は繰り返しそれぞれのうちの
最初のプロセッサ分割を指す。結果的にこの4つ組は、
プロセッサ1、2、9、10、17、18、25、26
を指定する。
台の1次元プロセッサ形式上、1つのプロセッサ分割は
2台のプロセッサを代表する。4つのプロセッサ分割
が、32/(2*4)、すなわち4回繰り返す。1回の繰り返し
は8台である。分割位置1は繰り返しそれぞれのうちの
最初のプロセッサ分割を指す。結果的にこの4つ組は、
プロセッサ1、2、9、10、17、18、25、26
を指定する。
【0039】[実行時における集合通信の高速認識]I
TRリストと4つ組表現により、以下に示すような自プ
ロセッサに関する通信の計算とその結果だけで放送、シ
フト、全収集といった集合通信を検出することが可能と
なる。
TRリストと4つ組表現により、以下に示すような自プ
ロセッサに関する通信の計算とその結果だけで放送、シ
フト、全収集といった集合通信を検出することが可能と
なる。
【0040】放送(broadcast) 通信セクションを求める際に行った4つ組の集合演算
は、自分が取得するITRを同様に取得する他のプロセ
ッサがどれなのかを示す情報をITRマスタ中に残して
いる。このため、放送通信となるような配列セクション
の通信を求める場合、受信の通信セットの計算では、I
TRマスタの4つ組は複数のプロセッサが同じ配列セク
ションを受信することを示している。そうしたITRマ
スタがそれぞれのプロセッサで得られている。
は、自分が取得するITRを同様に取得する他のプロセ
ッサがどれなのかを示す情報をITRマスタ中に残して
いる。このため、放送通信となるような配列セクション
の通信を求める場合、受信の通信セットの計算では、I
TRマスタの4つ組は複数のプロセッサが同じ配列セク
ションを受信することを示している。そうしたITRマ
スタがそれぞれのプロセッサで得られている。
【0041】一方、送信の通信セット計算では、組合わ
さったITRの4つ組が同じ配列セクションを受信する
受信プロセッサ・グループを示している。従って、これ
により放送通信と認識される。こうした認識がプロセッ
サ間で情報をやりとりすることなく行わるため、不要な
プロセッサ間の同期を取ることなく、集合通信ライブラ
リの呼び出しに必要なプロセッサ・グループの構成が可
能となる。
さったITRの4つ組が同じ配列セクションを受信する
受信プロセッサ・グループを示している。従って、これ
により放送通信と認識される。こうした認識がプロセッ
サ間で情報をやりとりすることなく行わるため、不要な
プロセッサ間の同期を取ることなく、集合通信ライブラ
リの呼び出しに必要なプロセッサ・グループの構成が可
能となる。
【0042】シフト(shift) シフト通信は固定オフセットによる規則的な配列アクセ
スによる結果である。この場合、規則的ITRリストだ
けが構成され、シフト通信を認識する。
スによる結果である。この場合、規則的ITRリストだ
けが構成され、シフト通信を認識する。
【0043】均質な問題では、配列アクセスの規則性が
ITRリストに反映される。ITRリストはその規則性
によって圧縮されれる。この圧縮はなメモリ量を削減す
るためだけの目的で行われるわけではない。ある配列次
元のITRリストで規則性のための圧縮が行われれば、
ITRリストを走査しなくても、その次元における他の
プロセッサのアクセスを計算することができる。
ITRリストに反映される。ITRリストはその規則性
によって圧縮されれる。この圧縮はなメモリ量を削減す
るためだけの目的で行われるわけではない。ある配列次
元のITRリストで規則性のための圧縮が行われれば、
ITRリストを走査しなくても、その次元における他の
プロセッサのアクセスを計算することができる。
【0044】全収集・全対全 複数のプロセッサから構成されるプロセッサ・グループ
を考えた場合、そのグループ中のある通信プロセッサが
同じ配列領域を他のすべての受信プロセッサに通信し、
それがすべての送信プロセッサについて行われる場合、
この集合通信を全収集(all gather)と呼ぶ。典型的に
は、配列のかけ算(matrix multiply)において全収集が
行われる。
を考えた場合、そのグループ中のある通信プロセッサが
同じ配列領域を他のすべての受信プロセッサに通信し、
それがすべての送信プロセッサについて行われる場合、
この集合通信を全収集(all gather)と呼ぶ。典型的に
は、配列のかけ算(matrix multiply)において全収集が
行われる。
【0045】全収集の場合、ITRリストからITRを
取得しようとするプロセッサ群(ITRマスタの4つ
組)と、その配列セクションの通信相手となるプロセッ
サ群(ITRの4つ組)が等しくなる。その場合に全収
集通信を認識する。全対全通信も同様に認識される。全
対全が全収集と異なる点は、異なる配列領域を通信する
ことである。
取得しようとするプロセッサ群(ITRマスタの4つ
組)と、その配列セクションの通信相手となるプロセッ
サ群(ITRの4つ組)が等しくなる。その場合に全収
集通信を認識する。全対全通信も同様に認識される。全
対全が全収集と異なる点は、異なる配列領域を通信する
ことである。
【0046】図10は、LU分解カーネルのn=2000の場
合が、1対1対通信を使った場合と実際に本アルゴリズ
ムを適用して放送通信を使った場合との性能差を台数効
果との関係で示したグラフである。このグラフは、放送
通信ライブラリを活用することが非常に重要であること
を示すと同時に、本アルゴリズムの性能改善効果を示し
ている。並列計算システムで提供される集合通信ライブ
ラリを活用しない場合に対して、本アルゴリズムを適用
した集合通信ライブラリの活用により性能が向上してい
ることが分かる。
合が、1対1対通信を使った場合と実際に本アルゴリズ
ムを適用して放送通信を使った場合との性能差を台数効
果との関係で示したグラフである。このグラフは、放送
通信ライブラリを活用することが非常に重要であること
を示すと同時に、本アルゴリズムの性能改善効果を示し
ている。並列計算システムで提供される集合通信ライブ
ラリを活用しない場合に対して、本アルゴリズムを適用
した集合通信ライブラリの活用により性能が向上してい
ることが分かる。
【0047】
【実施例】本実施例は以下の流れで実行される。 (1)AOS作成 (2)LIS作成 (3)IOS作成 (4)集合通信認識
【0048】ここで、AOSとはアレイ・オーナシップ
メント・セットの略称であり、配列の分割を記述したデ
ータ構造である。HPFの場合、block(n),syclic(n)な
どで配列が分配された結果を記述する。またLISと
は、ローカル・イタレーション・セットの略称であり、
所有者計算方針に基づいて、各プロセッサに分配された
プロセッサ固有のループ繰り返し空間である。これらの
作成は、可能な限りコンパイル時に行われ、実行時オー
バーヘッドを削減するが、情報が不足する場合には実行
時に行われる。実行時に行う場合でも作成結果の再利用
によって実行時オーバーヘッドを削減することが可能で
ある。
メント・セットの略称であり、配列の分割を記述したデ
ータ構造である。HPFの場合、block(n),syclic(n)な
どで配列が分配された結果を記述する。またLISと
は、ローカル・イタレーション・セットの略称であり、
所有者計算方針に基づいて、各プロセッサに分配された
プロセッサ固有のループ繰り返し空間である。これらの
作成は、可能な限りコンパイル時に行われ、実行時オー
バーヘッドを削減するが、情報が不足する場合には実行
時に行われる。実行時に行う場合でも作成結果の再利用
によって実行時オーバーヘッドを削減することが可能で
ある。
【0049】(1)AOS作成 HPFではpd次元のプロセッサ形式P(m1,・・・,mpd)とad
次元の配列A(n1,・・・,nad)とのマッピングを行う。Aの
i次元目であるAiは、Pのj次元目で分割されるか、
または全く分割されない(collapsed)。分割を行わない
Pの次元について複製化(replicated)が起きる。
次元の配列A(n1,・・・,nad)とのマッピングを行う。Aの
i次元目であるAiは、Pのj次元目で分割されるか、
または全く分割されない(collapsed)。分割を行わない
Pの次元について複製化(replicated)が起きる。
【0050】AiがPjで分割されている場合、AOSの
i次元目はITRリストは、下式のように表現される。
なお、Rkは分配方式に応じて決まる。
i次元目はITRリストは、下式のように表現される。
なお、Rkは分配方式に応じて決まる。
【数7】
【0051】(2)LIS作成 プロセッサに分配される前の多重ループの繰り返し空間
をグローバル・イタレーション・セット(global iterat
ion set)と呼びこれをGISという。GISのd重目G
ISdは左辺Aの配列次元との対応の有無で分類する。
対応があるとは、対応する配列次元の添字式がGISd
のインデックス変数ivdを用いて表せることである。対
応がない場合はそのままLISを構成する。
をグローバル・イタレーション・セット(global iterat
ion set)と呼びこれをGISという。GISのd重目G
ISdは左辺Aの配列次元との対応の有無で分類する。
対応があるとは、対応する配列次元の添字式がGISd
のインデックス変数ivdを用いて表せることである。対
応がない場合はそのままLISを構成する。
【0052】GISdと配列のil次元目が対応している
婆、GISdは所有者計算方式に基づき分割されてLI
Sdとなる。ここで、ループの下限lbd、上限ubd、跳び
幅bydとし、配列の添字式をSil(ivd)と表す。すると、
GISdを用いて左辺で各プロセッサがアクセスする領
域(以下、LWSと呼ぶ)は、Sil・GISdとITRL
AO S上の各ITRの配列区間の交わりによって求められ
る。Plは左辺が分配されるプロセッサ形式、jlは配列
次元ilが対応するPlの次元である。
婆、GISdは所有者計算方式に基づき分割されてLI
Sdとなる。ここで、ループの下限lbd、上限ubd、跳び
幅bydとし、配列の添字式をSil(ivd)と表す。すると、
GISdを用いて左辺で各プロセッサがアクセスする領
域(以下、LWSと呼ぶ)は、Sil・GISdとITRL
AO S上の各ITRの配列区間の交わりによって求められ
る。Plは左辺が分配されるプロセッサ形式、jlは配列
次元ilが対応するPlの次元である。
【数8】
【0053】LISdは、下式のようにして求めること
ができる。
ができる。
【数9】
【0054】(3)IOS作成 LISを用いてアクセスされる右辺Bの配列領域をLR
S(local read set)と呼ぶ。IOSはLRSとAOSと
の演算で求まる。右辺Bのir次元目BirはGISと対応
があるか否かで分けられる。対応がない場合はそのまま
LRSを構成する。
S(local read set)と呼ぶ。IOSはLRSとAOSと
の演算で求まる。右辺Bのir次元目BirはGISと対応
があるか否かで分けられる。対応がない場合はそのまま
LRSを構成する。
【0055】Bのir次元目Birとループd重目GISd
/LISdとが対応する場合を考える。Birの添字式を
Tir(ivd)とする。LRSはTir・LISdによって求
められる。LRSは次式のようになる。
/LISdとが対応する場合を考える。Birの添字式を
Tir(ivd)とする。LRSはTir・LISdによって求
められる。LRSは次式のようになる。
【数10】
【0056】ここで2つめのITRリストのITR分割
(これを「/」上に「〜」を付した記号で示す)を定義
する。ITR分割は非除数であるITRリストのITR
を、除数であるITRリストのITRで分割する。分割
結果のITRには、配列区間は非除数ITRの配列区間
Rs、除数ITRの配列区間RdとするとRs∩Rd、4つ
組は(除数ITRの分割位置:除数ITRマスタ)が入
る。Rs∩Rd≠φであるすべてのRdについて行われ
る。
(これを「/」上に「〜」を付した記号で示す)を定義
する。ITR分割は非除数であるITRリストのITR
を、除数であるITRリストのITRで分割する。分割
結果のITRには、配列区間は非除数ITRの配列区間
Rs、除数ITRの配列区間RdとするとRs∩Rd、4つ
組は(除数ITRの分割位置:除数ITRマスタ)が入
る。Rs∩Rd≠φであるすべてのRdについて行われ
る。
【0057】ここで、Prを右辺が分配されるプロセッ
サ形式、jrは配列次元irが対応するPrの次元とする
と、ITRLAOSは、次式のように表される。
サ形式、jrは配列次元irが対応するPrの次元とする
と、ITRLAOSは、次式のように表される。
【数11】
【0058】IOSは、2つのITRリストのITR分
割を求めることにより、次式のように示される。
割を求めることにより、次式のように示される。
【数12】
【0059】これらをまとめてイン/アウト・セット
(IOS)と呼ぶ。これらの演算の意味は次の通りであ
る。LRSのITRリストをAOSのITRリストでI
TR分割すると、その結果のITRリストは各プロセッ
サが右辺でアクセスする配列領域のそれぞれをどのプロ
セッサから読むかを記述するイン・セット(ITR
LIS)が求まる。またAOSのITRリストをLRSの
ITRリストでITR分割すれば、その結果のITRリ
ストは各プロセッサが所有する配列領域の内読まれる領
域と読むプロセッサを記述するアウト・セット(ITR
LOS)が求まる。分割されていない配列次元の場合は、
ITRの4つ組に入る分割位置には分割がないことを示
すφを入れる。
(IOS)と呼ぶ。これらの演算の意味は次の通りであ
る。LRSのITRリストをAOSのITRリストでI
TR分割すると、その結果のITRリストは各プロセッ
サが右辺でアクセスする配列領域のそれぞれをどのプロ
セッサから読むかを記述するイン・セット(ITR
LIS)が求まる。またAOSのITRリストをLRSの
ITRリストでITR分割すれば、その結果のITRリ
ストは各プロセッサが所有する配列領域の内読まれる領
域と読むプロセッサを記述するアウト・セット(ITR
LOS)が求まる。分割されていない配列次元の場合は、
ITRの4つ組に入る分割位置には分割がないことを示
すφを入れる。
【0060】例えば、ITRLLRS=<1:2:4>{[2:11,
φ],[12:20,φ]}とITRLAOS=<2:2:4>{[1:10,
φ],[11:20,φ]}を考える。インセットは、<1:2:4>
{[2:10,1:2:2:4][11,2:2:2:4][12:20,2:2:2:4]}にな
る。またアウト・セットは<2:2:4>{[2:10,1:1:2:4],
[11,1:1:2:4][12:20,2:1:2:4]}になる。
φ],[12:20,φ]}とITRLAOS=<2:2:4>{[1:10,
φ],[11:20,φ]}を考える。インセットは、<1:2:4>
{[2:10,1:2:2:4][11,2:2:2:4][12:20,2:2:2:4]}にな
る。またアウト・セットは<2:2:4>{[2:10,1:1:2:4],
[11,1:1:2:4][12:20,2:1:2:4]}になる。
【0061】(4)集合認識 イン・セット(In Set)またはアウト・セット(Out Set)
の各次元のITRリストのITR積をとり、通信セット
を計算する方法は[ITRリスト]の欄で既に述べた。
ここでは、通信記述子を求める際に、どのようにして集
団通信を検出するかを具体的に説明する。
の各次元のITRリストのITR積をとり、通信セット
を計算する方法は[ITRリスト]の欄で既に述べた。
ここでは、通信記述子を求める際に、どのようにして集
団通信を検出するかを具体的に説明する。
【0062】シフト(shift) ITRリストは周期性がある場合には圧縮される。ここ
でIOSのすべての次元のITRリストが周期性(regul
arity)によって圧縮されている場合、またはすべてのプ
ロセッサで共通のITRリストである場合を考える。I
TRの通信先4つ組がITRの分割位置mdxiの線形
表現mdxi+ciで表される場合、圧縮されている次元
iでは、すべてそれをシフトと認識する。シフトでは、
プロセッサ形式上で決まったベクタ(・・・,ci,・・・) をオ
フセットとするプロセッサと通信している。従って、シ
フト固有の最適化が可能となる。
でIOSのすべての次元のITRリストが周期性(regul
arity)によって圧縮されている場合、またはすべてのプ
ロセッサで共通のITRリストである場合を考える。I
TRの通信先4つ組がITRの分割位置mdxiの線形
表現mdxi+ciで表される場合、圧縮されている次元
iでは、すべてそれをシフトと認識する。シフトでは、
プロセッサ形式上で決まったベクタ(・・・,ci,・・・) をオ
フセットとするプロセッサと通信している。従って、シ
フト固有の最適化が可能となる。
【0063】放送(broadcast) イン・セットから求めた通信記述子を共有するプロセッ
サが他にもある場合、つまり同一配列領域を受信するプ
ロセッサが複数いる場合には、放送通信と認識する。但
し、次に述べる全収集・全対全の場合は除く。イン・セ
ットから通信記述子を求める際のITR積で、通信元4
つ組、イン・セットの場合なら受信4つ組も∩演算が行
われる。その結果の受信4つ組が複数のプロセッサを指
定している場合、ITR積の結果の通信記述子はそれら
で共通している。後述するLU分解では放送通信の認識
例を示す。
サが他にもある場合、つまり同一配列領域を受信するプ
ロセッサが複数いる場合には、放送通信と認識する。但
し、次に述べる全収集・全対全の場合は除く。イン・セ
ットから通信記述子を求める際のITR積で、通信元4
つ組、イン・セットの場合なら受信4つ組も∩演算が行
われる。その結果の受信4つ組が複数のプロセッサを指
定している場合、ITR積の結果の通信記述子はそれら
で共通している。後述するLU分解では放送通信の認識
例を示す。
【0064】全収集(all gather)・全対全(all to al
l) イン/アウト・セット上において、通信先4つ組が表現
するプロセッサ・グループが、通信元4つ組が表現する
プロセッサ・グループと等しい場合、全収集あるいは全
対全通信と認識する。2者の違いは、前者が同じ配列領
域を送信するのに対し、後者は相手プロセッサ毎に異な
る領域を送信する。
l) イン/アウト・セット上において、通信先4つ組が表現
するプロセッサ・グループが、通信元4つ組が表現する
プロセッサ・グループと等しい場合、全収集あるいは全
対全通信と認識する。2者の違いは、前者が同じ配列領
域を送信するのに対し、後者は相手プロセッサ毎に異な
る領域を送信する。
【0065】集結(gather)・分散(scatter) 1つのプロセッサだけがイン・セットから通信記述子を
構成でき、そのプロセッサが関連するITRブロックは
複数のITRを有し、それぞれが異なるプロセッサを指
している場合を考える。またアウト・セットのすべての
ITRリストは周期性圧縮されているか、または全プロ
セッサで共通しているかのどちらかである。従って、す
べての送信プロセッサは1プロセッサに通信することが
分かる。この場合は集結通信と認識する。分散の場合は
この逆である。
構成でき、そのプロセッサが関連するITRブロックは
複数のITRを有し、それぞれが異なるプロセッサを指
している場合を考える。またアウト・セットのすべての
ITRリストは周期性圧縮されているか、または全プロ
セッサで共通しているかのどちらかである。従って、す
べての送信プロセッサは1プロセッサに通信することが
分かる。この場合は集結通信と認識する。分散の場合は
この逆である。
【0066】[集合通信認識例:LU分解]図1に示し
たLU分解のプログラム・リストを用いて、n=128,32
台のプロセッサの場合に、本アルゴリズムが放送通信を
認識する実際の動作を説明する。
たLU分解のプログラム・リストを用いて、n=128,32
台のプロセッサの場合に、本アルゴリズムが放送通信を
認識する実際の動作を説明する。
【0067】(1)AOS作成 図1のプログラム・リストでは、配列aのAOSの2次
元目は周期的であり、プロセッサp(1≦p≦32)に
ついて、以後mdx=1+mod((p-1)/1,32)であること
を用いるとITRLは下式で表される。
元目は周期的であり、プロセッサp(1≦p≦32)に
ついて、以後mdx=1+mod((p-1)/1,32)であること
を用いるとITRLは下式で表される。
【数13】
【0068】[R,Q]p・・・qはプロセッサpからqまで
のITRを示す。
のITRを示す。
【0069】(2)LIS作成 k=112の場合におけるGIS2=(113:128:1)jと配列添
字式Sがj、そしてITRLAOS2aとからLWSは下式
で表される。
字式Sがj、そしてITRLAOS2aとからLWSは下式
で表される。
【数14】
【0070】ITRLAOS2aとS-1が自明であるから、
jループのLISのITRリストは下式のようになる。
jループのLISのITRリストは下式のようになる。
【数15】
【0071】[]p・・・qはプロセッサpからqまでのIT
Rの中身がないことを示している。またiループと対応
する配列1次元目は分割されていないことから、iルー
プのLISはGISと同じであるから以下のようにな
る。
Rの中身がないことを示している。またiループと対応
する配列1次元目は分割されていないことから、iルー
プのLISはGISと同じであるから以下のようにな
る。
【数16】
【0072】(3)IOS計算 k=112の場合における、右辺配列a(i,k)に注目する。
ITRLLISiと1次元目の配列添字式iが対応すること
から、a(i,112)のLRSは以下のようになる。
ITRLLISiと1次元目の配列添字式iが対応すること
から、a(i,112)のLRSは以下のようになる。
【数17】
【0073】ここで、ループ実行に参加しないプロセッ
サa(i,k)にアクセスしないので、a(i,k)に対応しないj
ループのITRLLISjにおいて空でないITRを有する
プロセッサをマスクとして使用した。上式で求められた
ITRLについて、配列各次元ごとにITR分割を行う
と次のイン/アウト・セットが得られる。
サa(i,k)にアクセスしないので、a(i,k)に対応しないj
ループのITRLLISjにおいて空でないITRを有する
プロセッサをマスクとして使用した。上式で求められた
ITRLについて、配列各次元ごとにITR分割を行う
と次のイン/アウト・セットが得られる。
【数18】
【0074】(4)集合通信認識 プロセッサpのITRp IS1∈ITRLIS1a(i,k)と、I
TRp IS2∈ITRLIS2 a(i,k)を抽出する。これらのI
TRによる受信及び受信は以下のようになる。
TRp IS2∈ITRLIS2 a(i,k)を抽出する。これらのI
TRによる受信及び受信は以下のようになる。
【数19】
【0075】ITRブロックは1つのITRのみから構
成されているので、これが通信セット全体となる。プロ
セッサ17から32はイン・セットのITR積を計算す
る際、通信元4つ組として同じ17..32:1:32:32を持ち続
ける。そのため、それらのプロセッサは求めたイン・セ
ットと同じものをプロセッサ17から32が持つことが
分かるので、放送通信の認識する。
成されているので、これが通信セット全体となる。プロ
セッサ17から32はイン・セットのITR積を計算す
る際、通信元4つ組として同じ17..32:1:32:32を持ち続
ける。そのため、それらのプロセッサは求めたイン・セ
ットと同じものをプロセッサ17から32が持つことが
分かるので、放送通信の認識する。
【0076】
【効果】このように本発明では、均質な問題(regular p
roblem)に対して、実行時に高速に集合通信を認識する
ことができる。通信に参加するプロセッサを指定するた
めに4つ組プロセッサという表現手法を導入し、あるプ
ロセッサが行う通信が、配列領域とこの4つ組表現とで
記述される。通信解析を行う際、均質な問題の規則性を
生かし、4つ組上で定義された集合演算により、配列サ
イズや並列計算機のプロセッサ台数によらず配列次元の
オーダーで集合通信の認識を実行時に行うことをができ
る。このため本発明では実行時のオーバーヘッドを小さ
くすることができるのみならず、超並列計算機上の大規
模数値計算に適している。
roblem)に対して、実行時に高速に集合通信を認識する
ことができる。通信に参加するプロセッサを指定するた
めに4つ組プロセッサという表現手法を導入し、あるプ
ロセッサが行う通信が、配列領域とこの4つ組表現とで
記述される。通信解析を行う際、均質な問題の規則性を
生かし、4つ組上で定義された集合演算により、配列サ
イズや並列計算機のプロセッサ台数によらず配列次元の
オーダーで集合通信の認識を実行時に行うことをができ
る。このため本発明では実行時のオーバーヘッドを小さ
くすることができるのみならず、超並列計算機上の大規
模数値計算に適している。
【図1】プリフェッチを説明するためのHPFで記述さ
れたLU分解のプログラムリストの一例である。
れたLU分解のプログラムリストの一例である。
【図2】プリフェッチにおけるデータ通信を説明する概
念図である。
念図である。
【図3】再分配を説明するためのHPFで記述されたプ
ログラムリストの一例である。
ログラムリストの一例である。
【図4】再分配におけるデータ通信を説明する概念図で
ある。
ある。
【図5】本発明が適用可能な範囲を説明するための概念
図である。
図である。
【図6】ITRリスト上での通信セット計算を説明する
ための概念図である。
ための概念図である。
【図7】4つ組表現に基づく通信参加プロセッサの計算
を示す概念図である。
を示す概念図である。
【図8】4つ組を詳述するための概念図である。
【図9】IOSの一例を示した表である。
【図10】LU分解カーネルのn=2000の場合が、1対1
対通信を使った場合と実際に本アルゴリズムを適用して
放送通信を使った場合との性能差を示すグラフである。
対通信を使った場合と実際に本アルゴリズムを適用して
放送通信を使った場合との性能差を示すグラフである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 小松 秀昭 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 東京基礎研究所 内
Claims (1)
- 【請求項1】分散並列システムにおける集合通信認識の
最適化方法において、 均質な問題に対して、通信セットをアクセス規則性を生
かしたデータ構造とし、プロセッサ数に左右されないプ
ロセッサ表現を導入し、前記データ構造と前記プロセッ
サ表現とを使って配列の次元ごとに通信セットを計算
し、次元ごとの前記通信セットから通信を構築する際に
集合通信を抽出することを特徴とする方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8155831A JPH1040223A (ja) | 1996-06-17 | 1996-06-17 | 分散並列システムにおける集合通信認識の最適化方法 |
| US08/873,472 US5822604A (en) | 1996-06-17 | 1997-06-12 | Method of optimizing recognition of collective data movement in a parallel distributed system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8155831A JPH1040223A (ja) | 1996-06-17 | 1996-06-17 | 分散並列システムにおける集合通信認識の最適化方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1040223A true JPH1040223A (ja) | 1998-02-13 |
Family
ID=15614457
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8155831A Pending JPH1040223A (ja) | 1996-06-17 | 1996-06-17 | 分散並列システムにおける集合通信認識の最適化方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5822604A (ja) |
| JP (1) | JPH1040223A (ja) |
Families Citing this family (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2438195C (en) * | 2001-02-24 | 2009-02-03 | International Business Machines Corporation | Optimized scalabale network switch |
| DE102006037020A1 (de) * | 2006-08-08 | 2008-02-14 | Wacker Chemie Ag | Verfahren und Vorrichtung zur Herstellung von hochreinem polykristallinem Silicium mit reduziertem Dotierstoffgehalt |
| US7752421B2 (en) * | 2007-04-19 | 2010-07-06 | International Business Machines Corporation | Parallel-prefix broadcast for a parallel-prefix operation on a parallel computer |
| US8140826B2 (en) * | 2007-05-29 | 2012-03-20 | International Business Machines Corporation | Executing a gather operation on a parallel computer |
| US8161480B2 (en) * | 2007-05-29 | 2012-04-17 | International Business Machines Corporation | Performing an allreduce operation using shared memory |
| US20090006663A1 (en) * | 2007-06-27 | 2009-01-01 | Archer Charles J | Direct Memory Access ('DMA') Engine Assisted Local Reduction |
| US8090704B2 (en) * | 2007-07-30 | 2012-01-03 | International Business Machines Corporation | Database retrieval with a non-unique key on a parallel computer system |
| US7827385B2 (en) * | 2007-08-02 | 2010-11-02 | International Business Machines Corporation | Effecting a broadcast with an allreduce operation on a parallel computer |
| US7734706B2 (en) * | 2007-08-22 | 2010-06-08 | International Business Machines Corporation | Line-plane broadcasting in a data communications network of a parallel computer |
| US7840779B2 (en) * | 2007-08-22 | 2010-11-23 | International Business Machines Corporation | Line-plane broadcasting in a data communications network of a parallel computer |
| US8122228B2 (en) * | 2008-03-24 | 2012-02-21 | International Business Machines Corporation | Broadcasting collective operation contributions throughout a parallel computer |
| US7991857B2 (en) * | 2008-03-24 | 2011-08-02 | International Business Machines Corporation | Broadcasting a message in a parallel computer |
| US8422402B2 (en) | 2008-04-01 | 2013-04-16 | International Business Machines Corporation | Broadcasting a message in a parallel computer |
| US8375197B2 (en) * | 2008-05-21 | 2013-02-12 | International Business Machines Corporation | Performing an allreduce operation on a plurality of compute nodes of a parallel computer |
| US8484440B2 (en) | 2008-05-21 | 2013-07-09 | International Business Machines Corporation | Performing an allreduce operation on a plurality of compute nodes of a parallel computer |
| US8161268B2 (en) * | 2008-05-21 | 2012-04-17 | International Business Machines Corporation | Performing an allreduce operation on a plurality of compute nodes of a parallel computer |
| US8281053B2 (en) * | 2008-07-21 | 2012-10-02 | International Business Machines Corporation | Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations |
| US8565089B2 (en) * | 2010-03-29 | 2013-10-22 | International Business Machines Corporation | Performing a scatterv operation on a hierarchical tree network optimized for collective operations |
| US8332460B2 (en) | 2010-04-14 | 2012-12-11 | International Business Machines Corporation | Performing a local reduction operation on a parallel computer |
| US9424087B2 (en) | 2010-04-29 | 2016-08-23 | International Business Machines Corporation | Optimizing collective operations |
| US8346883B2 (en) | 2010-05-19 | 2013-01-01 | International Business Machines Corporation | Effecting hardware acceleration of broadcast operations in a parallel computer |
| US8949577B2 (en) | 2010-05-28 | 2015-02-03 | International Business Machines Corporation | Performing a deterministic reduction operation in a parallel computer |
| US8489859B2 (en) | 2010-05-28 | 2013-07-16 | International Business Machines Corporation | Performing a deterministic reduction operation in a compute node organized into a branched tree topology |
| US8776081B2 (en) | 2010-09-14 | 2014-07-08 | International Business Machines Corporation | Send-side matching of data communications messages |
| US8566841B2 (en) | 2010-11-10 | 2013-10-22 | International Business Machines Corporation | Processing communications events in parallel active messaging interface by awakening thread from wait state |
| US9170846B2 (en) | 2011-03-29 | 2015-10-27 | Daniel Delling | Distributed data-parallel execution engines for user-defined serial problems using branch-and-bound algorithm |
| US8893083B2 (en) | 2011-08-09 | 2014-11-18 | International Business Machines Coporation | Collective operation protocol selection in a parallel computer |
| US8910178B2 (en) | 2011-08-10 | 2014-12-09 | International Business Machines Corporation | Performing a global barrier operation in a parallel computer |
| US8667501B2 (en) | 2011-08-10 | 2014-03-04 | International Business Machines Corporation | Performing a local barrier operation |
| US9495135B2 (en) | 2012-02-09 | 2016-11-15 | International Business Machines Corporation | Developing collective operations for a parallel computer |
| KR101994929B1 (ko) * | 2012-12-03 | 2019-07-01 | 삼성전자주식회사 | 집합 통신 수행 방법 및 이를 이용한 집합 통신 시스템 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2921190B2 (ja) * | 1991-07-25 | 1999-07-19 | 日本電気株式会社 | 並列実行方式 |
| CA2061117C (en) * | 1991-12-02 | 1998-09-29 | Neta J. Amit | Apparatus and method for distributed program stack |
| JP2512272B2 (ja) * | 1992-01-10 | 1996-07-03 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチプロセッサ・コンピュ―タ・システムおよびそのデ―タ割振り方法 |
| US5659778A (en) * | 1992-02-03 | 1997-08-19 | Tm Patents, L.P. | System and method of mapping an array to processing elements |
| JP2572522B2 (ja) * | 1992-05-12 | 1997-01-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピューティング装置 |
| US5694578A (en) * | 1992-12-18 | 1997-12-02 | Silicon Graphics, Inc. | Computer-implemented method and apparatus for converting data according to a selected data transformation |
| US5548761A (en) * | 1993-03-09 | 1996-08-20 | International Business Machines Corporation | Compiler for target machine independent optimization of data movement, ownership transfer and device control |
| US5475842A (en) * | 1993-08-11 | 1995-12-12 | Xerox Corporation | Method of compilation optimization using an N-dimensional template for relocated and replicated alignment of arrays in data-parallel programs for reduced data communication during execution |
| JPH07110800A (ja) * | 1993-10-13 | 1995-04-25 | Matsushita Electric Ind Co Ltd | 最適化並列コンパイル装置及び最適化並列コンパイル方法 |
| US5692193A (en) * | 1994-03-31 | 1997-11-25 | Nec Research Institute, Inc. | Software architecture for control of highly parallel computer systems |
| 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 |
-
1996
- 1996-06-17 JP JP8155831A patent/JPH1040223A/ja active Pending
-
1997
- 1997-06-12 US US08/873,472 patent/US5822604A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US5822604A (en) | 1998-10-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH1040223A (ja) | 分散並列システムにおける集合通信認識の最適化方法 | |
| Gibbons et al. | The Queue-Read Queue-Write PRAM model: Accounting for contention in parallel algorithms | |
| Khorasani et al. | CuSha: vertex-centric graph processing on GPUs | |
| Coimbra et al. | An analysis of the graph processing landscape | |
| KR101747966B1 (ko) | 자율 서브시스템 아키텍처 | |
| Bender et al. | Cache-adaptive algorithms | |
| JP2011060279A (ja) | 自律的メモリアーキテクチャー | |
| Galvez Vallejo et al. | High-performance GPU-accelerated evaluation of electron repulsion integrals | |
| Graham et al. | Cheetah: A framework for scalable hierarchical collective operations | |
| Sanz et al. | Global data re-allocation via communication aggregation in Chapel | |
| MacDonald et al. | Writing message passing parallel programs with mpi | |
| López-Fernández et al. | Biclustering in bioinformatics using big data and High Performance Computing applications: challenges and perspectives, a review: A. Lopez-Fernandez et al. | |
| Jin et al. | Implementation and performance evaluation of the hpc challenge benchmarks in coarray fortran 2.0 | |
| Fakhi et al. | New optimized GPU version of the k-means algorithm for large-sized image segmentation | |
| Ishizaki et al. | A loop transformation algorithm for communication overlapping | |
| Reeves et al. | The Paragon programming paradigm and distributed memory multicomputers | |
| Fan et al. | Scalable and efficient graph traversal on high-throughput cluster | |
| Yoon et al. | GSHMEM: A portable library for lightweight, shared-memory, parallel programming | |
| Guo et al. | One-sided communication in Coarray Fortran: performance tests on TH-1A | |
| Zhang et al. | Evaluation of PETSc on a Heterogeneous Architecture, the OLCF Summit System: Part II-Basic Communication Performance | |
| Hasanov | Hierarchical approach to optimization of MPI collective communication algorithms | |
| Boddu et al. | Scalable High-Performance Community Detection Using Label Propagation in Massive Networks | |
| Shichkina et al. | Creating a schedule for parallel execution of tasks based on the adjacency lists | |
| Gonzaga de Oliveira et al. | An OpenMP‐based breadth‐first search implementation using the bag data structure | |
| Morari et al. | GEMS: Graph Database Engine for Multithreaded Systems. |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20051209 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20051215 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060313 |