JPH0444181A - 並列変換処理方法 - Google Patents

並列変換処理方法

Info

Publication number
JPH0444181A
JPH0444181A JP15162490A JP15162490A JPH0444181A JP H0444181 A JPH0444181 A JP H0444181A JP 15162490 A JP15162490 A JP 15162490A JP 15162490 A JP15162490 A JP 15162490A JP H0444181 A JPH0444181 A JP H0444181A
Authority
JP
Japan
Prior art keywords
program
execution
variable
statement
value
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
JP15162490A
Other languages
English (en)
Inventor
Yukisuke Sakota
迫田 行介
Akira Muramatsu
晃 村松
Ikuo Yoshihara
郁夫 吉原
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 JP15162490A priority Critical patent/JPH0444181A/ja
Publication of JPH0444181A publication Critical patent/JPH0444181A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は逐次処理計算機用のソースプログラムを並列計
算機で実行できるプログラムに変換して実行する並列処
理方法に係り、特に数値計算によるシミュレーションプ
ログラムの並列実行に好適な並列処理方法に関する。
[従来の技術] 文献 (]、) N、 E、 Abel et al:TRA
NQU I L : Alanguage for a
n array processing comput
er;A F I P  S J CC、pp、57−
73.1969゜(2)  R,E 、  Mills
tein  Control  5tructures
in  l1liac  IV  FORTRAN;C
,ACM、1610、pp、621−627.1973
゜(3)国政、大沢、相離、用合:格子状接続並列計算
機のためのプログラミング言語PLAIN;情処研報、
86−82.86−NA−19,数値解析193.19
86.12゜5、 (4)斎藤、他:分散型共有メモリのためのFORTR
ANインターフェイス; 情報処理学会第38目金国大会講演論文集(TTI) 
PP、1480−1481゜(5)村岡洋−:並列処理
;昭晃堂、 ソフトウェア講座37、pp、134−154 、昭和
61年4月10日(1986)。
(6)中田育男:コンパイラ;産業図書、コンピュータ
サイエンス・ライブラリーpp、257−258、昭和
56年9月lO日(1981)。
(7)「プログラムの部分計算法」電気通信学会誌、第
86巻2号、ρp、157〜165(昭和58年2月号
)(8)演中、他:並列計算機H2Pのシステム構成;
情報処理学会第38目金国大会講演論文集(m)ppl
、486−1487゜ (9)申越、他:並列計算機H2Pのプロセッサ間同期
データ転送方式;情報処理学会 第38口金国大会講演論文集(m) pp、14881
489゜ (10)岩澤、他:並列プロセスFORTRAN言語と
処理系;情報処理学会第38目金国大会講演論文集(m
) pp、1490−1491゜(11)HITACプ
ログラムプロダク1へVO32/VO33最適化FOR
TRAN77言語文法書; 8080−3−257−0
1、pp、64−65゜複数の要素プロセッサ(以下P
Eと略す)をその構成要素とする並列計算機、特に文献
(8)にあるような、各PEが局所メモリを持ち、共有
メモリはないか、あるいはあってもそのアクセスが局所
メモリより遅いような疎結合型(分散メモリ型)並列計
算機は、従来の逐次型計算機とは異なり、文献(9)に
あるような、PE間の通信機能および同期処理機能を有
し、そのため、並列計算機用のプログラムは、並列計算
機の構成、PE間の通信方法および同期方法を意識して
設計する必要がある。そして、並列計算機固有の機能を
記述するためにプログラミング言語を従来の逐次処理用
の言語に対して通信処理や同期処理を行うための機能を
拡張している。この例としては、文献(10)、(1)
、(2)、(3)がある。
本発明の対象とする並列化変換処理は、文献(4)に記
載されているような、通常の逐次処理用の計算機プログ
ラムを入力し、並列計算機用のプログラムに自動変換す
るものである。
疎結合並列計算機用の自動並列化変換処理では、逐次処
理プログラムを入力し、その中で宣言されている並列デ
ータ(全体配列と呼ぶことにする)を部分配列データ(
部分配列と呼ぶこと番コする)に分割し、各PEにその
部分配列を割付け、続いて全体配列を処理する繰り返し
ループを解析し、繰り返しループ内の計算式間のデータ
の参照・依存関係を考慮してループを分割して各PEで
分担し、並列実行するようなPE用のプログラムと、そ
のPEプログラムを制御するホストプログラムを出力す
る。並列処理計算機のためのコンパイラ一般については
、例えば文献(5)に述べられている。
一般に、プログラムを汎用化するために、配列の大きさ
、式のパラメータ、係数などを変数としておき、実行時
に入力文で入力するように作ることが多いが、並列化変
換処理にとって効率よいプログラムを生成するのを妨げ
る要因となる。疎結合並列計算機で効率良く並列実行で
きるかどうかは、変換前の逐次処理プログラム内の全体
配列への参照を、PE用のプログラム内の部分配列への
効率良い参照に変換できるかどうかによる。従って、コ
ンパイル時に繰り返しループの制御変数の初期値、終値
、増分が確定している方が部分配列への参照方法が簡単
になり、効率の良いプログラムに変換できる可能性が高
い。コンパイル時に変数の値を確定させる従来技術には
、以下のものがある。
文献(11)に記載されているように、FORTRAN
プログラミング言語のパラメータ文は、コンパイル時に
計算する機能であるが、既に入力データにより確定する
ようになっている場合には、パラメータ文を組み込むた
めのプログラムの改造が必要になり、また、複雑な計算
をして値を確定する場合にはパラメータ文は利用できな
い。
定数伝播技術は、文献(6)に記載されているように、
コンパイラの最適化手法の1つで、コンパイル時にプロ
グラム中の定数で与えられたデータのみでユニークに確
定する変数の値を確定し、さらにその値を次々に伝播し
ていくことにより、より確定した部分を増やし、その結
果として最適化効果を高め、効率の良いオブジェクトに
コンパイルする方法である。しかし、入力データにより
確定する変数については効果がない。
部分実行手法は、文献(7)に記載されているように、
プログラムに入力データの一部を与え、それにより実行
可能な部分を実行し、プログラムをより簡約化し、効率
の良いプログラムに変換する方法であるが、文献(7)
にはプログラム内の繰り返しループの部分を各PEが分
担して実行するPE用のプログラムを出力とするような
並列化変換に対して、あるいはPE用のプログラムとホ
ス1−プロセッサ用のプログラムの両方を出方するよう
な変換に対しては言及されていない。
[発明が解決しようとする課題〕 上記従来技術では、汎用化のためやプログラムし易さの
点から、本来は定数でよいデータも変数で扱うようにし
ている。そのため逐次処理プロクラムから効率の良い並
列R1算機用並列プログラムが生成できないという問題
があった。
例えば、第8図(a)に示すFORTRANプログラム
で、文506と文507は、配列Aの要素にその要素の
添字の値を代入する繰り返しループであるが、その繰り
返しループの範囲は文504の入力文でこのプログラム
の外部から与えられている。このプログラムを並列計算
機で実行する場合、第10図に示すように、PEIにA
 (1) 。
A (5)、A (9)、A (13)の4つのデータ
を要素とする部分配列PA301を割付け、以下同様に
して、PE4にはA (4) 、 A (8) 、 A
(12) 、 A (1,6)を要素とする部分配列P
A304を割付ける。ホストプログラムは第8図(d)
の文531から文536に示すごと<PEプログラムを
制御し、一方、PEプログラムは第8図(e)の文74
4から748に示すごとく、全体配列Aの添字である■
(以下全体添字と呼ぶ)の繰り返し範囲M1..M2か
ら、部分配列PAの添字である変数J(以下部分添字と
呼ぶ)の繰り返し範囲(初期値N1、終値N2)を計算
して求める文群が必要になり、効率のよい並列プロクラ
ムを生成することができない。ここでは繰り返し範囲の
増分値を1としたが、この増分値も変数M3で与えられ
ている場合は、繰り返し範囲El、E2を計算して求め
る文群はもつと複雑な効率の悪いものになる。
従って、本発明の目的は、上記従来技術の問題点を解決
し、既存の逐次処理言語プログラムに対しても、効率良
い並列プログラムが生成できるような自動並列変換処理
方法を提供することにある。
[課題を解決するための手段] 上記目的を達成するため、本発明の並列処理方法は、そ
の基本構想として、単一の処理装置により実行するため
の第1のプログラム(逐次処理言語プログラム)を入力
とし、この第1のプログラムを並列処理のための第2の
プログラム、すなわち、第1のプログラム内の繰り返し
ループ部分を複数の処理装置(PE)が分担して実行す
る第2のプログラム(PEプログラム、並列プログラム
)に変換する(並列化変換を行う)に当り、入力した第
1のプログラム中の予め実行すべきプレ実行範囲を確定
して置き、この確定したプレ実行範囲を実行することに
よって、その後の並列化変換を行う際に参照される変数
を定数値に置き換えるように構成したことを特徴とする
具体的には、本発明は、第1のプログラム(逐次処理言
語プログラム)を入力とし、この第1のプログラム内の
繰り返し部分を第1の各処理装置(各PE)が分担して
実行する第2のプログラム(PEプログラム)、および
、これらの第2のプ0グラム全体を統括して制御する第
2の処理装置(ホストプロセッサ)が実行する第3のプ
ログラム(ホス1−プログラム)を出力する(プログラ
ムの並列化変換を行う)が、その際に、入力したプログ
ラム中の予め実行すべきプレ実行範囲を確定しておき、
その確定したプレ実行範囲を実行し、その後、プレ実行
範囲外で参照されている変数でその値がプレ実行直後に
確定しており、かつ、この変数がプレ実行範囲外で再定
義されることが変数の定義参照関係を解析することによ
り確認されているとき、この変数を参照する代りに、こ
の変数の持つ値(定数)で置き換えたものを参照して並
列変換するように構成したことを特徴とする。
[作用] 上記構成に基づく作用を説明する。
本発明によれば、プレ実行をすることによって、並列化
変換の際に並列処理効率を低下させる変数の値を確定し
、定数として扱えるようにしたので、効率の良い並列化
プログラムを生成することができるようになる。
例えば、第8図(e)のプログラムにおいて、プレ実行
により変数Ml、M2の値が確定し、Ml−4,M2=
16であることが分かれば、PEのプログラムは、第8
図(c)のように、効率良いものにすることができる。
多くの場合Ml、M2゜M3は単純な定数値がプログラ
ムの初期化処理で設定されることが多く、その値が並列
変換時に分かつていれば効率の良い並列プログラムに変
換できることが期待できる。
[実施例コ 以下に、本発明の一実施例を図面により説明する。
第1図は本発明の対象の1つとして好適な疎結合(メモ
リ分散型)並列計算機の例である。ホストプロセッサ1
はホスト処理装置2、ホス1〜メモリ3とからなり、外
部記憶装置4及び制御装置5と接続されている。要素プ
ロセッサ(以後PEと略す)群11〜14は各々要素プ
ロセッサ処理装置21〜24および要素プロセッサメモ
リ31〜34からなり、制御装置5を介してホス1−プ
ロセツサ1と接続され、さらに相互通信網6によりPE
間相互に通信可能である。
このような並列計算機システムで並列化変換コンパイラ
を用いて、逐次型言語で書いたプログラムを並列実行す
る方法の1つを第2図に示す。ホストプロセッサの制御
プログラム100〜103では、先ずステップ101で
並列化変換コンパイラ110〜113をホストメモリに
ロードし、起動する。起動された並列化変換コンパイラ
はステップ111で並列化変換処理を実行し、ステップ
112で、並列化変換されたホストプログラムとPEプ
ログラムをコンパイルして外部記憶装置4に格納し、制
御をホストプロセッサの制御プログラムに戻す。
並列化変換コンパイラにおけるデータの流れを第3図に
示す。第3図のステップ111では、外部記憶装置4に
格納しである逐次処理言語で書いたオリジナルソースプ
ログラム401と実行時に必要な入力データ402を入
力し、並列化変換処理を実行し、ホス1−プログラム4
.03とPEプログラム404を外部記憶装w4に出力
する。続いて、ステップ114と115で、ホストプロ
グラム403とPEプログラム404を入力し、コンパ
イルし、それぞれのオブジェクトプログラム405と4
06を外部記憶装置4に出力する。さらに、ステップ1
16と117で、それぞれのオブジェクトプログラム4
05と406を入力し、それぞれのオブジェクトライブ
ラリとリンクし、それぞれのロードモジュール409と
410を出力する。
第2図に戻り、ホストプロセッサの制御プログラムはス
テップ102でホスI・プログラム121〜124をホ
ストメモリにロードし、起動する。
ホストプログラムは、ステップ122でPEプログラム
131〜133を各要素プロセッサメモリにロードし、
起動する。PEプログラムは並列に計算を実行し、終了
するとホス1−プロセッサに完了信号を送る。ホストプ
ロセッサは全PEでのPEプログラムの完了を待って、
制御をホス1−プロセッサの制御プログラムに戻し、ス
テップ103で終了する。
次に、並列化変換コンパイラのステップ111で、第8
図(a)に示すFORTRANプログラム(並列化変換
処理を施す前のソースプロクラムとして示す)について
の並列化変換処理を、第4図の並列化変換処理200〜
208で説明する。
先ず、ステップ201で1よ、入力のオリジナルソース
プログラム501〜508を構文解析する。
文501は、プレ実行することを指示するプレ実行開始
指示文で、これを確認すると、第7図(プレ実行制御の
ためのデータ)のプレ実行フラグ91をオンにする。文
502と508は、この範囲が1つのプログラムEXで
あることを示す文であり、プログラム名を第5図(構文
解析処理で生成する名前表およびデータ領域の構成図)
の名前表40の名前文字列41に、名前種別をプログラ
ム名として登録する。文503は16個の要素データを
持つ配列Aを宣言する文で、第5図に示す名前表40、
および各変数に対応したデータ領域をホストメモリ内に
割付ける。第5図の名前表は、1つの名前に対応して1
つのエントリが作られる。各エントりは名前文字列41
、名前の種別(プログラム名とか変数名の区別。変数名
の場合には、さらに変数のデータ型や精度)42、変数
が配列の場合の次元数43、配列のとき、各次元のサイ
ズ44〜46、変数に割り付けたデータ領域のアドレス
47、定義済みフラグ48からなる。文504は外部か
らデータを読み込み変数M1とM2の値を定義する入力
文である。また、文505は、プレ実行の終了を指示す
るプレ実行終了指示文で、これを確認すると、第7図の
プレ実行範囲ポインタ92にその指示文の文表のアドレ
スをセットする。文506はループ制御変数工の初期値
を変数M1の値、終値を変数M2の値、増分値を値1と
し、以後文507までを繰り返すことを制御するDo文
、文507は、その繰り返しループの本体で、配列Aの
第1番目の配列要素に変数1の値を代入する代入文であ
る。
第6図は構文解析処理で生成する文表の構成と中間語の
例を示す図で、プレ実行する前の状態を示している。同
図で文表51にはソースプログラムの各文に対応したエ
ントリ52.53があり、各文を内部表現で構成した中
間語54.55のアドレスを保持している。中間語54
は第8図(a)のDO文506の中間語である。中間語
の要素61はこの中間語が00文であることを示し、以
下、62はD○ループ範囲、63は制御変数、64は初
期値、65は終値、66は増分値、への各ポインタであ
り、67から74はその実体であり、それぞれ変数か定
数かの区別を行うと共に、変数のときは名前表へのポイ
ンタ、定数のときは定数値そのもので表わしている。中
間語表55は第8図(a)の代入文507の中間語であ
る。中間語の要素75〜77は代入文であることの印と
、その左辺と右辺の中間語への各ポインタである。同様
に要素78〜80は代入先が配列要素の形式であること
の印と、配列と、その添字への各ポインタからなる。8
1〜86は変数であることの印と名前表へのポインタで
ある。
文508を認識すると構文解析処理201を終了する。
ステップ202では、プレ実行フラグ91をチエツクし
、オンであればステップ203を実行し、オンでなけれ
ばステップ203をスキップする。
ステップ203では、文人51の先頭のエントリのアド
レスをプレ実行文ポインタ93に設定し、以後プレ実行
文ポインタの指す文人エントリが指す文の中間語を解釈
実行する。この時、入力文、代入文などの変数の値を定
義する文であれば、その変数に対応したデータ領域49
(第5図)のデータの値の変更を伴い、かつ名前表の定
義済みフラグ48をオンにし、またプレ実行文ポインタ
93を次に解釈実行すべき文の文人51のエントリのア
ドレスに変更していく。そして、プレ実行文ポインタ9
3の値が、プレ実行範囲ポインタ92の値に等しくなっ
たとき、プレ実行処理203を終了する。
ステップ204では、プレ実行範囲ポインタ92が指す
文人のエントリの次のエントリが指す文の中間語から順
に、最後のエントリが指す文の中間語まで走査し、その
中間語内に現れた変数に対し、その変数に対する名前表
の定義済みフラグ48がオンであり、かつプレ実行終了
指示文から、全定数置換処理が対象としている文までの
、すべての実行経路でその変数の値がどの文でも再定義
されず、また、外部手続き呼び出しの引き数などになっ
て再定義されるような可能性もない場合に限り、その変
数の参照を定義されている定数の参照に変更する。第9
図はプレ実行後の文人の構成と中間語の例を示す構成図
である。第9図を第6図と比べると、例えば、第6図の
69〜72の変数M1と変数M2の参照はそれぞれ第9
図の69〜72の定数1と定数16の参照となる。
ステップ205では、文人51、中間語54゜55、名
前表40等を用いて、第8図(b)のホストプログラム
511〜515と同図(c)のPEプログラム521〜
527を生成する。実際にはそれぞれのプログラムに対
応する文人、中間語、名前表を新たに作成するが、以下
の説明は、分かり易さのために、そのソースプログラム
イメージで行うものとする。
ここでは、元のプログラム501〜508を4台のPE
で分担して実行する場合を考える。まず、第10図に示
すように配列A300を分散割付けし、PEIにA (
1) 、 A (5) 、 A (9) 、 A(13
)の4つのデータを要素とする部分配列PA301を割
付け、以下同様にして、PE4にはA (4) 、 A
 (8) 、 A (12) 、 A (16)を要素
とする部分配列PA304を割付ける。
ホストプログラムは第8図(b)に示すごとく文511
から文515までのプログラムとなる。文512はPE
プログラムPEXを各PEの局所メモリにロードする文
、文513は各PEにロードされたPEプログラムPE
Xを起動する文、文514は全PEプログラムの実行が
完了するのを待つ全同期処理文である。
一方、PEプログラムPEXは第8図(c)に示すごと
く、文521から文527までのサブルーチンとなる。
文521はPEプログラムの入口であることを示す文、
文522は部分配列PAをPEメモリ上に割り付けるた
めの文、文523は各PEが自分のPE番号を求めて変
数MYPEに設定するための文である。MYPENUM
 ()は自PE番号を取りだすためのシステムに用意し
である関数であり、各PEがハードウェア回路などで実
現してあり、通常の並列計算機システムでは必ず備えて
いる機能である。
文524は部分配列に対して繰り返しループを制御する
文、文525は部分配列に代入する代入文である。ここ
で、変数Jは部分配列PAの添字であるので部分添字と
呼び、これに対して全体配列Aの添字である■を全体添
字と呼ぶことにする。
全体添字の制御変数の初期値と終値と増分値が分かつて
いるので、部分添字の制御変数の初期値と終値と増分値
は容易に求めることができる。また、全体添字Iから部
分添字Jを含む式に変換したものが文525の代入文の
右辺の式である。
ステップ206では、第8図(b)511〜515に相
当する中間語から、そのソースプログラムに変換しく一
旦、ソースプログラムまで戻し)、外部記憶装置4に出
力する。
ステップ207では、第8図(c) 521〜527に
相当する中間語から、そのソースプログラムに変換しく
一旦、ソースプログラムまで戻し)、外部記憶装置4に
出力する。
ちなみに、本発明を適用しない場合には、ポストプログ
ラムは第8図(d)に示すごとく文531から536ま
でとなり、特に文532のREAD文が必要になり、P
Eプログラムで部分添字を計算2するためにMlとM2
を文514のPSTART文の引き数でPEプログラム
に渡す必要があり、また、PEプログラムPEXは第8
図(e)に示すごとく、文741から文752までのサ
ブルーチンとなる。文742は引き数Ml、M2がホス
トメモリ上に割り付けられている変数であることをコン
パイラに教えるための文、文743は部分配列PAをP
Eメモリ上に割り付けるための文である。全体添字の制
御変数の初期値M1と終値M2が変数のままであるので
、文745から文748までの全体添字の制御変数の初
期値M1、終値M2と自PE番号MYPEから部分添字
の制御変数の初期値N1、終値N2を計算するための文
群が必要になる。ここで、文745の変数IPには配列
要素A(Ml)が割り付けられたPEのPE番号(1〜
4)が求まり、文746の変数IXには全体配列Aの全
体添字がM1以上の要素の内、自PEに割り付けられた
要素の最小の全体添字が求まる。
これに対し、本発明によるプレ実行を行うことにより、
第8図(b) l (C)で説明したように、効率の良
い並列プログラムが生成できるようになる。
さらに、本発明を適用しないで、繰り返しループの制御
変数の増分値も変数(M3とする)で与えられていると
きには、この全体添字の制御変数の初期値M1、終値M
2、増分値M3と自PE番号MYPEから部分添字の制
御変数の初期値E1、終値E2、増分値E3を計算する
ためのさらに複雑な文群が必要になり5本発明を適用し
た場合の効果がさらに大きいことが容易に推測できる。
本発明では、分散メモリ型並列計算機システム用の、通
常の逐次処理プログラムから並列処理プログラムに並列
化変換するプリプロセッサ等の処理において、ソースプ
ログラム中に変数が与えられ、その値が外部からのデー
タ入力文あるいはプログラム内で複雑な計算処理により
確定される場合にも、プレ実行することにより、並列化
変換時にそれらの変数を定数値として扱えるようになる
ため、効率良い並列プログラムに並列化変換することが
可能になる。したがって、本発明は、次の第11図に示
すようなソースプログラムに対しても実行効率の高い並
列プログラムを生成することができるようになる。
第11図(a) 551〜558に示すようなプログラ
ムEYで、文553はそれぞれ16の要素を持つ配列A
と配列Bと配列りを宣言する文で、文554は外部から
データを読み込み配列りの16の要素の値を定義する入
力文である。文556はループ制御変数工の初期値を値
1、終値を値16、増分値を値1とし、以後文557ま
でを繰り返すことを制御する00文、文557は、その
繰り返しループの本体で、配列Aの第L (I)番目の
配列要素に配列Bの第■要素B (I)の値を代入する
代入文である。配列AおよびBをそれぞれ第12図(a
)および同図(b)のように4つのPEに分散割付けし
、配列りはホストメモリに割り付けておく。
配列りの各要素の持つ値は、第12図(c)のようにな
っていたとすると、例えば、■が1のときには、PEI
がB(1)の値を配列の要素A(L(1))、即ちA(
4)に代入する必要があるが、A(4)はPE4に割り
付けられているため、B(1)の値をPEIからPE4
に送信し、PE4はPEIから受信しなければならない
配列りの各要素の値が並列化変換時に確定していない場
合には、Lの値に依らずに実行できるような文群を生成
する必要がある。
ところが、本発明を適用すれば、第11図(a)の文5
51でプレ実行することが指定され、文555までがプ
レ実行される。この時点で配列りの各要素の値は確定し
、もし、以後配列りの各要素の値が再定義されないこと
が、解析により明らかになれば、より効率の良いPEプ
ログラムを生成することができる。例えば、配列りの各
要素の値が、第12図(c)のように、すへての要素の
値が1から16の間で、かつ同一値のものが存在してい
ない場合には、各全体添字1から16までに対して、送
信先と受信先のPEは必ずそれぞれ1つずつ存在するこ
とが明らかであるので、例えば第11図(b)のホス1
−プログラムおよび同図(c)のような効率の良いPE
プログラムが生成できるようになる。
第11図(b)において、文562は配列りと配列IL
の宣言文であり、文564と文565は参照関係を示す
配列りの逆の参照関係を示す配列■Lの要素の値を定義
する繰り返しループである。
第12図(c)の参照インデックス配列りに対する逆参
照インデックス配列ILを第12図(d)に示す。文5
67は各PEにロードされたPEプログラムPEYを、
引き数りとILを渡して起動する文である。また、第1
1図(C)において、文571から文573でホストメ
モリ上の配列りとILを引き数として受取り、文574
では部分配列AとBが宣言されている。繰り返しループ
576から580では、まず文576で部分添字Jに関
する繰り返しループを定義し、文577で対応する全体
添字Iを求めている。文578は全体配列Aの第r−(
B要素が割り付けられているPEの番号を求める計算を
し、変数IPに代入している文であり、文579は部分
配列PBの第J要素を、全体配列Aの第L (1)要素
が割り付けられているPEの通信バッファの第1番目の
エントリに送信する文である。文580は全体添字の値
IL(I)を持った配列Bの要素が割り付けられたPE
から自PEへの送信に対する受信処理を行う文であり、
通信バッファの第1L (I)番目のエントリから部分
配列PAの第J要素に取り込む。ここで、MOD (L
 (I)−1,4)+1の値がMOD (11,4,)
+1と等しい場合は、同−PE内で転送が発生するが、
この暗文581は自PEの通信バッファに書き込むもの
とする。
上記実施例では、プログラムに判定文や分岐文を含んで
いないが、これらを含んでいる場合でも、制御の流れを
解析し、また変数の値がどの文で定義され、その値がど
の文で参照されているかを解析することにより、プレ実
行により確定した値がどの実行経路でどの文まで有効か
は、容易に判定することができる。また、その変数が外
部手続き呼び出しの引き数になっている場合には、再定
義されたものとすれば問題はない。
上記実施例では、ステップ201で作成した中間語をス
テップ203で解釈実行する方法であるが、ステップ2
03でプレ実行する範囲の中間語をコンパイルし、直接
実行するようにしてもよいことはその目的から明らかで
ある。
プレ実行は、コンパイラで行なってもよいし、インタプ
リタで行なってもよい。
上記実施例では対象とするプログラミング言語としてF
ORTRANを仮定しているが、FORTRAN以外の
言語に対しても同様の方法が適用でき、同様の効果が得
られることは容易に類推できる。
本実施例ではプレ実行終了指示文あるいはプレ実行開始
指示文は、コメント形式の文としたが、コメン1−の形
式の文である必要は特にない。
また、プレ実行終了指示文をユーザが指定する代りに、
プログラムを解析し、プログラム全体の中での繰り返し
ループの位置関係と制御の流れを基に確定することも可
能である。つまり、通常の数値シミュレーションプログ
ラムでは、第13図(数値シミュレーションプログラム
構造図)に示すように、初期化処理601に続いて文6
02〜607のような時間の経過を追う時間ステップに
関する大きなシミュレーションループがあり、この中で
いくつかの計算処理603〜605があり、同じくルー
プ内に中間結果の表示や退避などの中間結果処理606
、最後の最終結果出力608等からなるのが普通である
。そして初期化処理で確定するデータのうち1問題の大
きさや、構造により決定するデータのほとんどは、以後
のシミュレーションループ本体で変更されることがない
。このことはプログラムのデータフロー解析をすること
で容易に知ることができる。
第15図は、プレ実行の範囲を自動的に解析するだめの
フローを示し、同図に示すごとく、先ずステップ901
でプログラムの実行の流れを解析し、合流分岐を中に含
まない単一の流れを1つのブロックとし、第14図に示
すようなブロックに関する有向グラフを作成する。第1
4図で、ブロック801は入口ブロック、ブロック81
3は出口ブロックである。次にステップ902で、入口
ブロック801から順にすべてのブロックをたどり、ル
ープを見つける。ブロック803と804゜805と8
06,810と811はループの例である。809から
812も中にループを持ったループである。次にステッ
プ903で、各ループの中のプログラムステップ数と繰
り返し予想回数を掛は算して、ループの実行コス1−(
実行時間に相当)を計算する。繰り返し予想回数として
は、繰り返し数が分かつているものはその値、分からな
いものについては例えば−律100とする。ステップ9
04で、すべてのループについて実行コストを求めて、
その内の最大の実行コストを待ったループを1つ選び、
そのループの先頭ブロックを開始ブロックとする。次に
ステップ905で、入口ブロックから開始ブロックに至
る、同一ブロックを2度以上通らない任意の1つのパス
を選び、そのパス上のブロックの内、入口ブロックから
出口ブロックに至るすべてのパスが必ず通るブロックを
共通ブロックとする。次にステップ906で。
共通ブロックの内、開始ブロックを除き、最も入口ブロ
ックから遠いブロックを最終ブロックとする。最後にス
テップ907で、最終ブロックの最後にプレ実行最終指
示文を追加する。ただし、最終ブロックが判定分岐文で
終っている場合はその判定分岐文の前にプレ実行最終指
示文を追加する。
このようにして、プレ実行最終指示文をユーザが指定し
なくても並列化処理プログラムで解析してプレ実行範囲
を決定することが可能である。
上記実施例では、各PEとは別に、PE全体を統括制御
するホストプロセッサを設けたが、ホストとPEを区別
しなくてもよい。
上記実施例で用いた分散メモリ型並列実行計算機に対応
した並列化変換プログラムのみならず、共有メモリ型並
列実行計算機に対応した並列化変換プログラムについて
も同様に実施可能であり、かつ効果が得られることは容
易に類推できる。さらに、ベクトル計算機(スーパコン
ピュータ)や通常の逐次型計算機用のコンパイラについ
ても同様に実施可能であり、かつ効果が得られることも
容易に類推できる。
次に、第16図ないし第18図により、本発明の別の構
成の装置による実施例を説明する。
第16図は本発明の対象の1つとして好適な疎結合(メ
モリ分散型)並列計算機の別の例である。
並列変換処理装置1600は、ホストメモリ3を持つホ
ストプログラム実行部1601、外部記憶装置4及び制
御装置5と接続されている。PEプログラム実実行部上
11〜14各々要素プロセッサメモリ31〜34を持ち
、制御装置5を介して並列変換処理装置1600と接続
され、さらに相互通信網6によりPEプログラム実行部
間相互に通信可能である。
このような並列計算機システムで並列変換処理装置16
00を用いて、逐次型言語で書いたプログラムを並列実
行する方法を第17図に示す。並列変換処理装置160
0は、先ず、プレ実行並列化部1701で逐次計算機ソ
ースプログラムを入力し、ホスト用ソースプログラム4
03、PE用ソースプログラム404を出力し、ホスト
プログラムコンパイルリンク部17o2を起動する。ホ
ストプログラムコンパイルリンク部1702は、ホスト
用ソースプログラム403をホストロードモジュール4
09に変換し、PEプログラムコンパイルリン9部17
03を起動する。PEプログラムコンパイルリン9部1
703は、PE用ソースプログラム404をPEロード
モジュール410に変換し、ホストプログラムロード部
1704を起動する。ホストプログラムロート部170
4はホストロードモジュール409をホストメモリ3に
ロードし、PEプログラムロード部1705を起動する
。PEプログラムロード部1705はPEロードモジュ
ール410を各PEメモリ31〜34にロードし、ホス
トプログラム実行部1601とPEプログラム実行部1
1〜14を起動する。ホストプログラム実行部16o1
はホストプログラムを実行し、各PEプログラム実行部
11〜14はPEプログラムを並列に実行し、PEプロ
グラム実行部11〜14は実行を終了するとホス1−プ
ログラム実行部1601に完了信号を送り、ホストプロ
グラム実行部1601はPEプログラム実行部11〜1
4の完了を待って、並列変換処理装置1600に制御を
戻し、並列実行処理を終了する。
次に、プレ実行並列化部1701で、第8図(a)に示
すFORTRANプログラム(並列化変換処理を施す前
のソースプログラムとして示す)についての並列化変換
の動作を第18図に示す。先ず、第18図の構文解析部
1801で、入力のオリジナルソースプログラム501
〜508を構文解析する。文501はプレ実行すること
を指示するプレ実行開始指示文で、これを認識すると、
第7図(プレ実行制御のためのデータ)プレ実行フラグ
91をオンにする。文502と文508は、この範囲が
1つのプログラムEXであることを示す文であり、プロ
グラム名を第5図(構文解析処理で生成する名前表およ
びデータ領域の構成図)の名前表40の名前文字列41
に、名前種別をプログラム名として登録する。文503
は16個の要素データを持つ配列Aを宣言する文で、第
5図に示す名前表40、および各変数に対応したデータ
領域をホストメモリ内に割付ける。第5図の名前表は、
1つの名前に対応して1つのエントリが作られる。各エ
ントリは名前文字列41、名前の種別(プログラム名と
か変数名の区別。変数名の場合には、さらに変数のデー
タ型や精度)42、変数が配列の場合の次元数43、配
列のとき、各次元のサイズ44〜46、変数に割り付け
たデータ領域のアドレス47、定義済みフラグ48から
なる。
文504は外部からデータを読み込み変数M1とM2の
値を定義する入力文である。また、文505は、プレ実
行の終了を指示するプレ実行終了指示文で、これを認識
すると、第7図のプレ実行範囲ポインタ92にその指示
文の文人のアドレスをセラI・する。文506はループ
制御変数■の初期値を変数M1の値、終値を変数M2の
値、増分値を値1とし、以後文507までを繰り返すこ
とを制御する00文、文507は、その繰り返しループ
の本体で、配列Aの第1番目の配列要素に変数丁の値を
代入する代入文である。
第6図は、構文解析処理で生成する文人の構成と中間後
の例を示す図で、プレ実行する前の状態を示している。
同図で文人51にはソースプログラムの各文に対応した
エントリ52.53があり、各文を内部表現で構成した
中間語54.55のアドレスを保持している。中間語5
4は第8図(a)のDo文506の中間語である。中間
語の要素61はこの中間語がDo文であることを示し、
以下、62はDoループ範囲、63は制御変数、64は
初期値、65は終値、66は増分値、への各ポインタで
あり、67から74はその実体であり、それぞれ変数か
定数かの区別を行うと共に、変数のときは名前表へのポ
インタ、定数のときは定数値そのもので表わしている。
中間語表55は第8図(a)の代入文507の中間語で
ある。中間語の要素75〜77は代入文であることの印
と、その左辺と右辺の中間語への各ポインタである。同
様に要素78〜80は代入先が配列要素の形式であるこ
との印と、配列と、その添字式への各ポインタからなる
。81〜86は変数であることの印と名前表へのポイン
タである。
文508を認識すると構文解析部1801の動作を終了
し、プレ実行指示の検出部1802を起動する。
プレ実行指示の検出部1802では、プレ実行フラグ9
1をチエツクし、オンであればプレ実行処理部1803
を起動し、オンでなければ定数置換処理部1804を起
動する。
プレ実行処理部1803では、文人5jの先頭のエン1
−りのアドレスをプレ実行文ポインタ93に設定し、以
後プレ実行文ポインタの指す文人エントリが指す文の中
間語を解釈実行する。この時、入力文、代入文などの変
数の値を定義する文であれば、その変数に対応したデー
タ領域49(第5図)のデータの値の変更を伴い、かつ
名前表の定義済みフラグ48をオンにし、またプレ実行
文ポインタ93を次に解釈実行すべき文の文人51のエ
ントリのアドレスに変更していく。そして、プレ実行文
ポインタ93の値が、プレ実行範囲ポインタ92の値に
等しくなったとき、プレ実行処理部1803の動作を終
了し、定数置換処理部1804を起動する。
定数置換処理部1804では、プレ実行範囲ポインタ9
2が指す文人のエントリの次のエントりが指す文の中間
語から順に、最後のエントりが指す文の中間語まで走査
し、その中間語内に現れた変数に対し、その変数に対す
る名前表の定義済みフラグ48がオンであり、かつプレ
実行終了指示文から、全定数置換処理が対象としている
文までの、すべての実行経路でその変数の値がどの文で
も再定義されず、また、外部手続き呼び出しの引き数な
どになって再定義されるような可能性もない場合に限り
、その変数の参照を定義されている定数の参照に変更す
る。第9図はプレ実行後の文書の構成と中間語の例を示
す構成図である。第9図を第6図と比べると、例えば、
第6図の69〜72の変数M1と変数M2の参照はそれ
ぞれ第9図の69〜72の定数1と定数16の参照とな
る。
定数置換処理部1804は処理を終えると、ホストプロ
グラム・PEプログラムの分離・変換処理部1805を
起動する。
ホストプログラム・PEプログラムの分離・変換処理部
1805は、文人51、中間語54,55、名前表40
等を用いて、第8図(b)のホストプログラム511〜
515と同図(c)のPEプログラム521〜527を
生成する。実際にはそれぞれのプログラムに対応する文
人、中間語、名前表を新たに作成するが、以下の説明は
、分かり易さのために、そのソースプログラムイメージ
で行うものとする。
ここでは、元のプログラム501〜508を4台のPE
で分担して実行する場合を考える。まず、第10図に示
すように配列A300を分散割付けし、PEIにp、 
(1) 、 A (5) 、 A (9) 、 A(j
3)の4つのデータを要素とする部分配列PA301を
割付け、以下同様にして、PE4にはA (4) 、 
A (8) 、 A (12) 、 A (16)を要
素とする部分配列PA304を割付ける。
ホストプログラムは第8図(b)に示すごとく文511
から文515までのプログラムとなる。文512はPE
プログラムPEXを各PEの局所メモリにロードする文
、文513は各PEにロートされたPEプログラムPE
Xを起動する文、文514は全PEプログラムの実行が
完了するのを待つ全同期処理文である。
一方、PEプログラムPEXは第8図(c)に示すごと
く、文521から文527までのサブルーチンとなる。
文521はPEプログラムの入口であることを示す文、
文522は部分配列PAをPEメモリ上に割り付けるた
めの文、文523は各PEが自分のPE番号を求めて変
数MYPEに設定するための文である。MYPENUM
 ()は自PE番号を取りだすためのシステムに用意し
である関数であり、各PEがハードウェア回路などで実
現してあり、通常の並列計算機システムでは必ず備えて
いる機能である。
文524は部分配列に対して繰り返しループを制御する
文、文525は部分配列に代入する代入文である。ここ
で、変数Jは部分配列PAの添字であるので部分添字と
呼び、これに対して全体配列Aの添字である■を全体添
字と呼ぶことにする。
全体添字の制御変数の初期値と終値と増分値が分かつて
いるので、部分添字の制御変数の初期値と終値と増分値
は容易に求めることができる。また、全体添字■から部
分添字Jを含むの式に変換したものが文525の代入文
の右辺の式である。ホス1〜プログラム・PEプログラ
ムの分離・変換処理部1805の処理を終えると、ホス
トプログラム生成部1806を起動する。
ホストプログラム生成部1806は、第8図(b)51
1〜515に相当する中間語から、そのホストソースプ
ログラム403に変換しく一旦、ソースプログラムまで
戻し)、外部記憶装置4に出力し、PEプログラム生成
部]807を起動する。
PEプログラム生成部1807は、第8図(c)521
〜527に相当する中間語から、そのソースプログラム
に変換しく一旦、ソースプログラムまで戻し)、外部記
憶装置4に出力し、処理を終える。
以上の実施例によれば、分散メモリ型並列計算機システ
ム用の、通常の逐次処理プログラムから並列処理プログ
ラムに並列化変換するブリプロセッサ等の処理において
、ソースプログラム中で分散割付けされた配列の添字の
値をきめるデータが変数で与えられていて、並列処理す
る場合に、多大なオーバヘッドを生じる並列プログラム
しか生成出来ないような場合にも、プレ実行することに
より、並列化変換時にそれらの変数を定数値として扱え
るようになるため、効率良い並列プログラムに並列化変
換することが可能になるという効果を奏する。例えば、
全体添字に関するDoループの制御変数の初期値、終値
、増分値が変数で与えられている場合、部分添字に関す
るDoループの制御変数の初期値、終値、増分値が並列
化変換時に求められ、実行効率のよい並列プログラムに
変換できるようになる。
また、」二連の実施例によれば、例えば、ソースプログ
ラム内のA (L (I) ’) =B (I)のよう
な演算を並列実行計算機で実行する場合に、プロセッサ
間の通信負荷の小さな、効率良い並列プロセッサを生成
することが可能になり、特に並列実行計算機で実行させ
る場合には、各種の実行時のオーバヘッドを低減するの
に効果がある。
[発明の効果] 以上詳しく述へたように、本発明によれば、逐次処理プ
ログラム(第1プログラム)から並列処理プログラム(
第2プログラム)に並列化変換を行うプロセッサ等の処
理システムにおいて、予め、第1プログラム中のプレ実
行範囲を確定して該プレ実行範囲を実行することによっ
て、並列化変換を行う際に、変数として参照する代りに
その変数の持つ値で置き換えた定数として参照すればよ
いので、きわめて効率の良い並列化プログラムを効率よ
く生成できるという効果を奏する。
【図面の簡単な説明】
第1図は本発明の一実施例の分散メモリ型並列実行計算
機システムの全体構成図、第2図は本実施例における並
列計算処理の全体の手順を示す流れ図、第3図はデータ
の流れの関係に対応した並列化変換コンパイラの手順を
示す流れ図、第4図は並列化変換コンパイラの並列化変
換処理の手順を示す流れ図、第5図は構文解析処理で生
成する名前表の構成とデータ領域を示す図、第6図は構
文解析処理で生成する文人の構成と中間語の例を示す図
、第7図はプレ実行を制御するデータの構成図、第8図
は本実施例の入力となるソースプログラムの例を示す図
、第9図は定数置換を施した結果の中間語の例を示す図
、第10図はデータ要素の配列を分散割り付けした例を
示す図、第11図は本実施例の入力となるソースプログ
ラムの別の例を示す図、第12図は配列を分散割り付け
した例と参照インデックス配列および逆参照インデック
ス配列の例を示す図、第13図は数値シミュレーション
プログラムの構造図、第14図はブロツクの有向グラフ
の例を示す図、第15図はプレ実行の範囲を自動的に解
析する手順を示す流れ図、第16図は本発明の他の実施
例の分散メモリ並列実行計算機システムの全体構成図、
第17図は第16図の実施例におけるデータの流れに対
応した並列化変換コンパイラの手順を示す流れ図、第1
8図は第17図の並列化変換コンパイラの並列化変換処
理の手順を示す流れ図である。 1  ホストプロセッサ、11〜14・・・・・・要素
プロセッサ(PE)、1.OO〜103・・・・・ホス
トプロセッサの制御プログラム、110〜117・・・
・並列化変換コンパイラ、121〜124 ・・・ホス
トプロクラム、131〜133・・ PEプログラム、
200〜208・・・・並列化変換処理、40名前表、
49・・・・・・データ領域、51・・−・文人、54
〜55・ ・中間語、91〜93・・・ プレ実行を制
御するデータ、501〜508・・・・入力プログラム
、511〜515・・・・・・並列化変換のホストプロ
グラム、521〜527・・・本発明適用時のPEプロ
グラム、531〜536・・・・本発明非適用時のホス
トプログラム、741〜752・・・・・本発明非適用
時のPEプログラム。

