JP3697652B2 - 分散メモリ型マルチプロセッサ向けプログラム作成システム - Google Patents

分散メモリ型マルチプロセッサ向けプログラム作成システム Download PDF

Info

Publication number
JP3697652B2
JP3697652B2 JP35438698A JP35438698A JP3697652B2 JP 3697652 B2 JP3697652 B2 JP 3697652B2 JP 35438698 A JP35438698 A JP 35438698A JP 35438698 A JP35438698 A JP 35438698A JP 3697652 B2 JP3697652 B2 JP 3697652B2
Authority
JP
Japan
Prior art keywords
program
execution
data distribution
distribution pattern
execution time
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 - Lifetime
Application number
JP35438698A
Other languages
English (en)
Other versions
JP2000181881A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP35438698A priority Critical patent/JP3697652B2/ja
Publication of JP2000181881A publication Critical patent/JP2000181881A/ja
Application granted granted Critical
Publication of JP3697652B2 publication Critical patent/JP3697652B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、分散メモリ型マルチプロセッサシステム、すなわち、物理的に分散したメモリを持つ並列計算機向けのプログラムのコンパイルおよび実行制御技術に係わり、特に、逐次型言語で記述されたプログラムを並列計算機上で並列実行できるようする際に、データ分散パターンを最適化するのに好適な分散メモリ型マルチプロセッサ向けプログラム作成システムに関するものである。
【0002】
【従来の技術】
逐次型言語で記述されたプログラムを並列計算機上で並列実行するためには、プログラムを並列化することが必要である。分散メモリ型の並列計算機向けのプログラムの並列化では、ループの並列化と、データの分散が必要である。この目的のために、並列化コンパイラが開発されたが、従来の並列化コンパイラの多くは、ループの並列化は自動的に行なえるものの、データの分散形状はプログラマが指示しなければならず、最適なデータの分散形状を決定するのに多くの労力を要していた。
【0003】
このようなデータの分散を自動的に決定する技術として、例えば、特開平7−175761号公報(「最適データ分散自動決定方式」)に記載の技術が考案されている。この技術は、コンパイル時に、複数のデータ分散パターンを評価して、最適なデータ分散を決定するものである。
【0004】
しかし、この従来技術は、コンパイル時に複数のデータ分散パターンを静的に評価するものである。そのため、この技術では、パラメータが、コンパイル時に静的に決定せず、実行時に決定するようなプログラムでは、最適なデータ分散ができるとは限らない。また、コンパイル時にデータ分散パターンを決定して実行した後で、他の分散パターンに変更したいという場合には、コンパイルからやり直さなければならないため、手間がかかる。
【0005】
【発明が解決しようとする課題】
解決しようとする問題点は、従来の技術では、必ずしも最適なデータ分散パターンを決定できるとは限らず、また、コンパイル時に決定したデータ分散パターンを他の分散パターンに変更する場合にはコンパイルからやり直さなければならない点である。
【0006】
本発明の目的は、これら従来技術の課題を解決し、パラメータが、コンパイル時に静的に決定せず、実行時に決定するようなプログラムであっても、最適なデータ分散ができ、また、一度決定したデータ分散パターンの変更も再コンパイルすることなく容易にでき、分散メモリ型マルチプロセッサシステム(物理的に分散したメモリを持つ並列計算機)の性能を向上させることが可能な分散メモリ型マルチプロセッサ向けプログラム作成システムを提供することである。
【0007】
【課題を解決するための手段】
上記目的を達成するため、本発明の分散メモリ型マルチプロセッサ向けプログラム作成システムは、逐次プログラムから並列化されたコードを生成すると共に、複数のデータ分散パターンに対応するコードを一つのプログラム中に出力する並列化コンパイラ部と、1回または複数回のプログラムの実行の間に各データ分散パターンに対応するコードを順次実行して各データ分散パターンに対する実行時間情報を取得する分散パターン選択実行部と、取得した実行時間情報をプログラム全体について蓄積する実行時間情報蓄積部と、蓄積されたプログラム全体の実行時間情報を基にプログラム全体の実行時間が最も短くなるようなデータ分散パターンを選択するデータ分散パターン選択部と、選択されたデータ分散パターン情報を記憶するデータ分散パターン記憶部とを備え、実際の実行時間情報に基づいて最適なデータ分散パターンを選択する。
【0008】
このことにより、ループ長等のパラメータがコンパイル時に不明な場合でも、最適なデータ分散パターンを選択することが可能となる。また、データ分散パターン選択部をプログラムと並列に動作させることにより、プログラムの実行中に動的に最適なデータ分散を選択することが可能となる。また、選択されたデータ分散パターンをデータ分散パターン記憶部に記憶させることにより、プログラムをコンパイルし直すこと無しに最適なデータ分散パターンでプログラムを実行することが可能になる。
【0009】
【発明の実施の形態】
以下、本発明の実施の形態を、図面により詳細に説明する。
図1は、本発明の分散メモリ型マルチプロセッサ向けプログラム作成システムの本発明に係る構成の一実施例を示すブロック図であり、図2は、図1における分散メモリ型マルチプロセッサ向けプログラム作成システムを構築するコンピュータ装置の構成例を示すブロック図である。
【0010】
図2において、21はCRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)等からなる表示装置、22はキーボードやマウス等からなる入力装置、23はHDD(Hard Disk Drive unit)等からなる外部記憶装置、24,24a,24bはそれぞれCPU(Central Processing Unit)や主メモリを具備して分散メモリ型マルチプロセッサシステムを構成する情報処理装置、25はプログラムやデータを記録する記録媒体としての光ディスク、26は光ディスク25から情報を読み取る駆動装置である。
【0011】
情報処理装置24は、駆動装置26を介して光ディスク25から情報を読み取り、本発明に係わる最適データ分散並列化を含む各処理動作のためのプログラムとデータを外部記憶装置23や主メモリ内に格納する。
このように、光ディスク25に記録されたプログラムやデータを読み込むことにより、情報処理装置24は、図1に示す分散メモリ型マルチプロセッサ向けプログラム作成システムを構成する。
【0012】
図1において、1は図2における外部記憶装置23等から読み込まれたソースプログラム、2はソースプログラム1をコンパイルする並列化コンパイラ部、3はコンパイル結果の実行プログラム、4は選択した分散パターンで実行プログラム3を実行する分散パターン選択実行部、5は分散パターン選択実行部4の実行時間を記憶する実行時間情報蓄積部、6は並列化コンパイラ部2の従来のコンパイル動作により生成されるプログラム構造情報、7はプログラム構造情報6と実行時間情報蓄積部5の記憶内容とに基づき最適な分散パターンを選択するデータ分散パターン選択部、8はデータ分散パターン選択部7が選択した分散パターンを記憶するデータ分散パターン記憶部である。
【0013】
ソースプログラム1は逐次型言語で記述されており、このソースプログラム1を、並列化コンパイラ部2により並列化して実行プログラム3として出力する。この時、並列化コンパイラ部2は、候補となる分散パターン全てについて、静的解析により、各ループに対して最適と思われる分散パターンをいくつか決定する。こうして決められた各ループでの分散パターンに対し、その分散パターンに基づいて各ループを並列化する。
【0014】
分散パターン選択実行部4は、並列化コンパイラ部2が決定した各分散パターンに対応するコードの内の1つを選択して実行する。選択の方法としては、ある分散パターンに対する実行時間情報が未取得の場合は、その分散パターンを実行し、全ての分散パターンに対する実行時間情報が取得済みの場合は、実行時間が最小の分散パターンを選択して実行する。
【0015】
さらに、分散パターン選択実行部4は、データ分散パターン記憶部8に分散パターンが指定されている場合は、指定された分散パターンを実行する。また、選択された分散パターンが、当該ループの入口での分散パターンと異なっている場合は、このループの入口での分散パターンから選択された分散パターンへのリマッピングを行なう。
このようにして、分散パターン選択実行部4で取得された実行時間情報は、実行時間情報蓄積部5に記録される。尚、これには、リマッピングの時間は含まない。
【0016】
データ分散パターン選択部7は、並列化コンパイラ部2により出力されるプログラム構造情報6を入力して、モジュール間の呼出し関係や、ループ情報等を解析する。そして、データ分散パターン選択部7は、実行プログラム3と並列に動作して、実行時間情報蓄積部5の実行時間情報が、全てのループについて得られたかどうかチェックする。実行時間情報が全てのループについて得られた場合、先に入力したプログラム構造情報6と、実行時間情報蓄積部5の実行時間情報とから、プログラム全体の実行時間が最小となるように、各ループに対する分散パターンを決定する。
【0017】
この分散パターンの決定にあたっては、公知の技術が適用可能である。
例えば、文献「K.Kennedy and U.Kremer, Automatic Data Layout for High Performance Fortran, In Proceedings of Supercomputing'95, December, 1995」にあるように、分散パターンをノードとし、エッジを分散パターン間のリマッピングのコストとするグラフを構成し、このグラフのプログラムの開始点から終了点までの最短経路探索問題を解くことによって、プログラム全体の実行時間が最小となるような解を求めることができる。リマッピングのコストは、リマッピング対象の配列の形状および分散パターンから予測する。
【0018】
このようにして決定した各ループに対する分散パターンは、データ分散パターン記憶部8に記憶される。この記憶された分散パターンを、分散パターン選択実行部4が読み込み、決められた分散パターンに従って実行することにより、プログラム全体として最適な分散パターンで実行プログラム3が動作する。
【0019】
本例の主な対象となる大規模科学技術計算に用いられるプログラムでは、実際の計算を囲むように1つの収束ループがあり、その中の計算が何回も繰り返される場合がある。このようなプログラムに本例の技術を適用すると、収束ループの最初の繰り返しで取得された実行時間情報を元に決定された最適な分散パターンにより、残りの収束ループの繰り返しを計算することが可能となる。
【0020】
また、データ分散パターン記憶部8に記憶された情報をプログラムの終了後も保存しておき、次のプログラムの実行時に使用することで、プログラムの再コンパイル無しに最適な分散パターンでプログラムを実行することが可能となる。
さらに、プログラムの1回の実行で必要な実行時間情報がそろわなかった場合でも、実行時間情報蓄積部5、プログラム構造情報6およびデータ分散パターン記憶部8の情報を保存しておき、プログラムの次の実行の時に不足している情報の部分を補完していくことで、複数回のプログラムの実行の後に、最適な分散パターンでプログラムを実行することが可能となる。
【0021】
次に、図3を用いて分散パターン選択実行部4の詳細を説明する。
図3は、図1における分散パターン選択実行部の構造を模擬的なプログラム形式で表した説明図である。
分散パターン選択実行部は、分散パターン選択フラグ設定処理31、リマッピング処理32、分岐処理33(図中、「select(分散パターン選択フラグ)」と記載)、および、実行時間情報出力処理34からなり、まず、分散パターン選択フラグ設定処理31により、後述の図4で説明する処理により、分散パターンを選択し、選択した分散パターンにフラグを設定する。
【0022】
そして、リマッピング処理32により、当該ループの入口での分散パターンと、分散パターン選択フラグ設定処理31によって選択されフラグが設定された分散パターンとが異なる時に、このループ入口での分散パターンから、分散パターン選択フラグ設定処理31によって選択された分散パターンへのリマッピングを行なう。尚、当該ループの入口での分散パターンと、分散パターン選択フラグ設定処理31によって選択された分散パターンが同じ場合は、何も行なわない。
【0023】
分岐処理33では、分散パターン選択フラグ設定処理31で設定されたフラグを基に、複数の分散パターンに対応するコードの中から、フラグ設定された分散パターン(A,B,・・・)に対応するコードに分岐して実行する。この時、選択されたコードを実行するのに要する時間を計測する。
【0024】
実行時間情報出力処理34では、選択されたパターンに対して分岐処理33で計測した実行時間情報が、図1の実行時間情報蓄積部5に記録されていない場合、実行時間情報を出力する。尚、実行時間情報蓄積部5に既に選択されたパターンに対する実行時間情報が記録されている場合は、何もしない。
このような、分散パターン選択実行部4の処理動作により、並列化コンパイラ部2が決定した各分散パターンに対する実行時間情報を取得するこができる。
【0025】
次に、図4を用いて分散パターン選択フラグ設定処理31の処理内容の詳細を説明する。
図4は、図1の分散パターン選択実行部の図3における分散パターン選択フラグ設定処理動作例を示すフローチャートである。
分散パターン選択フラグ設定処理では、まず、図1の分散パターン記憶部8に、現在処理しているループに対する分散パターンが設定されているか否かを調べる(ステップ401)。
【0026】
設定されている場合、そのループに対する分散パターンは確定しているので、分散パターン選択フラグに、データ分散パターン記憶部8に設定された分散パターンを設定する(ステップ406)。設定されていない場合、図1の実行時間情報蓄積部5に、当該ループについての分散パターン「X」に対する実行時間情報が設定されているかどうかを調べる(ステップ402)。
【0027】
当該ループに対する実行時間情報が設定されていない場合、分散パターン選択フラグに、分散パターンとして「X」を設定する(ステップ403)。設定されている場合は、当該ループに存在する全ての分散パターンについて処理を行なったかどうかを調べる(ステップ404)。全ての分散パターンについて処理を行なっていない場合は、「X」に次の分散パターンを設定してステップ402の処理へ戻る(ステップ405)。
このようにして、分散パターン選択実行部4は、分散パターン選択フラグ設定処理を行なう。
【0028】
図5は、図1における実行時間情報蓄積部で蓄積するデータの構造例を示す説明図である。
実行時間情報蓄積部5では、ループ毎の各分散パターンの実行時間を蓄積するために、ループID51、分散パターン52、実行時間53の項目欄からなるテーブルを有する。
【0029】
例えば、ループID51欄にはループ(1)、ループ(2)、・・・が設定され、ループ(1)に対応して、データ分散のパターン(1)A、パターン(1)Bが分散パターン52欄に、また、各パターンの実行時間(t1,t2 msec)が実行時間53欄に設定されている。
【0030】
図6は、図1におけるデータ分散パターン記憶部で記憶するデータの構造例を示す説明図である。
データ分散パターン記憶部8は、ループ毎に最適な分散パターンを記憶するために、ループID61と分散パターン62の項目欄からなるテーブルを有する。
【0031】
例えば、ループID61欄にはループ(1)、ループ(2)、・・・が設定され、各ループ(1),(2),・・・に対応して、最適な分散パターンA,B,・・・が分散パターン62欄に設定されている。
【0032】
図7は、図1における分散メモリ型マルチプロセッサ向けプログラム作成システムの本発明に係わる処理動作例を示す説明図である。
本例は、分散メモリ型マルチプロセッサ向けプログラム作成システムの本発明に係わる処理動作がどのように行なわれるのかを、実際のプログラムコードで示したものである。
【0033】
逐次ソースコード71は、逐次型言語で記述されたソースプログラムである。2次元配列「REAL Z(100,100)」に対して、ループ(1)とループ(2)の2つのループが存在する。ここで、ループ(1)に対しては、この配列の2次元目をBlock分散する分散パターンが決定していると仮定する。
この時、ループ(2)に対しては、例えば、2次元目をBlock分散する分散パターンAと、1次元目をBlock分散する分散パターンBの2つの分散パターンが考えられる。
【0034】
分散パターンAに対応するループ(2)の変換後コード72では、処理72aで、逐次ソースコード71の2次元配列「REAL Z(100,100)」における「Z」の分散形状を、2次元目がBlock分散であるような分散形状に変更するリマッピングが行なわれるが、ループ(2)の入口での「Z」の分散形状も2次元目がBlock分散であるような分散形状であるので、実際には何も処理されない。
【0035】
次に、処理72bで、ループ中でアクセスされるデータの内、他プロセッサ上に存在するデータを、通信により自プロセッサ上に転送する処理が行なわれる。そして、処理72cでは、2重ループの内、配列「Z」の2次元目に対応するJループが各プロセッサに分散されて実行される。
【0036】
また、分散パターンBに対応するループ(2)の変換後コード73では、処理73aで、「Z」の分散形状を1次元目がBlock分散であるような分散形状に変更するリマッピングが行なわれる。この場合は、ループ(2)の入口での分散形状とリマッピング後の分散形状が異なるので、実際にリマッピング処理が行なわれる。そして、処理73bで、2重ループの内、配列「Z」の1次元目に対応するIループが各プロセッサに分散されて実行される。
【0037】
図8は、図1におけるデータ分散パターン選択部の本発明に係わる処理動作例を示すフローチャートである。
まず、図1の実行時間情報蓄積部5に、全ての分散パターンに対応する実行時間情報が揃っているか否かを判別し(ステップ801)、全て揃うまで待つ(ステップ802)。
【0038】
実行時間情報蓄積部5に、全ての分散パターンに対応する実行時間情報が揃ったならば、各ループに対応する全てのデータ分散パターンをノードとし、データ分散パターンの遷移をエッジとするグラフを構成し、実行時間情報をもとに各ノードを重み付けし、データ分散パターンの遷移に必要なリマッピングの実行時間予測をもとに各エッジを重み付けする(ステップ803)。
【0039】
ステップ803で作成したグラフについて、プログラムの開始位置から終了位置まで達する経路の内、重み付けされた値の合計が最小となる経路を求める(ステップ804)。そして、このようにして求めた経路に沿ったデータ分散パターンを、図1のデータ分散パターン記憶部8の対応する位置に設定する(ステップ805)。
【0040】
図9は、図8におけるステップ803の処理で作成されるグラフの具体例を示す説明図である。
ループ(1)に対応して「A1」,「B1」,「C1」のデータ分散パターンがノードとして設定されており、各データ分散パターンには、ノードの重み「2」,「6」,「3」が付与されている。同様に、ループ(2)に対応してノードの重み「8」,「3」のデータ分散パターン「A2」,「C2」が、ループ(3)に対応してノードの重み「4」,「2」,「5」のデータ分散パターン「A3」,「B3」,「C3」がノードとして設定されている。
【0041】
また、各ループ(1)〜(3)におけるそれぞれのノード(データ分散パターン)間の遷移に必要なリマッピングの実行時間予測をもとに、各エッジの重みが付与されている。
これにより、例えば、ループ(1)のデータ分散パターン「A1」とループ(2)のデータ分散パターン「A2」およびループ(3)のデータ分散パターン「A3」の組合せでは、各ノードの重みおよびエッジの重みの合計は、「2+0+8+0+4」で「14」となる。
【0042】
同様に、データ分散パターン「A1」、「A2」、「B3]の組では「16」、データ分散パターン「A1」、「A2」、「C3]では「20」、データ分散パターン「A1」、「C2」、「A3]では「19」、データ分散パターン「A1」、「C2」、「B3]では「17」、データ分散パターン「A1」、「C2」、「C3]では「15」、データ分散パターン「B1」、「A2」、「A3」では「22」、データ分散パターン「B1」、「A2」、「B3]では「24」等となり、結果として、各ノードの重みとエッジの重みの合計が「11」となる経路のデータ分散パターン「C1」、「C2」、「C3」の組が、図1のデータ分散パターン選択部7により選択され、データ分散パターン記憶部8に記憶される。
【0043】
以上、図1〜図9を用いて説明したように、本例の分散メモリ型マルチプロセッサ向けプログラム作成システムでは、並列化されたプログラムが、実行時の実行時間情報に基づいて最適な分散形状(データ分散パターン)を選択するので、ループ長等のパラメータがコンパイル時に不明な場合でも、最適なデータ分散パターンを選択することが可能となる。
【0044】
また、データ分散パターン選択部をプログラムと並列に動作させることにより、プログラムの実行中に動的に最適なデータ分散を選択することが可能となる。また、選択されたデータ分散パターンをデータ分散パターン記憶部に記憶させることにより、プログラムをコンパイルし直すこと無しに最適なデータ分散パターンでプログラムを実行することが可能になる.
【0045】
尚、本発明は、図1〜図9を用いて説明した実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、本例では、光ディスク25をプログラムの記録媒体として用いたが、FDD(Flexible Disk Drive unit)などを用いることでも良い。
【0046】
【発明の効果】
本発明によれば、並列化されたプログラムの実行時の実行時間情報に基づいて最適なデータ分散パターンを選択するので、ループ長等のパラメータがコンパイル時に不明で静的に決定せず、実行時に決定するようなプログラムであっても、最適なデータ分散パターンを選択したプログラムを作成することができる。また、データ分散パターンの選択を、実行プログラムの実行と並列して行なうので、プログラムの実行中に動的に最適なデータ分散パターンを選択することができる。また、選択したデータ分散パターンを記憶しておくことにより、一度決定したデータ分散パターンの変更も再コンパイルすることなく容易にできる。このことにより、分散メモリ型マルチプロセッサシステムの性能を向上させることが可能となる。
【図面の簡単な説明】
【図1】本発明の分散メモリ型マルチプロセッサ向けプログラム作成システムの本発明に係る構成の一実施例を示すブロック図である。
【図2】図1における分散メモリ型マルチプロセッサ向けプログラム作成システムを構築するコンピュータ装置の構成例を示すブロック図である。
【図3】図1における分散パターン選択実行部の構造を模擬的なプログラム形式で表した説明図である。
【図4】図1の分散パターン選択実行部の図3における分散パターン選択フラグ設定処理動作例を示すフローチャートである。
【図5】図1における実行時間情報蓄積部で蓄積するデータの構造例を示す説明図である。
【図6】図1におけるデータ分散パターン記憶部で記憶するデータの構造例を示す説明図である。
【図7】図1における分散メモリ型マルチプロセッサ向けプログラム作成システムの本発明に係わる処理動作例を示す説明図である。
【図8】図1におけるデータ分散パターン選択部の本発明に係わる処理動作例を示すフローチャートである。
【図9】図8におけるステップ803の処理で作成されるグラフの具体例を示す説明図である。
【符号の説明】
1:ソースプログラム、2:並列化コンパイラ部、3:実行プログラム、4:分散パターン選択実行部、5:実行時間情報蓄積部、6:プログラム構造情報、7:データ分散パターン選択部、8:データ分散パターン記憶部、21:表示装置、22:入力装置、23:外部記憶装置、24,24a,24b:情報処理装置、25:光ディスク、26:駆動装置、31:分散パターン選択フラグ設定処理、32:リマッピング処理、33:分岐処理(「select(分散パターン選択フラグ)」)、34:実行時間情報出力処理、51:ループID(項目欄)、52:分散パターン(項目欄)、53:実行時間(項目欄)、61:ループID(項目欄)、62:分散パターン(項目欄)、71:逐次ソースコード、72:分散パターンAに対応するループ(2)の変換後コード、72a〜72c:処理、73:分散パターンBに対応するループ(2)の変換後コード、73a,73b:処理。

Claims (3)

  1. 逐次型言語で記述されたソースプログラムから、物理的に分散された各メモリを持つ複数のプロセッサから構成される並列計算機上で動作する実行プログラムを生成するシステムにおいて、
    上記ソースプログラムをコンパイルして上記実行プログラムを生成すると共に、上記ソースプログラムのプログラム構造情報を抽出し、かつ、上記各メモリへデータを分散させるパターン(データ分散パターン)を複数抽出して各データ分散パターン毎のコードを生成する並列化コンパイラ手段と、
    該並列化コンパイラ手段で抽出した上記プログラム構造情報を保存する保存手段と、
    上記並列化コンパイラ手段で生成した各データ分散パターン毎のコードを選択して上記実行プログラムを実行し、各データ分散パターン毎の実際の実行時間を取得する実行手段と、
    該実行手段で取得した各データ分散パターン毎の実行時間情報を蓄積する蓄積手段と、
    該蓄積手段に蓄積した実行時間情報と上記並列化コンパイラ手段で抽出して上記保存手段に保存したプログラム構造情報とに基づき上記実行プログラム全体の実行時間が最も短くなるデータ分散パターンの組を選択する選択手段と、
    該選択手段で選択したデータ分散パターンの組を上記実行手段から選択可能に記憶する記憶手段とを有し、
    上記実行手段は、上記記憶手段に記憶されたデータ分散パターンを上記実行プログラムの次の実行時に使用することを特徴とする分散メモリ型マルチプロセッサ向けプログラム作成システム。
  2. 請求項1に記載の分散メモリ型マルチプロセッサ向けプログラム作成システムにおいて、
    上記実行手段と上記選択手段とを同じまたはそれぞれ異なるプロセッサ上に設け、上記選択手段による上記データ分散パターンの選択を、上記実行手段による上記実行プログラムの実行と並行に行なうことを特徴とする分散メモリ型マルチプロセッサ向けプログラム作成システム。
  3. 逐次型言語で記述されたソースプログラムから、物理的に分散された各メモリを持つ複数のプロセッサから構成される並列計算機上で動作する実行プログラムを生成するためのコンピュータの処理手順を記述したプログラムを記録するコンピュータ読み取り可能な記録媒体であって、
    上記ソースプログラムをコンパイルして上記実行プログラムを生成すると共に、上記ソースプログラムのプログラム構造情報を抽出し、かつ、上記各メモリへデータを分散させるパターン(データ分散パターン)を複数抽出して各データ分散パターン毎のコードを生成する第1のステップと、
    該第1のステップで抽出した上記プログラム構造情報を保存する第2のステップと、
    上記第1のステップで生成した各データ分散パターン毎のコードを選択して上記実行プログラムを実行し、各データ分散パターン毎の実際の実行時間を取得する第3のステップと、
    第3のステップで取得した各データ分散パターン毎の実行時間情報を蓄積手段に蓄積する第4のステップと、
    第4のステップで蓄積した実行時間情報と上記第1のステップで抽出して上記第2のステップで保存したプログラム構造情報とに基づき上記実行プログラム全体の実行時間が最も短くなるデータ分散パターンの組を選択する第5のステップと、
    第5のステップで選択したデータ分散パターンの組を上記第3のステップでの上記実行プログラムの次の実行時に選択可能なように記憶手段に記憶する第6のステップとからなる処理手順を記述したプログラムを記録したことを特徴とする記録媒体。
