(57)【特許請求の範囲】
【請求項１】
逐次型言語で記述されたソースプログラムから、物理的に分散された各メモリを持つ複数のプロセッサから構成される並列計算機上で動作する実行プログラムを生成するシステムにおいて、
上記ソースプログラムをコンパイルして上記実行プログラムを生成すると共に、上記ソースプログラムのプログラム構造情報を抽出し、かつ、上記各メモリへデータを分散させるパターン（データ分散パターン）を複数抽出して各データ分散パターン毎のコードを生成する並列化コンパイラ手段と、
該並列化コンパイラ手段で抽出した上記プログラム構造情報を保存する保存手段と、
上記並列化コンパイラ手段で生成した各データ分散パターン毎のコードを選択して上記実行プログラムを実行し、各データ分散パターン毎の実際の実行時間を取得する実行手段と、
該実行手段で取得した各データ分散パターン毎の実行時間情報を蓄積する蓄積手段と、
該蓄積手段に蓄積した実行時間情報と上記並列化コンパイラ手段で抽出して上記保存手段に保存したプログラム構造情報とに基づき上記実行プログラム全体の実行時間が最も短くなるデータ分散パターンの組を選択する選択手段と、
該選択手段で選択したデータ分散パターンの組を上記実行手段から選択可能に記憶する記憶手段とを有し、
上記実行手段は、上記記憶手段に記憶されたデータ分散パターンを上記実行プログラムの次の実行時に使用することを特徴とする分散メモリ型マルチプロセッサ向けプログラム作成システム。
【請求項２】
請求項１に記載の分散メモリ型マルチプロセッサ向けプログラム作成システムにおいて、
上記実行手段と上記選択手段とを同じまたはそれぞれ異なるプロセッサ上に設け、上記選択手段による上記データ分散パターンの選択を、上記実行手段による上記実行プログラムの実行と並行に行なうことを特徴とする分散メモリ型マルチプロセッサ向けプログラム作成システム。
【請求項３】
逐次型言語で記述されたソースプログラムから、物理的に分散された各メモリを持つ複数のプロセッサから構成される並列計算機上で動作する実行プログラムを生成するためのコンピュータの処理手順を記述したプログラムを記録するコンピュータ読み取り可能な記録媒体であって、
上記ソースプログラムをコンパイルして上記実行プログラムを生成すると共に、上記ソースプログラムのプログラム構造情報を抽出し、かつ、上記各メモリへデータを分散させるパターン（データ分散パターン）を複数抽出して各データ分散パターン毎のコードを生成する第１のステップと、
該第１のステップで抽出した上記プログラム構造情報を保存する第２のステップと、
上記第１のステップで生成した各データ分散パターン毎のコードを選択して上記実行プログラムを実行し、各データ分散パターン毎の実際の実行時間を取得する第３のステップと、
該第３のステップで取得した各データ分散パターン毎の実行時間情報を蓄積手段に蓄積する第４のステップと、
該第４のステップで蓄積した実行時間情報と上記第１のステップで抽出して上記第２のステップで保存したプログラム構造情報とに基づき上記実行プログラム全体の実行時間が最も短くなるデータ分散パターンの組を選択する第５のステップと、
該第５のステップで選択したデータ分散パターンの組を上記第３のステップでの上記実行プログラムの次の実行時に選択可能なように記憶手段に記憶する第６のステップとからなる処理手順を記述したプログラムを記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、分散メモリ型マルチプロセッサシステム、すなわち、物理的に分散したメモリを持つ並列計算機向けのプログラムのコンパイルおよび実行制御技術に係わり、特に、逐次型言語で記述されたプログラムを並列計算機上で並列実行できるようする際に、データ分散パターンを最適化するのに好適な分散メモリ型マルチプロセッサ向けプログラム作成システムに関するものである。
【０００２】
【従来の技術】
逐次型言語で記述されたプログラムを並列計算機上で並列実行するためには、プログラムを並列化することが必要である。分散メモリ型の並列計算機向けのプログラムの並列化では、ループの並列化と、データの分散が必要である。この目的のために、並列化コンパイラが開発されたが、従来の並列化コンパイラの多くは、ループの並列化は自動的に行なえるものの、データの分散形状はプログラマが指示しなければならず、最適なデータの分散形状を決定するのに多くの労力を要していた。
【０００３】
このようなデータの分散を自動的に決定する技術として、例えば、特開平７−１７５７６１号公報（「最適データ分散自動決定方式」）に記載の技術が考案されている。この技術は、コンパイル時に、複数のデータ分散パターンを評価して、最適なデータ分散を決定するものである。
【０００４】
しかし、この従来技術は、コンパイル時に複数のデータ分散パターンを静的に評価するものである。そのため、この技術では、パラメータが、コンパイル時に静的に決定せず、実行時に決定するようなプログラムでは、最適なデータ分散ができるとは限らない。また、コンパイル時にデータ分散パターンを決定して実行した後で、他の分散パターンに変更したいという場合には、コンパイルからやり直さなければならないため、手間がかかる。
【０００５】
【発明が解決しようとする課題】
解決しようとする問題点は、従来の技術では、必ずしも最適なデータ分散パターンを決定できるとは限らず、また、コンパイル時に決定したデータ分散パターンを他の分散パターンに変更する場合にはコンパイルからやり直さなければならない点である。
【０００６】
本発明の目的は、これら従来技術の課題を解決し、パラメータが、コンパイル時に静的に決定せず、実行時に決定するようなプログラムであっても、最適なデータ分散ができ、また、一度決定したデータ分散パターンの変更も再コンパイルすることなく容易にでき、分散メモリ型マルチプロセッサシステム（物理的に分散したメモリを持つ並列計算機）の性能を向上させることが可能な分散メモリ型マルチプロセッサ向けプログラム作成システムを提供することである。
【０００７】
【課題を解決するための手段】
上記目的を達成するため、本発明の分散メモリ型マルチプロセッサ向けプログラム作成システムは、逐次プログラムから並列化されたコードを生成すると共に、複数のデータ分散パターンに対応するコードを一つのプログラム中に出力する並列化コンパイラ部と、１回または複数回のプログラムの実行の間に各データ分散パターンに対応するコードを順次実行して各データ分散パターンに対する実行時間情報を取得する分散パターン選択実行部と、取得した実行時間情報をプログラム全体について蓄積する実行時間情報蓄積部と、蓄積されたプログラム全体の実行時間情報を基にプログラム全体の実行時間が最も短くなるようなデータ分散パターンを選択するデータ分散パターン選択部と、選択されたデータ分散パターン情報を記憶するデータ分散パターン記憶部とを備え、実際の実行時間情報に基づいて最適なデータ分散パターンを選択する。
【０００８】
このことにより、ループ長等のパラメータがコンパイル時に不明な場合でも、最適なデータ分散パターンを選択することが可能となる。また、データ分散パターン選択部をプログラムと並列に動作させることにより、プログラムの実行中に動的に最適なデータ分散を選択することが可能となる。また、選択されたデータ分散パターンをデータ分散パターン記憶部に記憶させることにより、プログラムをコンパイルし直すこと無しに最適なデータ分散パターンでプログラムを実行することが可能になる。
【０００９】
【発明の実施の形態】
以下、本発明の実施の形態を、図面により詳細に説明する。
図１は、本発明の分散メモリ型マルチプロセッサ向けプログラム作成システムの本発明に係る構成の一実施例を示すブロック図であり、図２は、図１における分散メモリ型マルチプロセッサ向けプログラム作成システムを構築するコンピュータ装置の構成例を示すブロック図である。
【００１０】
図２において、２１はＣＲＴ（Cathode Ray Tube）やＬＣＤ（Liquid Crystal Display）等からなる表示装置、２２はキーボードやマウス等からなる入力装置、２３はＨＤＤ（Hard Disk Drive unit）等からなる外部記憶装置、２４，２４ａ，２４ｂはそれぞれＣＰＵ（Central Processing Unit）や主メモリを具備して分散メモリ型マルチプロセッサシステムを構成する情報処理装置、２５はプログラムやデータを記録する記録媒体としての光ディスク、２６は光ディスク２５から情報を読み取る駆動装置である。
【００１１】
情報処理装置２４は、駆動装置２６を介して光ディスク２５から情報を読み取り、本発明に係わる最適データ分散並列化を含む各処理動作のためのプログラムとデータを外部記憶装置２３や主メモリ内に格納する。
このように、光ディスク２５に記録されたプログラムやデータを読み込むことにより、情報処理装置２４は、図１に示す分散メモリ型マルチプロセッサ向けプログラム作成システムを構成する。
【００１２】
図１において、１は図２における外部記憶装置２３等から読み込まれたソースプログラム、２はソースプログラム１をコンパイルする並列化コンパイラ部、３はコンパイル結果の実行プログラム、４は選択した分散パターンで実行プログラム３を実行する分散パターン選択実行部、５は分散パターン選択実行部４の実行時間を記憶する実行時間情報蓄積部、６は並列化コンパイラ部２の従来のコンパイル動作により生成されるプログラム構造情報、７はプログラム構造情報６と実行時間情報蓄積部５の記憶内容とに基づき最適な分散パターンを選択するデータ分散パターン選択部、８はデータ分散パターン選択部７が選択した分散パターンを記憶するデータ分散パターン記憶部である。
【００１３】
ソースプログラム１は逐次型言語で記述されており、このソースプログラム１を、並列化コンパイラ部２により並列化して実行プログラム３として出力する。この時、並列化コンパイラ部２は、候補となる分散パターン全てについて、静的解析により、各ループに対して最適と思われる分散パターンをいくつか決定する。こうして決められた各ループでの分散パターンに対し、その分散パターンに基づいて各ループを並列化する。
【００１４】
分散パターン選択実行部４は、並列化コンパイラ部２が決定した各分散パターンに対応するコードの内の１つを選択して実行する。選択の方法としては、ある分散パターンに対する実行時間情報が未取得の場合は、その分散パターンを実行し、全ての分散パターンに対する実行時間情報が取得済みの場合は、実行時間が最小の分散パターンを選択して実行する。
【００１５】
さらに、分散パターン選択実行部４は、データ分散パターン記憶部８に分散パターンが指定されている場合は、指定された分散パターンを実行する。また、選択された分散パターンが、当該ループの入口での分散パターンと異なっている場合は、このループの入口での分散パターンから選択された分散パターンへのリマッピングを行なう。
このようにして、分散パターン選択実行部４で取得された実行時間情報は、実行時間情報蓄積部５に記録される。尚、これには、リマッピングの時間は含まない。
【００１６】
データ分散パターン選択部７は、並列化コンパイラ部２により出力されるプログラム構造情報６を入力して、モジュール間の呼出し関係や、ループ情報等を解析する。そして、データ分散パターン選択部７は、実行プログラム３と並列に動作して、実行時間情報蓄積部５の実行時間情報が、全てのループについて得られたかどうかチェックする。実行時間情報が全てのループについて得られた場合、先に入力したプログラム構造情報６と、実行時間情報蓄積部５の実行時間情報とから、プログラム全体の実行時間が最小となるように、各ループに対する分散パターンを決定する。
【００１７】
この分散パターンの決定にあたっては、公知の技術が適用可能である。
例えば、文献「K.Kennedy and U.Kremer, Automatic Data Layout for High Performance Fortran, In Proceedings of Supercomputing'95, December, 1995」にあるように、分散パターンをノードとし、エッジを分散パターン間のリマッピングのコストとするグラフを構成し、このグラフのプログラムの開始点から終了点までの最短経路探索問題を解くことによって、プログラム全体の実行時間が最小となるような解を求めることができる。リマッピングのコストは、リマッピング対象の配列の形状および分散パターンから予測する。
【００１８】
このようにして決定した各ループに対する分散パターンは、データ分散パターン記憶部８に記憶される。この記憶された分散パターンを、分散パターン選択実行部４が読み込み、決められた分散パターンに従って実行することにより、プログラム全体として最適な分散パターンで実行プログラム３が動作する。
【００１９】
本例の主な対象となる大規模科学技術計算に用いられるプログラムでは、実際の計算を囲むように１つの収束ループがあり、その中の計算が何回も繰り返される場合がある。このようなプログラムに本例の技術を適用すると、収束ループの最初の繰り返しで取得された実行時間情報を元に決定された最適な分散パターンにより、残りの収束ループの繰り返しを計算することが可能となる。
【００２０】
また、データ分散パターン記憶部８に記憶された情報をプログラムの終了後も保存しておき、次のプログラムの実行時に使用することで、プログラムの再コンパイル無しに最適な分散パターンでプログラムを実行することが可能となる。
さらに、プログラムの１回の実行で必要な実行時間情報がそろわなかった場合でも、実行時間情報蓄積部５、プログラム構造情報６およびデータ分散パターン記憶部８の情報を保存しておき、プログラムの次の実行の時に不足している情報の部分を補完していくことで、複数回のプログラムの実行の後に、最適な分散パターンでプログラムを実行することが可能となる。
【００２１】
次に、図３を用いて分散パターン選択実行部４の詳細を説明する。
図３は、図１における分散パターン選択実行部の構造を模擬的なプログラム形式で表した説明図である。
分散パターン選択実行部は、分散パターン選択フラグ設定処理３１、リマッピング処理３２、分岐処理３３（図中、「ｓｅｌｅｃｔ（分散パターン選択フラグ）」と記載）、および、実行時間情報出力処理３４からなり、まず、分散パターン選択フラグ設定処理３１により、後述の図４で説明する処理により、分散パターンを選択し、選択した分散パターンにフラグを設定する。
【００２２】
そして、リマッピング処理３２により、当該ループの入口での分散パターンと、分散パターン選択フラグ設定処理３１によって選択されフラグが設定された分散パターンとが異なる時に、このループ入口での分散パターンから、分散パターン選択フラグ設定処理３１によって選択された分散パターンへのリマッピングを行なう。尚、当該ループの入口での分散パターンと、分散パターン選択フラグ設定処理３１によって選択された分散パターンが同じ場合は、何も行なわない。
【００２３】
分岐処理３３では、分散パターン選択フラグ設定処理３１で設定されたフラグを基に、複数の分散パターンに対応するコードの中から、フラグ設定された分散パターン（Ａ，Ｂ，・・・）に対応するコードに分岐して実行する。この時、選択されたコードを実行するのに要する時間を計測する。
【００２４】
実行時間情報出力処理３４では、選択されたパターンに対して分岐処理３３で計測した実行時間情報が、図１の実行時間情報蓄積部５に記録されていない場合、実行時間情報を出力する。尚、実行時間情報蓄積部５に既に選択されたパターンに対する実行時間情報が記録されている場合は、何もしない。
このような、分散パターン選択実行部４の処理動作により、並列化コンパイラ部２が決定した各分散パターンに対する実行時間情報を取得するこができる。
【００２５】
次に、図４を用いて分散パターン選択フラグ設定処理３１の処理内容の詳細を説明する。
図４は、図１の分散パターン選択実行部の図３における分散パターン選択フラグ設定処理動作例を示すフローチャートである。
分散パターン選択フラグ設定処理では、まず、図１の分散パターン記憶部８に、現在処理しているループに対する分散パターンが設定されているか否かを調べる（ステップ４０１）。
【００２６】
設定されている場合、そのループに対する分散パターンは確定しているので、分散パターン選択フラグに、データ分散パターン記憶部８に設定された分散パターンを設定する（ステップ４０６）。設定されていない場合、図１の実行時間情報蓄積部５に、当該ループについての分散パターン「Ｘ」に対する実行時間情報が設定されているかどうかを調べる（ステップ４０２）。
【００２７】
当該ループに対する実行時間情報が設定されていない場合、分散パターン選択フラグに、分散パターンとして「Ｘ」を設定する（ステップ４０３）。設定されている場合は、当該ループに存在する全ての分散パターンについて処理を行なったかどうかを調べる（ステップ４０４）。全ての分散パターンについて処理を行なっていない場合は、「Ｘ」に次の分散パターンを設定してステップ４０２の処理へ戻る（ステップ４０５）。
このようにして、分散パターン選択実行部４は、分散パターン選択フラグ設定処理を行なう。
【００２８】
図５は、図１における実行時間情報蓄積部で蓄積するデータの構造例を示す説明図である。
実行時間情報蓄積部５では、ループ毎の各分散パターンの実行時間を蓄積するために、ループＩＤ５１、分散パターン５２、実行時間５３の項目欄からなるテーブルを有する。
【００２９】
例えば、ループＩＤ５１欄にはループ（１）、ループ（２）、・・・が設定され、ループ（１）に対応して、データ分散のパターン（１）Ａ、パターン（１）Ｂが分散パターン５２欄に、また、各パターンの実行時間（ｔ１，ｔ２  ｍｓｅｃ）が実行時間５３欄に設定されている。
【００３０】
図６は、図１におけるデータ分散パターン記憶部で記憶するデータの構造例を示す説明図である。
データ分散パターン記憶部８は、ループ毎に最適な分散パターンを記憶するために、ループＩＤ６１と分散パターン６２の項目欄からなるテーブルを有する。
【００３１】
例えば、ループＩＤ６１欄にはループ（１）、ループ（２）、・・・が設定され、各ループ（１），（２），・・・に対応して、最適な分散パターンＡ，Ｂ，・・・が分散パターン６２欄に設定されている。
【００３２】
図７は、図１における分散メモリ型マルチプロセッサ向けプログラム作成システムの本発明に係わる処理動作例を示す説明図である。
本例は、分散メモリ型マルチプロセッサ向けプログラム作成システムの本発明に係わる処理動作がどのように行なわれるのかを、実際のプログラムコードで示したものである。
【００３３】
逐次ソースコード７１は、逐次型言語で記述されたソースプログラムである。２次元配列「ＲＥＡＬ  Ｚ（１００，１００）」に対して、ループ（１）とループ（２）の２つのループが存在する。ここで、ループ（１）に対しては、この配列の２次元目をBlock分散する分散パターンが決定していると仮定する。
この時、ループ（２）に対しては、例えば、２次元目をBlock分散する分散パターンＡと、１次元目をBlock分散する分散パターンＢの２つの分散パターンが考えられる。
【００３４】
分散パターンＡに対応するループ（２）の変換後コード７２では、処理７２ａで、逐次ソースコード７１の２次元配列「ＲＥＡＬ  Ｚ（１００，１００）」における「Ｚ」の分散形状を、２次元目がBlock分散であるような分散形状に変更するリマッピングが行なわれるが、ループ（２）の入口での「Ｚ」の分散形状も２次元目がBlock分散であるような分散形状であるので、実際には何も処理されない。
【００３５】
次に、処理７２ｂで、ループ中でアクセスされるデータの内、他プロセッサ上に存在するデータを、通信により自プロセッサ上に転送する処理が行なわれる。そして、処理７２ｃでは、２重ループの内、配列「Ｚ」の２次元目に対応するＪループが各プロセッサに分散されて実行される。
【００３６】
また、分散パターンＢに対応するループ（２）の変換後コード７３では、処理７３ａで、「Ｚ」の分散形状を１次元目がBlock分散であるような分散形状に変更するリマッピングが行なわれる。この場合は、ループ（２）の入口での分散形状とリマッピング後の分散形状が異なるので、実際にリマッピング処理が行なわれる。そして、処理７３ｂで、２重ループの内、配列「Ｚ」の１次元目に対応するＩループが各プロセッサに分散されて実行される。
【００３７】
図８は、図１におけるデータ分散パターン選択部の本発明に係わる処理動作例を示すフローチャートである。
まず、図１の実行時間情報蓄積部５に、全ての分散パターンに対応する実行時間情報が揃っているか否かを判別し（ステップ８０１）、全て揃うまで待つ（ステップ８０２）。
【００３８】
実行時間情報蓄積部５に、全ての分散パターンに対応する実行時間情報が揃ったならば、各ループに対応する全てのデータ分散パターンをノードとし、データ分散パターンの遷移をエッジとするグラフを構成し、実行時間情報をもとに各ノードを重み付けし、データ分散パターンの遷移に必要なリマッピングの実行時間予測をもとに各エッジを重み付けする（ステップ８０３）。
【００３９】
ステップ８０３で作成したグラフについて、プログラムの開始位置から終了位置まで達する経路の内、重み付けされた値の合計が最小となる経路を求める（ステップ８０４）。そして、このようにして求めた経路に沿ったデータ分散パターンを、図１のデータ分散パターン記憶部８の対応する位置に設定する（ステップ８０５）。
【００４０】
図９は、図８におけるステップ８０３の処理で作成されるグラフの具体例を示す説明図である。
ループ（１）に対応して「Ａ１」，「Ｂ１」，「Ｃ１」のデータ分散パターンがノードとして設定されており、各データ分散パターンには、ノードの重み「２」，「６」，「３」が付与されている。同様に、ループ（２）に対応してノードの重み「８」，「３」のデータ分散パターン「Ａ２」，「Ｃ２」が、ループ（３）に対応してノードの重み「４」，「２」，「５」のデータ分散パターン「Ａ３」，「Ｂ３」，「Ｃ３」がノードとして設定されている。
【００４１】
また、各ループ（１）〜（３）におけるそれぞれのノード（データ分散パターン）間の遷移に必要なリマッピングの実行時間予測をもとに、各エッジの重みが付与されている。
これにより、例えば、ループ（１）のデータ分散パターン「Ａ１」とループ（２）のデータ分散パターン「Ａ２」およびループ（３）のデータ分散パターン「Ａ３」の組合せでは、各ノードの重みおよびエッジの重みの合計は、「２＋０＋８＋０＋４」で「１４」となる。
【００４２】
同様に、データ分散パターン「Ａ１」、「Ａ２」、「Ｂ３］の組では「１６」、データ分散パターン「Ａ１」、「Ａ２」、「Ｃ３］では「２０」、データ分散パターン「Ａ１」、「Ｃ２」、「Ａ３］では「１９」、データ分散パターン「Ａ１」、「Ｃ２」、「Ｂ３］では「１７」、データ分散パターン「Ａ１」、「Ｃ２」、「Ｃ３］では「１５」、データ分散パターン「Ｂ１」、「Ａ２」、「Ａ３」では「２２」、データ分散パターン「Ｂ１」、「Ａ２」、「Ｂ３］では「２４」等となり、結果として、各ノードの重みとエッジの重みの合計が「１１」となる経路のデータ分散パターン「Ｃ１」、「Ｃ２」、「Ｃ３」の組が、図１のデータ分散パターン選択部７により選択され、データ分散パターン記憶部８に記憶される。
【００４３】
以上、図１〜図９を用いて説明したように、本例の分散メモリ型マルチプロセッサ向けプログラム作成システムでは、並列化されたプログラムが、実行時の実行時間情報に基づいて最適な分散形状（データ分散パターン）を選択するので、ループ長等のパラメータがコンパイル時に不明な場合でも、最適なデータ分散パターンを選択することが可能となる。
【００４４】
また、データ分散パターン選択部をプログラムと並列に動作させることにより、プログラムの実行中に動的に最適なデータ分散を選択することが可能となる。また、選択されたデータ分散パターンをデータ分散パターン記憶部に記憶させることにより、プログラムをコンパイルし直すこと無しに最適なデータ分散パターンでプログラムを実行することが可能になる.
【００４５】
尚、本発明は、図１〜図９を用いて説明した実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、本例では、光ディスク２５をプログラムの記録媒体として用いたが、ＦＤＤ（Flexible Disk Drive unit）などを用いることでも良い。
【００４６】
【発明の効果】
本発明によれば、並列化されたプログラムの実行時の実行時間情報に基づいて最適なデータ分散パターンを選択するので、ループ長等のパラメータがコンパイル時に不明で静的に決定せず、実行時に決定するようなプログラムであっても、最適なデータ分散パターンを選択したプログラムを作成することができる。また、データ分散パターンの選択を、実行プログラムの実行と並列して行なうので、プログラムの実行中に動的に最適なデータ分散パターンを選択することができる。また、選択したデータ分散パターンを記憶しておくことにより、一度決定したデータ分散パターンの変更も再コンパイルすることなく容易にできる。このことにより、分散メモリ型マルチプロセッサシステムの性能を向上させることが可能となる。
【図面の簡単な説明】
【図１】本発明の分散メモリ型マルチプロセッサ向けプログラム作成システムの本発明に係る構成の一実施例を示すブロック図である。
【図２】図１における分散メモリ型マルチプロセッサ向けプログラム作成システムを構築するコンピュータ装置の構成例を示すブロック図である。
【図３】図１における分散パターン選択実行部の構造を模擬的なプログラム形式で表した説明図である。
【図４】図１の分散パターン選択実行部の図３における分散パターン選択フラグ設定処理動作例を示すフローチャートである。
【図５】図１における実行時間情報蓄積部で蓄積するデータの構造例を示す説明図である。
【図６】図１におけるデータ分散パターン記憶部で記憶するデータの構造例を示す説明図である。
【図７】図１における分散メモリ型マルチプロセッサ向けプログラム作成システムの本発明に係わる処理動作例を示す説明図である。
【図８】図１におけるデータ分散パターン選択部の本発明に係わる処理動作例を示すフローチャートである。
【図９】図８におけるステップ８０３の処理で作成されるグラフの具体例を示す説明図である。
【符号の説明】
１：ソースプログラム、２：並列化コンパイラ部、３：実行プログラム、４：分散パターン選択実行部、５：実行時間情報蓄積部、６：プログラム構造情報、７：データ分散パターン選択部、８：データ分散パターン記憶部、２１：表示装置、２２：入力装置、２３：外部記憶装置、２４，２４ａ，２４ｂ：情報処理装置、２５：光ディスク、２６：駆動装置、３１：分散パターン選択フラグ設定処理、３２：リマッピング処理、３３：分岐処理（「ｓｅｌｅｃｔ（分散パターン選択フラグ）」）、３４：実行時間情報出力処理、５１：ループＩＤ（項目欄）、５２：分散パターン（項目欄）、５３：実行時間（項目欄）、６１：ループＩＤ（項目欄）、６２：分散パターン（項目欄）、７１：逐次ソースコード、７２：分散パターンＡに対応するループ（２）の変換後コード、７２ａ〜７２ｃ：処理、７３：分散パターンＢに対応するループ（２）の変換後コード、７３ａ，７３ｂ：処理。
【図１】
0003697652.tif 000002
【図２】
0003697652.tif 000003
【図３】
0003697652.tif 000004
【図４】
0003697652.tif 000005
【図５】
0003697652.tif 000006
【図６】
0003697652.tif 000007
【図７】
0003697652.tif 000008
【図８】
0003697652.tif 000009
【図９】
0003697652.tif 000010