JP2765861B2 - 並列化コンパイル方法 - Google Patents

並列化コンパイル方法

Info

Publication number
JP2765861B2
JP2765861B2 JP21246488A JP21246488A JP2765861B2 JP 2765861 B2 JP2765861 B2 JP 2765861B2 JP 21246488 A JP21246488 A JP 21246488A JP 21246488 A JP21246488 A JP 21246488A JP 2765861 B2 JP2765861 B2 JP 2765861B2
Authority
JP
Japan
Prior art keywords
parallel
program
loop
data
processing
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
JP21246488A
Other languages
English (en)
Other versions
JPH0261727A (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 JP21246488A priority Critical patent/JP2765861B2/ja
Publication of JPH0261727A publication Critical patent/JPH0261727A/ja
Application granted granted Critical
Publication of JP2765861B2 publication Critical patent/JP2765861B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Multi Processors (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、並列計算機システムに係り、特に逐次実行
型の高級言語で記述されたソース・プログラムから、並
列に実行するのに好適なオブジエクトプログラムを生成
する並列化コンパイル方法に関する。
〔従来の技術〕
従来、マルチプロセツサのような並列処理システムに
おいては、ユーザインターフエースとして逐次型のソー
スプログラムに、並列化の手段、タスクの起動,同期な
どの指示を明示的にユーザが記述する必要があつた。
“A Data Flow Approach to Multitasking on CRAY X−
MP Computers" では、4台のベクトルプロセツサを並列に動作させるマ
ルチタスキングの動作と、そのためのユーザの指示方法
について述べられている。G.Corongiu and J.H.Detric
h;Large−scale sciontific application programs in
chemistry and physics on an experimental parallel
computer system(IBM J.REM.DEVELOP.VOL29.No.4 422
−432)では、プロセツサエレメントとして10台のFPS−
164をIBM4341とIBM4381につなげFPS−164間のデータの
送受信なく並列に動作させるマルチタスキングの動作
と、そのためのユーザの指示方法について述べられてい
る。これらによれば、タスクの起動や同期の制御のため
のライブラリがシステムに用意されており、ユーザはFO
RTRANプログラムの中で、これらを呼び出すように記述
する。さらに細いレベルでは、ループごとに並列化の手
段をコメント形式の制御文でコンパイルに指示したり、
DO文自身に従来とは別の並列化の意味を付加する必要が
あつた。
一方、第2図に示すようにな並列化処理システムで
は、送信処理と受信処理が独立に行なわれる。この様な
システムは特願昭61−182361に詳細に記述されている。
以下、この種のシステム例を簡単に説明する。
(1)このシステムの多くは、ホスト計算機121と並列
処理部122から構成され、さらに並列処理部122は複数台
のプロセツサと任意のプロセツサ間でデータ転送可能な
ネツトワーク124から構成される。
(2)各プロセツサ123は、プログラムやデータを保持
するローカルメモリ125と、ローカルメモリ125から順次
命令を読み出し、実行する命令処理部126と送信部27お
よび受信部128から構成される。
(3)データ送信処理は、送信命令(Send命令)を実行
することにより実行される。一方、データ受信処理は、
受信命令(Receive命令)を実行することにより実現さ
れる。
このような並列計算機システムに対して、近年非常に
使われるようになつてきた粒子の挙動を計算機によつて
シミユレーシヨンを実行し、流体や物性の予測をする目
的で書かれた逐次型のコンパイル言語から自動的に並列
化する手法について言及したものはない。
流体や物性の予測をするために、粒子の挙動を計算機
によつてシミユレーシヨンを行ういわゆる粒子シミユレ
ーシヨンにおいては粒子間の相互作用から粒子の受ける
力場のエネルギーと力を求める部分が、計算時間の大部
分を占めるため、並列計算機で計算を行うための工夫が
行なわれている。星野 力等 PAX計算機(オーム社昭
和60年)P.121〜P.131では、プロセツサエレメント間で
データの送受信を許しているのが力の作用反作用の法則
が成り立つ場合に対しても、すなわちi番目の粒子とj
番目の粒子の間の相互作用にfij=−fjiの性質を利用し
ておらず、並列計算機の実行効率を低下させている。一
方、前述した10台のアタツチド・プロセツサFPS−164を
IBM4341と4381のホスト計算機に付けた並列計算機に対
しては、粒子間の作用反作用の性質を用いているが、ホ
スト計算機とアタツチド・プロセツサの間でのみデータ
の送受信が許されるだけであり、fijの計算1つ1つを
各アタツチド・プロセツサに分配するためのデータの送
受信の回数が多くなり並列計算機の性能向上を妨げてい
る。作用反作用の法則を有効に使い、しかも、プロセツ
サ・エレメントの間にデータの送受信がある場合の計算
機に対し、粒子シミユレーシヨンを行うための逐次型の
コンパイラ言語から自動的に並列化する手法について言
及したものはない。
〔発明が解決しようとする課題〕
上記従来技術は、並列処理が可能なハードウエアに対
して、特に粒子を用いた計算機シミユレーシヨンプログ
ラムに対して自動的に並列化する点については配慮され
ておらず、ユーザ自身が並列処理の手段を考え、それを
明示的にプログラムに埋め込むというプログラム変換が
必要であつた。従つて財産としてユーザが持つていた逐
次型のプログラムやベクトル計算機向きのプログラムを
そのままの形で並列実行させることはできず、並列処理
向きに再コーデングが必要になり、さらにそのデバツグ
が必要となる。またハードウエアの特性が変わるたび
に、その資源を有効に使うために、並列化の指示を変更
する必要があり、他のシステムでは動かないなど、ユー
ザプログラムの汎用性が損なわれるなどの問題があつ
た。
本発明の目的は上記のようなユーザの負担を軽減し、
既に存在する逐次型のプログラムのうち特に粒子シミユ
レーシヨンのプログラムはそのまま手を入れることな
く、自動的に並列化でき、かつ新しくコーデイングする
場合においても、ハードウエアの細い特性を意識しなく
ても効率のよいオブジエクトコードを生成できる並列化
コンパイル方法を提供ことにある。
〔課題を解決するための手段〕
上記目的は、番号付けられた複数のプロセツサから構
成され、あるいはまた番号付けられた複数台のプロセツ
サとプロセツサ間データ転送方式を用いる並列プロセツ
サから構成された並列計算機を対象とし、高級言語で記
述された逐次処理型ソースプログラムから並列実行のた
めのオブジエクトコードを生成するコンパイラにおい
て、まず、典型的なループパターンをあらかじめ記憶し
ておき、パターンマツチング処理を行い、ループの型を
同定する処理を用意しておき、まず(1)ループの各繰
り返しを単位とした並列実行可能性を検出し、次に
(2)並列実行の可能性を検出し、並列化の演算単位を
抽出し、(3)多重ループの外側ループと内側ループの
交換を判定し、逐次型プログラムでの演算が、複数台の
プロセツサに均等に分配される手段を設け、(1),
(2),(3)で検出した実行可能な並列処理をした場
合に適用するハードウエア装置の特性により、オブジエ
クトコードを並列に実行させたときの経過時間を推定
し、最適と判定した並列処理を選択する処理を設けるこ
とにより達成できる。
〔作用〕
上記方法によれば、逐次実行型プログラムを並列化
し、並列化オブジエクトコードを自動生成するので、ユ
ーザは従来から蓄積してきたプログラムの財産を並列計
算機向けに書き直す必要がなくなる。これにより上記目
的を達成できる。
〔実施例〕
以下、複数台のプロセツサと各プロセツサ相互間でデ
ータ転送を行うための通信路を備えた並列プロセツサの
ためのFORTRANコンパイラにおける、本発明の一実施例
を図表を参照しつつ説明する。
第2図は適用する並列プロセツサの例を示す。ここで
は主記憶を共有しない形態の並列プロセツサ・システム
を例にとり実施例を説明するが、本発明は、主記憶を共
有する形態のマルチプロセツサ・システムにも適用可能
である。複数の並列に動作するプロセツサがあり、これ
らはネツトワークを共有する。従つて、各プロセツサが
データを送受信する場合には、同期制御によりそのデー
タの順序性あるいは一意性を保証する必要がある。
ここでは、計算機シミユレーシヨンにおいて、優れた
手段である粒子の挙動を追つていくという、粒子シミユ
レーシヨンのソースプログラムを対象として、上記並列
計算機のハードウエアの資源を有効に用いて、計算結果
を得るまでの経過時間が短くなるようなオブジエクトコ
ードを生成する本発明の詳細な実施例を延べる。
第3図に、本発明を適用するコンパイラ全体の構成を
示す。第3図内の構文解析処理13が、FORTRANのソース
プログラム11を入力とし、例えば第4図に示すようなプ
ログラムの有無を既存のパターンマツチングの技術によ
つて判定し、データの流れを解析するものとして以下説
明する。第4図に示すようなプログラムがあつた場合に
は、これを中間語6に変換する。中間処理14はこの中間
語6を入力として最適化や並列化を行い、中間語6を変
形する。コード生成処理15は、中間処理14が変形した中
間語から並列に実行されるオブジエクト・コード12を生
成する。本発明は、主として中間処理6に係り、オブジ
エクト・コード12を並列に実行させた時の経過時間を短
くするものである。
第3図の中間処理14のうち、自動並列化に係わる処理
の構成を第1図に示す。第3図に入力されたソースプロ
グラム11は、構文解析部において第4図に例として示す
FORTRANプログラムと一致する部分をもつかどうかを従
来のパターンマツチングの手法によつて検査される。第
4図に例としてとりあげたプログラムは、粒子の間に相
互作用を仮定し、粒子が各々感じるポテンシヤルおよび
力の場を求め、粒子を移動させ、粒子の挙動を計算機で
シミユレーシヨンするいわゆる粒子シミユレーシヨンに
おいて、計算量の90%近くを占め計算時間の短縮が望ま
れる粒子間相互作用から粒子のポテンシヤルおよび力の
場を求める処理を行なう、2重のDOループで構成される
ものである。
第4図に示した計算部分(a)または(b)を以下で
は力の計算部分と呼ぶこともあるが、この部分が第3図
の入力プログラムに含まれていた場合には、各当該プロ
グラムに含まれる変数,配列等のマツチングを行なう構
文解析部、第3図処理13は、第4図のループの数,デー
タおよび配列名およびその数を数え、対応テーブルを作
成する。
この対応テーブルから変数名および変数名・配列名お
よび配列数等々を解析することにより、第1図処理2
は、並列演算部の演算数を計測する。並列演算計測部の
処理の内容を第5図に示す。第5図には、第4図の
(a)のプログラムが入力される例を仮定して以下説明
する。
第4図(a)のプログラムの外側のループ回数と内側
ループ回数を、ある数で割つて、処理を分解すること
を考える。処理分割の方式は=N(Nは粒子数の特別
な例として、Npe台のPEに分割するという、公知例で述
べたCorongin等が行なつた並列計算の分割方式に近い場
合をも含むより一般的なものである。この方式では並列
計算の効率を向上させるために、として任意の数をと
る方式について議論できるが、以下では最も効率が上が
ると考えられる、=Npeと選びNpe台のPEに分割する例
について詳しく延べる。
まず、第4図(a)のプログラムに対し、外側ループ
回数を並列に計算処理を行なうプロセツサ・エレメント
(PE)での台数Npeで分割すると仮定する。ここでは並
列化の単位が大きくしかもあとで均一に分配しやすいよ
うにできるだけ外側ループを等分にする。
すなわち、DO1i=1,N−1と書かれたループをNpe等分
し、各PEで外側ループとして となるように外側ループを各PEで分割する。
ここで[…]は整数をとることを示す記号。
以上のような外側ループの分割を第5図の処理21で行
なう。処理22では番号1〜NpeまでのPE各々に対して、
内側ループの演算時間をアセンブラ命令の実行命令ステ
ツプ数の演算量から見積る。処理23では内側ループの演
算数の大きい順にPEの番号付けを行なう。すなわち、上
記外側ループの割り付けに対してはPE番号順に、内側ル
ープの演算量が多くなつている。処理24では、PEごとの
演算量の偏りをテーブル7から求め、その結果もテーブ
ル7に書き込む。第8図に、第4図(a)のプログラム
で、2重ループであらわれる数Nが20,PEの台数が5台
としたとき、外側ループを4つづつに切つた場合を示
す。第8図の最小の陰のついた正方形は、第4図(a)
のプログラムのdo2のなかの上から3行分の演算を示
す。以下演算単位という。第8図に示すように、処理22
の結果、各PEで持つ演算数は PE1………74演算単位 PE2………58演算単位 PE3………32演算単位 PE4………26演算単位 PE5………10演算単位 である。処理24ではこの演算機の偏りを検出する。
以上の結果をテーブル7に書き込んでく。第1図の並
列性抽出部の中の処理31はテーブル7から上記情報を用
いて内側ループ内の演算をどういう単位でPEに分割する
かを決定する。今とりあげている例におけるn番目のPE
での演算単位は、PE台数が5であることを考えて、 [5−(n−1)]×16+10 と書ける。従つて、最大の並列演算単位としては、10単
位の部分と、16単位の部分とを選ぶことができる。この
部分のn番目のPEで[5−(n−1)]×16+10の関数
形に総演算量が書けることを見い出すのは公知の技術に
よつて可能である。くりかえすことになるが、さらに細
かい単位に分けることも可能であるが、ここでは並列演
算単位が最も大きくなるように選んだ。その理由はデー
タ転送をできるだけ分割せずに一度に送る方が、データ
ネツトワークを移動している時間が事実上、データ転送
命令を出す時間に較べて短かくなるアーキテクチヤの計
算機第2図を想定しているので、並列計算して計算時間
をより短くすることができるからである。
従つて処理31では[5−(n−1)]×16+10の関数
でnの係数の16および、各PEに共通の16以外の数を並列
化の最小単位として選ぶ。さらに、並列化の単位は2種
あることが処理32によりわかる。すなわち、処理32では
外側ループの個数と外側ループの個数が一致した方が、
ループ交換等ができる点で後の処理がしやすくなるの
で、4×4=16個の演算単位からなり、一辺4演算単位
からなる正方形の単位第8図のTと1辺が4演算単位の
辺2つからなる直交2等辺三角形の単位、第8図とSと
を並列化の単位として選んだことをテーブル7に知らせ
る。実際、直交2等辺三角形の単位をT,正方形の単位を
Sとすると、処理32は、各PEについて、いくつづつのT
とSの単位があるかを調べその結果、 PE1……1つのT単位と4つのS単位 PE2……1つのT単位と3つのS単位 PE3……1つのT単位と2つのS単位 PE4……1つのT単位と1つのS単位 PE5……1つのT単位 をテーブル7に記す。処理33では、構文解析により得ら
れるデータの流れグラフから、PEに分けたTとSの各々
の演算単位の計算を実行するときに、各PEの間でどのよ
うな通信が必要かを判定し、テーブル7にその結果を書
き込む。その結果、上記並列演算単位Tでは、各PEでそ
の演算を実行するとき、通信が必要でないことが分か
る。一方、上記並列演算単位Sでは、各PEごとに、他の
PEとデータを送信したり受信したりしなければならない
ことが分かる。
すなわち、上記Sの演算をするとき次の PE−1は、PE−2,3,4,5と PE−2は、PE−3,4,5と PE−3は、PE−4,5と PE−4は、PE−5と 通信が必要となる。以上の結果をテーブル7にいれる。
各PEでの演算結果を他のPEと通信するときの通信量もあ
わせてこの処理33の部分で評価し、この結果もテーブル
7にいれる。
以上の一連の処理で、並列処理を行う場合の、各PEで
の演算量および通信量がDOループからの最も単純な割り
付け方によつて評価できる。ひき続く処理、第1図の4
では、各PEでのデータ送受信量および減算量がPEに対し
て均一になり、全部の処理時間が最も少なくなるよう
に、プログラムとデータの各PEへの割り付けをやり直
す。以下順に上記部分の処理を第7図を用いて説明す
る。
第7図処理41ではPEの受け持つ演算負荷の大きい順に
PE番号を付けかえる。本実施例では、第8図に示すよう
に、はじめから、PE番号の小さいほど、演算負荷は大き
くなつている。
処理42では、第1図3で調べた結果のテーブル7よ
り、構文解析のデータの定義参照関係よりデータ送受信
のない並列演算単位(T)を各PEに割り付ける。処理43
では、もう1つの並列演算単位Sを用いて、PEでの演算
負荷とデータの、送受信量が均一の処理に用いるデータ
単位とPEの番号の対応表、第9図(b)をテーブル7に
作成する。第9図(b)において正方形の中の数字(l,
m)ただしl>mは、l番目のPEで、平列演算単位S
を、l番目のPEが持つているデータを用いて、m番目の
PEを持つているSの計算の入力データを送つてもらつて
計算することを意味する。また(l,l)はl番目の持つ
ているデータを用いて平列演算単位Tを計算することを
意味する。また、(l,m)ただしl>mでは、l番目のP
Eで、平列演算単位Sをm番目のPEが持つているデータ
を用いて、l番目のPEの持つているSの計算の入力デー
タを送つてもらつて計算することを意味する。
処理44では、テーブル7にあるデータの定義参照関係
と処理3で得られたデータ分割および処理の分割のため
のデータ参照して、新しくデータの送受信処理を決定
し、PEでの負荷の分散および各PE間でのデータ送受信回
数の均等化を計る。処理44の負荷分散の際は、並列演算
単位Sの各PEでの計算処理のための2重ループにおける
ループ交換も考慮した処理を行なう。第9図(a)を用
いて、処理44を説明する。第9図(a)で丸○の中の数
字、例えば、は3番目のPEを意味する。まず最も負荷
の大きい1番目のPEでの演算を分散させる。全体として
処理が分散するようにSの並列単位ずつ処理を他のPEに
分散させる。このとき、lからm(m>l)番目のPEに
データを送り、Sの処理を分けmのPEでSの演算を行な
うとしたときには、lからm+1番目のPEのSの処理を
分けるときには、m+1番目のPEからl番目のPEはデー
タを受けSの処理を行なうようにする。実際からに
はデータを送とする(第9図ではからに流線をひく
ことに対応する)と、からへの流線は、からに
ひいた流線の向きを逆に選ぶ。(これはからデータ
を受けることになる。)以下、次々と同様に流線を逆向
き、逆向きになるようから,に流線をひき、の
まわりの流線の向きの出る本数と入る本数とが同じにな
るようにする。
次に、のまわりの流線を2より大きい番号のPEにひ
くときも流線の向きが逆になるようにする。以下、次々
と負荷の大きいPE順に,からの流線をひく、この場
合も上と同様にする。以上PE台数が5のときを仮定した
が、任意の台数に対しても同様の手順ができる。以上の
様にすると、データを受けてSを計算する処理が均等に
でき、しかも各PEでの入力のデータの送受信は各PEに対
して均一化できる。以上の処理が各PEでどうなるかを第
10図に示す。その結果、第11図(a),(b),(c)
で用いた量を用いると、各PEでの演算量は、 PE1では、…T+2S1 PE2…………T+S2+S1 PE3…………T+S2+S1 PE4…………T+2S2 PE5…………T+2S2 となり、S1とS2は等しいので、各PEともT+2Sと実際均
等になる。また第10図よりデータの通信量は各PEで等し
くなる。その結果、第12図(a)に示したような、各PE
で不均一だつた演算時間が、第12図(b)に示すように
各PEで均一の演算時間となり、均一化のために演算時間
を短くすることができる。処理45では、各PEのデータ、
および、データの送受信の方法をテーブル7に示す。さ
らに、第10図の処理で、第9図(b)の(2,3)と(2,
4)にあたるところを用いると、第13図のように、処理
の2重のdo文の変換テーブルを作成する。さらにこの処
理45で、Send命令やReceive命令に必要なデータを区別
するためのデータ識別子等を設定し、処理5でこれを実
行する。この後、各PEに割り当てられたプログラムに対
して、通常の最適化処理を行なう。第4図のFORTRANプ
ログラムは、第3図のコード生成処理15が、オブジエク
トコード12を生成するが、このオブジエクトコードの実
行時の様子を第14図に示す。以上の様に、もとの逐次実
行型のFORTRANプログラムは、複数台のプロセツサに割
り付けられ、並列に実行される。
第13図に示すように、PARITY1(m,m2)は、Sを計算
するための入力に用いられるデータの送受信をどう行な
うかを1,0,−1の値によつて規定する。m1,m2はPE番号
を示す。PARITY1(m1,m2)=1は、m1番目のPEがPE−m1
を持つSを計算するための入力データをPE−m1からPE−
m2に送るだけでSの計算はPE−m1ではしない。PARITY1
(m1,m2)=0は、m1=m2であることを示し、並列演算
単位Tの計算(第10図(b))を行ない、PE−m1が受け
持つ外側ループインデツクスに対する結果をPE−m1で持
つ。PARITY1(m1,m2)=−1のときは、PARITY2(m1,
m2)の値1,0,−1によつて処理が次のように分かれる。
PARITY1(m1,m2)=−1かつPARITY2(m1,m2)=−1
の場合では、PE−m1はPE−m2から、PE−m2が受け持つS
の入力データを受信し、第10図の(c)に相当する、PE
−m1の持つSの入力データに対して、PE−m2が持つSの
入力データからの力に相当する演算Sを計算し、結果を
PE−m1で保持する。
PARITY1(m1,m2)=−1かつPARITY2(m1,m2)=0の
場合には、PE−m1はPE−m2からPE−m2が持つSを計算す
るためのデータを送つてもらい、第10図の(d)に相当
するPE−m2持つデータに対してPE−m1が持つデータから
の力にあたるSを計算し、PE−m2が持つデータに対する
Sを求め、その結果をPE−m2に転送する。
PARITY1(m1,m2)およびPARITY2(m1,m2)の値から、
上記規則に従つて、PE−m1でSの計算を行う場合のオブ
ジエクトコード(第3図の12に相当)の様子を示す。第
13図1320の部分はPE−m1が持つSの入力データFi miを他
のPEに転送する部分、1330は、PARITY1(m1,m2),PARIT
Y2(m1,m2)の値に従つてデータの送受信をしつつTお
よびSの演算を行なう部分である。ここで はPE−m1が受け持つSの入力データに対するSの演算の
和をあらわす。
〔発明の効果〕
本発明によれば、従来の逐次型のユーザプログラム
を、再コーデイングすることなく、並列処理システムで
実行させることができる。またこのとき、ハードウエア
資源を有効に用いることにより、経過時間が短く、実行
効率の高いオブジエクト・コードを自動生成させること
ができる。
【図面の簡単な説明】
第1図は自動並列処理の1部、第2図は適用するシステ
ムの概要図、第3図はコンパイラの全体図、第4図は実
施例説明のためのソースプログラム例を示す図、第5図
は並列化演算計測部の概要を示す図、第6図は並列性演
算単位抽出部の概要図、第7図はプログラムとデータの
PEへの分割およびデータ送受信決定部の概要を示す図、
第8図は、ソースプログラムの模式図、第9図は並列化
のアルゴリズムの模式図、第10図は並列化変換後のプロ
グラムを示す図、第11図は、その説明のための図、第12
図は並列演算時間の模式図、第13図はループインデツク
ス変換図、第14図は実行時の概要を示す図である。 1……自動並列化処理、2……並列化演算計測部、3…
…並列演算単位抽出部、4……プログラムとデータのPE
への分割およびデータ送受信決定部、5……同期制御お
よびインデツクスのつけかえ部、6……中間語、7……
テーブル、10……FORTRANコンパイラ、11……FORTRANソ
ースプログラム、12……オブジエクト・コード、13……
構文解析結果、14……中間処理、15……コード生成処
理、21〜24,31〜33,41〜44……処理部、1310〜1330……
処理部。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】高級言語で記述されたソースプログラムか
    ら、複数台のプロセツサが並列に動作するマルチプロセ
    ツサで並列に実行される、あるいはプロセツサ間でデー
    タ通信を行なって並列に動作する並列計算機のプロセツ
    サエレメントで並列に実行される命令列からなるオブジ
    エクトコードを生成する並列化コンパイル方法であっ
    て、逐次実行型のプログラムの繰り返し計算を行うルー
    プに対して、汎用性と所要計算時間とにもとづき選定さ
    れた典型的なループパターンをあらかじめコンパイラに
    記憶しておき、パターン・マツチング処理を行ない、ル
    ープ演算のタイプを同定し、まず(1)ループの各繰り
    返しを単位とした並列実行の可能性を検出し、次に
    (2)並列実行の可能性を検出し、並列化の演算単位を
    抽出し、(3)多重ループの外側ループと内側ループの
    交換を判定し、逐次型プログラムでの演算が均等に分配
    されるように演算を複数のプロセツサに分配し、上記
    (1)、(2)で検出した実行可能な並列処理を(3)
    で分配したプロセツサにより実行した場合に、適用する
    ハードウエア装置の特性により、オブジェクトコードを
    並列に実行させた時の、計算結果が得られるまでの経過
    時間を推定し、コンパイル時に最適と判定した並列処理
    を選択することにより、並列実行型のプログラムに変換
    することを特徴とする並列化コンパイル方法。
JP21246488A 1988-08-29 1988-08-29 並列化コンパイル方法 Expired - Lifetime JP2765861B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21246488A JP2765861B2 (ja) 1988-08-29 1988-08-29 並列化コンパイル方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21246488A JP2765861B2 (ja) 1988-08-29 1988-08-29 並列化コンパイル方法

Publications (2)

Publication Number Publication Date
JPH0261727A JPH0261727A (ja) 1990-03-01
JP2765861B2 true JP2765861B2 (ja) 1998-06-18

Family

ID=16623074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21246488A Expired - Lifetime JP2765861B2 (ja) 1988-08-29 1988-08-29 並列化コンパイル方法

Country Status (1)

Country Link
JP (1) JP2765861B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250341A (ja) * 1991-11-11 1993-09-28 Matsushita Electric Ind Co Ltd 並列可能性判定装置、及び並列可能性判定方法、並びにそれを用いたプログラム変換装置
DE4404619C2 (de) * 1994-02-14 1997-07-03 Daimler Benz Ag Zweiteiliger Dachaufbau für einen Geländewagen

Also Published As

Publication number Publication date
JPH0261727A (ja) 1990-03-01

Similar Documents

Publication Publication Date Title
Rhodes et al. sPyNNaker: a software package for running PyNN simulations on SpiNNaker
Abadi et al. Tensorflow: Large-scale machine learning on heterogeneous distributed systems
Banerjee et al. The PARADIGM compiler for distributed-memory multicomputers
JP2738692B2 (ja) 並列化コンパイル方法
Gajski et al. Essential issues in multiprocessor systems
US6305014B1 (en) Lifetime-sensitive instruction scheduling mechanism and method
Arvind et al. Assessing the benefits of fine-grain parallelism in dataflow programs
JP2000285083A (ja) プログラムを実行する方法、装置及びシステム、プログラムを実行する方法を実行するための命令を含むコンピュータ可読媒体、プログラム開発方法を実行するための命令を格納したコンピュータ可読媒体、プログラム開発方法、並びに、プログラム変換方法
Dong et al. Characterizing the microarchitectural implications of a convolutional neural network (cnn) execution on gpus
Wozniak et al. Language features for scalable distributed-memory dataflow computing
Tsoi et al. Programming framework for clusters with heterogeneous accelerators
JP2016143378A (ja) 並列化コンパイル方法、並列化コンパイラ、及び、電子装置
JP2765861B2 (ja) 並列化コンパイル方法
Davis et al. Paradigmatic shifts for exascale supercomputing
Gaudiot Data-driven multicomputers in digital signal processing
Hoang et al. A compiler for multiprocessor DSP implementation
JPH04293150A (ja) コンパイル方法
Kirchhoff et al. Optimizing compiler for a specialized real-time floating point softcore processor
Ligon et al. An empirical methodology for exploring reconfigurable architectures
Raskar Dataflow software pipelining for codelet model using hardware-software co-design
Lee et al. Partitioning of massive/real-time programs for parallel processing
US11449254B1 (en) Managed bulk memory
Yanagawa et al. Software system of the Earth Simulator
Ohno et al. Dynamic Task Scheduling Scheme for a GPGPU Programming Framework
Gross et al. Compiling task and data parallel programs for iWarp