JP3246668B2 - 並列処理プログラムコンパイル装置 - Google Patents

並列処理プログラムコンパイル装置

Info

Publication number
JP3246668B2
JP3246668B2 JP24957391A JP24957391A JP3246668B2 JP 3246668 B2 JP3246668 B2 JP 3246668B2 JP 24957391 A JP24957391 A JP 24957391A JP 24957391 A JP24957391 A JP 24957391A JP 3246668 B2 JP3246668 B2 JP 3246668B2
Authority
JP
Japan
Prior art keywords
program
processors
processor
parallel processing
parallel
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 - Fee Related
Application number
JP24957391A
Other languages
English (en)
Other versions
JPH0588910A (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.)
Nitto Seiko Co Ltd
Original Assignee
Nitto Seiko Co 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 Nitto Seiko Co Ltd filed Critical Nitto Seiko Co Ltd
Priority to JP24957391A priority Critical patent/JP3246668B2/ja
Publication of JPH0588910A publication Critical patent/JPH0588910A/ja
Application granted granted Critical
Publication of JP3246668B2 publication Critical patent/JP3246668B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、並列実行の記述が可能
な高水準言語による並列処理プログラムをコンパイルす
る並列処理プログラムコンパイル装置に関するものであ
る。
【0002】
【従来の技術】従来のコンパイル装置は、並列処理プロ
グラムをコンパイルする機能を有していなかった。した
がって、複数のプロセッサを用いて1つの仕事をさせる
場合、設計者が予めプロセッサの数やプロセッサ間のネ
ットワークを決定し、それに基づいて各プロセッサ毎に
プログラムを作成して、各プログラムをコンパイル装置
によりコンパイルしていた。
【0003】
【発明が解決しようとする課題】従来のプログラム開発
方式では、設計者が予めプロセッサの数やプロセッサ間
のネットワークを決定し、それに基づいて各プロセッサ
毎にプログラムを作成するので、プロセッサ間の通信処
理の記述に誤りがあるなどすると、各プロセッサが同時
に通信待ちになってしまう、いわゆるデッドロック等が
発生してシステムが動作不能になったり(並列処理プロ
グラムの場合、その原因求明は非常に困難である。)、
ネットワークの最適化が図れずハードウエアや通信効率
に無駄を生じたりすることがあった。また設計者に過大
な負担がかかり、開発効率が悪かった。
【0004】本発明はかかる事情に鑑みて成されたもの
であり、プロセッサの数やプロセッサ間の通信を考慮す
ることなく並列実行の記述が可能な高水準言語による並
列処理プログラムをコンパイルできる並列処理プログラ
ムコンパイル装置を提供することを目的とする。
【0005】
【課題を解決するための手段】本発明は、同時に実行す
る処理をまとめた並列実行文を含む高水準言語による並
列処理プログラムを複数の各プロセッサ単位のプログラ
ムに変換する機能分割手段と、前記機能分割手段による
変換結果に基づいて、前記各プロセッサ単位のプログラ
ムに同期命令を挿入する同期命令挿入手段と、前記機能
分割手段による変換結果に基づいて必要なプロセッサの
数とプロセッサ間のネットワークとを決定する決定手段
と、前記機能分割手段により変換された各プロセッサ単
位のプログラムを命令コードに変換する命令コード生成
手段とを設けたことを特徴としている。また、本発明の
第2の並列処理プログラムコンパイル装置は、同時に実
行する処理をまとめた並列実行文を含む高水準言語によ
る並列処理プログラムを複数の各プロセッサ単位のプロ
グラムに変換する機能分割手段と、前記機能分割手段に
よる変換に際し、並列実行文を含む再帰手続きである再
帰プロセスを通常の再帰手続きに変換する非再帰化処理
手段と、前記機能分割手段による変換結果に基づいて必
要なプロセッサの数とプロセッサ間のネットワークとを
決定する決定手段と、前記機能分割手段により変換され
た各プロセッサ単位のプログラムを命令コードに変換す
る命令コード生成手段とを設けたことを特徴としてい
る。 また、本発明の第3の並列処理プログラムコンパイ
ル装置は、同時に実行する処理をまとめた並列実行文を
含む高水準言語による並列処理プログラムを複数の各プ
ロセッサ単位のプログラムに変換する機能分割手段と、
前記機能分割手段による変換結果及びプロセッサ間の通
信量に基づいて、必要なプロセッサの数とプロセッサ間
のネットワークとを決定する決定手段と、前記機能分割
手段により変換された各プロセッサ単位のプログラムを
命令コードに変換する命令コード生成手段とを設けたこ
とを特徴としている。
【0006】
【作用】本発明の第1の並列処理プログラムコンパイル
装置では、機能分割手段は、同時に実行する処理をまと
めた並列実行文を含む高水準言語による並列処理プログ
ラムを複数の各プロセッサ単位のプログラムに変換す
る。同期命令挿入手段は、前記機能分割手段による変換
結果に基づいて、前記各プロセッサ単位のプログラムに
同期命令を挿入する。決定手段は、機能分割手段による
変換結果に基づいて必要なプロセッサの数とプロセッサ
間のネットワークとを決定する。命令コード生成手段
は、機能分割手段により変換された各プロセッサ単位の
プログラムを命令コードに変換する。本発明の第2の並
列処理プログラムコンパイル装置では、機能分割手段
は、同時に実行する処理をまとめた並列実行文を含む高
水準言語による並列処理プログラムを複数の各プロセッ
サ単位のプログラムに変換する。非再帰化処理手段は、
前記機能分割手段による変換に際し、並列実行文を含む
再帰手続きである再帰プロセスを通常の再帰手続きに変
換する。決定手段は、機能分割手段による変換結果に基
づいて必要なプロセッサの数とプロセッサ間のネットワ
ークとを決定する。命令コード生成手段は、機能分割手
段により変換された各プロセッサ単位のプログラムを命
令コードに変換する。 本発明の第3の並列処理プログラ
ムコンパイル装置では、機能分割手段は、同時に実行す
る処理をまとめた並列実行文を含む高水準言語による並
列処理プログラムを複数の各プロセッサ単位のプログラ
ムに変換する。決定手段は、機能分割手段による変換結
果及びプロセッサ間の通信量に基づいて、必要なプロセ
ッサの数とプロセッサ間のネットワークとを決定する。
命令コード生成手段は、機能分割手段により変換された
各プロセッサ単位のプログラムを命令コードに変換す
る。
【0007】
【実施例】以下、本発明の実施例を図面を用いて詳細に
説明する。図1は本発明の一実施例における並列処理プ
ログラムコンパイル装置を備えた並列処理システム設計
支援装置の概略構成図で、この並列処理システム設計支
援装置は、入力手段1と、シミュレータ2と、並列処理
プログラムコンパイル装置3と、マルチプロセッサシミ
ュレータ4とにより構成されている。
【0008】入力手段1は、入力機能と表示機能とを有
していると共に、図形表現型言語を計算機処理に有利な
テキスト型言語に自動変換する機能を有している。シミ
ュレータ2は、入力手段1を用いて入力される設計者の
指示に基づいて、入力手段1によりテキスト型言語に変
換された並列処理プログラムを実行して、文法チェック
等を行うと共に、各プロセスの実行時間等を計測するこ
とにより並列処理プログラムコンパイル装置3による機
能分割に必要なデータを生成して入力手段1に表示させ
る。さらにシミュレータ2は、入力手段1を用いて入力
される設計者の指示に基づいて、並列処理プログラムコ
ンパイル装置3により機能分割された各プロセッサ毎の
プログラムを実行して、各プロセッサの動作時間や同期
待ち時間等を計測することにより並列処理プログラムコ
ンパイル装置3による最適プロセッサ数および結合方式
の決定に必要なデータを生成すると共に入力手段1に表
示させる。
【0009】並列処理プログラムコンパイル装置3は、
入力手段1を用いて入力される設計者の指示に基づい
て、テキスト型の高水準言語で記述された並列処理プロ
グラムをコンパイルして複数のプロセッサを作動させる
ための命令コードを生成すると共に、最適なプロセッサ
の数とプロセッサ間の結合方式を決定する。マルチプロ
セッサシミュレータ4は、入力手段1を用いて入力され
る設計者の指示に基づいて、並列処理プログラムコンパ
イル装置3により生成された各プロッセッサ毎の命令コ
ードを実行し、各プロセッサやプロセッサ間の結合方式
の効率等を計測して入力手段1に表示させる。
【0010】この並列処理システム設計支援装置は、例
えばワークステーションあるいはパーソナルコンピュー
タ等により実現される。図2は並列処理プログラムコン
パイル装置3の構成図で、並列処理プログラムコンパイ
ル装置3は、機能分割手段7と、プロセッサ台数・結合
方式決定手段8と、,命令コード生成手段9とにより構
成されており、機能分割手段7は、非再帰化処理手段1
0と、剥離処理手段11と、1ループ化処理手段12と
により構成されている。
【0011】機能分割手段7は、入力手段1によりテキ
スト型に変換された並列処理プログラムを各プロセッサ
毎のプログラムに分割する。プロセッサ台数・結合方式
決定手段8は、機能分割手段7の分割結果に基づいてプ
ロセッサの台数およびプロセッサ間の結合方式を決定
し、ネットリストを生成する。
【0012】命令コード生成手段9は、機能分割手段7
により機能分割されたプログラムをコンパイルしてプロ
セッサを駆動するための命令コードを生成する。図3は
シミュレータ2の構成図で、シミュレータ2は、コマン
ド解析手段14と、字句解析手段15と、構文解析手段
16と、実行手段17と、データ生成手段18とにより
構成されており、実行手段17は切換手段19を備えて
いる。
【0013】コマンド解析手段14は、入力手段1を介
して供給される設計者からの指示を解析し、シミュレー
ションを制御する。字句解析手段15は、入力手段1に
よりテキスト型に変換された並列処理プログラムあるい
は並列処理プログラムコンパイル装置3の機能分割手段
7により機能分割されたプログラムを読み込んで字句を
解読し、つづりの間違いをチェックする。
【0014】構文解析手段16は、字句解析手段15か
らの単語を受け取って文法を解析し、文法の間違いをチ
ェックする。実行手段17は、構文解析手段16から解
析結果を受け取り、構文に従って各種の演算処理を行
う。データ生成手段18は、プログラムの処理時間等を
計測し、プログラムの効率を予測して並列処理プログラ
ムコンパイル装置3の機能分割手段7による機能分割の
ためのデータあるいは並列処理プログラムコンパイル装
置3のプロセッサ台数・結合方式決定手段8によるプロ
セッサ台数や結合方式の決定のためのデータを生成する
と共に、その結果を入力手段1に表示させる。
【0015】切換手段19は、実行手段17があるプロ
セスの演算を実行中に同期待ちになり、続行条件が成立
しないときに、実行中のプロセス情報を退避させ、別の
プロセスの演算に切り換える。図4はマルチプロセッサ
シミュレータ4の構成図で、マルチプロセッサシミュレ
ータ4は、スケジューリング手段21と、プロセッサエ
ミュレーション手段22と、メモリ管理手段23と、並
列性解析手段24とにより構成されている。
【0016】スケジューリング手段21は、入力手段1
を介して入力される設計者の指示に基づいて、プロセッ
サの数や結合方式の種類やプロセッサのシミュレーショ
ン順位等を決定した後、並列処理プログラムコンパイル
装置3の命令コード生成手段9により生成された命令コ
ードおよびプロセッサ台数・結合方式決定手段8により
生成されたネットリストを読み込んでシミュレーション
を制御する。
【0017】プロセッサエミュレーション手段22は、
スケジューリング手段21により呼び出され、プロセッ
サの動作を命令サイクル単位で実行する。またこの間に
ハードウエアレベルの実行状態および通信路毎のアクセ
ス状態の各種時間を計測する。メモリ管理手段23は、
プロセッサエミュレーション手段22により呼び出さ
れ、例えば4Gバイトの仮想記憶25と例えば4Mバイ
トの主記憶26との対応をとると共に、ネットリストに
基づいてプロセッサ間通信の制御を行う。
【0018】並列性解析手段24は、スケジューリング
手段21により呼び出され、各プロセッサのソフトウェ
アレベルの実行時間を計測すると共に、システムの効率
を演算し、結果を入力手段1に表示させる。次に動作を
説明する。先ず、上記並列処理システム設計支援装置を
用いた設計法の概略について述べる。
【0019】設計者は、並列アルゴリズムを論理的な処
理単位である手続き毎に設計する。このとき、手続きは
必ずしも物理的なプロセッサと1対1に対応していな
い。また、手続き外部との通信は引数によって表され
る。しかも、この段階では引数は他の変数と全く同様に
扱われ、引数の仕様や引数への代入に関しての同期は一
切不要である。並列処理の記述に関しては、同時に実行
する処理をまとめて1つの並列実行文として記述する。
つまり、1つの並列実行文内の処理がすべて終了される
まで自動的に同期がとられかつ実行終了段階ですべての
変数の値が更新されることを保証する並列アルゴリズム
(以下「同期化並列アルゴリズム」という)として記述
する。この記述レベルを以下PDL(Procedur
eDescription Level)という。
【0020】並列処理プログラムコンパイル装置3は、
シミュレータ2によりシミュレーションされたPDL記
述に基づいて、各プロセッサ単位の処理を設計する。先
ず、並列性を考慮して同期化並列アルゴリズムを可能な
数のプロセス(並列実行文中で呼び出され、並列実行文
を直接あるいは間接的に含まない手続き)に機能分割す
る。このとき、逐次実行されている部分は各プロセスに
そのまま複写され、並列実行文についてはできるだけプ
ロセス間の処理時間が均一になるように振り分ける。そ
して、あらかじめ一組の論理型変数を用意しておき、分
割前に並列実行文の間である条件が成立するまで処理を
ストップさせるための同期文とこれらの論理型変数への
代入文を組み合わせた通信文を発生させて、各プロセス
間の同期をとる。これらの一連の処理は、多数のプロセ
スが張り合わされた状態であったものが強制的に引き剥
がされて、別々の手続きになるようすを表していること
から、剥離処理と呼ぶ。そして、最初に実行する手続き
のみが並列実行文を含む記述(以下「並列プロセス」と
いう)に変換する。すなわち、PDL記述の段階におけ
るフローグラフが図5のようである場合、剥離処理後の
フローグラフは図6のようになる。この状態で、各プロ
セス間の処理時間および稼働率が設計仕様を満足すれ
ば、各プロセスを各々1つのプロセッサに割り付ける。
設計仕様を満足していない場合、特にプロセス間の処理
時間の格差が激しい場合は、プロセス中に1つのループ
文のみ含むように分割し、同期文を発生する。この場合
1つのループ文とは、あるループ文が他のループ文を完
全に含む構造(入れ子構造)になっていないループ文の
数である。したがって、2つのループ文が入れ子構造を
構成している場合は、1つのループ文として扱う。そし
て、処理時間が均等化されるように各プロセス間の比率
を求め、その比率にできるだけ近づくようにBerns
teinの条件を用いてプロセスを分割する。このプロ
セッサ単位の記述レベルをSDL(Structure
Description Level)と呼ぶ。もし
この段階で設計仕様を明らかに満足しない場合は、PD
L設計からやり直す必要がある。
【0021】さらに並列処理プログラムコンパイル装置
3は、シミュレータ2によりシミュレーションされたS
DL記述に基づいて各プロセッサ間の通信状態を判断
し、通信の頻繁に行われているプロセッサ同士をすべて
結合する。しかも、通信が必要なプロセッサのうちどの
プロセッサとも通信できないプロセッサ(孤立プロセッ
サ)がないように結合し、これをネットワークとする。
そして、SDL記述をプロセッサ固有の命令コードに変
換する。また決定したネットワークを、結合するプロセ
ッサの論理番号の組からなるネットリストに変換する。
さらにネットリストから、各プロセッサが直接あるいは
間接に通信すべきプロセッサの論理番号リストをプロセ
ッサ毎に生成し、命令コード中に付加する。なお、ネッ
トワーク中で直接結合していないプロセッサ同士が通信
を行うためには、第3のプロセッサを経由して通信を行
う必要がある(間接通信)。そのために、各プロセッサ
は他の全てのプロセッサにデータを転送するために必要
な中継用プロセッサの候補を記憶する必要がある。この
段階で、再度設計仕様を検討し、これを満足しない場合
は設計のやり直しをする必要がある。ネットワークに対
して、軽度なものならば標準的なネットワークに変更す
ることも可能であるが、重度なものではPDL設計を変
更する必要がある。
【0022】次に、上記並列処理システム設計支援装置
を用いた設計法の詳細について述べる。設計者は、図形
表現型の高水準言語により記述されたPDL記述の並列
プログラムを入力手段1に入力する。これにより入力手
段1は、図形表現型の言語をテキスト型の言語に変換
し、図外の記憶手段に格納する。
【0023】次に設計者は、入力手段1に並列プログラ
ムのシミュレーションを行う旨の指示を入力する。これ
によりシミュレータ2の字句解析手段15は、図7のよ
うに、記憶手段からPDL記述の並列プログラムaを逐
次読み出し、単語を文章中から切り出して、予め記憶手
段に記憶されている記号表bからシンボルに対応した属
性を探し出した後、シンボルと属性とをシンボル・属性
リストcとして出力する。なお記号表bは、プログラム
言語の種類に応じて作成しておく。
【0024】次に構文解析手段16は、図8のように、
字句解析手段15から1文単位でシンボル・属性リスト
cを受け取り、予め記憶手段に記憶されている文法規則
表dからシンボル・属性リストcに対応した文の種類を
特定し、構文解析表eを作成する。なお文法規則表d
は、プログラム言語の種類に応じて作成しておく。次に
実行手段17は、図9のように、構文解析手段16から
構文解析表eを受け取り、解析結果に従った処理を予め
記憶手段に記憶されている実行関数表fから探し出し、
実行する。このとき、処理に必要なデータを予め記憶手
段に記憶されている処理管理表gから取り出し、結果を
処理管理表gの対応する箇所に書き込む。
【0025】一方データ生成手段18は、図10のよう
に、構文解析手段16から構文解析表eを受け取り、対
応するアセンブリコードを等価コード表hに作成して、
その等価コードの実行時間を予め記憶手段に記憶されて
いる命令コード表iとアドレッシングモード表jとを参
照しながら計算し、現在実行中のプロセスの時間表kに
実行時間を加算する。
【0026】シミュレーションが終了すると、結果が入
力手段1に表示される。結果が仕様を満足していれば、
次の段階に進む。仕様を満足していなければ、PDL記
述の段階から設計をやり直す。次に設計者は、入力手段
1に並列プログラムをPDL記述からSDL記述に変換
する旨の指示を入力する。これにより並列処理プログラ
ムコンパイル装置3は、設計者の指示に基づいて記憶手
段から並列プログラムを逐次読み出し、機能分割手段7
により機能分割を行う。この機能分割は、PDL記述で
表された同期化並列アルゴリズムをSDL記述で表され
る並列プロセスに変換するものであって、再帰プロセス
の非再帰化処理と、剥離処理と、1ループ化処理とから
なり、以下に詳細を説明する。なお、以下の説明で用い
る用語の定義を下記表1、2に示す。
【0027】
【表1】
【0028】
【表2】
【0029】非再帰化処理手段10は、並列プログラム
中の並列実行文を含む再帰手続きである再帰プロセスを
通常の再帰手続きに変換する。すなわち再帰プロセス
は、再帰呼び出しが実行される回数分のプロセスが生成
され、これらの処理が同時に実行されるものであり、実
行するまで発生するプロセスの数が確定しないため、機
能分割を困難にすることから、機能分割を実行するに当
たり、再帰プロセスを普通の再帰手続きに変換する必要
がある。この再帰プロセスの非再帰化処理により、図1
1(A)のようなプロセスモデルが図11(B)のよう
なプロセスモデルに変換される。具体的には、下記
(1)、(2)の処理を実行する。
【0030】(1)並列実行文を含む手続きがその並列
実行文から呼び出している手続きによってさらに呼び出
されている場合、該当する全ての手続きAに対して手続
き名をA’に変えて複製をとり、並列実行文を逐次実行
文に置き換える。 (2)並列実行文中で呼び出しされているすべての手続
きに対して呼び出している手続き名をAからA’に置き
換える。
【0031】剥離処理手段11は、分割処理と、同期機
構・通信プロトコルの発生処理と、被分割集合の手続き
化処理と、インライン展開処理とからなる剥離処理を行
う。分割処理は、最大の実行文を持つ並列実行文と同数
の文の集合に、各処理量が均等化されるようにmin−
max原理に基づいて処理を分割するものである。具体
的には、下記(1)〜(5)の処理を行う。
【0032】(1)変数型の分割・合成処理により、従
属型並列処理の前後に変換部を発生させる。 (2)従属型並列処理を構成するすべての並列実行文
(下記数1)を1文単位の集合(下記数2)に分割し、
この最大要素数mi を被分割手続き数とする。 (3)各文の実行時間に対するmin−max原理に基
づいて、集合(下記数2)をmi 個の集合(下記数3)
にまとめる。
【0033】(4)従属型並列処理を含んでいた実行部
をmi 個コピーし、その中に下記数3の要素を埋め込
む。 (5)各処理に対して、埋め込みが起こった基本ブロッ
ク内で他の処理に分配された変数定義が使用されている
場合は送受信用の代入文を発生させる。
【0034】
【数1】
【0035】
【数2】
【0036】
【数3】
【0037】同期機構・通信プロトコルの発生処理は、
分割後の各集合に対して通信プロトコルを生成するもの
である。具体的には、下記(1)〜(3)の処理を行
う。 (1)変数の分類を行い、すべての受信・放送変数ak
に対して同期変数fk を生成し、通信変数vk とする。
このとき、同期変数の受信側および送信側の要素数はそ
の変数を受信および送信している手続きの数に合わせ
る。
【0038】(2)下記〜の規則にしたがって、受
信点・放送点・中継点にそれぞれ同期機構・通信プロト
コルを発生させる。このとき、正論理または負論理で統
一し、しかも初期値の挿入は1つの変数につき1回とす
る。なお、受信点とは並列実行文中で受信変数が使用さ
れる場所をいい、放送点とは並列実行文中で放送変数が
使用される場所をいい、中継点とは代入文両辺に中継変
数が存在する場所をいう。
【0039】受信(放送)点が制御構造の実行文中に
あれば、受信(放送)点に受信(放送)プロトコルを発
生させる。制御構造に属さない場合、受信(放送)点が
1つ以上存在すれば受信(放送)プロトコルを、それ以
外は同期機構を発生させる。 中継点に中継プロトコルを発生させる。
【0040】制御構造の有無により同期変数の値変化
に差がでてはならない。 (3)同期変数f endを生成し、他のすべての実行
文を下記数4で挟む。
【0041】
【数4】
【0042】被分割集合の手続き化処理は、被分割集合
を実行部とする手続きを生成し、これらの手続きを呼び
出す1つの並列実行文を生成し、これを元の実行部と置
き換えるものである。具体的には、下記(1)〜(4)
の処理を行う。 (1)生成された通信変数の複製をとる。また、各被分
割集合の同期変数f endの複製を変数名が重ならぬよ
うにとる。
【0043】(2)下記〜の規則にしたがって、被
分割集合を実行部とする手続き宣言部を生成する。この
とき変数と変数型との対応をとる。 受信変数となっているものおよび同期文中に現れた論
理型変数は入力変数とする。 放送変数となっているものおよび定義された論理型変
数は出力変数とする。
【0044】中継変数となっているものについては、
受信点と放送点とにおける変数名を変更した後で入出力
変数とする。 自動的に生成された変数は内部変数とする。 (3)複製された通信変数を引数として、生成された手
続きをすべて呼び出す1つの並列実行文を生成する。こ
のとき、それぞれの手続き宣言部の入出力変数に対応し
て入出力引数を生成する。
【0045】(4)生成された並列実行文に各手続きか
らの同期変数f endi に対し下記数5の終了判定文
を加えた逐次実行文を元の実行部と置き換える。
【0046】
【数5】
【0047】インライン展開処理は、展開前の手続きが
カーネルでなければ、手続きを呼び出している手続きに
対して、手続き呼び出し文を展開後の実行部で置き換え
るものである。具体的には、下記(1)〜(5)の手続
きを実行する。なお、カーネルとは最初に実行される手
続きをいう。 (1)手続き呼び出し文を対応する手続きの実行部で置
き換える。
【0048】(2)実行部に含まれる内部変数を、変数
名が重複する場合は名前を変更し、重複しない場合はそ
のまま定義する。 (3)変数の型が存在しない場合は変数型の定義を行っ
た後、変数を型に対応させる。 (4)実行部に含まれる入出力変数を入出力引数で、変
更された内部変数を変更後の名前でそれぞれ置き換え
る。
【0049】剥離処理により生成されたカーネルは、複
数の並列実行文が逐次的に実行される構造を持つことに
なる。剥離処理では、各並列実行文毎にはプロセスに対
する処理量の均等化を考慮している。しかし、カーネル
から呼び出されている全てのプロセスに対する処理量の
均等化については考慮していない。したがって、生成さ
れた並列プロセス全体としての各プロセスの処理量の均
等化を行うことにより、最適なシステムとなる。そこ
で、並列実行文間でプロセスの処理量の比により、それ
ぞれのプロセスの実行プロセッサ数を決定する必要があ
る。そこでは、各プロセスの処理をn分割する必要が生
じる。そして、これが可能なものは、手続き内にループ
文を含んでいる場合である。このループ文に着目した分
割法を適用可能とするために、すべての手続きを1ルー
プ化する必要が生じる。この1ループ化処理は下記
(1)〜(6)の手順により実現される。
【0050】(1)2つ以上のループ文を含む手続きの
実行部をループ文の終了部分で分割する。 (2)分割した文の集合の間にデータ依存関係が存在す
る場合、その変数を記憶する。 (3)下記〜の規則にしたがい、分割した文の集合
を実行部とする手続き宣言部を生成する。
【0051】データ依存関係が存在する変数が実行部
で使用されているものは入力変数とする。 データ依存関係が存在する変数が実行部で定義されて
いるものは出力変数とする。 データ依存関係が存在する変数が実行部で使用・定義
されているものについては、変数名を分離して入出力変
数とする。さらに、実行部の使用箇所と定義箇所の変数
名を入出力変数名で置き換える。
【0052】データ依存関係が存在しない変数は局所
変数とする。 (4)実行部の使用・定義箇所をそれぞれ受信・放送点
と見做して同期機構・通信プロトコルを発生させる。 (5)各手続きに同期変数f endを生成して、下記
数4で実行部をはさむ。
【0053】(6)元のプロセスを呼び出している箇所
に分割した手続き呼び出し文を生成する。 次に設計者は、入力手段1に機能分割処理後のプログラ
ムのシミュレーションを行う旨の指示を入力する。これ
によりシミュレータ2の字句解析手段15は、図7のよ
うに、記憶手段から並列プログラムaを逐次読み出し、
単語を文章中から切り出して、記号表bからシンボルに
対応した属性を探し出した後、シンボルと属性とをシン
ボル・属性リストcとして出力する。
【0054】次に構文解析手段16は、図8のように、
字句解析手段15から1文単位でシンボル・属性リスト
cを受け取り、文法規則表dからシンボル・属性リスト
cに対応した文の種類を特定し、構文解析表eを作成す
る。次に実行手段17は、図9のように、構文解析手段
16から構文解析表eを受け取り、解析結果に従った処
理を実行関数表fから探し出し、実行する。このとき、
処理に必要なデータを処理管理表gから取り出し、結果
を処理管理表gの対応する箇所に書き込む。また実行手
段17は、構文解析手段16から受け取った構文解析表
eの文がwait文であれば切換手段19を起動する。
【0055】これにより切換手段19は、図12のよう
に、構文解析表eの条件部を参照し、条件がT(Tru
e)であれば何もせずに処理を続行する。条件がF(F
alse)であれば、現在の状態をプロセス管理表mに
記入した後、タイムホイールnを1ステップ進めて次に
実行すべきプロセス名を取得し、プロセス管理表mに従
って実行すべきプログラムに切り換える。
【0056】すなわち図13のように、第iプロセスを
実行し(ステップS1)、同期待ちか否かを判断し(ス
テップS2)、同期待ちであれば処理続行の条件が不成
立であるか否かを判断し(ステップS3)、不成立であ
れば第iプロセスを退避させ(ステップS4)、iに1
を加えてiとし(ステップS5)、第iプロセスを呼び
出して(ステップS6)、ステップS1に戻る。ステッ
プS2で同期待ちでなければステップS1に戻る。ステ
ップS3で条件不成立でなければステップS1に戻る。
【0057】一方データ生成手段18は、図10のよう
に、構文解析手段16から構文解析表eを受け取り、対
応するアセンブリコードを等価コード表hに作成して、
その等価コードの実行時間と同期待ち時間とを、予め記
憶手段に記憶されている命令コード表iとアドレッシン
グモード表jとを参照しながら計算し、現在実行中のプ
ロセスの時間表kに実行時間と同期待ち時間とに分けて
加算する。
【0058】シミュレーションが終了すると、結果が入
力手段1に表示される。結果が仕様を満足していれば、
次の段階に進む。仕様を満足していなければ、PDL記
述の段階から設計をやり直す。次に設計者は、入力手段
1にプロセッサ台数およびプロセッサ間の結合方式を決
定し、プロセッサを作動させるための命令コードを生成
する旨の指示を入力する。これにより並列処理プログラ
ムコンパイル装置3のプロセッサ台数・結合方式決定手
段8は、シミュレータ2のデータ生成手段18により生
成されたデータを参照して、プロセッサの台数およびプ
ロセッサ間の結合方式を決定すると共に、中継用プロセ
ッサリストを生成する。
【0059】結合方式の決定は、下記(1)〜(3)の
手順で行う。 (1)すべてのプロセッサの組(p i ,p j
に対して結合力を計算し、結合力行列F=(Fij)を求
める。ここで結合力とは、プロセス間の通信量であり、
変数のサイズと処理実行中に送受信した回数とにより決
定することができ、本実施例では下記数6を結合力関数
とする。この関数は、プロセスが実行中に通信した情報
量に比例した量であると見做すことができる。
【0060】
【数6】
【0061】(2)得られた結合力行列Fのすべての要
素に対し、そのヒストグラムをとる。 (3)ヒストグラムがいくつかの分布に分割される場合
は、結合力の大きな分布から順に分布に属するプロセッ
サの組をネットワークとして直接結合し、ネットリスト
を作成する。このとき、通信が必要なプロセッサのうち
どのプロセッサとも直接あるいは間接的に結合せず孤立
するプロセッサが存在しなくなるまで分布を採用する。
また、分布が分割しない場合は、この分布に属するすべ
てのプロセッサをネットワークとして直接結合し、ネッ
トリストを作成する。
【0062】このように結合方式を決定することによ
り、プロセス間の通信量の小さなものについては直接結
合させずに中継させることで、通信用の回路の増大を抑
えることができ、通信量の大きなものについては直接結
合させることで、中継に伴う通信のオーバヘッドを減少
させることができる。以上の手順でネットワークが決定
すると、とりあえずプロセッサ間の通信は可能となる
が、これは単に線がつながったに過ぎない。つまり、す
べてのプロセッサが互いに接続された場合を除いて、直
接通信のできないプロセッサの組が存在する。このプロ
セッサ同士は、第3者を経由しないと通信することがで
きない。ところが、どのプロセッサを経由すれば通信を
行うことが可能であるのかといっった情報はまだ決定さ
れていない。したがって、この情報を決定する必要があ
る。これはネットリストが与えられれば、決定すること
は可能である。この問題は、与えられた2点間の最短経
路を決定する問題として知られ、ダイクストラ(Dij
kstra)法等の解法が有名である。本実施例では、
ダイクストラ法を用いて通信経路を決定しているので、
詳細なアルゴリズムの説明は省略する。自分以外のプロ
セッサへ通信するための情報としては、そのプロセッサ
へ通信するために、直接通信すべきプロセッサのリスト
を記憶しておけばよい。また、最短経路が複数存在して
も差し支えなく、これをすべて記憶しておけば、特定の
通信路のみが混雑することを防ぐことが可能となる。
【0063】また並列処理プログラムコンパイル装置3
の命令コード生成手段9は、機能分割手段7により機能
分割されたプログラムをコンパイルして、プロセッサを
作動させるための命令コードを生成する。次に設計者
は、入力手段1に並列処理プログラムコンパイル装置3
により生成された命令コードおよびネットリストを用い
てシミュレーションを行う旨の指示を入力する。これに
よりマルチプロセッサシミュレータ4がシミュレーショ
ンを行う。マルチプロセッサシミュレータ4は、図14
のように、(A)の共有メモリ型や、(B)の木構造型
や、(C)の配列型や、(D)のトーラス型や、(E)
の超立方体型(ハイパーキューブ型)等の代表的なネッ
トワークを実現可能であり、ネットワークの性能を比較
できるようになされている。
【0064】スケジューリング手段21は、設計者の指
示に基づいて、プロセッサの数、ネットワークの種類、
プロセッサのシミュレーション順位等を決定した後、並
列処理プログラムコンパイル装置3のコード生成手段9
が生成したコードおよびプロセッサ台数・結合方式決定
手段8が決定したネットリストを読み込んで、シミュレ
ーションの制御を行う。すなわち図15のように、初期
設定時には、メモリ管理手段23に通信網情報と初期値
データとを渡し、タイムホイールpにプロセッサの実行
順序を設定する。そしてシミュレーション時には、タイ
ムホイールpの実行プロセッサのプロセッサ番号をプロ
セッサエミュレーション手段22に渡し、タイムホイー
ルpのポインタを1つ進める。
【0065】プロセッサエミュレーション手段22は、
スケジューリング手段21により呼び出され、対象とす
るプロセッサの動作を命令サイクル単位で実行する。こ
の間にハードウェアレベルの実行状態(演算中、命令呼
び出し、ローカルメモリ読み出し・書き込み・呼び出し
待ち・書き込み待ち、共有メモリ呼び出し・書き込み、
呼び出し待ち、書き込み待ち、I/O呼び出し・書き込
み・呼び出し待ち・書き込み待ち)および通信路毎のア
クセス状態(呼び出し・書き込み・呼び出し待ち・書き
込み待ち)の時間を計測する。すなわち図16のよう
に、命令コードすなわちアセンブリ言語で書かれたプロ
グラムqを実行する。例えば、mov a,doを読み
込み、aに対するアドレスを出力してメモリ管理手段2
3からデータdata(a)を受理する。そして命令が
movであることから、プロセッサデータファイルrの
レジスタファイル中のdoへデータdata(a)を代
入した後、ポインタを1つ進める。このとき同時に、各
サイクルに要した時間を、命令サイクル時間表sを参照
してプロセッサデータファイルr中の時間情報部に記入
する。
【0066】メモリ管理手段23は、プロセッサエミュ
レーション手段22から呼び出され、仮想空間すなわち
仮想記憶25と物理空間すなわち主記憶26との対応を
とる。同時に、I/O空間を介してネットワークによる
プロセッサ間の通信の制御を行う。すなわち図17のよ
うに、初期設定時にはスケジューリング手段21により
通信網の形態情報を受け取り、各ポートに対してアクセ
ス可能なプロセッサを示す属性をセットすることによっ
て、通信網tを設定する。このポートは属性にセットさ
れた1組のプロセッサのみがアクセス可能であり、これ
によって通信を行うことが可能である。そしてシミュレ
ーションが開始されると、メモリ管理手段23はプロセ
ッサから指定されたプロセッサ番号とアドレスとによっ
て、対応するデータをプロセッサエミュレーション手段
22に返す。なおuはプロセッサデータ、vは共有デー
タである。
【0067】並列性解析手段24は、スケジューリング
手段21により呼び出され、各プロセッサのソフトウェ
アレベルの実行状態に関する時間を計測する。すなわち
マルチプロセッサシミュレータ4には、各プロセッサ毎
に10個のシステム変数が用意されており、この変数を
設定することにより、変数が設定されている間の時間を
独立に計測することが可能となる。設計者は、この変数
を用いることによって任意の処理の実行時間を計測する
ことが可能となる。10個のシステム変数のうち、pr
b0〜prb2はシステムで予約されており、それぞ
れ、処理実行中、通信中、待機中の時間の計測を行う。
処理実行中は、プロセッサが自分の与えられた仕事を実
行している時間であり、通信中は、処理に必要なデータ
の送受信または他のプロセッサへの中継処理を行ってい
る時間であり、待機中は、何もせずにただ待っている時
間である。それぞれのシステム変数に対する計測を実行
すると共に、計測された結果をハードウェアレベルの結
果と合わせて集計し、データファイルとして出力する。
【0068】シミュレーションが終了すると、結果が入
力手段1に表示される。結果が仕様を満足していれば、
設計を終了する。仕様を満足していなければ、PDL記
述の段階から設計をやり直す。なお、通信の効率が満足
できない場合は、図14(A)〜(E)のような既存の
ネットワークと効率を比較し、既存のネットワークで仕
様を満足すればそれを採用する。
【0069】以上の手順で開発された並列処理プログラ
ムを実行する並列処理プロセッサは、例えば図18のよ
うに、ローカルメモリ280 〜28n-1 を有する複数の
プロセッサ290 〜29n-1 が通信網により結合し、通
信路を介して他の複数のプロセッサ290 〜29n-1
の通信を行うものである。通信網は、複数のプロセッサ
290 〜29n-1 同士の結合状態を示すネットリストに
よりデータバス30と双方向メモリブロック310 〜3
n-1 との対応を切り換える汎用スイッチ32と、汎用
スイッチ32を制御するネットワークコントローラ33
とからなる。通信は、結合可能な複数のプロセッサ29
0 〜29n-1 のみがアクセス可能な複数の双方向メモリ
ブロック310 〜31n-1 の書き込みにより行われる。
またこの通信網は、すべてのプロセッサ290 〜29
n-1 がアクセス可能な共有メモリ34を持ち、共有メモ
リ34を介してもプロセッサ290 〜29n-1 同士は通
信可能である。プロセッサ290 〜29n-1 同士の通信
におけるハードウェアレベルでの排他制御は自動的に行
われているものとし、さらにソフトウェア的には、各プ
ロセッサ290 〜29n-1 は非分割の読み書きサイクル
のtas(Testand Set)命令を備えている
ものとする。図19はメモリ空間(仮想空間)の全体構
成図で、メモリ空間は大きく3つの部分(ローカルメモ
リ空間、共有メモリ空間、I/O空間)に分かれてい
る。ローカルメモリ空間は、それぞれ対応するプロセッ
サ290 〜29n-1 のみがアクセス可能な領域であり、
各プロセッサ290 〜29n-1 毎に存在する。ローカル
メモリ空間は、さらにプロセッサ290 〜29n-1 固有
の例外ベクタ領域(プロセッサ290 〜29n-1 によっ
ては存在しない場合もある)、PE結合情報部、ユーザ
領域からなっている。共有メモリ空間は、すべてのプロ
セッサ290 〜29n-1 がアクセス可能な領域であり、
ネットワークコントローラ33により排他制御され、同
時には1つのプロセッサ290 〜29n-1 のみがアクセ
ス可能である。I/O空間は多数のメモリブロックから
なっており、各ブロックは特定の1組のプロセッサのみ
がアクセス可能である。その排他制御は、各プロセッサ
290 〜29n-1 の結合状態を表すネットリストにした
がって、ネットワークコントローラ33が行う。この領
域は、各ブロック毎に同時にアクセス可能である。PE
(プロセッサ)結合情報部は、ローカルメモリ空間中に
存在し、図20のように、プロセッサ290 〜29n-1
の論理番号、ネットワークの種類、ネットワーク用パラ
メータ、そのプロセッサが直接I/Oを介して通信可能
なプロセッサの番号とそのI/Oアドレス等を格納す
る。ユーザ領域は、図21のように、プロセッサ290
〜29n-1 が実行するプログラムを格納する領域とプロ
セッサ290 〜29n-1 のみがアクセスするデータを格
納する領域とからなる。なお例外ベクタ領域は、各プロ
セッサ290 〜29n-1 により異なるため、その構造の
説明を省略する。I/O空間は、図22のように、1ブ
ロック16バイトで構成され、これを介して1組のプロ
セッサが通信を行うことができる。1ブロックは、さら
に属性領域、送受信バッファ、予備領域からなる。プロ
セッサ290 〜29n-1 がアクセス可能な領域は送受信
バッファおよび予備領域であり、属性領域はネットワー
クコントローラ33のみがアクセス可能である。
【0070】以下、上記並列処理プログラムコンパイル
装置の主要な動作について、具体的な動作を説明する。 (具体的実施例1)再帰プロセスの非再帰化処理につい
て、下記数7に示すガウス関数を含む不定積分値を求め
る手続きIntGauss( ) の非再帰化処理を用いて
説明する。
【0071】
【数7】
【0072】不定積分値Gm は、mの偶数・奇数によ
り、下記数8のように2つの場合に分かれる。
【0073】
【数8】
【0074】ここで、上記数8の値は下記数9〜数11
により計算できる。
【0075】
【数9】
【0076】
【数10】
【0077】
【数11】
【0078】Gm の値を求める手続きをIntGaus
s( ) 、En の値を求める手続きをIntEGauss
( ) 、On の値を求める手続きをIntOGauss
( ) 、On の積分値を求める手続きをIntIOGau
ss( ) とすると、プログラムは図23〜図26のよう
になる。なお図24の網かけ部分は並列実行文である。
手続きIntEGauss( ) において、手続きInt
OGauss( ) および手続きIntIOGauss
( ) は並列実行文中で呼び出されているため、プロセス
である。さらに、手続きIntOGauss( ) は手続
きIntEGauss( ) を呼び出しているため、手続
きIntEGauss( ) は再帰手続きである。したが
って、手続きIntEGauss( ) は再帰プロセスで
ある。
【0079】再帰プロセスに対する非再帰化処理は、下
記(1)(2)の原理に基づいて行う。 (1)再帰プロセスAの並列実行文を順次実行文とした
手続きA’を新たに生成する。 (2)再帰プロセスAから呼び出される手続きに対し
て、再帰プロセスAを呼び出す手続き名をすべてA’に
変更する。
【0080】すなわち、非再帰化処理後の手続きInt
EGauss( ) は図27のようになる。また新たに生
成された手続きIntEGauss1( ) を図28に示
し、修正された手続きIntOGauss( ) を図29
に示す。なお図29において網かけ部分は変更箇所を示
す。 (具体的実施例2)機能分割からネットワークの決定ま
での処理について、図30のプログラムのように高速フ
ーリエ変換におけるバタフライ演算を実行する手続きc
alcを用いて説明する。なお、この例では再帰プロセ
スは存在せず、また、全ての手続きは1ループ化されて
いるため、再帰プロセスの非再帰化処理および1ループ
化処理を行う必要がないので、説明を省略する。
【0081】(1)分割処理 図30のプログラムからは図31のようなフローグラフ
が得られる。このフローグラフの節は各実行文を表し、
複数の分岐すなわち破線で囲んだ部分は並列実行を表
す。分割処理を施した結果、図32のようなフローグラ
フになる。 (2)同期機構・通信プロトコルの発生処理 変数の分類処理による手続きcalcに対する変数の分
類結果は、図33のようになる。変数yre,yim,
xre,ximは、この手続き中では独立した変数であ
るが、手続きcalcを呼び出している手続きcfft
中ではどちらも変数zre,zimであるため、この両
者は同一変数として扱われる。したがって、変数yr
e,yim,xre,ximは中継変数となる。続い
て、分類結果を基に孤立変数以外の全ての変数に対し
て、同期変数を発生させ、通信変数とする。このように
して得られた通信変数を図34に示す。また、同期機構
・通信プロトコルの発生処理後のプログラムの処理実行
部分を図35〜図38に示す。なお図35〜図38にお
いて、網かけ部分は並列処理プログラムコンパイル装置
3の機能分割手段7の剥離処理手段11により生成され
た同期機構・通信プロトコルを表す。
【0082】(3)非分割集合の手続き化処理およびイ
ンライン展開処理 同期機構・通信プロトコルの発生が行われた後、この集
合を処理実行部とする手続きを生成する。そして、この
手続きcalcに対してインライン展開処理が実行され
る。 (4)ネットワークの決定 ネットワークの決定に必要な結合力分布を求めるため
に、シミュレータ2により再度シミュレーションを行
う。シミュレーションの結果得られた結合力行列を図3
9に示し、これにより作成された結合力分布を図40に
示す。なお図39において、P0はシステム全体の管
理、P1〜P7は三角関数表作成、P8〜P11はバタ
フライ演算、P12〜P14はビットリバース演算であ
る。この結合力分布から、結合力が8以上(図39中*
印部)のプロセッサの組(ネット)については直接結合
し、これをネットワークとする。この結果として得られ
たネットワークを図41にグラフの形で示す。このグラ
フの節はプロセッサを表し、実線の枝は通信路を表す。
また破線の枝は、直接は結合していないが通信を行って
いること、つまり、これらの間の通信には第3のプロセ
ッサが必要であることを表す。
【0083】なお上記実施例では、プロセッサ同士を直
接結合する範囲を決定するに際して、通信の必要なプロ
セッサ同士が直接あるいは間接的にすべて結合される最
大の結合力を基準にしたが、この基準になる結合力は入
力手段1を用いて設計者がもっと小さい値を設定できる
ように構成してもよい。また上記実施例では、必ず1ル
ープ化処理を実行するように構成したが、1ループ化処
理は設計者が入力手段1を用いて指示した場合にのみ実
行するように構成してもよい。
【0084】
【発明の効果】以上説明したように本発明によれば、同
時に実行する処理をまとめた並列実行文を含む高水準言
語による並列処理プログラムを複数の各プロセッサ単位
のプログラムに変換する機能分割手段と、この機能分割
手段による変換結果に基づいて必要なプロセッサの数と
プロセッサ間のネットワークとを決定する決定手段と、
機能分割手段により変換された各プロセッサ単位のプロ
グラムを命令コードに変換する命令コード生成手段とを
設けたので、各プロセッサ毎の処理を自動的に生成でき
ることから、効率のよい並列処理システムを容易に設計
できる。また各プロセッサの同期待ちを自動的に生成で
きることから、デッドロックの発生がなく、確実な動作
の並列処理システムを迅速に設計できる。また各プロセ
ッサ間の通信網をプログラムの性質を考慮して自動的に
生成できることから、効率のよい並列処理システムを容
易に設計できるという優れた効果を奏する。
【図面の簡単な説明】
【図1】本発明の一実施例における並列処理プログラム
コンパイル装置を備えた並列処理システム設計支援装置
の概略構成図である。
【図2】並列処理プログラムコンパイル装置の構成図で
ある。
【図3】シミュレータの構成図である。
【図4】マルチプロセッサシミュレータの構成図であ
る。
【図5】PDL記述によるプロセスモデルのフローグラ
フである。
【図6】剥離処理後のプロセスモデルのフローグラフで
ある。
【図7】字句解析手段の動作説明図である。
【図8】構文解析手段の動作説明図である。
【図9】実行手段の動作説明図である。
【図10】データ生成手段の動作説明図である。
【図11】非再帰化処理前後のプロセスモデルのフロー
グラフである。
【図12】切換手段の動作説明図である。
【図13】切換手段の動作を説明するためのフローチャ
ートである。
【図14】マルチプロセッサシミュレータにより実現可
能なネットワークの構成図である。
【図15】スケジューラ手段の動作説明図である。
【図16】プロセッサエミュレーション手段の動作説明
図である。
【図17】スケジューラ手段の動作説明図である。
【図18】並列処理プロセッサの実モデルの構成図であ
る。
【図19】仮想空間の構成図である。
【図20】PE結合情報部の構成図である。
【図21】ユーザ領域の構成図である。
【図22】I/O空間の構成図である。
【図23】PDL記述によるプログラムの説明図であ
る。
【図24】PDL記述によるプログラムの説明図であ
る。
【図25】PDL記述によるプログラムの説明図であ
る。
【図26】PDL記述によるプログラムの説明図であ
る。
【図27】非再帰化処理後のプログラムの説明図であ
る。
【図28】非再帰化処理後のプログラムの説明図であ
る。
【図29】非再帰化処理後のプログラムの説明図であ
る。
【図30】PDL記述によるプログラムの説明図であ
る。
【図31】PDL記述によるプロセスモデルのフローグ
ラフである。
【図32】分割処理後のプロセスモデルのフローグラフ
である。
【図33】変数の分類結果の説明図である。
【図34】通信変数の説明図である。
【図35】同期機構・通信プロトコルを埋め込んだプロ
グラムの説明図である。
【図36】同期機構・通信プロトコルを埋め込んだプロ
グラムの説明図である。
【図37】同期機構・通信プロトコルを埋め込んだプロ
グラムの説明図である。
【図38】同期機構・通信プロトコルを埋め込んだプロ
グラムの説明図である。
【図39】結合力行列の説明図である。
【図40】結合力分布の説明図である。
【図41】ネットワークの説明図である。
【符号の説明】 3 並列処理プログラムコンパイル装置 7 機能分割手段 8 プロセッサ台数・結合方式決定手段 9 コード生成手段

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 同時に実行する処理をまとめた並列実行
    文を含む高水準言語による並列処理プログラムを複数の
    各プロセッサ単位のプログラムに変換する機能分割手段
    と、前記機能分割手段による変換結果に基づいて、前記
    各プロセッサ単位のプログラムに同期命令を挿入する同
    期命令挿入手段と、前記機能分割手段による変換結果に
    基づいて必要なプロセッサの数とプロセッサ間のネット
    ワークとを決定する決定手段と、前記機能分割手段によ
    り変換された各プロセッサ単位のプログラムを命令コー
    ドに変換する命令コード生成手段とを設けたことを特徴
    とする並列処理プログラムコンパイル装置。
  2. 【請求項2】 同時に実行する処理をまとめた並列実行
    文を含む高水準言語による並列処理プログラムを複数の
    各プロセッサ単位のプログラムに変換する機能分割手段
    と、前記機能分割手段による変換に際し、並列実行文を
    含む再帰手続きである再帰プロセスを通常の再帰手続き
    に変換する非再帰化処理手段と、前記機能分割手段によ
    る変換結果に基づいて必要なプロセッサの数とプロセッ
    サ間のネットワークとを決定する決定手段と、前記機能
    分割手段により変換された各プロセッサ単位のプログラ
    ムを命令コードに変換する命令コード生成手段とを設け
    たことを特徴とする並列処理プログラムコンパイル装
    置。
  3. 【請求項3】 同時に実行する処理をまとめた並列実行
    文を含む高水準言語による並列処理プログラムを複数の
    各プロセッサ単位のプログラムに変換する機能分割手段
    と、前記機能分割手段による変換結果及びプロセッサ間
    の通信量に基づいて、必要なプロセッサの数とプロセッ
    サ間のネットワークとを決定する決定手段と、前記機能
    分割手段により変換された各プロセッサ単位のプログラ
    ムを命令コードに変換する命令コード生成手段とを設け
    たことを特徴とする並列処理プログラムコンパイル装
    置。
JP24957391A 1991-09-27 1991-09-27 並列処理プログラムコンパイル装置 Expired - Fee Related JP3246668B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24957391A JP3246668B2 (ja) 1991-09-27 1991-09-27 並列処理プログラムコンパイル装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24957391A JP3246668B2 (ja) 1991-09-27 1991-09-27 並列処理プログラムコンパイル装置

Publications (2)

Publication Number Publication Date
JPH0588910A JPH0588910A (ja) 1993-04-09
JP3246668B2 true JP3246668B2 (ja) 2002-01-15

Family

ID=17195018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24957391A Expired - Fee Related JP3246668B2 (ja) 1991-09-27 1991-09-27 並列処理プログラムコンパイル装置

Country Status (1)

Country Link
JP (1) JP3246668B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005173645A (ja) 2003-12-05 2005-06-30 Ibm Japan Ltd プログラム開発支援装置、プログラム開発支援方法、プログラム、及び、記録媒体
CN111814415A (zh) * 2020-07-09 2020-10-23 长沙海格北斗信息技术有限公司 用于芯片验证的高效回归测试方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
情報処理学会第39回(平成元年後期)全国大会講演論文集,p.1642−1643

Also Published As

Publication number Publication date
JPH0588910A (ja) 1993-04-09

Similar Documents

Publication Publication Date Title
Walker et al. A survey of high-level synthesis systems
US5870585A (en) Design for a simulation module using an object-oriented programming language
US7346903B2 (en) Compiling and linking modules of a cycle-based logic design
Herrera et al. Systematic embedded software generation from SystemC
US6067415A (en) System for assisting a programmer find errors in concurrent programs
Williamson et al. Synthesis of parallel hardware implementations from synchronous dataflow graph specifications
JP2009539186A (ja) ハードウエアエミュレーションシステムのプロセッサを同期化する方法及び装置
Nakamura An integrated logic design environment based on behavioral description
JP3246668B2 (ja) 並列処理プログラムコンパイル装置
EP0867820A2 (en) A design environment and a method for generating an implementable description of a digital system
JP2927583B2 (ja) 並列処理プログラミングシミュレータ
JPH0588912A (ja) マルチプロセツサシミユレータ
US20230116546A1 (en) Method for compilation, electronic device and storage medium
JP3311761B2 (ja) 並列処理プログラムシミュレータ
Midkiff Automatic generation of synchronization instructions for parallel processors
Pino et al. Interface synthesis in heterogeneous system-Level DSP design tools
JPH0589199A (ja) ハードウエアの設計支援システム
JPH08180094A (ja) アーキテクチャ・シミュレータ
JP2004021907A (ja) 性能評価用シミュレーションシステム
US6775814B1 (en) Dynamic system configuration for functional design verification
JP5001190B2 (ja) Lsi設計検証システム、lsi設計検証方法およびそのプログラム
JPH09237191A (ja) プログラミング支援装置、プログラミング支援方法、及びプログラミング支援プログラムを記録した媒体
Lund Design and Application of a Co-Simulation Framework for Chisel
JP2004118518A (ja) シミュレータ、そのシミュレータをコンピュータ読み取り可能に記録した記録媒体
Necsulescu Automatic Generation of Hardware for Custom Instructions

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees