JPH09305552A - 負荷均等化装置 - Google Patents

負荷均等化装置

Info

Publication number
JPH09305552A
JPH09305552A JP8144929A JP14492996A JPH09305552A JP H09305552 A JPH09305552 A JP H09305552A JP 8144929 A JP8144929 A JP 8144929A JP 14492996 A JP14492996 A JP 14492996A JP H09305552 A JPH09305552 A JP H09305552A
Authority
JP
Japan
Prior art keywords
program
performance
node
execution
nodes
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.)
Granted
Application number
JP8144929A
Other languages
English (en)
Other versions
JP2910676B2 (ja
Inventor
Shoichi Sakon
彰一 左近
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP8144929A priority Critical patent/JP2910676B2/ja
Publication of JPH09305552A publication Critical patent/JPH09305552A/ja
Application granted granted Critical
Publication of JP2910676B2 publication Critical patent/JP2910676B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 複数のノードがネットワークを介して接続さ
れた分散並列処理システムに於いて、各ノードの性能が
異なる場合であっても、各ノードの負荷が均等になるよ
うにする。 【解決手段】 ソースプログラム3が入力されると、コ
ンパイラ11は、ソースプログラム3を翻訳して分散並列
処理システム2で並列処理可能な実行プログラム12を生
成すると共に、ソースプログラム3の最頻実行部分に使
用されている演算に基づいて、各ノード21-1〜21-Nの性
能を測定するための性能測定プログラム13を生成する。
実行プログラム12を実行させる場合、スケジューラ14
は、それに先立って各ノード21-1〜21-Nに性能測定プロ
グラム13を実行させ、各ノード21-1〜21-Nの性能を測定
する。その後、スケジューラ14は、各ノード21-1〜21-N
の性能比に応じて実行プログラム12の処理を各ノード21
-1〜21-Nに割り当てる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のノードから
構成され、各ノードが1つのジョブを並行して実行する
分散並列処理システムに於いて、各ノードの負荷を均等
にする負荷均等化装置に関する。
【0002】
【従来の技術】プロセッサ,メモリ等から構成されるノ
ードを複数備えたシステムに於いては、各ノードの負荷
を均等化するということが従来から行われている。例え
ば、特開平3−262074号公報では、疎結合並列計
算機に於ける負荷を動的に均等化するため、マスタプロ
セッサ以外のスレーブプロセッサに最低優先度のジョブ
を流しておき、このジョブからの応答に基づいて各スレ
ーブプロセッサの負荷を動的に監視し、空いたスレーブ
プロセッサにジョブを割り付けるようにしている。ま
た、特開平1−152571号公報では、ループの繰り
返し処理をプロセッサ総数で均等分割し、分割結果を各
プロセッサに割り付けることにより、負荷の均等化を図
っている。
【0003】
【発明が解決しようとする課題】上述した従来の技術の
内、前者は、ジョブを割り付け単位としているため、複
数のノードで1つのジョブ(分散並列処理プログラム)
を並行して実行する分散並列処理システムには適用でき
ないという問題がある。これに対して、後者の技術によ
れば、分散並列処理システムに於いて、各ノードが行う
仕事量を均等にし、各ノードの負荷を均等にすることが
できる。しかし、後者の技術は、各ノードの性能が同じ
であることを前提としているため、各ノードの性能が異
なる場合は、各ノードが行う仕事量を均等にすることは
できても、各ノードの負荷を均等にすることはできな
い。従って、性能の異なるノードが混在すると、性能の
高いノードの遊び時間が多くなり、分散並列処理システ
ムの性能を十分に引き出せないという問題が生じる。つ
まり、プログラムの実行時間が長くなるという問題が生
じる。
【0004】そこで、本発明の目的は、複数のノードか
ら構成される分散並列処理システムに於いて、各ノード
の性能が異なる場合であっても、各ノードの負荷を均等
化することにより、分散並列処理システムの性能を十分
に引き出すことができる負荷均等化装置を提供すること
にある。
【0005】
【課題を解決するための手段】本発明は上記目的を達成
するため、複数のノードから構成された分散並列処理シ
ステムに於ける負荷均等化装置に於いて、ソースプログ
ラムを翻訳して並列処理可能な実行プログラムを生成す
るコンパイラと、前記各ノードに性能測定プログラムを
実行させて前記各ノードの性能を測定した後、前記各ノ
ードの性能比に応じて前記実行プログラムの処理を前記
各ノードに割り当てるスケジューラとを備えている。
【0006】上記した構成によれば、コンパイラがソー
スプログラムを翻訳して並列処理可能な実行プログラム
を生成し、スケジューラが各ノードの性能比に応じて実
行プログラムの処理を各ノードに割り当てる。
【0007】また、本発明は、実行するプログラムに合
った性能測定プログラムによって各ノードの性能を測定
できるようにするため、前記コンパイラは、前記ソース
プログラムの最も多く実行される最頻実行部分を抽出す
る最頻実行部分抽出部と、該最頻実行部分抽出部が抽出
した最頻実行部分に基づいて前記性能測定プログラムを
生成する性能測定プログラム生成部とを備えている。
【0008】上記した構成によれば、最頻実行部分抽出
部がソースプログラムの最頻実行部分を抽出し、性能測
定プログラム生成部が最頻実行部分抽出部で抽出された
最頻実行部分に基づいて性能測定プログラムを生成す
る。
【0009】
【発明の実施の形態】次に本発明の実施の形態について
図面を参照して詳細に説明する。
【0010】図1は本発明の実施の形態例を示すブロッ
ク図であり、コンパイラ11及びスケジューラ14を含
む負荷均等化装置1と、ノード21−1〜21−N及び
各ノードを接続するネットワーク22を含む分散並列処
理システム2とから構成されている。ノード21−1〜
21−Nは、プロセッサ及びメモリから構成される。
【0011】コンパイラ11は、入力されたソースプロ
グラム3を翻訳して並列処理可能な実行プログラム12
を生成する機能を有すると共に、ソースプログラム3の
最も多く実行される部分(最頻実行部分)に基づいて性
能測定プログラム13を生成する機能を有する。
【0012】スケジューラ14は、各ノード21−1〜
21−Nに性能測定プログラム13を実行させて各ノー
ド21−1〜21−Nの性能を測定する機能,各ノード
21−1〜21−Nの性能に応じて実行プログラム12
の処理を各ノード21−1〜21−Nに割り当てる機能
を有する。
【0013】次に動作について説明する。
【0014】ソースプログラム3が入力されると、コン
パイラ11は、先ず、字句構文解析を行い、その後、ソ
ースプログラム3の最頻実行部分を抽出する。尚、最頻
実行部分の抽出方法としては、例えば、プログラム構造
を静的に調べ、手続き呼び出しのネストに基づいてルー
プ構造の最内側ループ内の文を最頻実行部分として抽出
する方法、プログラムの実行プロフィールを採取し、そ
れに基づいて最頻実行部分を抽出する方法、ユーザの指
示行による指定により最頻実行部分を抽出する方法な
ど、種々の方法をとることができる。
【0015】その後、コンパイラ11は、抽出された最
頻実行部分で使用されている演算を基に各ノード21−
1〜21−Nの演算性能を測定するための性能測定プロ
グラム13を生成する。更に、コンパイラ11は、字句
構文解析結果に基づいて分散並列処理システム2で並列
処理可能な実行プログラム12を生成する。
【0016】スケジューラ14は、コンパイラ11によ
って生成された実行プログラム12を分散並列処理シス
テム2で実行させる場合、それに先立って性能測定プロ
グラム13を各ノード21−1〜21−Nで実行させ、
各ノード21−1〜21−Nの性能を測定する。その
後、スケジューラ14は、各ノード21−1〜21−N
の性能比を求め、それに基づいて実行プログラム12の
処理を各ノード21−1〜21−Nに割り当てる。この
ようにすることにより、性能の高いノードには多くの処
理が割り当てられ、性能の低いノードには少しの処理し
か割り当てられないので、各ノード21−1〜21−N
の負荷を均等にすることができる。その結果、各ノード
21−1〜21−Nの実行時間が均等化され、遊ぶノー
ドがなくなるため、プログラムの実行時間を短くするこ
とができる。
【0017】図2は本発明の実施例のブロック図であ
り、コンパイラ11及びスケジューラ14を含む負荷均
等化装置1と、3台のノードA,B,C及び各ノードを
接続するネットワーク22を含む分散並列処理システム
2とから構成されている。
【0018】コンパイラ11は、ソースプログラム3を
読み込み、その字句解析,構文解析を行う字句構文解析
部111と、ソースプログラム3の最頻実行部分を抽出
する最頻実行部分抽出部112と、最頻実行部分抽出部
112で抽出された最頻実行部分で使用されている演算
を基に各ノードA,B,Cの演算性能を測定するための
性能測定プログラム13を生成する性能測定プログラム
生成部113と、字句構文解析部111の解析結果に基
づいて並列処理可能な複数のプロセスから構成される実
行プログラム12を生成するコード生成部114とを備
えている。
【0019】スケジューラ14は、性能測定プログラム
13を各ノードA,B,Cで実行させることにより各ノ
ードA,B,Cの性能を測定するノード性能測定部14
1と、各ノードA,B,Cの性能を示す性能情報に基づ
いて各ノードA,B,Cの性能比を計算する性能比計算
部142と、実行プログラム12を構成する並列処理可
能な複数のプロセスを各ノードA,B,Cにどのように
割り当てるかを性能比計算部142で計算された性能比
に応じて決定するプログラム割り当て部143と、プロ
グラム割り当て部143の決定に従ってプロセスを各ノ
ードA,B,Cに割り当てるプログラム実行部144と
を備えている。
【0020】図3はソースプログラム3の一例を示した
図であり、この図3に示したHPF(High Per
formance FORTRAN)のソースプログラ
ムは、10000個の数の和を6個のMPI(Mess
age Passing Interface)プロセ
スで分散並列処理することを指示するものである。その
第3行は、プロセッサ数を6にすることを指示する行で
あり、第4行〜第6行は配列a(n),b(n),c
(n)を6個のプロセッサに割り当てることを指示する
行である。尚、第3行によって指示するプロセッサ数
は、分散並列処理システム2が備えているノード数より
も多くすることが必要である。
【0021】図4はコンパイラ11の処理例を示す流れ
図、図5はスケジューラ14の処理例を示す流れ図であ
り、以下各図を参照して本実施例の動作を説明する。
【0022】コンパイラ11に図3のソースプログラム
3が入力されると、字句構文解析部111がソースプロ
グラム3の字句解析,構文解析を行い、解析結果を最頻
実行部分抽出部112及びコード生成部114に渡す
(図4,S1)。
【0023】字句構文解析部111から解析結果が渡さ
れると、最頻実行部分抽出部112は、最内側ループの
a(i)=b(i)+c(i)の部分を最頻実行部分と
して抽出する(S2)。尚、ソースプログラム3中に複
数ループがある場合は、実行時プロフィール情報を使用
して最頻実行部分を決定するか、ユーザの指定により最
頻実行部分を決定する。
【0024】最頻実行部分が抽出されると、性能測定プ
ログラム生成部113が、抽出された最頻実行部分で使
用されている演算a(i)=b(i)+c(i)を基
に、各ノードA,B,Cの演算性能を測定するための性
能測定プログラム13を生成する(S3)。性能測定プ
ログラム13は、例えば、図6に示すものとなる。性能
測定プログラム13では、演算の実行時間を測定できれ
ば良いので、ループの回転数を多くする必要はなく、図
6の例では、ループの回転数を10としている。
【0025】コード生成部114は、字句構文解析部1
11から解析結果が渡されると、HPFの実行プログラ
ム12を生成する(S4)。
【0026】スケジューラ14は、実行プログラム12
を分散並列処理システム2で実行させる場合、それに先
立って性能測定プログラム13を入力する。ノード性能
測定部141は、性能測定プログラム13が入力される
と、それを各ノードA,B,Cで実行させることによ
り、各ノードA,B,Cの性能を測定する(図5,S1
1)。
【0027】各ノードA,B,Cの性能情報が得られる
と、性能比計算部142が各ノードA,B,Cの性能比
を計算する(S12)。今、例えば、各ノードA,B,
Cの性能を示す性能情報として、それぞれ20秒,30
秒,60秒が得られたとすると、性能比はA:B:C=
1/20:1/30:1/60=3:2:1となる。
【0028】各ノードA,B,Cの性能比が求められる
と、プログラム割り当て部143は、ノードA,B,C
の性能比がA:B:C=3:2:1であり、実行プログ
ラム12が6個のプロセスによって構成されていること
から、ノードA,B,Cにそれぞれ3プロセス,2プロ
セス,1プロセスを割り当てることを決定する(S1
3)。
【0029】その後、プログラム実行部144が、プロ
グラム割り当て部143の決定に従って、ノードA,
B,Cにそれぞれ3プロセス,2プロセス,1プロセス
を割り当て、プログラムを実行させる(S14)。尚、
上述した実施例に於いては、コンパイラ11で性能測定
プログラム13を作成し、それによってノードの性能を
測定するようにしたが、予め用意されている性能測定プ
ログラムによってノードの性能を測定するようにしても
良い。しかし、実施例のようにした方が、ノードの性能
を正確に測定することができる。
【0030】
【発明の効果】以上説明したように、本発明は、各ノー
ドの性能に応じて実行プログラムの処理を各ノードに割
り当てるので、各ノードの性能が異なる場合であっても
各ノードの負荷を均等にすることができる。この結果、
各ノードのプログラム実行時間が均等化され、遊ぶノー
ドがなくなるので、プログラムの実行時間を短縮するこ
とができる。
【0031】また、本発明は、ソースプログラムの最頻
実行部分に基づいて性能測定プログラムを生成し、この
性能測定プログラムによって各ノードの性能を測定する
ようにしたものであり、実行するプログラムに合った性
能測定プログラムによって各ノードの性能を測定できる
ので、実行されるプログラムにかかわらず、各ノードの
負荷を均一化することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態例を示すブロック図であ
る。
【図2】本発明の実施例のブロック図である。
【図3】ソースプログラム3の一例を示す図である。
【図4】コンパイラ11の処理例を示す流れ図である。
【図5】スケジューラ14の処理例を示す流れ図であ
る。
【図6】性能測定プログラム13の一例を示す図であ
る。
【符号の説明】
1…負荷均等化装置 11…コンパイラ 111…字句構文解析部 112…最頻実行部分抽出部 113…性能測定プログラム生成部 114…コード生成部 12…実行プログラム 13…性能測定プログラム 14…スケジューラ 141…ノード性能測定部 142…性能比計算部 143…プログラム割り当て部 144…プログラム実行部 2…分散並列処理システム 21−1〜21−N,A,B,C…ノード 22…ネットワーク

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 複数のノードから構成された分散並列処
    理システムに於ける負荷均等化装置に於いて、 ソースプログラムを翻訳して並列処理可能な実行プログ
    ラムを生成するコンパイラと、 前記各ノードに性能測定プログラムを実行させて前記各
    ノードの性能を測定した後、前記各ノードの性能比に応
    じて前記実行プログラムの処理を前記各ノードに割り当
    てるスケジューラとを備えたことを特徴とする負荷均等
    化装置。
  2. 【請求項2】 前記コンパイラは、 前記ソースプログラムの最も多く実行される最頻実行部
    分を抽出する最頻実行部分抽出部と、 該最頻実行部分抽出部が抽出した最頻実行部分に基づい
    て前記性能測定プログラムを生成する性能測定プログラ
    ム生成部とを備えたことを特徴とする請求項1記載の負
    荷均等化装置。
  3. 【請求項3】 前記最頻実行部分抽出部は、前記ソース
    プログラムの最内側ループ部分を最頻実行部分として抽
    出する構成を備えたことを特徴とする請求項2記載の負
    荷均等化装置。
JP8144929A 1996-05-15 1996-05-15 負荷均等化装置 Expired - Fee Related JP2910676B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8144929A JP2910676B2 (ja) 1996-05-15 1996-05-15 負荷均等化装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8144929A JP2910676B2 (ja) 1996-05-15 1996-05-15 負荷均等化装置

Publications (2)

Publication Number Publication Date
JPH09305552A true JPH09305552A (ja) 1997-11-28
JP2910676B2 JP2910676B2 (ja) 1999-06-23

Family

ID=15373498

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8144929A Expired - Fee Related JP2910676B2 (ja) 1996-05-15 1996-05-15 負荷均等化装置

Country Status (1)

Country Link
JP (1) JP2910676B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004086246A1 (ja) * 2003-03-24 2004-10-07 Fujitsu Limited 分散処理制御装置、分散処理制御方法および分散処理制御プログラム
JP2004295738A (ja) * 2003-03-28 2004-10-21 Nec Corp 耐障害計算機システム、プログラム並列実行方法およびプログラム
JP2008191881A (ja) * 2007-02-03 2008-08-21 Fujitsu Ltd 計算負荷最適化装置および計算負荷最適化方法
US7870439B2 (en) 2003-05-28 2011-01-11 Nec Corporation Fault tolerant multi-node computing system using periodically fetched configuration status data to detect an abnormal node
JP2021511609A (ja) * 2018-01-23 2021-05-06 パルテック・クラスター・コンペテンス・センター・ゲゼルシャフト・ミット・ベシュレンクテル・ハフツングPartec Cluster Competence Center Gmbh アプリケーションの実行中に決定される異種コンピューティングリソースの動的な割り当て

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004086246A1 (ja) * 2003-03-24 2004-10-07 Fujitsu Limited 分散処理制御装置、分散処理制御方法および分散処理制御プログラム
JP2004295738A (ja) * 2003-03-28 2004-10-21 Nec Corp 耐障害計算機システム、プログラム並列実行方法およびプログラム
US7870439B2 (en) 2003-05-28 2011-01-11 Nec Corporation Fault tolerant multi-node computing system using periodically fetched configuration status data to detect an abnormal node
JP2008191881A (ja) * 2007-02-03 2008-08-21 Fujitsu Ltd 計算負荷最適化装置および計算負荷最適化方法
JP2021511609A (ja) * 2018-01-23 2021-05-06 パルテック・クラスター・コンペテンス・センター・ゲゼルシャフト・ミット・ベシュレンクテル・ハフツングPartec Cluster Competence Center Gmbh アプリケーションの実行中に決定される異種コンピューティングリソースの動的な割り当て

Also Published As

Publication number Publication date
JP2910676B2 (ja) 1999-06-23

Similar Documents

Publication Publication Date Title
JP3989911B2 (ja) グローバル割込み待ち行列の仮想化
US7010596B2 (en) System and method for the allocation of grid computing to network workstations
JP4205066B2 (ja) マルチノード型コンピュータ・システムにおいてリソースを管理する装置、方法、およびプログラム
US8495603B2 (en) Generating an executable version of an application using a distributed compiler operating on a plurality of compute nodes
US8161483B2 (en) Configuring a parallel computer based on an interleave rate of an application containing serial and parallel segments
Shao et al. Using Effective Network Views to Promote Distributed Application Performance.
Deng et al. Preemptive scheduling of parallel jobs on multiprocessors
Hac A distributed algorithm for performance improvement through file replication, file migration, and process migration
US8595736B2 (en) Parsing an application to find serial and parallel data segments to minimize mitigation overhead between serial and parallel compute nodes
US8489700B2 (en) Analysis of nodal affinity behavior
KR20120068572A (ko) 멀티 코어 시스템의 프로그램 컴파일 장치 및 방법
US20090240930A1 (en) Executing An Application On A Parallel Computer
US10007495B2 (en) Code generation method for scheduling processors using hook function and exception handling function
JP2009223497A (ja) 管理マシン、管理システム、管理プログラム、および、管理方法
D'Amico et al. Drom: Enabling efficient and effortless malleability for resource managers
JP2002358293A (ja) 実行時負荷分散システム及び実行時負荷分散方法並びにプログラム
JPH09305552A (ja) 負荷均等化装置
Agrawal et al. An empirical evaluation of work stealing with parallelism feedback
JPH0628323A (ja) プロセス実行制御方法
Cardwell et al. An extended roofline model with communication-awareness for distributed-memory hpc systems
JP3772713B2 (ja) プライオリティ動的制御方式、プライオリティ動的制御方法およびプライオリティ動的制御用プログラム
Chacko et al. Integration of apache spark with invasive resource manager
Chaube et al. Effectiveness of a dynamic load balancing library for scientific applications
Hariri et al. Software tool evaluation methodology
KR20180052927A (ko) 가상 머신 기반의 서비스 펑션 체이닝에 있어서 가상 머신의 배치 방법

Legal Events

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

Free format text: PAYMENT UNTIL: 20080409

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090409

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100409

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110409

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20120409

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees