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
Application number
JP21000693A
Other languages
English (en)
Inventor
Takayuki Nakagawa
貴之 中川
Machiko Asaya
真知子 朝家
Toshiaki Tarui
俊明 垂井
Tokuyasu Imon
徳安 井門
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP21000693A priority Critical patent/JPH0744507A/ja
Publication of JPH0744507A publication Critical patent/JPH0744507A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 並列計算機を構成するプロセッサに、実行す
べきプログラムを構成する複数のサブプログラムを割り
当てる処理を自動化する。 【構成】 プログラムのコンパイル時に、各サブプログ
ラムの実行回数と最大プロセッサ数とに基づいて、各サ
ブプログラムを、その最大プロセッサ数を越えない範囲
で、実行回数ごとに異なるプロセッサに割りつける。 【効果】 本発明ではコンパイル時にサブプログラムの
プロセッサへのマッピングを行なうので、実行時の負担
をへらすことができる。また、過去の実行情報を活用で
きるので、プログラマの負担を増やすことが少ない。ま
た、最大プロセッサ数を指定することにより、最適なプ
ロセッサ台数を求める手順として複雑なチューニングの
手順を簡略化できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は並列計算機システムにお
ける、プログラムの実行の高速化を目指したコンパイル
方法に関する。高速化は適度なプロセッッサ数を指定
し、この範囲内のプロセッサをコンパイル時に於て、過
去の実行時情報に基づき、有効に活用することを指示し
て実行させることにより達成される。
【0002】
【従来の技術】従来、並列計算機システムにおける各プ
ロセッサの実行する負荷の均等化については”スタック
分割動的負荷分散方式とマルチPSI上での評価”(古
市ほか、 KL1 Programming Workshop 予稿集pp51
〜、ICOT、1991年)において論じられている。
【0003】上記従来技術では、予めプログラムで指定
した分配に適当なサブプログラムの実行が必要になる毎
に、実行時のプロセッサの状況により分配先プロセッサ
を決定する負荷分散サブプログラムに問い合わせ、暇な
プロセッサにサブプログラムを分配する。各プロセッサ
においては未実行のサブプログラムを、プライオリティ
別の管理テーブルに登録し、プライオリティの高い順に
サブプログラムを実行する。この際、最低プライオリテ
ィのサブプログラムが負荷分散サブプログラムに自分の
プロセッサ番号を登録する処理を実行することにより、
暇なプロセッサの検出を可能にしている。
【0004】上記従来技術では、暇なプロセッサの検出
処理が本来のプログラム処理に追加されている。
【0005】
【発明が解決しようとする課題】上記従来技術は、負荷
分散処理の緊急性について配慮がされておらず、一旦全
プロセッサに、暇なプロセッサを登録するサブプログラ
ムを分配してから特定プロセッサに登録情報を集中させ
るため、プログラム実行の初期において分配が遅れる問
題があった。また、実行時においてこの登録処理を実行
するので処理量を増やすという問題があった。さらに、
分配対象となりうるサブプログラムをプログラマが指定
しなければならないという手間が発生した。本発明は、
上記の問題点を全て解決し、並列計算機システムにおい
て効率的で、プログラマに負担がかからない負荷分散処
理を実現することを目的とする。
【0006】
【課題を解決するための手段】上記目的を達成するため
に、本発明では、コンパイル時の入力情報として、過去
の実行におけるサブプログラムの実行回数を追加し、コ
ンパイル時において、サブプログラムのプロセッサへの
マッピングを行なう。最大プロセッサ数を指定してこれ
をコンパイル結果に反映する手段を設ける。
【0007】
【作用】本発明ではコンパイル時にサブプログラムのプ
ロセッサへのマッピングを行なうので、実行時の負担を
へらすことができる。また、過去の実行情報を活用でき
るので、プログラマの負担を増やすことが少ない。ま
た、最大プロセッサ数を指定することにより、最適なプ
ロセッサ台数を求める手順として複雑なチューニングの
手順を簡略化できる。
【0008】
【実施例】以下、本発明の一実施例を図1から図6によ
り説明する。 図1は、本発明の一実施例のシステム構
成図である。ソースプログラム1はコンパイラ2に入力
及びハードウェア実行3をへて、サブプログラムの実行
回数4を得る。サブプログラムの実行回数4と最大実行
プロセッサ数6とソースプログラム1を用いたプリコン
パイル処理5により新たなソースプログラムを得て、再
度コンパイル及び実行する。
【0009】本実施例では、プリコンパイラを例に説明
するが、コンパイラ本体と一体化してもよい。
【0010】プリコンパイラは図2プリコンパイラ制御
フローに示す、サブプログラム呼び出し関係木作成21
とサブプログラム実行回数入力22の後、最大実行プロ
セッサ数入力23、プロセッサ割り付け24、出力生成
25を行なうことで実現できる。これらのデータは以下
のように使う。
【0011】(1)サブプログラム呼び出し関係木作成
21により、例えば図5のようなソースプログラムを読
み込んで、図3のようなサブプログラムの呼び出し関係
木を作成する。
【0012】(2)サブプログラム実行回数入力22に
より、例えば図4のような過去の実行におけるサブプロ
グラムの実行回数を得る。
【0013】(3)最大実行プロセッサ数入力23によ
り、例えば最大実行プロセッサ数”30”を得る。
【0014】(4)プロセッサ割り付け24により、サ
ブプログラムの呼び出し関係木の根本に近いサブプログ
ラムから順番に最大実行プロセッサ数”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”を越えない整数で
ある。
【0016】以上の説明のように、本実施例によれば、
並列計算機システムにおいて、簡略で、効率の良い負荷
分散制御を実現する効果がある。
【0017】
【発明の効果】本発明によれば、コンパイル時に実行時
の情報を反映させることができるので、簡略な負荷分散
制御を行なうことができ、並列処理によるオーバヘッド
を削減する効果がある。また、最大実行プロセッサ数
は、プログラムの並列度を指定する単純な目安となるの
で、チューニング処理の第1歩としてプログラマの手間
を増やすことが少ない。
【図面の簡単な説明】
【図1】本発明の一実施例のシステム構成図。
【図2】本発明によるプリコンパイラ制御フローを表わ
す図。
【図3】本発明によるサブプログラム呼び出し関係木の
例を示す図。
【図4】サブプログラム実行回数出力例を示す図。
【図5】ソースプログラムの一例を示す図。
【図6】本発明によるプリコンパイラ出力例を示す図。
【符号の説明】
21…サブプログラム呼び出し関係木作成、22…サブ
プログラム実行回数入力、23…最大実行プロセッサ数
入力、24…プロセッサ割り付け、25…出力生成。
フロントページの続き (72)発明者 井門 徳安 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサで並列に実行すべき複数
    のサブプログラムからなるプログラムもコンパイルする
    ときに、該プログラムの実行時に各サブプログラムが何
    回実行されるかを示す実行回数と、該複数のプロセッサ
    の数とに基づいて、該プロセッサの数を越えない範囲で
    各サブプログラムを、その実行回数ごとに異なるプロセ
    ッサに割りつける並列プログラムのコンパイル方法。
JP21000693A 1993-08-03 1993-08-03 並列プログラムのコンパイル方法 Pending JPH0744507A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02183833A (ja) * 1989-01-11 1990-07-18 Agency Of Ind Science & Technol マルチプロセッサ用コンパイル方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02183833A (ja) * 1989-01-11 1990-07-18 Agency Of Ind Science & Technol マルチプロセッサ用コンパイル方式

Cited By (2)

* Cited by examiner, † Cited by third party
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