JPH0744507A - 並列プログラムのコンパイル方法 - Google Patents
並列プログラムのコンパイル方法Info
- Publication number
- JPH0744507A JPH0744507A JP21000693A JP21000693A JPH0744507A JP H0744507 A JPH0744507 A JP H0744507A JP 21000693 A JP21000693 A JP 21000693A JP 21000693 A JP21000693 A JP 21000693A JP H0744507 A JPH0744507 A JP H0744507A
- Authority
- JP
- Japan
- Prior art keywords
- program
- processor
- implementation
- execution
- subprogram
- 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 title claims abstract description 10
- 238000012545 processing Methods 0.000 abstract description 8
- 238000013507 mapping Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
Landscapes
- Multi Processors (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【目的】 並列計算機を構成するプロセッサに、実行す
べきプログラムを構成する複数のサブプログラムを割り
当てる処理を自動化する。 【構成】 プログラムのコンパイル時に、各サブプログ
ラムの実行回数と最大プロセッサ数とに基づいて、各サ
ブプログラムを、その最大プロセッサ数を越えない範囲
で、実行回数ごとに異なるプロセッサに割りつける。 【効果】 本発明ではコンパイル時にサブプログラムの
プロセッサへのマッピングを行なうので、実行時の負担
をへらすことができる。また、過去の実行情報を活用で
きるので、プログラマの負担を増やすことが少ない。ま
た、最大プロセッサ数を指定することにより、最適なプ
ロセッサ台数を求める手順として複雑なチューニングの
手順を簡略化できる。
べきプログラムを構成する複数のサブプログラムを割り
当てる処理を自動化する。 【構成】 プログラムのコンパイル時に、各サブプログ
ラムの実行回数と最大プロセッサ数とに基づいて、各サ
ブプログラムを、その最大プロセッサ数を越えない範囲
で、実行回数ごとに異なるプロセッサに割りつける。 【効果】 本発明ではコンパイル時にサブプログラムの
プロセッサへのマッピングを行なうので、実行時の負担
をへらすことができる。また、過去の実行情報を活用で
きるので、プログラマの負担を増やすことが少ない。ま
た、最大プロセッサ数を指定することにより、最適なプ
ロセッサ台数を求める手順として複雑なチューニングの
手順を簡略化できる。
Description
【0001】
【産業上の利用分野】本発明は並列計算機システムにお
ける、プログラムの実行の高速化を目指したコンパイル
方法に関する。高速化は適度なプロセッッサ数を指定
し、この範囲内のプロセッサをコンパイル時に於て、過
去の実行時情報に基づき、有効に活用することを指示し
て実行させることにより達成される。
ける、プログラムの実行の高速化を目指したコンパイル
方法に関する。高速化は適度なプロセッッサ数を指定
し、この範囲内のプロセッサをコンパイル時に於て、過
去の実行時情報に基づき、有効に活用することを指示し
て実行させることにより達成される。
【0002】
【従来の技術】従来、並列計算機システムにおける各プ
ロセッサの実行する負荷の均等化については”スタック
分割動的負荷分散方式とマルチPSI上での評価”(古
市ほか、 KL1 Programming Workshop 予稿集pp51
〜、ICOT、1991年)において論じられている。
ロセッサの実行する負荷の均等化については”スタック
分割動的負荷分散方式とマルチPSI上での評価”(古
市ほか、 KL1 Programming Workshop 予稿集pp51
〜、ICOT、1991年)において論じられている。
【0003】上記従来技術では、予めプログラムで指定
した分配に適当なサブプログラムの実行が必要になる毎
に、実行時のプロセッサの状況により分配先プロセッサ
を決定する負荷分散サブプログラムに問い合わせ、暇な
プロセッサにサブプログラムを分配する。各プロセッサ
においては未実行のサブプログラムを、プライオリティ
別の管理テーブルに登録し、プライオリティの高い順に
サブプログラムを実行する。この際、最低プライオリテ
ィのサブプログラムが負荷分散サブプログラムに自分の
プロセッサ番号を登録する処理を実行することにより、
暇なプロセッサの検出を可能にしている。
した分配に適当なサブプログラムの実行が必要になる毎
に、実行時のプロセッサの状況により分配先プロセッサ
を決定する負荷分散サブプログラムに問い合わせ、暇な
プロセッサにサブプログラムを分配する。各プロセッサ
においては未実行のサブプログラムを、プライオリティ
別の管理テーブルに登録し、プライオリティの高い順に
サブプログラムを実行する。この際、最低プライオリテ
ィのサブプログラムが負荷分散サブプログラムに自分の
プロセッサ番号を登録する処理を実行することにより、
暇なプロセッサの検出を可能にしている。
【0004】上記従来技術では、暇なプロセッサの検出
処理が本来のプログラム処理に追加されている。
処理が本来のプログラム処理に追加されている。
【0005】
【発明が解決しようとする課題】上記従来技術は、負荷
分散処理の緊急性について配慮がされておらず、一旦全
プロセッサに、暇なプロセッサを登録するサブプログラ
ムを分配してから特定プロセッサに登録情報を集中させ
るため、プログラム実行の初期において分配が遅れる問
題があった。また、実行時においてこの登録処理を実行
するので処理量を増やすという問題があった。さらに、
分配対象となりうるサブプログラムをプログラマが指定
しなければならないという手間が発生した。本発明は、
上記の問題点を全て解決し、並列計算機システムにおい
て効率的で、プログラマに負担がかからない負荷分散処
理を実現することを目的とする。
分散処理の緊急性について配慮がされておらず、一旦全
プロセッサに、暇なプロセッサを登録するサブプログラ
ムを分配してから特定プロセッサに登録情報を集中させ
るため、プログラム実行の初期において分配が遅れる問
題があった。また、実行時においてこの登録処理を実行
するので処理量を増やすという問題があった。さらに、
分配対象となりうるサブプログラムをプログラマが指定
しなければならないという手間が発生した。本発明は、
上記の問題点を全て解決し、並列計算機システムにおい
て効率的で、プログラマに負担がかからない負荷分散処
理を実現することを目的とする。
【0006】
【課題を解決するための手段】上記目的を達成するため
に、本発明では、コンパイル時の入力情報として、過去
の実行におけるサブプログラムの実行回数を追加し、コ
ンパイル時において、サブプログラムのプロセッサへの
マッピングを行なう。最大プロセッサ数を指定してこれ
をコンパイル結果に反映する手段を設ける。
に、本発明では、コンパイル時の入力情報として、過去
の実行におけるサブプログラムの実行回数を追加し、コ
ンパイル時において、サブプログラムのプロセッサへの
マッピングを行なう。最大プロセッサ数を指定してこれ
をコンパイル結果に反映する手段を設ける。
【0007】
【作用】本発明ではコンパイル時にサブプログラムのプ
ロセッサへのマッピングを行なうので、実行時の負担を
へらすことができる。また、過去の実行情報を活用でき
るので、プログラマの負担を増やすことが少ない。ま
た、最大プロセッサ数を指定することにより、最適なプ
ロセッサ台数を求める手順として複雑なチューニングの
手順を簡略化できる。
ロセッサへのマッピングを行なうので、実行時の負担を
へらすことができる。また、過去の実行情報を活用でき
るので、プログラマの負担を増やすことが少ない。ま
た、最大プロセッサ数を指定することにより、最適なプ
ロセッサ台数を求める手順として複雑なチューニングの
手順を簡略化できる。
【0008】
【実施例】以下、本発明の一実施例を図1から図6によ
り説明する。 図1は、本発明の一実施例のシステム構
成図である。ソースプログラム1はコンパイラ2に入力
及びハードウェア実行3をへて、サブプログラムの実行
回数4を得る。サブプログラムの実行回数4と最大実行
プロセッサ数6とソースプログラム1を用いたプリコン
パイル処理5により新たなソースプログラムを得て、再
度コンパイル及び実行する。
り説明する。 図1は、本発明の一実施例のシステム構
成図である。ソースプログラム1はコンパイラ2に入力
及びハードウェア実行3をへて、サブプログラムの実行
回数4を得る。サブプログラムの実行回数4と最大実行
プロセッサ数6とソースプログラム1を用いたプリコン
パイル処理5により新たなソースプログラムを得て、再
度コンパイル及び実行する。
【0009】本実施例では、プリコンパイラを例に説明
するが、コンパイラ本体と一体化してもよい。
するが、コンパイラ本体と一体化してもよい。
【0010】プリコンパイラは図2プリコンパイラ制御
フローに示す、サブプログラム呼び出し関係木作成21
とサブプログラム実行回数入力22の後、最大実行プロ
セッサ数入力23、プロセッサ割り付け24、出力生成
25を行なうことで実現できる。これらのデータは以下
のように使う。
フローに示す、サブプログラム呼び出し関係木作成21
とサブプログラム実行回数入力22の後、最大実行プロ
セッサ数入力23、プロセッサ割り付け24、出力生成
25を行なうことで実現できる。これらのデータは以下
のように使う。
【0011】(1)サブプログラム呼び出し関係木作成
21により、例えば図5のようなソースプログラムを読
み込んで、図3のようなサブプログラムの呼び出し関係
木を作成する。
21により、例えば図5のようなソースプログラムを読
み込んで、図3のようなサブプログラムの呼び出し関係
木を作成する。
【0012】(2)サブプログラム実行回数入力22に
より、例えば図4のような過去の実行におけるサブプロ
グラムの実行回数を得る。
より、例えば図4のような過去の実行におけるサブプロ
グラムの実行回数を得る。
【0013】(3)最大実行プロセッサ数入力23によ
り、例えば最大実行プロセッサ数”30”を得る。
り、例えば最大実行プロセッサ数”30”を得る。
【0014】(4)プロセッサ割り付け24により、サ
ブプログラムの呼び出し関係木の根本に近いサブプログ
ラムから順番に最大実行プロセッサ数”30”を越えな
いプロセッサを割り付ける。図3の場合サブプログラム
pの実行回数が図4によると21回なので、これが呼び
出し毎に違うプロセッサに割り付けられるものとし、そ
のほかのサブプログラムは呼び出したプロセッサにおい
て実行させる。aはpからしか呼ばれないのでpの一部
と見做し、負荷分散対象としない。bまたはcを負荷分
散すると図4から、実行プロセッサ数が21+101=
122となり最大実行プロセッサ数”30”を越えるの
でbおよびcを負荷分散対象としない。
ブプログラムの呼び出し関係木の根本に近いサブプログ
ラムから順番に最大実行プロセッサ数”30”を越えな
いプロセッサを割り付ける。図3の場合サブプログラム
pの実行回数が図4によると21回なので、これが呼び
出し毎に違うプロセッサに割り付けられるものとし、そ
のほかのサブプログラムは呼び出したプロセッサにおい
て実行させる。aはpからしか呼ばれないのでpの一部
と見做し、負荷分散対象としない。bまたはcを負荷分
散すると図4から、実行プロセッサ数が21+101=
122となり最大実行プロセッサ数”30”を越えるの
でbおよびcを負荷分散対象としない。
【0015】(5)出力生成25により、図6のような
出力を得る。ここで、call(pd(N1))@no
de(N)はサブプログラムpd(N1)を実行するプ
ロセッサ番号をNとすることを指示している。Nはプリ
コンパイラが生成したサブプログラムpdの呼び出し毎
に0から1ずつ加算され、modで表示した剰余演算に
よって最大実行プロセッサ数”30”を越えない整数で
ある。
出力を得る。ここで、call(pd(N1))@no
de(N)はサブプログラムpd(N1)を実行するプ
ロセッサ番号をNとすることを指示している。Nはプリ
コンパイラが生成したサブプログラムpdの呼び出し毎
に0から1ずつ加算され、modで表示した剰余演算に
よって最大実行プロセッサ数”30”を越えない整数で
ある。
【0016】以上の説明のように、本実施例によれば、
並列計算機システムにおいて、簡略で、効率の良い負荷
分散制御を実現する効果がある。
並列計算機システムにおいて、簡略で、効率の良い負荷
分散制御を実現する効果がある。
【0017】
【発明の効果】本発明によれば、コンパイル時に実行時
の情報を反映させることができるので、簡略な負荷分散
制御を行なうことができ、並列処理によるオーバヘッド
を削減する効果がある。また、最大実行プロセッサ数
は、プログラムの並列度を指定する単純な目安となるの
で、チューニング処理の第1歩としてプログラマの手間
を増やすことが少ない。
の情報を反映させることができるので、簡略な負荷分散
制御を行なうことができ、並列処理によるオーバヘッド
を削減する効果がある。また、最大実行プロセッサ数
は、プログラムの並列度を指定する単純な目安となるの
で、チューニング処理の第1歩としてプログラマの手間
を増やすことが少ない。
【図1】本発明の一実施例のシステム構成図。
【図2】本発明によるプリコンパイラ制御フローを表わ
す図。
す図。
【図3】本発明によるサブプログラム呼び出し関係木の
例を示す図。
例を示す図。
【図4】サブプログラム実行回数出力例を示す図。
【図5】ソースプログラムの一例を示す図。
【図6】本発明によるプリコンパイラ出力例を示す図。
21…サブプログラム呼び出し関係木作成、22…サブ
プログラム実行回数入力、23…最大実行プロセッサ数
入力、24…プロセッサ割り付け、25…出力生成。
プログラム実行回数入力、23…最大実行プロセッサ数
入力、24…プロセッサ割り付け、25…出力生成。
フロントページの続き (72)発明者 井門 徳安 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内
Claims (1)
- 【請求項1】複数のプロセッサで並列に実行すべき複数
のサブプログラムからなるプログラムもコンパイルする
ときに、該プログラムの実行時に各サブプログラムが何
回実行されるかを示す実行回数と、該複数のプロセッサ
の数とに基づいて、該プロセッサの数を越えない範囲で
各サブプログラムを、その実行回数ごとに異なるプロセ
ッサに割りつける並列プログラムのコンパイル方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP21000693A JPH0744507A (ja) | 1993-08-03 | 1993-08-03 | 並列プログラムのコンパイル方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP21000693A JPH0744507A (ja) | 1993-08-03 | 1993-08-03 | 並列プログラムのコンパイル方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0744507A true JPH0744507A (ja) | 1995-02-14 |
Family
ID=16582284
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP21000693A Pending JPH0744507A (ja) | 1993-08-03 | 1993-08-03 | 並列プログラムのコンパイル方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0744507A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009169862A (ja) * | 2008-01-18 | 2009-07-30 | Panasonic Corp | プログラム変換装置、方法、プログラムおよび記録媒体 |
| KR101281625B1 (ko) * | 2011-09-02 | 2013-07-03 | 고려대학교 산학협력단 | 입력 데이터의 할당 방법 및 장치 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02183833A (ja) * | 1989-01-11 | 1990-07-18 | Agency Of Ind Science & Technol | マルチプロセッサ用コンパイル方式 |
-
1993
- 1993-08-03 JP JP21000693A patent/JPH0744507A/ja active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02183833A (ja) * | 1989-01-11 | 1990-07-18 | Agency Of Ind Science & Technol | マルチプロセッサ用コンパイル方式 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009169862A (ja) * | 2008-01-18 | 2009-07-30 | Panasonic Corp | プログラム変換装置、方法、プログラムおよび記録媒体 |
| KR101281625B1 (ko) * | 2011-09-02 | 2013-07-03 | 고려대학교 산학협력단 | 입력 데이터의 할당 방법 및 장치 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Baker | An analysis of EDF schedulability on a multiprocessor | |
| KR101738641B1 (ko) | 멀티 코어 시스템의 프로그램 컴파일 장치 및 방법 | |
| Razaque et al. | Task scheduling in cloud computing | |
| WO2022166480A1 (zh) | 任务调度方法、装置及系统 | |
| US20020083423A1 (en) | List scheduling algorithm for a cycle-driven instruction scheduler | |
| JPH1097430A (ja) | 最適化のためにアセンブリコードルーチンをソースコードルーチンに挿入する方法およびそのシステム | |
| JPS6184740A (ja) | 汎用オブジエクトコ−ド生成方式 | |
| JP6428476B2 (ja) | 並列化コンパイル方法、及び並列化コンパイラ | |
| WO2023124543A1 (zh) | 用于大数据的数据处理方法和数据处理装置 | |
| JP4185103B2 (ja) | 実行可能プログラムをスケジューリングするためのシステム及び方法 | |
| Gharajeh et al. | Heuristic-based task-to-thread mapping in multi-core processors | |
| JP2002366366A (ja) | コンパイル方法、コード生成方法、スタックレジスタ使用方法、コンパイラ、これらを実現するプログラム及び記憶媒体 | |
| Kale et al. | Toward a standard interface for user-defined scheduling in OpenMP | |
| JPH0744507A (ja) | 並列プログラムのコンパイル方法 | |
| Markatos | Scheduling for locality in shared-memory multiprocessors | |
| JP2000315163A (ja) | プロセッサ資源の均衡のとれた分配を実行する方法及びそのシステム | |
| JPH05242051A (ja) | タスクスケジューリング方式 | |
| Neveu et al. | Towards an optimized heterogeneous distributed task scheduler in openmp cluster | |
| Zabatta et al. | A thread performance comparison: Windows NT and Solaris on a symmetric multiprocessor | |
| Zhuang et al. | Balancing register allocation across threads for a multithreaded network processor | |
| JP3241214B2 (ja) | 分散処理装置及びプロセス実行方法 | |
| Shu et al. | Asynchronous problems on SIMD parallel computers | |
| US20090187895A1 (en) | Device, method, program, and recording medium for converting program | |
| Pérez et al. | Extending OmpSs for OpenCL kernel co-execution in heterogeneous systems | |
| Obuchi et al. | Efficient translation and execution method for automated parallel processing system by using valgrind |