JPH04190422A - プログラム生成方法 - Google Patents

プログラム生成方法

Info

Publication number
JPH04190422A
JPH04190422A JP32164490A JP32164490A JPH04190422A JP H04190422 A JPH04190422 A JP H04190422A JP 32164490 A JP32164490 A JP 32164490A JP 32164490 A JP32164490 A JP 32164490A JP H04190422 A JPH04190422 A JP H04190422A
Authority
JP
Japan
Prior art keywords
program
processor
calculation
processing
generation method
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
JP32164490A
Other languages
English (en)
Inventor
Toshio Okochi
俊夫 大河内
Chisato Konno
金野 千里
Mitsuyoshi Inogai
光祥 猪貝
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 ULSI Engineering Corp
Hitachi Ltd
Original Assignee
Hitachi ULSI Engineering Corp
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 ULSI Engineering Corp, Hitachi Ltd filed Critical Hitachi ULSI Engineering Corp
Priority to JP32164490A priority Critical patent/JPH04190422A/ja
Publication of JPH04190422A publication Critical patent/JPH04190422A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 【産業上の利用分野】
本発明は、複数のプロセッサで並列に処理を行うための
プログラムを生成するプログラム生成方法に関し、特に
、電磁場解析、熱伝導解析、流体解析などの物理現象の
シミュレーションを分散メモリ型の並列計算機上で実行
するためのプログラムを生成するのに好適なプログラム
生成方法に関する。
【従来の技術】
物理現象が起こる空間領域の形状等のシミュレーション
モデルの構造とその数値的な解析の計算手順とを特殊な
高水準言語で記述したプログラムから、一般の汎用計算
機で実行可能なFORTRAN言語等の汎用言語による
プログラムを自動的に生成するプログラム生成方法が、
例えば「情報処理学会誌、第26巻、第1号、 pp1
68−180Jや。 特開昭60−140433号公報や、特開昭62−21
2771号公報に記載されている。 また、FORTRAN等の汎用言語によるプログラムを
、DO小ループ分割することにより、並列実行可能なプ
ログラムにする並列化方法が、例えばrParalel
l Computing  6(1988) ppl−
18Jに記載されている。
【発明が解決しようとする問題点】
上記従来のプログラム生成方法および並列化方法により
、物理現象のシミュレーションを並列計算機で行うため
のプログラムを生成することが出来る。 しかし、この場合、並列計算機の各プロセッサ毎に異な
るプログラムを生成する必要かあり、プログラムの総ス
テツプ数が膨大になるという問題がある。 また、並列計算機でシミュレーションを行う場合、プロ
セッサ間のデータ通信・同期が必要であり、このオーバ
ーヘッドにより性能が低下する問題がある。 さらに、プロセッサ割り付けをユーザが指定することが
出来ないため、最適の割り付けか行われるとは限らない
問題がある。 そこで、本発明の第一の目的は、並列計算機の各プロセ
ッサで共通に使用できるプログラムを生成することによ
り、総ステツプ数の少ないプログラムを生成するプログ
ラム生成方法を提供することにある。 また、本発明の第二の目的は、プロセッサ間データ通信
のオーバーヘッドの小さいプログラムを生成するプログ
ラム生成方法を提供することにある。 さらに、本発明の第三の目的は、ユーザかプロセッサ割
り付け方式を指定することを可能としたプログラム生成
方法を提供することにある。
【問題点を解決するための手段】
本発明は、第1の観点では、処理を行う範囲および処理
を行う単位および処理の内容の情報に基づいて、処理を
行う範囲を複数のプロセッサに分割し、各プロセッサが
担当する範囲に含まれる処理の単位毎に処理の内容に応
じた計算を各プロセッサに行わせるプログラムを生成す
るプログラム生成方法であって、(a)処理を行う範囲
を分割して複数のプロセッサに割り付け、(b)各プロ
セッサに割り付けた範囲毎に、その範囲内の処理の単位
における処理の内容に対応する計算の種類を判定して同
じ種類の計算を行う単位同士を組とし、(c)各組の各
単位を指すインデックスにより繰り返し制御情報を生成
し、(d)計算の種類に応じた繰り返し計算プログラム
を生成し、(e)各プロセッサ毎に、そのプロセッサに
対応する繰り返し制御情報と前記繰り返し計算プログラ
ムとを組合せた部分を含むプログラムを生成することを
特徴とするプログラム生成方法を提供する。 本発明は、第2の観点では、処理を行う範囲および処理
を行う単位および処理の内容の情報に基づいて、処理を
行う範囲を複数のプロセッサに分割し、各プロセッサが
担当する範囲に含まれる処理の単位毎に処理の内容に応
じた計算を各プロセッサに行わせるプログラムを生成す
るプログラム生成方法であって、(a)計算の中の一つ
の式に対応するプログラム部分を実行する際に必要とな
り且つ他のプロセッサから転送されることが必要なデー
タを、式毎に抽出し、(b)前記計算の中の一つの式に
対応するプログラム部分を実行するより先に前記データ
を得るためのプロセッサ間通信を実行するプログラム部
分を生成することを特徴とするプログラム生成方法を提
供する。 本発明は、第3の観点では、処理を行う範囲および処理
を行う単位および処理の内容およびプロセッサ割り付け
指定の情報に基づいて、処理を行う範囲を複数のプロセ
ッサに分割し、各プロセッサか担当する範囲に含まれる
処理の単位毎に処理の内容に応じた計算を各プロセッサ
に行わせるプログラムを生成するプログラム生成方法で
あって、(a)プロセッサ割り付け指定にしたがって処
理を行う範囲を分割して複数のプロセッサに割り付け、
(b)各プロセッサに割り付けた範囲毎に、その範囲内
の処理の単位における処理の内容に対応する計算の種類
を判定して同じ種類の計算を行う単位同士を組とし、(
c)各組の各単位を指すインデックスにより繰り返し制
御情報を生成し、(d)計算の種類に応じた繰り返し計
算プログラムを生成し、(e)各プロセッサ毎に、その
プロセッサに対応する繰り返し制御情報と前記繰り返し
計算プログラムとを組合せた部分を含むプログラムを生
成することを特徴とするプログラム生成方法を提供する
【作用】
上記第1の観点による本発明のプログラム生成方法では
、計算の種類に応じた繰り返し計算プログラムを各プロ
セッサで共通に使用するため、生成されるプログラムの
総コード長を、従来の単一プロセッサ用のプログラムと
ほぼ同等の規模にすることが出来る。また、このコード
長はプロセッサ台数に殆ど依存しない。 上記第2の観点による本発明のプログラム生成方法では
、計算の各式に対して、その実行前毎にプロセッサ間で
データ転送を行なうプログラムを生成する。各式の処理
量に比べて、通信・同期の処理量は十分少さいため、演
算時間に対して通信・同期処理のオーバーヘッドが相対
的に小さいプログラムを生成することが出来る。 上記第3の観点による本発明のプログラム生成方法では
、領域や数式に基づくプロセッサの割り付け方法をユー
ザが指定できるため、自動割り付けでは最適の割り付け
とならないないような場合に、ユーザにより最適化した
プログラムを生成できるようになる。
【実施例】
以下、図面を参照して本発明の一実施例を説明する。な
お、説明は、次の(1)〜(7)の順序で行う。 (1)シミュレーションモデルの説明 (2)問題記述プログラムの説明 (3)並列計算機の説明 (4)並列計算機用プログラムの説明 (5)問題記述プログラムから並列計算機用プログラム
を生成するプログラム生成処理の概略説明(6)プログ
ラム生成処理を構成する各処理の詳細説明 (7ンP E Iり付け指定機能の説明(1)シミュレ
ーションモデルの例の説明第3図に示すように、空間領
域301は、上下を壁面304で囲まれ、左側面302
と右側面303が解放されている。 初期状態は全領域で流速0とし、左側面302から流体
が一定の流速で流入するものとする。 この場合における空間領域301の内部の流れの変化は
、ナビエ・ストークスの方程式と呼ばれる偏微分方程式
の解を時間毎に計算することにより、数値的にシミュレ
ーションできる。(流体の数値シミュレーションの方法
は、例えば[スーパーコンピュータ 日本物理学金偏 
培風館 pp178−197Jに紹介されている。) このようなシミュレーションには、一般に差分法が用い
られる。すなわち、第4図に示すように、空間領域30
1を微小領域に分割する。そして、各微小空間を代表す
る点(例えば微小空間の頂点310)毎に物理量に対応
じた変数を定義し、時間ステップ毎に所定の計算を行な
ってそれらの変数の値を求める。なお、微小空間はメツ
シュと呼ばれ、各微小空間を代表する点は節点と呼ばれ
る。 (2)問題記述プログラムの例の説明 第5図は、第4図のシミュレーションモデルを高水準言
語で表わした問題記述プログラムの例である。(かかる
高水準言語は、例えば「情報処理学会論文誌 VOL、
26 No、1  pp168−180J ニ紹介され
ている。) この問題記述プログラムQは、プログラムの異なった構
成要素を表すキーワードで始まり、セミコロンに)で終
わる文の列から成る。 PROG文101は、生成されるシュミレーションプロ
グラムの名称を示している。 METHOD文102は文数02析上の手法を示してお
り、(FDM)は差分法を示している。 文111から文120よりなる構造規定ブロック110
は、シミュレーションモデルの構造を規定するブロック
である。 DOMAIN文111は、解析領域のX、 Y座標を指
定する。 TIME文112は、解析の時間領域を指定する。 MESH文113は、メツシュの分割数を指定する。 TSTEP文114は、時間に沿って解を追跡する時間
ステップ間隔を指定する。 REGI ON文115は、解析領域の部分領域。 例えば境界あるいは内部の分割された領域の名称を指定
する。 CON ’S T文117は、熱伝導率や材質定数など
の定数を宣言する。 VAR文118は、物理変数を宣言する。 BCOND文119は、境界条件を指定する。 I C0ND文120は、初期条件を指定する。 文131から文144よりなるスキームブロック130
は、数値計算手順を記述するブロックである。 SCHME文131とEND SCHEME文144は
、スキームブロック130の範囲を指定する。 ITER文132からEND  ITER文143の間
は、ITER文132の中のUNTI L以降の条件が
成立するまで繰り返し実行される。 文133,134,136から141は、変数に対する
代入文である。 文135は、式135Aを離散化して得られる連立−次
方程式を変数PMについて解くことにより、変数PMを
更新することを指定する。 文142は、変数POの値を、100ステツプ毎にプリ
ンタに出力することを指定する。 (3)並列計算機の説明 第2図は、問題記述プログラムから生成される並列計算
機用プログラムを実行する並列計算機のブロック図であ
る。(かかるアーキテクチャは、例えば「情報処理学会
節38口金国大会講演論文集 pp1486−1489
Jに詳しく記載されている。)並列計算機20は、ホス
ト計算機HCと、複数のプロセッサPEと、ネットワー
クNWからなる。 ホスト計算機HCは、メモリMSを有し、そこに格納さ
れた並列計算機用プログラム(HC用プログラム)を実
行する。 各プロセッサPEは、ローカルメモリLSを有し、そこ
にロードされた並列計算機用プログラム(PE用プログ
ラム)を実行する。 ホスト計算機HCは、入出力処理およびプロセッサPE
へのPE用プログラムのロード、プロセッサPHの起動
を行なう。 各プロセッサPEは、ホスト計算機HCによって起動さ
れると、指定されたPE用プログラムを実行する。この
とき、プロセッサPEは、ホスト計算機HCの間でデー
タを転送し、また、プロセッサPE間でデータを転送す
る。PE用プログラムの実行を終えると、ホスト計算機
HCに専用の同期機構を通して終了を伝える。 (4)並列計算機用プログラムの説明 並列計算機用プログラムは、並列プロセスFORTRA
N言語によって記述されうる。(かかる並列プロセスF
ORTRAN言語は、例えば「情報処理学会節38口金
国大会講演論文集pp1490−1491Jに詳しく記
載されている。)第6図は、HC用プログラムの一例で
ある。 このHC用プログラム11において、宣言部1101は
、問題記述プログラム中に用いられている変数・定数に
対応する配列9行列解法に必要な配列、DO小ループ御
インデックステーブル、PE間通信用keyテーブルな
どの変数を宣言する。 前処理部1102は、問題記述プログラム中に用いられ
ている定数に対応する配列、DO小ループ御インデック
ステーブル、PE間通信用keyテーブルに値を設定す
る。 PE用プログラムの起動部1103は、PE用プログラ
ムを外部記憶装置HDから各プロセッサPEにロードし
た後、起動する。 入出力処理部1104は、問題記述プログラム中の各入
出力文に対応じたプロセッサPEからの入出力処理要求
を待ち、要求を検出すると、要求に応じた入出力処理サ
ブルーチン1105を呼び出す。 入出力処理サブルーチン1105は、問題記述プログラ
ム中の各入出力文に対応して、変数の外部記憶装置HD
への出力、外部記憶装置をDからのデータ入力を行なう
。 第7図は、PE用プログラムの一例である。 このPE用プログラム12において、宣言部1201は
、問題記述プログラム中に用いられている変数・定数に
対応する配列9行列解法に必要な配列、Do小ループ御
インデックステーブル、PE間通信用keyテーブルな
どの変数を宣言する。 HO3T−PEデータ転送部1202は、PE用プログ
ラム12の実行に必要なデータをホスト計算機HCのメ
モリMSから目ローカルメモリLSに転送する部分であ
る。必要なデータとは、DO小ループ御インデックステ
ーブル、PE間通信用keyテーブルの値である。 前処理部1203および初期条件文や定数文に対応する
初期設定部1204は、配列の値の初期設定を行なう。 実行部分1205は、問題記述プログラム中のスキーム
ブロックに対応する部分で、スキームブロック中の制御
構造に対応じた制御構造を有し、スキームブロック中の
各実行文(代入文および5OLVE文)、入出力文(入
力文および出力文)に対応して次のようなコードを有す
る。 A0代入文に対応するコード 1)代入文実行に必要なPE間データ転送サブルーチン
の呼び出し1206 2)代入文実行に対応するサブルーチンの呼び出し12
07 B、5OLVE文に対応するコート 1)行列生成に必要なPE間データ転送サブルーチンの
呼び出し1206 2)行列生成と行列解法ライブラリの呼び出しを行なう
サブルーチンの呼び出し12o7C0入力文に対応する
コード 1)ホスト計算機HCに対する入力実行要求(図示せず
) 2)ホスト計算機HCからプロセッサPEへの入力デー
タの転送(図示せず) D、出力文に対応するコード 1)プロセッサPEからホスト計算機HCへの出力対象
変数の転送1208 2)ホスト計算機HCに対する出力実行要求1実行文に
対応するサブルーチン1210については、第26図を
参照して後述する。 PE間データ転送サブルーチン1211については、第
27図を参照して後述する。 (5)問題記述プログラムから並列計算機用プログラム
を生成するプログラム生成処理の概略説明第1図は、本
発明の一実施例のプログラム生成処理1を示す。 プログラム生成処理1は、並列実行のための情報生成処
理2と、コード生成処理10とからなっている。 まず、並列実行のための情報生成処理2は、PE割り付
け処理4と、DO小ループ御インデックステーブル生成
処理5と、PE間通信用key生成処理6とからなって
いる。 PE割り付け処理4は、解析領域の形状情報およびメツ
シュ情報から、解析領域を分割して各プロセッサPHに
割り付けるためのPE担当領域インデックステーブル7
を生成する。 DO小ループ御インデックステーブル生成処理5は、問
題記述プログラム中の各実行文について、その実行文に
対応する並列計算機用プログラム中の処理部分のDoル
ープ制御インデックステーブル8を生成する。このDo
ループ制御インデックステーブル8は、各実行文、各プ
ロセッサPEそれぞれに対して生成される。 PE間通信用key生成処理6は、実行時に必要なjE
間通信の全ての場合について、PE間通信に用いるke
yを決定し、PE間通信用keyテーブル9を生成する
。PE間通信用keyテーブル9は、受信keyテーブ
ル9Aと送信keyテーブル9Bとからなる。 次に、コード生成処理10は、問題記述プログラムと上
記各テーブル7.8.9とから、並列計算機用プログラ
ムAを生成する。並列計算機用プログラムAは、先述の
ようにHC用プログラム11およびPE用プログラム1
2からなる。 (6)プログラム生成処理を構成する各処理の詳細説明 (PE割り付け処理4の詳細、) PE割り付け処理4は、演算内容に応じて節点数が均等
になるように解析対象の空間領域をブロック状またはス
ライス状に分割し、プロセッサPEを割り付ける。(こ
のような領域分割およびPE割り付け方法については、
例えば「情報処理学会筒38口金国大会講演論文集p1
492−1493Jに述べられている。また、電磁場解
析、熱伝導解析。 流体解析などの偏微分方程式で記述される物理現象のシ
ミュレーションを並列計算機上で実行するために必要と
なるプロセッサ割り付け方法に関しては、例えばr I
EEE Transactions on Compu
tersVOL、C−36,NO,12,DECEMB
ER1987pp1408−1424」に記載されてい
る。) 各プロセッサPEの担当領域を決定すると、PE担当領
域インデックステーブル7を生成する。 第5図の問題記述プログラムQの例では、スキームブロ
ック13Q中の最も負荷の大きい演算である5OLVE
文135に着目し、この演算内容が完全並列演算である
ことから、領域分割型をブロック状とし、節点数か均等
でかつ部分領域の境界上の節点数が最小となるように分
割する。第8図に、プロセッサPEか8台の場合に上記
PE割り付け処理を行なった例を示す。空間領域301
をr1〜r8の8つの担当領域に分割し、各々に1台の
プロセッサPEを割り付ける。−点鎖線320は領域分
割の境界を示す。第9図は、担当領域r6中に含まれる
節点を例示する。 第10図に、PE担当領域インデンクステーブル7を示
す。これは担当領域riと各担当領域riに含まれる節
点のX方向、Y方向のインデックスの下限、上限を表わ
したテーブルである。例えば部分領域r6については、
第9図から、X方向のイ・ンデックスの下限X61.上
限X65が格納され、また、Y方向のインデックスの下
限Y61゜上限Y66が格納されている。 なお、スキームブロック中に複数の5OLVE文があり
、各々の最適な領域分割型か異なる場合、各5OLVE
文が別々のブロックとなるようにスキームブロックを部
分ブロックに分割し、各部分ブロックについて上記と同
様の方法でPE割り付けを行なう。この場合、PE用プ
ログラムは、各部分ブロック毎に独立としいホスト計算
機HCはスキームブロックの制御構造に従ってこれら複
数のPE用プログラムを起動する。複数の部分ブロック
にまたがって参照、更新される変数については、上記P
E用プログラムの起動時および終了時にホスト計算機H
CとプロセッサPEの間でデータ転送する必要かあるの
で、このデータ転送が最小となるような方法でスキーム
ブロックを部分ブロックに分割するのか好ましい。この
ためには、例えば、複数の5OLVE文か別々の部分ブ
ロックとなるような全ての分割方式について、各部分ブ
ロックでの変数の参照、更新を調べ、各PE用プログラ
ムの実行時のホスト−PE間データ転送量が最小となる
分割方式を選択する。 第11図に、複数の5OLVE文を含むスキームブロッ
クの分割の例を示す。この例では、文171および文1
73に対してはブロック状領域分割に基づ<PE割り付
けが適しており、文172に対してはスライス状領域分
割に基づ<PE割り付けが適している。 なお、上記方法とは無関係に、領域分割およびPE割り
付け方法を問題記述プログラム中の記述によって指定す
ることも出来る。これについては後述する。 (DOループ制御インデックステーブル生成処理5の詳
細) 第12図1::、Do長ループ御インデックス生成処理
5のフロー図を示す。 ボックス501は、その右側のボックス502〜505
の処理を、各代入文、5OLVE文について繰り返すこ
とを表わす。 離散化規則抽出処理502および離散式の種類に依る領
域分割処理503は、対象としている実行文について同
一の離散式で計算を行う部分領域に解析対象領域を分割
する。(このような分割方法については例えば特開昭6
2−212771号公報において詳細に記述されている
。)ボックス505は、その右側のボックス504の処
理を、各プロセッサPEの担当領域毎に繰り返すことを
表わす。 PE担当領域の離散式の種類に依る領域分割処理504
は、前記PE担当領域インデックステ5−。 プル7と、前記離散式の種類に依る領域分割処理503
の結果とから、プロセッサPHの担当領域を同一の離散
式で計算を行う部分領域に分割し、プロセッサPE毎の
Do小ループ御インデックステーブル8を生成する。 第13図に、第5図の問題記述プログラムQの代入文1
33に、前記離散式の種類に依る領域分割処理503を
適用した例を示す。R1−R14が、離散式の種類に依
り分割された領域である。 解析対象領域は、節点か角点となる6つの領域R1〜R
6と、節点が境界点となる6つの領域R7〜R12と、
節点か内点となる2つの領域R13゜R14とに分けら
れている。 第14図に、第6のプロセッサPEの担当領域r6に、
上記PE担当領域の離散式の種類に依る領域分割処理5
04を適用した例を示す。破線321は、部分領域の境
界を示す。 第15図に、第6のプロセッサPHについてのDo小ル
ープ御インデックステーブル8を示す。 これは第6のプロセッサPEの担当領域r6と前記離散
式の種類に依り分割された領域R1〜R14の交わる領
域に含まれる節点のX方向、Y方向のインデックスの下
限、上限を表わしたテーブルである。例えば担当領域r
6と前記離散式の種類に依り分割された領域RIOの交
わる領域についテハ、第14図から、X方向のインテ・
ノクスの下限X61.上限X62が格納され、また、Y
方向のインデックスの下限Y62.上限Y62が格納さ
れている。例えば領域R1との交わりのように交わりが
空であるものについては、例えば下限のインデックス=
11.上限のインデックス=10のように、(下限のイ
ンデックス)〉(上限のインデックス)となる整数値を
設定し、空であることを示す。 以上のようにして、各代入文、5OLVE文毎に且つ各
プロセッサPE毎にDo小ループ御インデックステーブ
ル8を生成する。 +PE間通信用key生成処理6の詳細)第16図に、
PE間通信用key生成処理6のフロー図を示す。 ボックス601は、その右側のボックス603〜605
の処理を、各代入文、5OLVE文について繰り返すこ
とを表わす。 離散化規則抽出処理603は、第12図の離散化規則抽
出処理502と同じ内容の処理である。 通信対象変数抽出処理604は、各実行文の離散式から
、計算実行に先立ってプロセッサPE間で転送が必要な
変数を抽出する。 参照パターン生成処理605は、上記プロセッサPE間
で転送か必要な変数について、更新対象の変数が定義さ
れた節点とその変数の更新時に参照するために受信する
変数の定義された節点の位置関係情報(以下、参照パタ
ーン呼ぶ)を生成する。 例えば、第5図の問題記述プログラムQの代入文133
において参照している変数tJoについては、変数UO
に対応するPE用プログラム中の配列をLLUOとする
と、節点(i、j)における離散式については、代入文
133のDX (UO)の項はLLUO(i+1.j)
とLLUO(i −1、j)を参照し、DY (UO)
の項はLLUO(i、j+1)とLLUO(i、j−1
)を参照し、LAPL (UO)の項はLLUO(i+
1゜j)とLLUO(i−1,J)とLLUO(i。 j+1)とLLUO(i、j  1)とLLUO(i、
j)を参照する。つまり、節点(i、j)の上下左右の
4つの節点上の変数UOO値か必要となる。これが参照
パターンである。 ボックス620は、その右側のボックス621〜625
の処理を、参照パターン毎に繰り返すことを表わす。 ボックス621は、その右側のボックス622〜625
の処理を、各プロセッサPE毎に繰り返すことを表わす
。 受信データのインデックスを求める処理622は、参照
パターンに基づき、プロセッサPEが受信するべきデー
タの定義された節点のインデックスを求める。 節点(i、j)の上下左右の4つの節点上の変数UOの
値が必要となる上記例の参照パターンでは、第17図に
示すように、例えば、第6のプロセッサPEは、第2の
プロセッサPEから受信するべき下の節点(線330上
の節点)のインデックスと、第5のプロセッサPEから
受信するべき左の節点(線331上の節点)のインデッ
クスと、第7のプロセッサPEから受信するべき右の節
点c線332上の節点)のインデックスとを求める。 なお、上の節点は存在しない。 受信データのkey決定処理623は、受信データに通
し番号をつける。この番号付けは、例えば次のように行
なう。 まず、上記受信データの定義点の各面に順序付けを行な
う。この各面を受信面と呼ぶ。受信面は、第17図にお
いて、線330,331,332で示すものである。こ
れは、例えば、各受信面の節点のうちY方向のインデッ
クスか最も小さいもの同士を比へ、小さいものをもつ順
に連続した整数値を与え、通し番号を付ける。Y方向の
インデックスが等しいものについては、X方向のインデ
ックスを比べ、小さいものをもつ順に連続した整数値を
与える。 次に、受信面の順に、同じ受信面ではY方向のインデッ
クスの小さい順に、同じY方向のインテ・ンクスではX
方向のインデックスの小さい順に。 連続した整数値を与え、全ての受信データの定義点に通
し番号を付ける。この通し番号か受信keyである。 第18図に、受信keyテーブル9Aの構成例を示す。 受信keyテーブル9Aの各行は、各受信面に対応して
いる。各行毎に、受信面のX方向のインデックスの下限
901.上限902、Y方向のインデックスの下限90
3.上限904、受信key基底値905の各フィール
ドを有する。受信key基底ti 905は、受信面の
節点の受信keyの最小の値を格納する。受信面の各節
点の受信keyの値は、その節点のインデックスと前記
X方向のインデックスの下限901.上限902、Y方
向のインデックスの下限903.上限904、受信ke
y基底値905から算出される。 送信データおよび送信相手PE決定処理624は、自プ
ロセッサP″Eの担当領域と他のプロセッサPEの受信
面の交わり(以下、送信面と呼ぶ)を求めることにより
、自プロセンサPEか他のプロセッサPEに対して送信
すべきデータの定義点のインデックスと送信相手プロセ
ッサPEを求める。例えば、第19図に示すように、第
2のプロセッサPEの受信面340,343、第5のプ
ロセッサPEの受信面341、第7のプロセッサPEの
受信面342,344,345かあるとき、これらと第
6のプロセッサPEの担当領域r6の交わりを求めれば
、第20図に示すように、第6のプロセッサPEか送信
すべきデータの定義点のインデックスと送信相手プロセ
ッサPEを求めることか出来る。 送信データのkey決定処理625は、上記受信データ
のkey決定処理623で決定した受信keyに合わせ
て、対応する送信データの送信keyを決定する。 第21図に、送信keyテーブル9Bの構成例を示す。 送信keyテーブル9Bの各行は、各送信面に対応して
いる。各行毎に、送信面のX方向のインデックスの下限
911.上限912、Y方向のインデックスの下限91
3.上限914、送信key基底値916、送信key
ディスプレイスメント917、送信相手PE番号918
の各フィールドを有する。送信key基底値916は、
送信面の節点の送信keyの最小の値を格納する。送信
keyディスプレイスメント917は、受信keyと異
なり、送信keyが連続番号にならないことかあるため
、その番号の飛ぶ値を格納する。送信面の各節点の送信
keyの値は、その節点のインデックスと前記X方向の
インデックスの下限911、上限912、Y方向のイン
デックスの下限913、上限914、送信key基底値
916、送信keyディスプレイスメント917から算
出される。 (コード生成処理1oの詳細) コード生成処理10は、第22図に示すHC用プログラ
ム生成処理と、第23図(a)(b)および第24図に
示すPE用プログラム生成処理からなる。なお、第22
図、第23図(a)(b)および第24図において、太
線で囲んだボックス(1002〜1005,1022,
1023,1028.1030,1031.1044)
の処理か本発明に特徴的な処理である。それ以外のボッ
クスの処理は、従来公知のプログラム生成方法における
処理と同じである。 まず、第22図のHC用プログラム生成処理9Aについ
て説明する。 ステップ1001では、問題記述プログラム中に用いら
れている変数、定数1行列解法に必要な配列などに対応
して並列計算機用プログラム中で用いる変数を宣言する
プログラム部分(第6図1101)を生成する。 ステップ1002では、Do小ループ御インデックステ
ーブル8.PE間通信用keyテーブル9として用いる
配列を宣言するプログラム部分(第6図1101)を生
成する。このステップ100’2の処理は、本発明の特
徴的な処理であり、詳細を後述する。 ステップ1003では、Do小ループ御インデックステ
ーブル8.PE間通信用keyテーブル9に値を設定す
るプログラム部分(第6図1102)を生成する。 ステップ1004では、PEプログラムのロードおよび
起動を行なうプログラム部分(第6図1103)を生成
する。 ステップ1005では、プロセッサPEがらの入出力処
理要求を検出して要求に対応じた入出カサブルーチンを
呼び出すプログラム部分(第6図1104)を生成する
。 ステップ1006および1007では、問題記述プログ
ラム中の各入出力文毎に、対応する入出力処理サブルー
チン(第6図1105)を生成する。 ステップ1008では、Hc用プログラムの終端部分を
生成する。 次に、第23図(a)(b)のPE用プログラム生成処
理(PEメインプログラムの生成パート)について説明
する。 ステップ1021では、問題記述プログラム中に用いら
れている変数、定数1行列解法に必要な配列なとに対応
して並列計算機プログラム中で用いる変数を宣言するプ
ログラム部分(第7図1201)を生成する。 ステップ1022では、DO小ループ御インデックステ
ーブル8.PE間通信用keyテーブル9として用いる
配列を宣言するプログラム部分(第7図1201)を生
成する。このステップ1022の処理は、本発明の特徴
的な処理であり、詳細を後述する。 ステップ1023では、DO小ループ御インデックステ
ーブル8.PE間通信用keyテーブル9に、ホスト計
算機HCのメモリMS上の対応するデータを転送するホ
スト−PEデータ転送のプログラム部分(第7図120
2)を生成する。 ステップ1024では、問題記述プログラム中のメツシ
ュ指定文(第5図のMESH文113)に従って、節点
座標値配列にメツシュの座標値を設定するプログラム部
分(第7図1203)を生成する。 ステップ1025では、問題記述プログラム中の初期条
件文や定数文(第5図のICoND文12C)、C0N
5T文117)に従って、PE用プログラム中の変数テ
ーブルにこれらの文で指定された値を設定するプログラ
ム部分(第7図1204)を生成する。 ステップ1026は、その右のステップ1027〜10
31を、問題記述プログラム中の各文毎に繰り返す。 ステップ1027では、問題記述プログラム中の文が実
行文なら右上のステップ1028.1029を行い、出
力文なら右下のステップ1030゜1031を行う。 ステップ1028ては、PE間データ転送を行うサブル
ーチンを呼び出すプログラム部分を生成する。その際に
、スキームブロックを静的に解析し、必要な変数のロー
カルメモリLS上の通信エリアが既に最新の値に更新さ
れているか否かを判定し、転送の必要性を判定する。 ステップ1029では、実行文に対応するサブルーチン
を呼び出すプログラム部分を生成する。 ステップ1030では、ホスト−PE間データ転送を行
うサブルーチンを呼び出すプログラム部分を生成する。 ステップ1031では、ホスト計算機HCへの出力実行
要求を行なうプログラム部分を生成する。 ステップ1032では、PEメインプログラムの終端部
分を生成する。 次に、第24図のPE用プログラム生成処理(実行文に
対応するサブルーチンの生成パート)について説明する
。 ステップ1040は、スキームブロックの各実行文毎に
、右のステップ1041〜1047を繰り返す。 ステップ1041ては、各実行文に対応するサブルーチ
ンのヘッダを生成する。 ステップ1042では、必要な宣言部を生成する。 ステップ1043は、離散式の種類に依る領域分割処理
(第12図503)の結果として得られた各部分領域毎
に、右のステップ1044.1045を繰り返す。 ステップ1044では、Do文を生成する。このとき、
Do文の実行範囲として、上記Doループ制御インデッ
クステーブル8を用いる。 ステップ1045では、部分領域における離散式を生成
する。 ステップ1046は、実行文が5OLVE文か否か判定
し、5OLVE文の場合は、右上のステップ1047を
行なる。 ステップ1047ては、行列解法ライブラリを呼び出す
プログラム部分を生成する。 次に、前記ステップ1002および前記ステップ102
2における処理の詳細を説明する。 Do小ループ御インデックステーブル用配列は、実行文
毎に別々である。配列サイズは、離散式の種類に依る領
域分割処理(第12図503)によって生成される部分
領域の数であり、対象とする実行文により異なる。 ステップ1002およびステップ1022においては、
この部分領域の数を参照して、各実行文に対応するDo
小ループ御インデックステーブル用配列の宣言コードを
生成する。 通信用keyテーブル用配列配列参照パターンとPE割
り付けの組毎に別々である。通信用keyテーブルのサ
イズは、参照パターンとPE割り付けの組合せによって
決まり、これはプロセッサPEにも依存する。並列計算
機用プログラムA中での配列サイズは、各プロセッサP
Eの必要とするテーブルサイズの最大値とする。 ステップ1002およびステップ1022においては、
通信用keyテーブル生成時に求めた値を参照して、参
照パターンとPE割り付けの組合せ毎に通信用keyテ
ーブル用配列配列言コートを生成する。 第25図に、PE用プログラム12の宣言コードの一部
を示す。 宣言文1282は、第5図の問題記述プログラムQ中の
代入文133に対応するDo小ループ御インデックステ
ーブル用配列の宣言文である。 配列の各行LLRTAB(j、1)(j=1〜4)は、
第13図の部分領域Ri  (i=1〜14)上の離散
式に対応し、LLRTAB (1,i)にはX方向イン
デックス下限値、LLRTAB (2゜i)にはX方向
インデックス上限値、LLRTAB(3,i)にはX方
向インデックス上限値、LLRTAB (4,i)には
X方向インデックス上限値か設定される。この配列のの
各行LLRTAB(j、i)をDo小ループ御変数の範
囲として用いる。 宣言文1283,1284は、第5図の問題記述プログ
ラムQ中の代入文133における変数U0の参照パター
ンに対応する通信用keyテーブル用配列配列言コート
である。宣言文1283は、送信keyテーブル用配列
配列言文である。宣言文1284は、受信keyテーブ
ル用配列配列言文である。 配列LLSNDKは送信keyテーブル用配列配列り、
各行LLSNDK(j、1)(j=1〜7)はi番目の
送信面に対応し、LLSNDK(1,i)には送信面の
X方向インデックス下限値、LLSNDK (2,i)
には送信面のX方向インデックス上限値、LLSNDK
 (3,i)には送信面のX方向インデックス上限値、