Claims (1)

  1. 【特許請求の範囲】 1、1つの処理装置のみで実行するための第1のプログ
    ラムから、該第1のプログラム中に存在する繰り返しル
    ープ処理を複数の処理装置で分担して実行する第2のプ
    ログラムに変換し、前記複数の処理装置に前記第2のプ
    ログラムを供給する並列化変換ステップを備えた並列処
    理システムにおいて、前記並列化変換ステップは、少な
    くとも、前記第1のプログラム中の予め実行すべきプレ
    実行範囲を確定する確定ステップと、前記確定ステップ
    で確定した第1のプログラム中のプレ実行範囲を実行す
    るステップと、変数の値の定義参照関係を解析するステ
    ップと、前記プレ実行後に前記第1のプログラム中でか
    つ前記プレ実行範囲外において参照されている変数につ
    いて、この変数の値が前記プレ実行直後に確定しており
    、かつ、前記第1のプログラム中の前記プレ実行範囲以
    後の定義でこの変数の値が再定義されることがないこと
    が前記解析ステップにより確認されているとき、この変
    数に代えて、この変数の持つ値として定義されている定
    数を参照する定数置換ステップとを備えたことを特徴と
    する並列処理方法。 2、各々局所メモリを持ち相互結合網により互いに結合
    された複数の第1の処理装置と、前記複数の処理装置に
    接続され前記複数の処理装置の動作を制御する第2の処
    理装置とからなり、1つの処理装置のみで実行するため
    の第1のプログラムから、該第1のプログラム中に存在
    する繰り返しループ処理を前記複数の第1の処理装置で
    分担して実行する第2のプログラムと、前記複数の第1
    の処理装置の繰り返しループ処理の実行を制御する第3
    のプログラムとに変換し、前記複数の第1の処理装置に
    前記第2のプログラムを供給すると共に前記第2の処理
    装置に前記第3のプログラムを供給する並列化変換ステ
    ップを備えた並列処理システムにおいて、前記並列化変
    換ステップは、少なくとも、前記第1のプログラム中の
    予め実行すべきプレ実行範囲を確定する確定ステップと
    、前記確定ステップにより確定した第1のプログラム中
    のプレ実行範囲を実行するステップと、変数の値の定義
    参照関係を解析するステップと、前記プレ実行後に前記
    第1のプログラム中でかつ前記プレ実行範囲外において
    参照されている変数について、この変数の値が前記プレ
    実行直後に確定しており、かつ、前記第1のプログラム
    中の前記プレ実行範囲以後の定義でこの変数の値が再定
    義されることがないことが前記解析手段により確認され
    ているとき、この変数を参照するのに代えて、この変数
    の持つ値として定義されている定数を参照する定数置換
    ステップとを備えたことを特徴とする並列処理方法。 3、前記予め実行すべきプレ実行範囲を確定する確定ス
    テップは、前記第1のプログラム中にプレ実行範囲を特
    定する指示文を置き、この指示文を解読することにより
    プレ実行範囲を確定するステップで構成したことを特徴
    とする請求項1または2記載の並列処理方法。 4、前記予め実行すべきプレ実行範囲を確定する確定ス
    テップは、前記第1のプログラムを解析して、プログラ
    ム全体の中における繰り返しループの位置関係および制
    御の流れを基にプレ実行範囲を確定するステップで構成
    したことを特徴とする請求項1または2記載の並列処理
    方法。