JP35438698A 1998-12-14 1998-12-14 分散メモリ型マルチプロセッサ向けプログラム作成システム Expired - Lifetime JP3697652B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP35438698A JP3697652B2 (ja) 1998-12-14 1998-12-14 分散メモリ型マルチプロセッサ向けプログラム作成システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP35438698A JP3697652B2 (ja) 1998-12-14 1998-12-14 分散メモリ型マルチプロセッサ向けプログラム作成システム

Publications (2)

Publication Number Publication Date
JP2000181881A JP2000181881A (ja) 2000-06-30
JP3697652B2 true JP3697652B2 (ja) 2005-09-21

Family

ID=18437219

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35438698A Expired - Lifetime JP3697652B2 (ja) 1998-12-14 1998-12-14 分散メモリ型マルチプロセッサ向けプログラム作成システム

Country Status (1)

Country Link
JP (1) JP3697652B2 (ja)

Also Published As

Publication number Publication date
JP2000181881A (ja) 2000-06-30

Similar Documents

Publication Publication Date Title
Zheng et al. Flextensor: An automatic schedule exploration and optimization framework for tensor computation on heterogeneous system
Rupp et al. ViennaCL---linear algebra library for multi-and many-core architectures
KR970005456B1 (ko) 비용기준발견적 명령스케줄링을 위한 방법 및 장치
Scarborough et al. A vectorizing Fortran compiler
US9292265B2 (en) Method for convergence analysis based on thread variance analysis
Fahringer Automatic performance prediction for parallel programs on massively parallel computers
Hormati et al. Macross: Macro-simdization of streaming applications
Bakhtin et al. DVM-approach to the automation of the development of parallel programs for clusters
Garcia et al. Dynamic data distribution with control flow analysis
Kataev et al. The experience of using DVM and SAPFOR systems in semi automatic parallelization of an application for 3D modeling in geophysics
CN112558977B (zh) 面向异构众核后端基于代价模型的多面体优化方法
Nicolau et al. Using an oracle to measure potential parallelism in single instruction stream programs
Silber-Chaussumier et al. Generating data transfers for distributed GPU parallel programs
US20210042099A1 (en) Automatic generation of efficient vector code with low overhead in a time-efficient manner independent of vector width
Ayguade et al. Detecting and using affinity in an automatic data distribution tool
Briggs et al. Goal-directed interprocedural optimization
JP3697652B2 (ja) 分散メモリ型マルチプロセッサ向けプログラム作成システム
Gupta et al. PTRAN II-a compiler for High Performance Fortran
Liu et al. Improving the performance of OpenMP by array privatization
Foley et al. Efficient partitioning of fragment shaders for multiple-output hardware
Witterauf et al. Polyhedral fragments: an efficient representation for symbolically generating code for processor arrays
Jacobs et al. Monte carlo techniques in code optimization
US20080282237A1 (en) Method and Apparatus For Generating Execution Equivalence Information
JP2008015665A (ja) プログラム解析方法及びプログラム解析装置
Palermo et al. Dynamic data partitioning for distributed-memory multicomputers

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040806

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041005

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050623

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080715

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090715

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090715

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313114

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

Free format text: PAYMENT UNTIL: 20090715

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20090715

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100715

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100715

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110715

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110715

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120715

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120715

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130715

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term