LLSNDK(4,i)には送信面のX方向インデック
ス上限値、LLSNDK (5,i)には送信key基
底値、LLSNDK (6,i)には送信keyディス
プレイスメント、LLSNDK (7,i)には送信相
手PE番号がそれぞれ設定される。 配列LLRCVKは受信keyテーブル用配列配列り、
各行LLRCVK(j、1)(j=1〜5)はi番目の
受信面に対応し、LLRCVK(1,i)には受信面の
X方向インデックス下限値、LLRCVK (2,i)
 には受信面のX方向インデックス上限値、LLRCV
K (3,i)+:は受信面のX方向インデックス上限
値、LLRCVK(4,i)には受信面のX方向インデ
ックス上限値、LLRCVK (5,i)には受信ke
y基底値がそれぞれ設定される。 次に、第26図に、第25図のスキームブロック130
の代入文133に対応して生成されたサブルーチン(第
7図1210)の一部を示す。 配列LLUMは、第5図の問題記述プログラムQ中の変
数UMに対応するPE用プログラム12中の配列である
。 LLRTABは、上記DO小ループ御インデックステー
ブル用配列である。 Do文の制御変数1は、X方向のインデックスを表わし
ている。制御変数Jは、Y方向のインデックスを表して
いる。 配列LLUMへの代入文1253は、問題記述プログラ
ムQの代入文133に対応する各節点上で定義された変
数への代入文である。 DOブロック1255は、Do小ループ御インデックス
テーブル生成処理5における各部分領域内の節点につい
ての代入文の実行コートである。 次に、第27図に、PE間データ転送サブルーチン(第
7図1211)の一部を示す。PE間データ転送サブル
ーチンは、通信対象変数1通信keyテーブル、送信面
の数、受信面の数を引数として受は取り、対象変数の送
受信を実行する。 Doブロック1260は、1つの送信面についてのデー
タ送信に対応するコートである。 Do文1265は、各送信面について実行する繰り返し
を示す。変数SPNは、送信面の数を示す。 配列L L S N p Kは、上記送信keyテーブ
ル用配列配列る。 Doループ制御変数I、Jは、それぞれX方向。 Y方向のインデックスを示している。 文1263は、通信用keyテーブルおよび予め決めら
れた番号付け規則に従って、各送信デー夕の識別子を算
出する。 文1264は、データ送信を実行する関数を呼び出すC
A L 、L文である。ここで用いられる5ENDルー
チンは、送信対象変数、送信先PE番号およびデータ識
別子を引数として実行される。 DOブロック1270は、1つの受信面についてのデー
タ受信に対応するコートである。 DO文1275は、各受信面について実行する繰り返し
を示す。変数RPNは、受信面の数を示す。 配列LLRCVKは、上記受信keyテーブル用配列配
列る。 Do小ループ御変数1.Jは、それぞれX方向。 Y方向のインデックスを示している。 文1273は、予め決められた番号材は規則に従って、
各送信データの識別子を算出する。 文1274は、データ受信を実行する関数を呼び出すC
ALL文である。ここで用いられるRECIVEルーチ
ンは、受信データを代入する変数およびデータ識別子を
引数として実行される。RECIVEルーチンを実行し
たとき識別子に対応するデータが到着していない場合は
、プロセッサPEは、データか到着するまで、他の処理
の実行を休止して待つ。 (7)PE割り付け指定機能の説明 第28図に、PE割り付け指定記述を含んた問題記述プ
ログラムQを例示する。シミュレーションモデルおよび
数値計算手順は、第5図の問題記述プログラムQと全く
同じである。 第28図の問題記述プログラムQは、領域分割の指定と
PE割り付けの指定を行った例である。 *DECDEF文120は、PE割り付け定義文であり
、MESH文104で定義されたメツシュの分割方法を
指定する。すなわち、その分割方法に対して名称DEC
Iを与えると共に、X、 Y方向毎に、始点インデック
ス1212.終点インデックス1213.分割数121
4を指定する。 これにより、X、Y方向について、始点インデックス1
212から終点インデックス1213までの間を分割数
1214で等分割し、全節点をブロック状に分ける。こ
れにより分割された例を第29図に示す。 *DECOMP文121は、PE割り付け指定文であり
、5OLVE文124を、上記*DECDEF文120
において定義された分割方法DEC1に従ってプロセッ
サPEに割り付けることを指定する。 第30図に、PE割り付け指定記述を含んだ別の問題記
述プログラムQを例示する。シミュレーションモデルお
よび数値計算手順は、第5図の問題記述プログラムQと
全く同じである。 第30図の問題記述プログラムQは、複数の実行文に対
し異なるPEの組を割り当て、それら複数の実行文を並
列実行することを指定した例である。 *PEX文130.*PEXEND文131は、複数実
行文並列化指定文であり、上記2つの文で挟まれた複数
の実行文に対し、異なるプロセッサPEの組を割り当て
ることにより、これら複数の実行文を同時に実行するこ
とを指定する。この例では、代人文153,154の2
つの実行文にそれぞれ別のプロセッサPHの組を割り当
て、これら2つの実行文を同時に実行することを指定し
ている。例えば、プロセッサPHの台数か8台の場合、
代入文153,154に4台つつ割り当て可能であるか
ら、代入文153に対しては第31図(a)のようにプ
ロセッサPEか割り当てられ、代入文154に対しては
第31図(b)のようにプロセッサPEか割り当てられ
る。 第32図は、上記のように問題記述プログラム中にPE
割り付け指定記述を許す場合におけるPE割り付け処理
4のフロー図である。 ステップ401では、問題記述プログラム中にPE割り
付け指定文(*、DECOMP文)かあるか判定する。 あれば、ステップ402に進む。なければ、ステップ4
03に進む。 ステップ402では、PE割り付け定義文(*DECD
EF文)で定義された内容に従ってPE割り付け方式を
決定する。 ステップ403では、複数実行文並列仕掛定文(sPE
X文、IPEXEND文)かあるか判定する。あれば、
ステップ404に進む。なければ、ステップ406に進
む。 ステップ404では、*PEX文、IPEXEND文の
間の実行文の個数に応じて、各実行文に割り当てるPE
の個数を決定する。例えば、複数実行文並列化の対象の
実行文の個数をnとしたとき、<PE台数/ n >を
越えない最大の整数値を各実行文に割り当てるPE台数
とする。 ステップ405では、上記決定したPE台数に従って領
域分割を行ない、各文に対し別々のPHの組を割り当て
る。この際の領域分割およびPE割り付けは、従来知ら
れている自動PE割り付け方法により行なうことが出来
る。 ステップ406では、従来知られている目動PE割り付
け方法により、領域分割およびPE割り付けを行う。 本発明は、上記実施例に限定されるものではなく、その
要旨を逸脱しない範囲において変更することが出来る。 例えば、プログラム生成方法に対する入力を、上記実施
例では高水準の問題記述用言語によって記述されたプロ
グラムとしたが、FORTRAN等の汎用言語で記述し
たプログラムであっても良い。 また、プログラムの応用を、偏微分方程式で記述される
物理現象のシミュレーションとしたが、例えば複数個の
各々並列に実行可能なりoループを含む一般のFORT
RANプログラムであってもよい。この場合には、Do
小ループ処理される変数、配列を分割してプロセッサP
Hに割り付け、Do小ループよって繰り返し実行される
プログラム部分の合併と、各プロセッサPEが処理すべ
き変数、配列要素を指定する情報を記憶する変数と。 その変数を参照しつつ上記プログラム部分を実行する制
御部分とからなる並列計算機用プログラムか生成される
ことになる。
【発明の効果】 本発明のプログラム生成方法によれば、複数のプロセッ
サにより並列に実行するためのプログラムの作成工数を
大幅に低減することが出来る。 また、計算の種類が同じプログラムを共通化するので、
全体の記述量の少ないプログラムを生成することが出来
る。 また、プロセッサ間通信に用いるデータ識別子として、
所定の規則的で番号付けした数値を用いることにより、
データ識別子の管理のためのデータ量を少なくすること
か出来る。 また、データを必要とする処理毎にプロセッサ間通信を
行なうことにより、プロセッサが非同期に実行する処理
単位を大きくでき、実行途中でのプロセッサの待ち時間
を少なくし、実行性能を向上させることが出来る。
【図面の簡単な説明】
第1図は本発明の一実施例のプログラム生成方法の全体
のブロック図、第2図は並列計算機の構成図、第3図は
シミュレーションモデルの説明図、第4図は差分法によ
る数値シミュレーションのためのメツシュの説明図、第
5図は問題記述プログラムの例示図、第6図は生成され
るHC用プログラムの概略図、第7図は生成されるPE
用プログラムの概略図、第8図は空間領域の分割の例示
図、1ノ 第9図は節点の例示図、第10図はPE担当領域インデ
ックステーブルの例示図、第11図はスキームブロック
の例示図、第12図はDO小ループ御インデックス生成
処理のフロー図、第13図は離散式の種類に基つく空間
領域の分割の説明図、第14図は1つのPE担当領域の
離散式の種類に基づく領域分割の例示図、第15図はD
O小ループ御インデックステーブルの例示図、第16図
はPE間通信用key生成処理のフロー図、第17図は
1つのPEの受信データの定義点の例示図、第18図は
受信keyテーブルの例示図、第19図は他のl)Hの
受信データの定義点の例示図、第20図は12のPEの
送信データの定義点の例示図、第21図は送信keyテ
ーブルの例示図、第22図は)IC用プログラム生成処
理のフロー図、第23図(a)(b)はPE用プログラ
ムのメインバートの生成処理のフロー図、第24図はP
E用プログラムの実行文に対応するサブルーチンの生成
処理のフロー図、第25図はPE用プログラムの一部の
例示図、第26図は実行文に対応するサブルーチンの一
部の例示図、第27図はPE間データ転送サブルーチン
の一部の例示図、第28図は高水準言語中でのPE割り
付け方式指定の例示図、第29図は第28図のPE割り
付け方式指定に対応じた空間領域の分割の説明図、第3
0図は高水準言語中でのPE割り付け方式指定の他の例
示図、第31図(a)(b)は第30図のPE割り付け
方式指定に対応じた空間領域の分割の説明図、第32図
はPE割り付け処理のフロー図である。 (符号の説明) 1・・・プログラム生成方法 2・・並列実行のための情報生成処理 4・・・PE割り付け処理 5・・・DO小ループ御インデックステーブル生成処理 6・・・PE間通信用key生成処理 7・・PE担当領域インデックステーブル8・・Do小
ループ御インデックステーブル9・・・PE間通信用k
eyテーブル 10・・コード生成処理 11・・HC用プログラム 12・・PE用プログラム。

Claims (1)

  1. 【特許請求の範囲】 1、処理を行う範囲および処理を行う単位および処理の
    内容の情報に基づいて、処理を行う範囲を複数のプロセ
    ッサに分割し、各プロセッサが担当する範囲に含まれる
    処理の単位毎に処理の内容に応じた計算を各プロセッサ
    に行わせるプログラムを生成するプログラム生成方法で
    あって、 (a)処理を行う範囲を分割して複数のプロセッサに割
    り付け、 (b)各プロセッサに割り付けた範囲毎に、その範囲内
    の処理の単位における処理の内 容に対応する計算の種類を判定して同じ種 類の計算を行う単位同士を組とし、 (c)各組の各単位を指すインデックスにより繰り返し
    制御情報を生成し、 (d)計算の種類に応じた繰り返し計算プログラムを生
    成し、 (e)前記繰り返し制御情報に基づいて、各プロセッサ
    毎に、そのプロセッサに対応す る繰り返し制御部分と前記繰り返し計算プ ログラムとを組合せた部分を含むプログラ ムを生成する ことを特徴とするプログラム生成方法。 2、物理現象が起こっている空間領域および物理現象を
    数値的に解析するための節点および物理現象を数値的に
    解くための計算手順の情報を含む問題記述プログラムか
    ら、並列計算機上で上記物理現象のシミュレーションを
    行う並列計算機用プログラムを生成するプログラム生成
    方法であって、 (a)空間領域を分割して並列計算機の各プロセッサに
    割り付け、 (b)各プロセッサに割り付けた領域毎に、その領域内
    の各節点における計算の種類を 判定して同じ種類の計算を行う節点同士を 組とし、 (c)各組の節点を指すインデックスにより繰り返し制
    御情報を生成し、 (d)計算の種類に応じた繰り返し計算プログラムを生
    成し、 (e)各プロセッサ毎に、そのプロセッサに対応する繰
    り返し制御情報と前記繰り返し 計算プログラムとを組合せた部分を含むプ ログラムを生成する ことを特徴とするプログラム生成方法。 3、繰り返し制御部分が、各組の節点インデックス範囲
    の下限値を示す変数と、上限値を示す変数とを含むこと
    を特徴とする請求項1のプログラム生成方法。 4、空間領域内の各節点における計算の種類を判定して
    同じ種類の計算を行う節点が集合している領域に分割し
    、その分割した領域と各プロセッサに割り付けた領域の
    交わりをとることにより、各プロセッサに割り付けた領
    域毎における節点同士の組を得ることを特徴とする請求
    項2または請求項3のプログラム生成方法。 5、処理を行う範囲および処理を行う単位および処理の
    内容の情報に基づいて、処理を行う範囲を複数のプロセ
    ッサに分割し、各プロセッサが担当する範囲に含まれる
    処理の単位毎に処理の内容に応じた計算を各プロセッサ
    に行わせるプログラムを生成するプログラム生成方法で
    あって、 (a)計算の中の一つの式に対応するプログラム部分を
    実行する際に必要となり且つ他 のプロセッサから転送されることが必要な データを、式毎に抽出し、 (b)前記計算の中の一つの式に対応するプログラム部
    分を実行するより先に前記デー タを得るためのプロセッサ間通信を実行す るプログラム部分を生成する ことを特徴とするプログラム生成方法。 6、物理現象が起こっている空間領域および物理現象を
    数値的に解析するための節点および物理現象を数値的に
    解くための計算手順の情報を含む問題記述プログラムか
    ら、並列計算機上で上記物理現象のシミュレーションを
    行う並列計算機用プログラムを生成するプログラム生成
    方法であって、 (a)計算手順の中の一つの式に対応するプログラム部
    分を実行する際に必要となり且 つ他のプロセッサから転送されることが必 要なデータを、式毎に抽出し、 (b)前記計算手順の中の一つの式に対応するプログラ
    ム部分を実行するより先に前記 データを得るためのプロセッサ間通信を実 行するプログラム部分を生成する ことを特徴とするプログラム生成方法。 7、各プロセッサの全受信データにその受信データが定
    義された節点の位置関係を基に通し番号を付け、その通
    し番号をプロセッサ間通信でデータ識別子として用いる
    ことを特徴とする請求項6のプログラム生成方法。 8、受信データの定義された節点のインデックスの下限
    値、上限値およびデータ識別子の代表値を格納する配列
    の宣言部と、 送信データの定義された節点のインデック スの上限値、下限値および送信データ識別子の代表値お
    よび送信先プロセッサ番号を格納する配列の宣言部と、 上記配列に値を設定する値設定部と、 上記配列を引数としてデータ転送サブルー チンを呼び出すサブルーチン呼出部と を、プロセッサ間通信を実行するプログラム部分として
    生成することを特徴とする請求項7のプログラム生成方
    法。 9、データ転送サブルーチンが、データの定義された節
    点のインデックスと引数の配列の値とからデータ識別子
    を算出することを特徴とする請求項8のプログラム生成
    方法。 10、処理を行う範囲および処理を行う単位および処理
    の内容およびプロセッサ割り付け指定の情報に基づいて
    、処理を行う範囲を複数のプロセッサに分割し、各プロ
    セッサが担当する範囲に含まれる処理の単位毎に処理の
    内容に応じた計算を各プロセッサに行わせるプログラム
    を生成するプログラム生成方法であって、 (a)プロセッサ割り付け指定にしたがって処理を行う
    範囲を分割して複数のプロセッ サに割り付け、 (b)各プロセッサに割り付けた範囲毎に、その範囲内
    の処理の単位における処理の内 容に対応する計算の種類を判定して同じ種 類の計算を行う単位同士を組とし、 (c)各組の各単位を指すインデックスにより繰り返し
    制御情報を生成し、 (d)計算の種類に応じた繰り返し計算プログラムを生
    成し、 (e)前記繰り返し制御情報に基づいて、各プロセッサ
    毎に、そのプロセッサに対応す る繰り返し制御部分と前記繰り返し計算プ ログラムとを組合せた部分を含むプログラ ムを生成する ことを特徴とするプログラム生成方法。 11、物理現象が起こっている空間領域および物理現象
    を数値的に解析するための節点および物理現象を数値的
    に解くための計算手順およびプロセッサ割り付け指定の
    情報を含む問題記述プログラムから、並列計算機上で上
    記物理現象のシミュレーションを行う並列計算機用プロ
    グラムを生成するプログラム生成方法であって、 (a)プロセッサ割り付け指定にしたがって空間領域を
    分割して並列計算機の各プロセ ッサに割り付け、 (b)各プロセッサに割り付けた領域毎に、その領域内
    の各節点における計算の種類を 判定して同じ種類の計算を行う節点同士を 組とし、 (c)各組の節点を指すインデックスにより繰り返し制
    御情報を生成し、 (d)計算の種類に応じた繰り返し計算プログラムを生
    成し、 (e)前記繰り返し制御情報に基づいて、各プロセッサ
    毎に、そのプロセッサに対応す る繰り返し制御部分と前記繰り返し計算プ ログラムとを組合せた部分を含むプログラ ムを生成する ことを特徴とするプログラム生成方法。 12、物理現象が起こっている空間領域および物理現象
    を数値的に解析するための節点および物理現象を数値的
    に解くための計算手順およびプロセッサ割り付け指定の
    情報を含む問題記述プログラムから、並列計算機上で上
    記物理現象のシミュレーションを行う並列計算機用プロ
    グラムを生成するプログラム生成方法であって、 (a)プロセッサ割り付け指定にしたがって計算手順の
    中の独立に実行可能な複数の式 に並列計算機の各プロセッサを割り付ける とともに、空間領域を分割して並列計算機 の各プロセッサに割り付け、 (b)各プロセッサに割り付けた領域毎に、その領域内
    の各節点における計算の種類を 判定して同じ種類の計算を行う節点同士を 組とし、 (c)各組の節点を指すインデックスにより繰り返し制
    御情報を生成し、 (d)計算の種類に応じた繰り返し計算プログラムを生
    成し、 (e)前記繰り返し制御情報に基づいて、各プロセッサ
    毎に、そのプロセッサに対応す る繰り返し制御部分と前記繰り返し計算プ ログラムとを組合せた部分を含むプログラ ムを生成する ことを特徴とするプログラム生成方法。
JP32164490A 1990-11-26 1990-11-26 プログラム生成方法 Pending JPH04190422A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32164490A JPH04190422A (ja) 1990-11-26 1990-11-26 プログラム生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32164490A JPH04190422A (ja) 1990-11-26 1990-11-26 プログラム生成方法

Publications (1)

Publication Number Publication Date
JPH04190422A true JPH04190422A (ja) 1992-07-08

Family

ID=18134803

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32164490A Pending JPH04190422A (ja) 1990-11-26 1990-11-26 プログラム生成方法

Country Status (1)

Country Link
JP (1) JPH04190422A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001075538A1 (fr) * 2000-03-31 2001-10-11 Incs Inc. Dispositif, procede et programme de generation de donnees

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001075538A1 (fr) * 2000-03-31 2001-10-11 Incs Inc. Dispositif, procede et programme de generation de donnees
US6643560B2 (en) 2000-03-31 2003-11-04 Incs Inc. Data generating device, data generating method and data generating program

Similar Documents

Publication Publication Date Title
WO1994022077A2 (en) Apparatus and method for parallel computation
Amellal et al. Functional synthesis of digital systems with TASS
Barnat et al. Employing multiple CUDA devices to accelerate LTL model checking
US10956628B2 (en) High performance computing on a public grid
Mudalige et al. A plug-and-play model for evaluating wavefront computations on parallel architectures
Everaars et al. Using coordination to parallelize sparse-grid methods for 3-d cfd problems
Hadfield On the LU factorization of sequences of identically structured sparse matrices within a distributed memory environment
JP2014035548A (ja) 並列化方法、システム、及びプログラム
Butler et al. A facility for simulating multiprocessors
Soukov Parallel CFD-algorithm on unstructured adaptive meshes
McManus A strategy for mapping unstructured mesh computational mechanics programs onto distributed memory parallel architectures
JPH04190422A (ja) プログラム生成方法
Brook et al. Early application experiences with the Intel MIC architecture in a cray CX1
Cave et al. A new approach to parallel processing
Darema et al. Multipurpose Parallelism for VLSI CAD on the RP3
Woodward et al. Portable petaflop/s programming: Applying distributed computing methodology to the grid within a single machine room
Rose et al. Modeling and design description of hierarchical hardware/software systems
Xiao et al. Trade-offs between computation, communication, and synchronization in stencil-collective alternate update
Sikora et al. Conversion of a single process CFD code to distributed and massively parallel processing
Yamazaki et al. A Common CFD Platform UPACS
Ippolito et al. SABO-A self-assembling architecture for complex system simulation
Ghosh Parallelism in adaptivep-version finite element analysis
van der Ven et al. Experiences with advanced CFD algorithms on NEC SX-4
van Renterghem Transputers for industrial applications
Yarrow et al. Multiprocessing on supercomputers for computational aerodynamics