JP15162490A 1990-06-12 1990-06-12 並列変換処理方法 Pending JPH0444181A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15162490A JPH0444181A (ja) 1990-06-12 1990-06-12 並列変換処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15162490A JPH0444181A (ja) 1990-06-12 1990-06-12 並列変換処理方法

Publications (1)

Publication Number Publication Date
JPH0444181A true JPH0444181A (ja) 1992-02-13

Family

ID=15522616

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15162490A Pending JPH0444181A (ja) 1990-06-12 1990-06-12 並列変換処理方法

Country Status (1)

Country Link
JP (1) JPH0444181A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092097A (en) * 1993-03-12 2000-07-18 Kabushiki Kaisha Toshiba Parallel processing system with efficient data prefetch and compilation scheme
WO2010134250A1 (ja) * 2009-05-22 2010-11-25 日本電気株式会社 スクリプト記述分離再構築装置、スクリプト記述分離再構築方法及びスクリプト記述分離再構築プログラムが格納された非一時的なコンピュータ可読媒体
JP2015207318A (ja) * 2008-12-01 2015-11-19 ケーピーアイティ テクノロジーズ リミテッド 逐次コンピュータプログラムコードを並列処理する方法及びシステム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092097A (en) * 1993-03-12 2000-07-18 Kabushiki Kaisha Toshiba Parallel processing system with efficient data prefetch and compilation scheme
JP2015207318A (ja) * 2008-12-01 2015-11-19 ケーピーアイティ テクノロジーズ リミテッド 逐次コンピュータプログラムコードを並列処理する方法及びシステム
WO2010134250A1 (ja) * 2009-05-22 2010-11-25 日本電気株式会社 スクリプト記述分離再構築装置、スクリプト記述分離再構築方法及びスクリプト記述分離再構築プログラムが格納された非一時的なコンピュータ可読媒体
JP5472296B2 (ja) * 2009-05-22 2014-04-16 日本電気株式会社 スクリプト記述分離再構築装置、スクリプト記述分離再構築方法及びスクリプト記述分離再構築プログラム
US9032365B2 (en) 2009-05-22 2015-05-12 Nec Corporation Script description separation reconstructing device, script description separation reconstructing method, and non-transitory computer readable medium storing script description separation reconstructing program

Similar Documents

Publication Publication Date Title
Gross et al. Task parallelism in a High Performance Fortran framework
Zima et al. SUPERB: A tool for semi-automatic MIMD/SIMD parallelization
Blelloch et al. Implementation of a portable nested data-parallel language
Bozkus et al. Compiling Fortran 90D/HPF for distributed memory MIMD computers
WO2001098898A1 (en) Methods and apparatus for indirect vliw memory allocation
Philippsen et al. Modula-2* and its compilation
JPH0444181A (ja) 並列変換処理方法
Abramov et al. OpenTS: an outline of dynamic parallelization approach
Steele Jr High performance Fortran: status report
Barve et al. Parallelism in C++ programs targeting objects
Scherger et al. Multiple instruction stream control for an associative model of parallel computation
Cremers et al. On programming VLSI concurrent array processors
Bozkus et al. Compiling hpf for distributed memory mimd computers
Babb et al. Retargetable high performance Fortran compiler challenges
Li et al. swTVM: Towards Optimized Tensor Code Generation for Deep Learning on Sunway Many-Core Processor
Shieh et al. Fine grain mapping strategy for multiprocessor systems
Milligan et al. Fortport: An environment for the development of parallel fortran programs
Konda et al. A simdizing c compiler for the mitsubishi electric neuro4 processor array
Di Gesu’ A high level language for pyramidal architectures
Chaudhary et al. Design and evaluation of an environment ape for automatic parallelization of programs
Habel et al. Generating Efficient Parallel Programs for Distributed Memory Systems
Greenlaw et al. Achieving speedups for APL on an SSIMD parallel computer
JP3233467B2 (ja) プログラム変換方法および装置
Arapov et al. Managing the computing space in the mpC compiler
Dai Code parallelization for the LGDG large-grain dataflow computation