JP2865694B2 - コンパイル方法 - Google Patents

コンパイル方法

Info

Publication number
JP2865694B2
JP2865694B2 JP5770589A JP5770589A JP2865694B2 JP 2865694 B2 JP2865694 B2 JP 2865694B2 JP 5770589 A JP5770589 A JP 5770589A JP 5770589 A JP5770589 A JP 5770589A JP 2865694 B2 JP2865694 B2 JP 2865694B2
Authority
JP
Japan
Prior art keywords
data
processing
transmission
reception
vector
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
JP5770589A
Other languages
English (en)
Other versions
JPH02238565A (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 JP5770589A priority Critical patent/JP2865694B2/ja
Publication of JPH02238565A publication Critical patent/JPH02238565A/ja
Application granted granted Critical
Publication of JP2865694B2 publication Critical patent/JP2865694B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】
【産業上の利用分野】
本発明は、並列計算機システムに係わり、特にユーザ
が書いたデータが送受信処理をベクトル化することによ
り、実行効率の高いオブジェクトコードを生成するコン
パイル方式に関する。
【従来の技術】
計算速度の向上のために、プロセッサを複数台並べて
同時に動かす、並列計算機システムが考案されてきた。
これらの中には、プロセッサにベクトル処理機構がある
並列計算機もあるが、コンパイラが自動的にベクトル送
受信に変換する方式について述べたものはない。 ベクトル計算機を並列に動かすスーパーコンピュータ
のコンパイラについては、デイビッド エイ パドア,
マイケル ジェイ.ウルフェ“スーパコンピュータのた
めのコンパイラの改良された最適化",コミュニケーショ
ン オブ エイ シー エム(David A.Padua,Michael
J.Wolfe,“ADVANCED COMPILEROPTIMIZATIONS FOR SUPER
COMPUTER",Communications of the ACM)1986年12月,
第29巻12号,p.1184〜p.1201があるが、データ通信のベ
クトル化については、何も論じられていない。また、ア
ラン エイチ.カープ,ロボート ジー.バブII,“12
個の並列フォートラン ダイレクトの比較",アイ イー
イー イー ソフトウェア(Alan H.Karp,Robert G.B
abb II,“A Comparison of 12 Parallel Fortran Diale
cts IEEE Software")1988年9月号,p.52〜p.66にFORTR
ANと並列処理について述べられているがデータ通信のベ
クトル処理はない。 ハードウェアが用意するベクトル送受信機構について
は、中越らの特許出願「並列プロセッサ間のベクトルデ
ータ転送方式」(特願昭61−255663,特願昭63−11156
2)や、面田らの特許出願「並列プロセッサ」(特願昭6
1−245241,特開昭63−100560)がある。
【発明が解決しようとする課題】
従来技術は、演算やプロセッサ間のデータ通信ベクト
ル処理機構を有するプロセッサを並列に実行される場
合、通常の演算はFORTRANソースプログラムからコンパ
イラが自動的にベクトル命令を生成するが、通信処理に
対してはコンパイラにベクトル化する機能がないため、
ベクトル送受信処理を行なうためには、FORTRANでは記
述できず、機械語でコーディングしなければならない。 本発明の目的は、上記欠点をなくすため、コンパイラ
が通常の演算のベクトル化の可否の判定とともに、デー
タ送受信のベクトル化の可否を判定し、可能な場合はス
カラデータの送受信をベクトルデータの送受信に変換
し、ベクトルデータ送受信を実行するオブジェクトコー
ドを生成するコンパイル方法を提供することにある。
【課題を解決するための手段】
上記目的は、ユーザが記述した同期制御やデータ通信
など並列実行のために必要な処理を含むプロセッサごと
のソースプログラムを入力として、コンパイラが構文解
析を行ない中間コードに変換した後、以下の処理を実行
することにより達成される。 (1)通信するデータは使用データ(代入文の右辺に現
われるデータと同様)として取り扱い、受信するデータ
は定義データ(代入文の左辺に現われるデータと同様)
として取り扱って、他の実行文とともにデータの定義と
使用の順序を解析する。 (2)(1)の結果から、スカラ処理機構によりデータ
を受信したときのデータの定義と実用の実行順序を変え
てしまうことなく、ベクトル処理機構によりデータ送受
信が実行できるかを判定し、データ送受信のベクトル化
可否を判断する。 (3)ベクトル化可能な場合は、ベクトル送受信オブジ
ェクトを生成するための中間コードに変換する。
【作用】 上記手段を用意したコンパイラにより、 FORTRANソースプログラムをコンパイルすることによ
り、ユーザは、必要なデータ送受信処理を記述すれぢ、
コンパイラが、データ送受信のベクトル化可否を判定
し、可能であればベクトル化することにより、効率よく
データの送受信を行なうオブジェクトコードを生成する
ことができる。
【実施例】
以下、本発明のFORTRANコンパイラにおける一実施例
を図面を参照しつつ説明する。 第1図に、本発明を適用するコンパイラの全体の構造
を示す。第1図構文解析5が、ソースプログラム2を入
力し、これの字句や構文を解析して中間コード4を生成
する。ベクトル化処理6が、この中間コード4を入力と
して、ベクトル化の可否を判定し、可能であれば中間コ
ード4をベクトルオブジェクトを生成できる形に変換す
る。そして、メモリ割り付け・レジスタ割り当て7,コー
ド生成8を順次行なう。本発明は、ベクトル化処理6に
係わり、ループ中に現われるデータ送受信処理をベクト
ル化することにより、オブジェクトコード3の実行効率
をあげるものである。 データ送受信のベクトル化処理6の処理概要を第2図
のソースプログラムを例に説明する。これはFORTRANソ
ースプログラムにデータの送受信処理を加えた例であ
る。文21と文22はデータの受信を表す、受信処理ルーチ
ンの呼び出しである。第1引数のIやI+1000は、受け
取るデータを区別する識別子を表し、第2引数のA
(I)やB(I)は受け取るデータを示す。文25と文26
はデータの送信を表す、送信処理ルーチンの呼び出しで
ある。第1引数のN+1は、データの送り先プロセッサ
の番号を示し、第2引数のIやI+1000は送るデータを
区別する識別子を表し、第3引数のC(I+I)やA
(I)は、送るデータを示す。 制御フローの解析9が、最内側ループ第2図の20のD0
10を検出し、後に続く処理がこのループに対してベク
トル化可否を判定する。 まず、第1図の送受信データの定義・使用判定処理10
が、送信するデータは使用データ(代入文の右辺に現わ
れるデータと同様)として取り扱い、受信するデータは
定義データ(代入文の左辺に現われるデータと同様)と
して取り扱う。第2図の例では文21のA(I)や文22の
B(I)が受信するデータであり、これらの文で値が定
義されるとみなす。文25のC(I+1)や文26のA
(I)が送信データであり、これらの文で値が使用され
るとみなす。 それから、第1図の送受信データのデータ依存関係解
析処理11が、このループをスカラ処理装置により実行す
るときのデータの定義と使用の順序を解析する。その結
果をデータ依存関係のデーブル14に出力する。第2図の
例では第3のようになる。この解析方法は公知の技術で
あり、金田他の特許出願「配列データフロー解析法」
(特願昭61−48309,特開昭62−206637)」や金田他の論
文「配列の大域データフロー解析法」(情報処理学会論
文次第28巻第6号,第567頁〜第576頁,昭和62年6月)
発行に記されている。 さらに、この第3図のデータ依存関係のテーブル14を
入力して、第1図のデータ送受信のベクトル化判定と変
換処理12が、中間コード4をベクトルオブジェクト生成
するのに適したものに変換する。処理の概要を第4図に
示す。まず、処理40が当該送受信処理がデータ依存の強
連結成分を構成するかを、第3図の始点・終点からサイ
クルを形成するか否かにより、判定する。第2図の例か
ら作成した第5図のデータ依存関係からフィールド32と
フィールド33の文22と文24がサイクルを構成する強連結
成分であることがわかる。これらの文はこのままではベ
クトル処理を行なうことはできない。 強連結成分を構成しない場合は処理41が、依存の方向
と実行順序が等しいか否かによりベクトル化可否を判定
する。第5図のフィールド30のフロー依存やフィールド
31のフロー依存は実行順序と等しいため、文21と文23と
文26はこのままベクトル化可能と判定する。第5図のフ
ィールド34の逆依存は実行順序と反対であるため、この
ままではベクトル化することができない。したがって、
処理42が文の入れ換え可否を判定する。この例では、特
に抑止する要因がないため、処理43により文25の入れ換
え位置を決める。文23より前に文25を移動すればベクト
ル化は可能となるが、「送信処理は送信するデータ定義
の直接、受信処理は受信するデータ使用の直前」の原則
にしたがって文の入れ換え位置を決める。これは、送り
先プロセッサでは送信データが到着するまで何もしない
で待つことになるため、送信処理は可能な限り早く行な
い、受信処理は可能な限り遅く行なうためである。この
原則に従うと、文25と文21や文22にはデータの依存関係
ないため、文25はループの先頭に移動することに決め
る。この決定に従い処理44が文25を入れ換え、第5図2
5′のようにする。 さらに、強連結成分を構成する文22と文24については
処理45がワーク配列の導入により文の移動が可能か否か
を判定する。この例では、ワーク配列を導入してB(I
+1)を退避すれば文に入れ換えが可能である。従っ
て、処理46が配列WORKにB(I+1)を値を代入する実
行文、第6図文26を生成し、文24のB(I+1)をWORK
により置換し、第6図文24′のようにする。処理47も処
理43と同様に、「送信処理は送信するデータ定義の直
後、受信処理は受信するデータ使用の直前」の原則にし
たがって、文21の位置を決め、第5図のプログラムは第
6図のように変換する。 最後に、処理49が、ベクトル化可能な処理をベクトル
中間コードに変換し、第6図は、第7図のようになる。
ループ制御20は消して、文21″〜文27″の示すようなベ
クトルデータ処理にする。
【発明の効果】
本発明によれば、ユーザは対象とする並列計算機のベ
クトル処理機械の細かいアーキテクチャ上の仕様を意識
することなく、データ通信など必要な処理を含めて並列
プログラムをコーティングすれば、データ送受信処理
を、コンパイラがアーキテクチャ上の制限やデータ依存
関係からベクトル化の可否を判定し、可能であれば、ベ
クトル送受信を行なうオブジェクトを生成することがで
きる。このため、ベクトル送受信のパイプラインの効果
により、並列に実行するオブジェクトコードの実行性能
を向上させることができる。
【図面の簡単な説明】
第1図は本発明の一実施例のFORTRANコンパイラの全体
構成、第2図は実施例を説明するためのソースプログラ
ムの例、第3図はデータ依存関係のテーブル、第4図は
データ送受信のベクトル化判定と変換処理の概要、第5
図は変換処理を第2図のプログラムに適用した中間結
果、第6図は変換処理を第5図のプログラムに適用した
中間結果、第7図は本発明を第2図のソースプログラム
に適用した結果の出力を示した図である。 1……FORTRANコンパイラ、2……ソースプログラム、
3……オブジェクトコード、4……中間コード、5……
構文解析、6……ベクトル化処理、7……メモリ割り付
け・レジスタ割り当て、8……コード生成、9……制御
フローの解析、10……送受信データの定義・使用判定処
理、11……送受信データのデータ依存関係解析処理、12
……データ送受信のベクトル化判定と変換処理、14……
データ依存関係のテーブル、20……ベクトル化対象ルー
プ、21,22……データ受信処理、23,24……代入文、25,2
6……データ送信、27……代入文、30,32,33,34……デー
タ依存関係のテーブルの各フィールド、40,41,42,43,4
4,45,46,47,48,49……処理。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】データ通信処理を含むソースプログラムか
    ら、並列計算機の各プロセッサで実行されるオブジェク
    トコードを、計算機を用いて生成するコンパイル方法に
    おいて、 送信すべきデータを定義データ、受信するデータを使用
    データとみなしてデータの定義使用の順序を解析し、 前記解析の結果に基づいて、送受信するデーをまとめて
    ベクトル送受信を行なっても計算結果が変わらないかど
    うかを判定し、 定義使用の順序が変わらないため計算結果も変わらない
    と判断した場合に、プロセッサ間のデータ送受信処理を
    まとめてベクトル送受信処理に変換することを特徴とす
    るコンパイル方法。
JP5770589A 1989-03-13 1989-03-13 コンパイル方法 Expired - Lifetime JP2865694B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5770589A JP2865694B2 (ja) 1989-03-13 1989-03-13 コンパイル方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5770589A JP2865694B2 (ja) 1989-03-13 1989-03-13 コンパイル方法

Publications (2)

Publication Number Publication Date
JPH02238565A JPH02238565A (ja) 1990-09-20
JP2865694B2 true JP2865694B2 (ja) 1999-03-08

Family

ID=13063357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5770589A Expired - Lifetime JP2865694B2 (ja) 1989-03-13 1989-03-13 コンパイル方法

Country Status (1)

Country Link
JP (1) JP2865694B2 (ja)

Also Published As

Publication number Publication date
JPH02238565A (ja) 1990-09-20

Similar Documents

Publication Publication Date Title
JP2738692B2 (ja) 並列化コンパイル方法
Tirumalai et al. Parallelization of loops with exits on pipelined architectures
US6113650A (en) Compiler for optimization in generating instruction sequence and compiling method
JP2921190B2 (ja) 並列実行方式
JPH07110800A (ja) 最適化並列コンパイル装置及び最適化並列コンパイル方法
Pancake Multithreaded languages for scientific and technical computing
Stow et al. Cain: Automatic code generation for simultaneous convolutional kernels on focal-plane sensor-processors
JP2865694B2 (ja) コンパイル方法
Carpenter et al. A streaming machine description and programming model
JP2001125792A (ja) 最適化促進装置
Zory et al. Using algebraic transformations to optimize expression evaluation in scientific code
Pol et al. Trimedia CPU64 application development environment
Tirumalai et al. Parallelization of while loops on pipelined architectures
JP2008523523A (ja) プログラム内のループ用のコンパイル方法、コンパイル装置およびコンピュータシステム
JP3196625B2 (ja) 並列化コンパイル方式
Leangsuksun et al. Problem Representations for An Automatic Mapping Algorithm on Heterogeneous Processing Environments
Li et al. Configuration code generation and optimizations for heterogeneous reconfigurable DSPs
Bozkus et al. Compiling hpf for distributed memory mimd computers
JP2765861B2 (ja) 並列化コンパイル方法
Gebrewahid et al. Support for data parallelism in the CAL actor language
Tang Self-scheduling, data synchronization and program transformation for multiprocessor systems
JPS62204374A (ja) 2倍演算最適化処理方式
JPH02132525A (ja) コンパイル方法
Uehara et al. An automatic vectorizing/parallelizing Pascal compiler V-Pascal ver. 3
Kornkven et al. Dynamic adaptive scheduling in an implementation of a data parallel language

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071218

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20081218

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20081218

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20091218

Year of fee payment: 11

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 11

Free format text: PAYMENT UNTIL: 20091218