JPH04209029A - 並列処理プログラム翻訳処理装置 - Google Patents
並列処理プログラム翻訳処理装置Info
- Publication number
- JPH04209029A JPH04209029A JP40029990A JP40029990A JPH04209029A JP H04209029 A JPH04209029 A JP H04209029A JP 40029990 A JP40029990 A JP 40029990A JP 40029990 A JP40029990 A JP 40029990A JP H04209029 A JPH04209029 A JP H04209029A
- Authority
- JP
- Japan
- Prior art keywords
- program
- parallel
- processing
- translation
- source program
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 29
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 2
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- YASYVMFAVPKPKE-UHFFFAOYSA-N acephate Chemical compound COP(=O)(SC)NC(C)=O YASYVMFAVPKPKE-UHFFFAOYSA-N 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
[00011
【産業上の利用分野]本発明は、計算機における原始プ
ログラムの翻訳処理、特に並列処理プログラムを翻訳す
るための処理装置に関する。 [0002] 【従来の技術】従来通常は1つのまとまった計算処理等
を行うプログラムは、1個の処理の流れによって順次に
処理される、いわゆる逐次処理によって実行される。 [0003]Lかし、並列処理計算機では、前記のよう
なプログラムを複数の部分に分割し、それらのプログラ
ムを複数の処理の流れとして、同時に並行して実行する
ことにより、プログラムの実行時間の短縮が可能になる
。 [0004]そのような並列処理計算機によって実行す
るプログラムを、公知のFORTRAN等のプログラミ
ング言語で記述できるようにするために、言語仕様を拡
張する方法では、例えばrPARALLELJ文及びr
END PARALLEL文文を新設して、プログラム
中に例えば 1’ARALTJL CALI、A ALLB mΦPAR11kLIJL と記述することにより、PARALLEL文とEND
PARALLEL文に挟まれる、公知のCALL文から
呼び出される各手続きく上記のA及びB)のプログラム
を並列に実行することを指定できる。 [0005]即ち、この言語仕様に対応するコンパイラ
は、原始プログラムで上記のようなPARALLEL文
等を解釈して、該当するCALL文の呼ぶ手続きを並列
に起動するような目的プログラムを生成するように構成
される。 [0006]又、並列処理のためのライブラリを設ける
方法では、当該プログラミング言語のライブラリとして
、例えば並列実行ライブラリrPARCALL Jを設
けて、原始プログラム中において、例えば CALI、 PARCALl、(A、B)のようにして
PARCALLを呼び、その引数として並列実行すべき
手続き名を指定する。 [0007] PARCALLライブラリは、引数に指
定された手続きを並列に起動し、それらの手続きすべて
が実行を終了することにより、実行を完了して呼出元に
戻るように構成されているプログラムである。 [0008]
ログラムの翻訳処理、特に並列処理プログラムを翻訳す
るための処理装置に関する。 [0002] 【従来の技術】従来通常は1つのまとまった計算処理等
を行うプログラムは、1個の処理の流れによって順次に
処理される、いわゆる逐次処理によって実行される。 [0003]Lかし、並列処理計算機では、前記のよう
なプログラムを複数の部分に分割し、それらのプログラ
ムを複数の処理の流れとして、同時に並行して実行する
ことにより、プログラムの実行時間の短縮が可能になる
。 [0004]そのような並列処理計算機によって実行す
るプログラムを、公知のFORTRAN等のプログラミ
ング言語で記述できるようにするために、言語仕様を拡
張する方法では、例えばrPARALLELJ文及びr
END PARALLEL文文を新設して、プログラム
中に例えば 1’ARALTJL CALI、A ALLB mΦPAR11kLIJL と記述することにより、PARALLEL文とEND
PARALLEL文に挟まれる、公知のCALL文から
呼び出される各手続きく上記のA及びB)のプログラム
を並列に実行することを指定できる。 [0005]即ち、この言語仕様に対応するコンパイラ
は、原始プログラムで上記のようなPARALLEL文
等を解釈して、該当するCALL文の呼ぶ手続きを並列
に起動するような目的プログラムを生成するように構成
される。 [0006]又、並列処理のためのライブラリを設ける
方法では、当該プログラミング言語のライブラリとして
、例えば並列実行ライブラリrPARCALL Jを設
けて、原始プログラム中において、例えば CALI、 PARCALl、(A、B)のようにして
PARCALLを呼び、その引数として並列実行すべき
手続き名を指定する。 [0007] PARCALLライブラリは、引数に指
定された手続きを並列に起動し、それらの手続きすべて
が実行を終了することにより、実行を完了して呼出元に
戻るように構成されているプログラムである。 [0008]
【発明が解決しようとする課題】前記のようにして、F
ORTRAN等のプログラミング言語で記述するプログ
ラムで、並列処理を利用できるようにすることができる
。 [0009]Lかし、前記の2方法は何れも、並列処理
のために特に設けられた機能をプログラムの実行文の中
で記述しているので、コンパイラが言語仕様の拡張に対
応し、又は必要なライブラリを準備していない場合には
、当然翻訳又はライブラリとの結合処理を実行すること
ができないでエラーとなる。 [00101即ち、同一のプログラムを、必要により並
列処理機能のある計算機でも、逐次処理のみの計算機で
も使用できるようにする、いわゆる移植性や可搬性が失
われ、更にライブラリ経由の方法では間接的な表現なの
で、プログラムを読んだ場合に並列処理であることが理
解し難いという問題がある。 [0011]本発明は、移植性や可搬性を保持し、可読
性も良く、並列処理の原始プログラムを記述できるよう
にした並列処理プログラム翻訳処理装置を目的とする。 [0012]
ORTRAN等のプログラミング言語で記述するプログ
ラムで、並列処理を利用できるようにすることができる
。 [0009]Lかし、前記の2方法は何れも、並列処理
のために特に設けられた機能をプログラムの実行文の中
で記述しているので、コンパイラが言語仕様の拡張に対
応し、又は必要なライブラリを準備していない場合には
、当然翻訳又はライブラリとの結合処理を実行すること
ができないでエラーとなる。 [00101即ち、同一のプログラムを、必要により並
列処理機能のある計算機でも、逐次処理のみの計算機で
も使用できるようにする、いわゆる移植性や可搬性が失
われ、更にライブラリ経由の方法では間接的な表現なの
で、プログラムを読んだ場合に並列処理であることが理
解し難いという問題がある。 [0011]本発明は、移植性や可搬性を保持し、可読
性も良く、並列処理の原始プログラムを記述できるよう
にした並列処理プログラム翻訳処理装置を目的とする。 [0012]
【課題を解決するための手段】図1は本発明の構成を示
すブロック図である。図は並列処理プログラム翻訳処理
装置の構成であって、所定のプログラミング言語で記述
された原始プログラム5を、所定の計算機で実行する目
的プログラム6に翻訳するに際し、識別処理部1と、変
換処理部2と、翻訳処理部3と、並列実行ライブラリ4
とを設ける。 [0013]識別処理部1は、原始プログラム5の所定
の注釈行の内容を識別して、所定の第1の文字列を有す
る該注釈行の次の行から、所定の第2の文字列を有する
該注釈行の前の行までのプログラムを、並列処理プログ
ラム8として抽出する。 [0014]変換処理部2は、並列処理プログラム8を
並列実行ライブラリ4を呼び出すようにした所定のプロ
グラムによって置き換え、並列実行ライブラリ4の引数
として、並列処理プログラム8の中で所定の各呼出文か
ら呼び出されている手続きをすべて指定する。 [0015]並列実行ライブラリ4は、該引数の手続き
群を並列に起動して実行させ、該手続き群の全手続きの
プログラムが実行完了することによって、実行を終了す
るように構成する。 [0016]翻訳処理部3は、該置き換えを行った原始
プログラム9を翻訳して該目的プログラム6を生成する
。 [0017]
すブロック図である。図は並列処理プログラム翻訳処理
装置の構成であって、所定のプログラミング言語で記述
された原始プログラム5を、所定の計算機で実行する目
的プログラム6に翻訳するに際し、識別処理部1と、変
換処理部2と、翻訳処理部3と、並列実行ライブラリ4
とを設ける。 [0013]識別処理部1は、原始プログラム5の所定
の注釈行の内容を識別して、所定の第1の文字列を有す
る該注釈行の次の行から、所定の第2の文字列を有する
該注釈行の前の行までのプログラムを、並列処理プログ
ラム8として抽出する。 [0014]変換処理部2は、並列処理プログラム8を
並列実行ライブラリ4を呼び出すようにした所定のプロ
グラムによって置き換え、並列実行ライブラリ4の引数
として、並列処理プログラム8の中で所定の各呼出文か
ら呼び出されている手続きをすべて指定する。 [0015]並列実行ライブラリ4は、該引数の手続き
群を並列に起動して実行させ、該手続き群の全手続きの
プログラムが実行完了することによって、実行を終了す
るように構成する。 [0016]翻訳処理部3は、該置き換えを行った原始
プログラム9を翻訳して該目的プログラム6を生成する
。 [0017]
【作用】以上の本発明の処理装置によるコンパイル機能
により、翻訳指示を注釈行に注釈文として所定の文字列
で記述すれば、その第1及び第2の文字列の注釈行で挟
まれるプログラムを、並列実行するように目的プログラ
ムを生成する。 [0018]他方、通常の逐次処理用のコンパイラは、
それらの注釈行を単に本来の注釈行として処理して内容
の解析はせず、両注釈行に挟まれるプログラムも単に逐
次処理するプログラムとして翻訳する。 [0019]従って、全く同一の原始プログラムを並列
処理及び逐次処理に使用できる可搬性を満足し、且つ注
釈行で前記のような翻訳指示を行うので、読み易い文字
列を使用することが比較的容易にできる。 [00201なお、対象の原始プログラムは、並列処理
と逐次処理何れによっても、論理に矛盾を生じないもの
でなければならないことは当然であり、例えばFORT
RANで記述できる処理の場合には、一般に並列処理に
よって矛盾を生じないものであれば、逐次処理によって
も矛盾を生じない。 [00211 【実施例]本発明により並列処理の翻訳指示を行うため
の注釈行を使用した原始プログラムは、FORTRAN
の原始プログラムの場合に、例えば CDII PARALLI!L CALI。 ALLA CALI、B CDII ]!ND PARALIJ!L CA
LI。 のように記述するものとする。 [0022]ここで、 rCDIRJは行の第1桁から
始まるように記述する。公知のFORTRAN言語TR
様により、「C」で始まる行は注釈行となるので、通常
のコンパイラはそれに続く文字列を単に注釈文字列とし
て処理するのみで、内容を解析することはない。 [0023]Lかし、本発明の処理装置の識別処理部1
はrCDIR、、、、、、Jの形式の注釈行を並列処理
の翻訳指示として解釈し、第1の文字列rcDIRPA
RALLEL CALL」の注釈行と第2の文字列r
cDIREND PARALLEL CALL J
の注釈行で挟まれるCALL文の並びを並列処理プログ
ラム8として抽出する。 [0024]そこで、変換処理部2は、並列処理プログ
ラム8のCALL文から呼びだされている各手続きを、
並列実行ライブラリ4の引数として、並列実行ライブラ
リPARCALLを呼び出すCALL文プログラムを生
成して、原始プログラム5の該当部分を置き換えた原始
プログラム9を翻訳処理部3に渡す。 [0025] PARCALLは、前記従来の説明で、
第2の例として説明したライブラリと同一のものでよい
。翻訳処理部3は、通常のコンパイラ機能を持ち、原始
プログラム9を翻訳して目的プログラム6を生成する。 これを、公知のいわゆる結合編集プログラムによって、
並列実行ライブラリ4等と結合することにより、いわゆ
る実行形式ロードモジュール7を作成すれば、並列処理
計算機で実行が可能なプログラムを得ることができる。 [00261図2は本発明の置換処理の流れの一例を示
す図である。翻訳処理装置の処理を開始すると、識別処
理部1は処理ステップ10で原始プログラム5の注釈行
を順次検索して、前記の翻訳指示か識別する。 [0027]注釈行が翻訳指示であれば、処理ステップ
11で前記のように第1及び第2の翻訳指示の文字列を
持つ注釈行で挟まれたプログラムを並列処理プログラム
8として抽出する。 [0028]そこで、変換処理部2が、処理ステップ1
2で並列処理プログラム8を、並列実行ライブラリを呼
ぶCALL文からなる変換プログラムに変換し、処理ス
テップ13で原始プログラム5の該当部分を置き換えて
原始プログラム9を順次生成する。 [0029]原始プログラムの終わりまで以上の処理を
繰り返し、終了すると翻訳処理部3が処理ステップ14
で原始プログラム9の翻訳処理を実行して、目的プログ
ラム6を得る。 [00301 【発明の効果]以上の説明から明らかなように本発明に
よれば、計算機における並列処理を行う原始プログラム
の翻訳処理において、移植性や可搬性を保持し、可読性
も良く、並列処理の原始プログラムを記述できるので、
プログラム開発効率を向上する等の著しい工業的効果が
ある。
により、翻訳指示を注釈行に注釈文として所定の文字列
で記述すれば、その第1及び第2の文字列の注釈行で挟
まれるプログラムを、並列実行するように目的プログラ
ムを生成する。 [0018]他方、通常の逐次処理用のコンパイラは、
それらの注釈行を単に本来の注釈行として処理して内容
の解析はせず、両注釈行に挟まれるプログラムも単に逐
次処理するプログラムとして翻訳する。 [0019]従って、全く同一の原始プログラムを並列
処理及び逐次処理に使用できる可搬性を満足し、且つ注
釈行で前記のような翻訳指示を行うので、読み易い文字
列を使用することが比較的容易にできる。 [00201なお、対象の原始プログラムは、並列処理
と逐次処理何れによっても、論理に矛盾を生じないもの
でなければならないことは当然であり、例えばFORT
RANで記述できる処理の場合には、一般に並列処理に
よって矛盾を生じないものであれば、逐次処理によって
も矛盾を生じない。 [00211 【実施例]本発明により並列処理の翻訳指示を行うため
の注釈行を使用した原始プログラムは、FORTRAN
の原始プログラムの場合に、例えば CDII PARALLI!L CALI。 ALLA CALI、B CDII ]!ND PARALIJ!L CA
LI。 のように記述するものとする。 [0022]ここで、 rCDIRJは行の第1桁から
始まるように記述する。公知のFORTRAN言語TR
様により、「C」で始まる行は注釈行となるので、通常
のコンパイラはそれに続く文字列を単に注釈文字列とし
て処理するのみで、内容を解析することはない。 [0023]Lかし、本発明の処理装置の識別処理部1
はrCDIR、、、、、、Jの形式の注釈行を並列処理
の翻訳指示として解釈し、第1の文字列rcDIRPA
RALLEL CALL」の注釈行と第2の文字列r
cDIREND PARALLEL CALL J
の注釈行で挟まれるCALL文の並びを並列処理プログ
ラム8として抽出する。 [0024]そこで、変換処理部2は、並列処理プログ
ラム8のCALL文から呼びだされている各手続きを、
並列実行ライブラリ4の引数として、並列実行ライブラ
リPARCALLを呼び出すCALL文プログラムを生
成して、原始プログラム5の該当部分を置き換えた原始
プログラム9を翻訳処理部3に渡す。 [0025] PARCALLは、前記従来の説明で、
第2の例として説明したライブラリと同一のものでよい
。翻訳処理部3は、通常のコンパイラ機能を持ち、原始
プログラム9を翻訳して目的プログラム6を生成する。 これを、公知のいわゆる結合編集プログラムによって、
並列実行ライブラリ4等と結合することにより、いわゆ
る実行形式ロードモジュール7を作成すれば、並列処理
計算機で実行が可能なプログラムを得ることができる。 [00261図2は本発明の置換処理の流れの一例を示
す図である。翻訳処理装置の処理を開始すると、識別処
理部1は処理ステップ10で原始プログラム5の注釈行
を順次検索して、前記の翻訳指示か識別する。 [0027]注釈行が翻訳指示であれば、処理ステップ
11で前記のように第1及び第2の翻訳指示の文字列を
持つ注釈行で挟まれたプログラムを並列処理プログラム
8として抽出する。 [0028]そこで、変換処理部2が、処理ステップ1
2で並列処理プログラム8を、並列実行ライブラリを呼
ぶCALL文からなる変換プログラムに変換し、処理ス
テップ13で原始プログラム5の該当部分を置き換えて
原始プログラム9を順次生成する。 [0029]原始プログラムの終わりまで以上の処理を
繰り返し、終了すると翻訳処理部3が処理ステップ14
で原始プログラム9の翻訳処理を実行して、目的プログ
ラム6を得る。 [00301 【発明の効果]以上の説明から明らかなように本発明に
よれば、計算機における並列処理を行う原始プログラム
の翻訳処理において、移植性や可搬性を保持し、可読性
も良く、並列処理の原始プログラムを記述できるので、
プログラム開発効率を向上する等の著しい工業的効果が
ある。
【図1】本発明の構成を示すブロック図
【図2】本発明
の処理の流れ図
の処理の流れ図
1 識別処理部
2 変換処理部
3 翻訳処理部
4 並列実行ライブラリ
5 原始プログラム
6 目的プログラム
8 並列処理プログラム
9 置き換えた原始プログラム
10〜14 処理ステップ
【図1】
Claims (1)
- 【請求項1】所定のプログラミング言語で記述された原
始プログラム(5)を、所定の計算機で実行する目的プ
ログラム(6)に翻訳するに際し、識別処理部(1)と
、変換処理部(2)と、翻訳処理部(3)と、並列実行
ライブラリ(4)とを設け、該識別処理部(1)は、該
原始プログラム(5)の所定の注釈行の内容を識別して
、所定の第1の文字列を有する該注釈行の次の行から、
所定の第2の文字列を有する該注釈行の前の行までのプ
ログラムを、並列処理プログラムとして抽出し、該変換
処理部(2)は、該並列処理プログラム(8)を該並列
実行ライブラリを呼び出すようにした所定のプログラム
によって置き換え、該並列実行ライブラリ(4)の引数
として、該並列処理プログラムの中で所定の各呼出文か
ら呼び出されている手続きをすべて指定し、該並列実行
ライブラリ(4)は、該引数の手続き群を並列に起動し
て実行させ、該手続き群の全手続きのプログラムが実行
完了することによって、実行を終了するように構成し、
該翻訳処理部(3)は、該置き換えを行った原始プログ
ラムを翻訳して該目的プログラムを生成するように構成
されていることを特徴とする並列処理プログラム翻訳処
理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP40029990A JPH04209029A (ja) | 1990-12-04 | 1990-12-04 | 並列処理プログラム翻訳処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP40029990A JPH04209029A (ja) | 1990-12-04 | 1990-12-04 | 並列処理プログラム翻訳処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04209029A true JPH04209029A (ja) | 1992-07-30 |
Family
ID=18510211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP40029990A Pending JPH04209029A (ja) | 1990-12-04 | 1990-12-04 | 並列処理プログラム翻訳処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04209029A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010186468A (ja) * | 2009-02-10 | 2010-08-26 | Internatl Business Mach Corp <Ibm> | 任意の標的アーキテクチャに対する並列simdコードを生成する方法、コンピュータ可読媒体、およびシステム |
-
1990
- 1990-12-04 JP JP40029990A patent/JPH04209029A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010186468A (ja) * | 2009-02-10 | 2010-08-26 | Internatl Business Mach Corp <Ibm> | 任意の標的アーキテクチャに対する並列simdコードを生成する方法、コンピュータ可読媒体、およびシステム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070277165A1 (en) | Debugging Interpreted Input | |
JPH0766342B2 (ja) | プログラムテスト装置 | |
JPH04209029A (ja) | 並列処理プログラム翻訳処理装置 | |
JPH11154093A (ja) | プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体 | |
JPS5922140A (ja) | 対話型コンパイル方式 | |
JP2004192139A (ja) | デバッグ装置、デバッグ方法および記録媒体 | |
US20090112568A1 (en) | Method for Generating a Simulation Program Which Can Be Executed On a Host Computer | |
JP2008071065A (ja) | インライン展開を行うコンパイル装置、方法、プログラム、記憶媒体 | |
JP3003459B2 (ja) | プログラム作成支援装置 | |
JPS6365542A (ja) | デバツグ方式 | |
JP2000353112A (ja) | 中間言語レベルのデバッグ方法及びシステム | |
JPS59231649A (ja) | コンパイルリスト出力処理方式 | |
JPH06231003A (ja) | 実行可能ファイルのデバッガ | |
JP4458491B2 (ja) | テストコマンドファイル作成システムと方法およびプログラム | |
JP3190377B2 (ja) | 関数名変換装置 | |
JPH0353334A (ja) | 言語処理プログラムのデバッグ情報出力処理方式 | |
JPH0561687A (ja) | コンパイラの処理方式 | |
JPH05120025A (ja) | ソースプログラムのインライン展開方法 | |
JPH06110750A (ja) | 関係データベースをアクセス可能なアプリケーションプログラムのメイクファイルの自動生成方法 | |
JP2007265095A (ja) | ソースプログラム検証プログラム | |
JPH05108372A (ja) | コンパイラ最適化処理内容の出力方式 | |
JPH04248624A (ja) | プログラム変換処理装置 | |
JPH05204705A (ja) | 未定義変数検出処理方法 | |
JPH01273144A (ja) | ソフトウエア開発支援装置 | |
JP2001034482A (ja) | コンパイル装置、プログラム最適化装置、コンパイル処理方法及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19991005 |