JP3826848B2 - 動的負荷均等化方法および動的負荷均等化装置 - Google Patents

動的負荷均等化方法および動的負荷均等化装置 Download PDF

Info

Publication number
JP3826848B2
JP3826848B2 JP2002166795A JP2002166795A JP3826848B2 JP 3826848 B2 JP3826848 B2 JP 3826848B2 JP 2002166795 A JP2002166795 A JP 2002166795A JP 2002166795 A JP2002166795 A JP 2002166795A JP 3826848 B2 JP3826848 B2 JP 3826848B2
Authority
JP
Japan
Prior art keywords
load
calculation
node
equalization
data
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
JP2002166795A
Other languages
English (en)
Other versions
JP2004013567A (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.)
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 JP2002166795A priority Critical patent/JP3826848B2/ja
Publication of JP2004013567A publication Critical patent/JP2004013567A/ja
Application granted granted Critical
Publication of JP3826848B2 publication Critical patent/JP3826848B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は動的負荷均等化方法および動的負荷均等化装置に関し、特に分散メモリ型マルチプロセッサシステムにおける動的負荷均等化方法および動的負荷均等化装置に関する。
【0002】
【従来の技術】
分散メモリ型マルチプロセッサシステムは、例えば、マルチノードシステムやクラスタシステムのように、CPU(Central Processing Unit)とメモリとから構成される複数の計算ノードが、ノード間結合網により接続されて構成されている。
【0003】
従来、分散メモリ型マルチプロセッサシステムにおいて、動的に負荷均等化を図るためには、作業負荷が均等になるように、データの再分散を行うのが常であった(特開昭60−010383,特開昭63−019059,特開平01−191252,特開平07−295942等参照)。
【0004】
例えば、図2に示すような計算手段102および記憶手段103を含む計算ノード101が計算ノード間通信手段104によって複数接続されている分散メモリ型マルチプロセッサシステム100では、実行中のあるプログラムに関して、複数の計算ノード101の間で作業負荷が不均等になった場合、高負荷の計算ノード101の記憶手段103上に割り付けられているデータをより負荷の軽い他の計算ノード101の記憶手段103上に移動させるようにデータの再分散を行っていたが、この際、単純に負荷を均等化しようとすると、大域的に計算データが移動することにより、多大なオーバヘッドが発生しがちであった。すなわち、負荷の大きな計算ノードから負荷の小さな計算ノードにデータを移動するとき、移動するデータ総量,およびデータ移動に参加しなければならない計算ノード数が大きくなりがちであり、オーバヘッドが非常に大きくなってしまうというおそれがあった。
【0005】
そこで、例えば、特開平06−068051に開示された「並列計算機」では、複数のプロセッサを複数のグループに分け、グループ内のプロセッサ間で優先的に負荷分散を行い、グループ内のプロセッサ間で負荷分散を行えない場合に初めて他のグループのプロセッサとの間で負荷分散を行うようにして、効率のよい負荷の動的な平均化を実現するようにしていた。
【0006】
【発明が解決しようとする課題】
しかし、この従来の技術では、十分に動的に効率のよい負荷分散が実現されるとは限らないという問題点があった。その理由は、グループを構成するプロセッサが事前に固定的に決められていたので、グループ内のプロセッサ間では効率のよい動的な負荷分散が実現されたとしても、グループ間での効率のよい動的な負荷分散が行われるようには考慮されていなかったからである。
【0007】
本発明の目的は、分散メモリ型マルチプロセッサシステムにおいて、データに対する作業負荷が不均等であるようなプログラムを実行する際に、高負荷の計算ノード周辺毎に動的に区分化(グループ化)して局所的に計算ノード間の計算データの移動を行うことにより、動的な作業負荷の均等化を少ないオーバヘッドにより効率的に行う動的負荷均等化方法および動的負荷均等化装置を提供することにある。
【0008】
また、本発明の他の目的は、分散メモリ型マルチプロセッサシステムにおいて、データに対する作業負荷が不均等であるようなプログラムを実行する際に、負荷均等化を行う計算ノードを少数の一定の計算ノード数で区分化して局所的に計算ノード間の計算データの移動を行い、さらに区分化の範囲を動的に変更することにより、動的な作業負荷の均等化を少ないオーバヘッドにより効率的に行う動的負荷均等化方法および動的負荷均等化装置を提供することにある。
【0009】
【課題を解決するための手段】
本発明の動的負荷均等化方法は、計算手段および記憶手段を有する複数の計算ノードが計算ノード間通信手段を介して接続されてなる分散メモリ型マルチプロセッサシステムの動的負荷均等化方法において、各計算ノードの負荷を測定する負荷測定ステップと、全計算ノードの負荷の合計である全負荷,各計算ノードにおける単位データ当りの負荷,および計算ノード当りの負荷である平均負荷を計算する負荷情報計算ステップと、計算ノード全体の区分を分割して負荷均等化を行う区分を動的に決定する負荷均等化区分決定ステップと、負荷均等化を行う各区分に対して、その区分内部における負荷の合計である区分全負荷,および負荷均等化後の目標となる負荷である区分均等負荷を計算する区分負荷情報計算ステップと、負荷均等化を行う各区分に対して、負荷均等化を実現するために、各計算ノードのどのデータをどの計算ノードに移動させる必要があるかを決定するデータ移動方式決定ステップと、前記データ移動方式決定ステップの決定結果に基づき、計算ノード間通信手段を利用して、実際に計算ノード間のデータの移動を行う計算ノード間データ移動ステップとを含むことを特徴とする。
【0012】
また、本発明の動的負荷均等化方法は、計算手段および記憶手段を有する複数の計算ノードが計算ノード間通信手段を介して接続されてなる分散メモリ型マルチプロセッサシステムの動的負荷均等化方法において、各計算ノード内の計算手段の負荷を測定する負荷測定ステップと、計算ノード全体の区分を分割して負荷均等化を行う区分を動的に決定する負荷均等化区分決定ステップと、負荷均等化を行う各区分に対して、その区分に属する各計算ノードの単位データ当りの負荷,その区分内部における負荷の合計である区分全負荷,および負荷均等化後の目標となる負荷である区分均等負荷を計算する区分負荷情報計算ステップと、負荷均等化を行う各区分に対して、負荷均等化を実現するために、各計算ノードのどのデータをどの計算ノードに移動させる必要があるかを決定するデータ移動方式決定ステップと、前記データ移動方式決定ステップの決定結果に基づき、計算ノード間通信手段を利用して、実際に計算ノード間のデータの移動を行う計算ノード間データ移動ステップとを含むことを特徴とする。
【0013】
一方、本発明の動的負荷均等化装置は、計算手段および記憶手段を有する複数の計算ノードが計算ノード間通信手段を介して接続されてなる分散メモリ型マルチプロセッサシステムの動的負荷均等化装置において、各計算ノードの負荷を測定する負荷測定手段と、全計算ノードの負荷の合計である全負荷,各計算ノードにおける単位データ当りの負荷,および計算ノード当りの負荷である平均負荷を計算する負荷情報計算手段と、計算ノード全体の区分を分割して負荷均等化を行う区分を動的に決定する負荷均等化区分決定手段と、負荷均等化を行う各区分に対して、その区分内部における負荷の合計である区分全負荷,および負荷均等化後の目標となる負荷である区分均等負荷を計算する区分負荷情報計算手段と、負荷均等化を行う各区分に対して、負荷均等化を実現するために、各計算ノードのどのデータをどの計算ノードに移動させる必要があるかを決定するデータ移動方式決定手段と、前記データ移動方式決定手段による決定結果に基づき、計算ノード間通信手段を利用して、実際に計算ノード間のデータの移動を行う計算ノード間データ移動手段とを含むことを特徴とする。
【0014】
また、本発明の動的負荷均等化装置は、計算手段および記憶手段を有する複数の計算ノードが計算ノード間通信手段を介して接続されてなる分散メモリ型マルチプロセッサシステムの動的負荷均等化装置において、各計算ノード内の計算手段の負荷を測定する負荷測定手段と、計算ノード全体の区分を分割して負荷均等化を行う区分を動的に決定する負荷均等化区分決定手段と、負荷均等化を行う各区分に対して、その区分に属する各計算ノードの単位データ当りの負荷,その区分内部における負荷の合計である区分全負荷,および負荷均等化後の目標となる負荷である区分均等負荷を計算する区分負荷情報計算手段と、負荷均等化を行う各区分に対して、負荷均等化を実現するために、各計算ノードのどのデータをどの計算ノードに移動させる必要があるかを決定する動的負荷均等化手段と、前記データ移動方式決定手段による決定結果に基づき、計算ノード間通信手段を利用して、実際に計算ノード間のデータの移動を行う計算ノード間データ移動手段とを含むことを特徴とする。
【0015】
他方、本発明のプログラムは、コンピュータに、各計算ノードの負荷を測定する負荷測定ステップと、全計算ノードの負荷の合計である全負荷,各計算ノードにおける単位データ当りの負荷,および計算ノード当りの負荷である平均負荷を計算する負荷情報計算ステップと、計算ノード全体の区分を分割して負荷均等化を行う区分を動的に決定する負荷均等化区分決定ステップと、負荷均等化を行う各区分に対して、その区分内部における負荷の合計である区分全負荷,および負荷均等化後の目標となる負荷である区分均等負荷を計算する区分負荷情報計算ステップと、負荷均等化を行う各区分に対して、負荷均等化を実現するために、各計算ノードのどのデータをどの計算ノードに移動させる必要があるかを決定するデータ移動方式決定ステップと、前記データ移動方式決定ステップの決定結果に基づき、計算ノード間通信手段を利用して、実際に計算ノード間のデータの移動を行う計算ノード間データ移動ステップとを実行させることを特徴とする。
【0016】
また、本発明のプログラムは、コンピュータに、各計算ノード内の計算手段の負荷を測定する負荷測定ステップと、計算ノード全体の区分を分割して負荷均等化を行う区分を動的に決定する負荷均等化区分決定ステップと、負荷均等化を行う各区分に対して、その区分に属する各計算ノードの単位データ当りの負荷,その区分内部における負荷の合計である区分全負荷,および負荷均等化後の目標となる負荷である区分均等負荷を計算する区分負荷情報計算ステップと、負荷均等化を行う各区分に対して、負荷均等化を実現するために、各計算ノードのどのデータをどの計算ノードに移動させる必要があるかを決定するデータ移動方式決定ステップと、前記データ移動方式決定ステップの決定結果に基づき、計算ノード間通信手段を利用して、実際に計算ノード間のデータの移動を行う計算ノード間データ移動ステップとを実行させることを特徴とする。
【0017】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0018】
[第1の実施の形態]
図2は、本発明の第1の実施の形態に係る動的負荷均等化方法が適用される分散メモリ型マルチプロセッサシステム100の構成を示すブロック図である。この分散メモリ型マルチプロセッサシステム100は、各々が計算手段102および記憶手段103を有する複数の計算ノード101と、各計算ノード101間を接続する計算ノード間通信手段104とを含んで構成されている。
【0019】
分散メモリ型マルチプロセッサシステム100上で、あるプログラムが実行されている場合、各々の計算ノード101内で、計算手段102は、自計算ノード101内で接続されている記憶手段103上に割り付けられているデータをアクセスしながらプログラムの処理を非同期的に実行する。
【0020】
計算ノード間通信手段104は、ある計算ノード101内の計算手段102が、他の計算ノード101内の記憶手段103上に割り付けられているデータにアクセスする際や、データをある計算ノード101内の記憶手段103上から他の計算ノード101内の記憶手段103上に移動させる際の経路となる。計算ノード間通信手段104は、バス,インターフェース,ネットワークといったハードウェアと、ドライバや通信ライブラリ手続といったソフトウェアとを含む。
【0021】
図1を参照すると、分散メモリ型マルチプロセッサシステム100の各計算ノード101上で動作する動的負荷均等化処理部110は、負荷測定手段111と、負荷情報計算手段112と、負荷均等化区分決定手段113と、区分負荷情報計算手段114と、データ移動方式決定手段115と、計算ノード間データ移動手段116とから構成されている。なお、動的負荷均等化処理部110は、各計算ノード101上にアプリケーションプログラムの一部としてそれぞれ実装される。
【0022】
負荷測定手段111は、自計算ノード101の負荷を測定する。
【0023】
負荷情報計算手段112は、自計算ノード101の単位データ当りの負荷の計算を行い、他の全ての計算ノード101の負荷情報を計算ノード間通信手段104を利用して収集し、全計算ノード101の負荷の合計である全負荷,各計算ノード101における単位データ当りの負荷,および計算ノード当りの負荷である平均負荷を計算する。
【0024】
負荷均等化区分決定手段113は、計算ノード101全体の区分を分割して負荷均等化を行う区分を決定する。
【0025】
区分負荷情報計算手段114は、負荷均等化を行う各区分に対して、その区分内部における各計算ノード101の負荷の合計である区分全負荷,および負荷均等化後の目標となる負荷である区分均等負荷を計算する。
【0026】
データ移動方式決定手段115は、負荷均等化を行う各区分に対して、負荷均等化を実現するために、各計算ノード101のどのデータをどの計算ノード101に移動させる必要があるかを決定する。
【0027】
計算ノード間データ移動手段116は、負荷均等化を行う各区分に対し、計算ノード間通信手段104を利用して、計算ノード101間のデータの移動を行う。計算ノード間データ移動手段116は、一番上位のモジュールである通信ライブラリ手続をインターフェースとして、計算ノード間通信手段104を利用する。
【0028】
図3を参照すると、動的負荷均等化処理部110の処理手順は、自計算ノード負荷測定ステップA1と、他全計算ノード負荷情報収集ステップA2と、各計算ノード単位データ当りの負荷計算ステップA3と、全負荷および平均負荷計算ステップA4と、負荷均等化区分決定ステップA5と、区分全負荷および区分均等負荷計算ステップA6と、各計算ノード割り付けデータ決定ステップA7と、データ移動方式決定ステップA8と、計算ノード間データ移動ステップA9とからなる。
【0029】
次に、このような第1の実施の形態に係る動的負荷均等化方法が適用された分散メモリ型マルチプロセッサシステム100の動作について、図1ないし図3を参照しながら説明する。
【0030】
いま、計算ノード101の総数をn(正整数)とし、i(1<=i<=n)番目の計算ノードNi内の記憶手段103上に割り付けられているデータ量をDiとする。
【0031】
データは、計算ノードN1内の記憶手段103上に割り付けられているものから、計算ノードNn内の記憶手段103上に割り付けられているものまで、昇順に番号づけられており、負荷均等化後も、その順番は変えられないものとする。
【0032】
各計算ノード101上で動的負荷均等化処理部110が起動されると、計算手段102は、以下のような動作を行う。
【0033】
計算手段102は、負荷測定手段111により、自計算ノードN1,N2,…,Nnの負荷L1,L2,…,Lnをそれぞれ測定する(ステップA1)。
【0034】
次に、計算手段102は、負荷情報計算手段112により、他の全ての計算ノード101の負荷情報を計算ノード間通信手段104を利用して収集し(ステップA2)、各計算ノードN1,N2,…,Nnの負荷L1,L2,…,Lnに基づき、各計算ノードNi上の単位データ当りの負荷Li/Di(1<=i<=n)を計算し(ステップA3)、さらに全負荷AL=L1+L2+…+Ln,および計算ノード当りの平均負荷BL=AL/nを計算する(ステップA4)。
【0035】
続いて、計算手段102は、負荷均等化区分決定手段113により、負荷情報計算手段112による計算結果に基づき、平均負荷BLを越える負荷がかかっている高負荷の計算ノードNiを中心として、2つの高負荷の計算ノード間の計算ノードを等分するように負荷均等化を行う区分を動的に決定する(ステップA5)。例えば、高負荷の計算ノードが、a番目,b番目,c番目の計算ノードNa,Nb,Nc(a<b<c)だけならば、1番目の計算ノードNaから(b−a)/2番目の計算ノードN(b−a)/2までを最初の負荷均等化を行う区分S1、(b−a)/2+1番目の計算ノードN(b−a)/2+1から(c−b)/2番目の計算ノードN(c−b)/2までを2番目の負荷均等化を行う区分S2、(c−b)/2+1番目の計算ノードN(c−b)/2+1からn番目の計算ノードNnまでを3番目の負荷均等化を行う区分S3とする。ここでは、負荷均等化区分決定手段113によって、計算ノードN1,N2,…,Nnがm(正整数)個の区分S1,S2,…,Smに区切られたとし、j(1<=j<=m)番目の区分Sjには、lj個の計算ノードNj1,Nj2,…,Njljが含まれるとする。
【0036】
次に、計算手段102は、区分負荷情報計算手段114により、各区分Sjに対して、その区分内部における区分全負荷SALj=Lj1+…+Ljlj,および負荷均等化後の目標となる負荷である区分均等負荷SBLj=SALj/ljを計算する(ステップA6)。
【0037】
続いて、計算手段102は、データ移動方式決定手段115により、区分負荷情報計算手段114による計算結果に基づいて、各区分Sjに関して、そこに含まれる各計算ノードの負荷が、負荷均等化後に区分均等負荷SBLjに近い値になるように、各計算ノード内の記憶手段103上に割り付けるデータを決定し(ステップA7)、それを実現するために各計算ノード内のどのデータをどの計算ノードに移動させる必要があるかを決定する(ステップA8)。
【0038】
最後に、計算手段102は、計算ノード間データ移動手段116により、データ移動方式決定手段115による決定結果に基づいて、計算ノード間通信手段104を利用して、実際に計算ノード間のデータの移動を行う(ステップA9)。
【0039】
次に、具体例を用いてより詳しく説明する。
【0040】
図4に示すように、分散メモリ型マルチプロセッサシステム100は、計算ノード101がN1,N2,…,N12までの12個あるものとし、各計算ノードN1,N2,…,N12内の記憶手段103上に割り付けられているデータ量が全て10であるものとする。
【0041】
まず、計算手段102は、負荷測定手段111により、各計算ノードN1,N2,…,N12内の計算手段102の負荷が、図4の各計算手段102上の数字のようにそれぞれ測定されたものとする(ステップA1)。
【0042】
次に、計算手段102は、負荷情報計算手段112により、他の全ての計算ノード101の負荷情報を計算ノード間通信手段104を利用して収集し(ステップA2)、各計算ノードN1,N2,…,N12の負荷L1,L2,…,L12に基づき各計算ノードNi上の単位データ当りの負荷Li/Di(1<=i<=n)を表1のように計算し(ステップA3)、さらに全負荷AL=1+3+2+6+4+1+4+2+1+2+1+3=30,および平均負荷BL=AL/n=30/12=2.5を計算する(ステップA4)。
【0043】
【表1】
Figure 0003826848
【0044】
続いて、計算手段102は、負荷均等化区分決定手段113により、負荷情報計算手段112による計算結果に基づき、平均負荷BL=2.5を越える負荷がかかっている高負荷の計算ノードN2,N4,N5,N7,N12を中心として、2つの高負荷の計算ノード間の計算ノードを等分するように計算ノードを分割して負荷均等化を行う区分を動的に決定する(ステップA5)。この際、各区分のちょうど境界にある計算ノードを、計算ノード数が少ない方の区分に所属させると、表2のように5つの区分S1,S2,…,S5が決定される。
【0045】
【表2】
Figure 0003826848
【0046】
続いて、計算手段102は、区分負荷情報計算手段114により、負荷均等化区分決定手段113による決定結果に基づき、表3に示すように、各区分Sjに対して、その区分内部における区分全負荷SALj=Lj1+…+Ljlj,および負荷均等化後の目標となる負荷である区分均等負荷SBLj=SALj/ljを計算する(ステップA6)。
【0047】
【表3】
Figure 0003826848
【0048】
次に、計算手段102は、データ移動方式決定手段115により、区分負荷情報計算手段114の計算結果に基づき、各区分Sjに対して、負荷均等化後に各計算ノード上の負荷が区分均等負荷SBLjに近い値になるように、その区分に属する各計算ノード内の記憶手段103上に割り付けるデータを決定する(ステップA7)。その際、区分均等負荷SBLjを正確に同じ値にすることができない場合には、奇数番号の計算ノードでは1データ分負荷を多めに、偶数番号の計算ノードでは1データ分負荷を少なめにすると、表4のようになる。
【0049】
【表4】
Figure 0003826848
【0050】
さらに、計算手段102は、データ移動方式決定手段115により、表4のようなデータ配置を実現するために、各計算ノードのどのデータをどの計算ノードに移動させる必要があるかの情報(データ移動方式)を表5のように生成する(ステップA8)。
【0051】
【表5】
Figure 0003826848
【0052】
最後に、計算手段102は、計算ノード間データ移動手段116により、データ移動方式決定手段115による決定結果に基づき、計算ノード間通信手段104を利用して、実際に計算ノード間のデータの移動を行う(ステップA9)。
【0053】
この結果、負荷の最も少ない計算ノードと負荷の最も多い計算ノードとの負荷比は、最初の6倍から2.4倍に縮小され、そのために発生するデータ転送の総量は26、1つの計算ノードが転送しなければならない転送相手の計算ノード数の最大値は2である。
【0054】
ところが、従来のように、単純に負荷均等化を図った場合、負荷均等化後の各計算ノードの大域負荷均等化後負荷および大域負荷均等化後データ量,ならびに必要な計算ノード間通信のパタンは、それぞれ、表6および表7のようになる。
【0055】
【表6】
Figure 0003826848
【0056】
【表7】
Figure 0003826848
【0057】
この結果、負荷の最も少ない計算ノードと負荷の最も多い計算ノードとの負荷比は、最初の6倍から1.3倍程度に縮小されるが、そのために発生するデータ転送の総量は69、1つの計算ノードが転送しなければならない転送相手の計算ノード数の最大値は4となり、区分的に負荷分散を図る場合と比べて多大なコストが発生していることが分かる。
【0058】
[第2の実施の形態]
図5を参照すると、本発明の第2の実施の形態に係る動的負荷均等化方法が適用された動的負荷均等化処理部120は、負荷測定手段121と、負荷均等化区分決定手段122と、区分負荷情報計算手段123と、データ移動方式決定手段124と、計算ノード間データ移動手段125とから構成されている。
【0059】
なお、分散メモリ型マルチプロセッサシステム100は、すでに図2で示したように構成されている。
【0060】
負荷測定手段121は、自計算ノード101の負荷を測定する。
【0061】
負荷均等化区分決定手段122は、計算ノード101全体の区分を分割して負荷均等化を行う区分を決定する。
【0062】
区分負荷情報計算手段123は、負荷均等化を行う各区分に対して、その区分に属する各計算ノード101の単位データ当りの負荷,その区分内部における負荷の合計である区分全負荷,および負荷均等化後の目標となる負荷である区分均等負荷を計算する。
【0063】
データ移動方式決定手段124は、負荷均等化を行う各区分に対して、負荷均等化を実現するために、各計算ノード101のどのデータをどの計算ノード101に移動させる必要があるかを決定する。
【0064】
計算ノード間データ移動手段125は、負荷均等化を行う各区分に対し、計算ノード間通信手段104を利用して、計算ノード101間のデータの移動を行う。
【0065】
図6を参照すると、動的負荷均等化処理部120の処理手順は、自計算ノード負荷測定ステップB1と、他全計算ノード負荷情報収集ステップB2と、各計算ノード単位データ当りの負荷計算ステップB3と、負荷均等化区分決定ステップB4と、区分全負荷および区分均等負荷計算ステップB5と、各計算ノード割り付けデータ決定ステップB6と、データ移動方式決定ステップB7と、計算ノード間データ移動ステップB8とからなる。
【0066】
次に、このような第2の実施の形態に係る動的負荷均等化方法が適用された分散メモリ型マルチプロセッサシステム100の動作について、図5および図6を参照しながら説明する。
【0067】
いま、計算ノード101の総数をnとし、i(1<=i<=n)番目の計算ノードNi内の記憶手段102上に割り付けられているデータ量をDiとする。
【0068】
データは、計算ノードN1内の記憶手段103上に割り付けられているものから、計算ノードNn内の記憶手段103上に割り付けられているものまで、昇順に番号づけられており、負荷均等化後も、その順番は変えられないものとする。
【0069】
各計算ノード101上で動的負荷均等化処理部120が起動されると、計算手段102は、以下のような動作を行う。
【0070】
まず、計算手段102は、負荷測定手段121により、自計算ノードN1,N2,…,Nnの負荷L1,L2,…,Lnをそれぞれ測定する(ステップB1)。
【0071】
次に、計算手段102は、負荷情報計算手段112により、他の全ての計算ノード101の負荷情報を計算ノード間通信手段104を利用して収集し(ステップB2)、各計算ノードN1,N2,…,Nnの負荷L1,L2,…,Lnに基づき、各計算ノードNi上の単位データ当りの負荷Li/Di(1<=i<=n)を計算する(ステップB3)。
【0072】
次に、計算手段102は、負荷均等化区分決定手段122により、一定数の計算ノード毎に負荷均等化を行う区分を決定する(ステップB4)。
【0073】
例えば、1区分を4計算ノードとするときは、以下のような区分となる。
【0074】
{L1,L2,L3,L4},
{L5,L6,L7,L8},
…,
{Ln−3,Ln−2,Ln−1,Ln}
【0075】
この区分は、繰り返し負荷均等化を行う場合には、異なる計算ノードが負荷均等化を行う区分に含まれるように、例えば、以下のように負荷均等化を行うごとに変更される。
【0076】
{L1,L2},
{L3,L4,L5,L6},
{L7,L8,L9,L10},
…,
{Ln−1,Ln}
【0077】
負荷均等化区分決定手段122によって、計算ノードN1,N2,…,Nnがm(m<nの正整数)個の区分S1,S2,…,Smに区切られたとし、j(1<=j<=m)番目の区分Sjには、lj個の計算ノードNj1,Nj2,…,Njljが含まれるとする。
【0078】
続いて、計算手段102は、区分負荷情報計算手段123により、負荷測定手段121による測定結果および負荷均等化区分決定手段122による決定結果に基づいて、各区分Sjに対して、その区分に属する各計算ノードNiの単位データ当りの負荷Li/Di,その区分内部における区分全負荷SALj=Lj1+…+Ljlj,および負荷均等化後の目標となる負荷である区分均等負荷SBK=SALj/ljを計算する(ステップB5)。なお、この計算は、区分毎に閉じて可能であるためにオーバヘッドが少ない。
【0079】
次に、計算手段102は、データ移動方式決定手段124により、区分負荷情報計算手段123による計算結果に基づいて、各区分Sjに関して、そこに含まれる各計算ノードの負荷が、負荷均等化後に区分均等負荷SBLjに近い値になるように、各計算ノード内の記憶手段103上に割り付けるデータを決定し(ステップB6)、それを実現するために、各計算ノード内のどのデータをどの計算ノードに移動させる必要があるかを決定する(ステップB7)。
【0080】
最後に、計算手段102は、計算ノード間データ移動手段116により、データ移動方式決定手段124による決定結果に基づいて、計算ノード間通信手段104を利用して、実際に計算ノード間のデータの移動を行う(ステップB8)。
【0081】
次に、具体例を用いてより詳しく説明する。
【0082】
図4に示すように、分散メモリ型マルチプロセッサシステム100は、計算ノード101がN1,N2,…,N12までの12個あるものとし、各計算ノードN1,N2,…,N12内の記憶手段103上に割り付けられているデータ量が全て10であるものとする。
【0083】
計算手段102は、負荷測定手段121により、自計算ノードN1,N2,…,N12内の計算手段102の負荷L1,L2,…,L12を、図4の各計算手段102上の数字のように測定したとする(ステップB1)。
【0084】
次に、計算手段102は、負荷情報計算手段112により、他の全ての計算ノード101の負荷情報を計算ノード間通信手段104を利用して収集し(ステップB2)、各計算ノードN1,N2,…,Nnの負荷L1,L2,…,Lnに基づき、各計算ノードNi上の単位データ当りの負荷Li/Di(1<=i<=n)を計算する(ステップB3)。
【0085】
次に、計算手段102は、負荷均等化区分決定手段122により、例えば、4つの計算ノードを1つの区分として、以下のように3つの負荷均等化を行う区分S1,S2,S3を決定する(ステップB4)。
【0086】
区分S1 {N1,N2,N3,N4}
区分S2 {N5,N6,N7,N8}
区分S3 {N9,N10,N11,N12}
【0087】
続いて、計算手段102は、区分負荷情報計算手段123により、負荷測定手段121による測定結果および負荷均等化区分決定手段112の決定結果に基づき、各区分Sjに対して、その区分に属する各計算ノードNiの単位データ当りの負荷Li/Diを表8のように、また、その区分内部における区分全負荷SALj=Lj1+…+Ljlj,および負荷均等化後の目標となる負荷である区分均等負荷SBLj=SALj/ljを、表9のように計算する(ステップB5)。なお、この計算は、各区分S1,S2,S3に閉じて可能であるためにオーバヘッドが少ない。
【0088】
【表8】
Figure 0003826848
【0089】
【表9】
Figure 0003826848
【0090】
次に、計算手段102は、データ移動方式決定手段124により、区分負荷情報計算手段123による計算結果に基づき、各区分Sjに関して、そこに含まれる各計算ノードの負荷が、負荷均等化後に区分均等負荷SBLjに近い値になるように、その区分に属する各計算ノード内の記憶手段103上に割り付けるデータを決定する(ステップB6)。その際、区分均等負荷SBLjと正確に同じ値にすることができない場合には、奇数番号の計算ノードでは1データ分負荷を多めに、偶数番号の計算ノードでは1データ分負荷を少なめにすると、表10のようになる。
【0091】
【表10】
Figure 0003826848
【0092】
さらに、計算手段102は、データ移動方式決定手段124により、表10のようなデータ配置を実現するために、各計算ノードのどのデータをどの計算ノードに移動させる必要があるかの情報(データ移動方式)を、表11のように生成する(ステップB7)。
【0093】
【表11】
Figure 0003826848
【0094】
最後に、計算手段102は、計算ノード間データ移動手段125により、データ移動方式決定手段124による決定結果に基づき、計算ノード間通信手段104を利用して、実際に計算ノード間のデータの移動を行う(ステップB8)。
【0095】
この結果、負荷の最も少ない計算ノードと負荷の最も多い計算ノードとの負荷比は、最初の6倍から2.1倍程度に縮小され、そのために発生するデータ転送の総量は43、1つの計算ノードが転送しなければならない転送相手の計算ノード数の最大値は2となる。
【0096】
これは、従来のように、単純に負荷均等化を図った場合の表6および表7と比べて、やはりコストが大幅に削減されている。
【0097】
また、負荷均等化を行う毎に、各区分に含まれる計算ノードを変更することにより、長期的には大域的にも負荷の均等化を図ることができる。
【0098】
【発明の効果】
第1の効果は、負荷均等化のためのオーバヘッドの削減を図れることにある。その理由は、負荷均等化の際に、計算対象を計算ノード間で移動させるときに移動範囲を局所的な範囲に抑えることにより、データの移動量,およびデータ移動の際の各計算ノードがデータを移動しなければならない他の計算ノード数が削減されるため、データの移動時間やデータの移動の際の計算ノード間の待ち合わせ時間を削減できるためである。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係る動的負荷均等化方法が適用された動的負荷均等化処理部の構成を示すブロック図である。
【図2】分散メモリ型マルチプロセッサシステムの構成を示すブロック図である。
【図3】図1の動的負荷均等化処理部の処理手順を表すフローチャートである。
【図4】第1の実施の形態に係る動的負荷均等化方法が適用される分散メモリ型マルチプロセッサシステムの具体例を示すブロック図である。
【図5】本発明の第2の実施の形態に係る動的負荷均等化方法が適用された動的負荷均等化処理部の構成を示すブロック図である。
【図6】図5の動的負荷均等化処理部の処理手順を表すフローチャートである。
【符号の説明】
100 分散メモリ型マルチプロセッサシステム
101 計算ノード
102 計算手段
103 記憶手段
104 計算ノード間通信手段
110 動的負荷均等化処理部
111 負荷測定手段
112 負荷情報計算手段
113 負荷均等化区分決定手段
114 区分負荷情報計算手段
115 データ移動方式決定手段
116 計算ノード間データ移動手段
120 動的負荷均等化処理部
121 負荷測定手段
122 負荷均等化区分決定手段
123 区分負荷情報計算手段
124 データ移動方式決定手段
125 計算ノード間データ移動手段
A1 自計算ノード負荷測定ステップ
A2 他全計算ノード負荷情報収集ステップ
A3 各計算ノード単位データ当りの負荷計算ステップ
A4 全負荷および平均負荷計算ステップ
A5 負荷均等化区分決定ステップ
A6 区分全負荷および区分均等負荷計算ステップ
A7 各計算ノード割り付けデータ決定ステップ
A8 データ移動方式決定ステップ
A9 計算ノード間データ移動ステップ
B1 自計算ノード負荷測定ステップ
B2 他全計算ノード負荷情報収集ステップ
B3 各計算ノード単位データ当りの負荷計算ステップ
B4 負荷均等化区分決定ステップ
B5 区分全負荷および区分均等負荷計算ステップ
B6 各計算ノード割り付けデータ決定ステップ
B7 データ移動方式決定ステップ
B8 計算ノード間データ移動ステップ

Claims (6)

  1. 計算手段および記憶手段を有する複数の計算ノードが計算ノード間通信手段を介して接続されてなる分散メモリ型マルチプロセッサシステムの動的負荷均等化方法において、
    各計算ノードの負荷を測定する負荷測定ステップと、
    全計算ノードの負荷の合計である全負荷,各計算ノードにおける単位データ当りの負荷,および計算ノード当りの負荷である平均負荷を計算する負荷情報計算ステップと、
    計算ノード全体の区分を分割して負荷均等化を行う区分を動的に決定する負荷均等化区分決定ステップと、
    負荷均等化を行う各区分に対して、その区分内部における負荷の合計である区分全負荷,および負荷均等化後の目標となる負荷である区分均等負荷を計算する区分負荷情報計算ステップと、
    負荷均等化を行う各区分に対して、負荷均等化を実現するために、各計算ノードのどのデータをどの計算ノードに移動させる必要があるかを決定するデータ移動方式決定ステップと、
    前記データ移動方式決定ステップの決定結果に基づき、計算ノード間通信手段を利用して、実際に計算ノード間のデータの移動を行う計算ノード間データ移動ス
    テップと
    を含むことを特徴とする動的負荷均等化方法。
  2. 計算手段および記憶手段を有する複数の計算ノードが計算ノード間通信手段を介して接続されてなる分散メモリ型マルチプロセッサシステムの動的負荷均等化方法において、
    各計算ノード内の計算手段の負荷を測定する負荷測定ステップと、
    計算ノード全体の区分を分割して負荷均等化を行う区分を動的に決定する負荷均等化区分決定ステップと、
    負荷均等化を行う各区分に対して、その区分に属する各計算ノードの単位データ当りの負荷,その区分内部における負荷の合計である区分全負荷,および負荷均等化後の目標となる負荷である区分均等負荷を計算する区分負荷情報計算ステップと、
    負荷均等化を行う各区分に対して、負荷均等化を実現するために、各計算ノードのどのデータをどの計算ノードに移動させる必要があるかを決定するデータ移動方式決定ステップと、
    前記データ移動方式決定ステップの決定結果に基づき、計算ノード間通信手段を利用して、実際に計算ノード間のデータの移動を行う計算ノード間データ移動ステップと
    を含むことを特徴とする動的負荷均等化方法。
  3. 計算手段および記憶手段を有する複数の計算ノードが計算ノード間通信手段を介して接続されてなる分散メモリ型マルチプロセッサシステムの動的負荷均等化装置において、
    各計算ノードの負荷を測定する負荷測定手段と、
    全計算ノードの負荷の合計である全負荷,各計算ノードにおける単位データ当りの負荷,および計算ノード当りの負荷である平均負荷を計算する負荷情報計算手段と、
    計算ノード全体の区分を分割して負荷均等化を行う区分を動的に決定する負荷均等化区分決定手段と、
    負荷均等化を行う各区分に対して、その区分内部における負荷の合計である区分全負荷,および負荷均等化後の目標となる負荷である区分均等負荷を計算する区分負荷情報計算手段と、
    負荷均等化を行う各区分に対して、負荷均等化を実現するために、各計算ノードのどのデータをどの計算ノードに移動させる必要があるかを決定するデータ移動方式決定手段と、
    前記データ移動方式決定手段による決定結果に基づき、計算ノード間通信手段を利用して、実際に計算ノード間のデータの移動を行う計算ノード間データ移動手段と
    を含むことを特徴とする動的負荷均等化装置。
  4. 計算手段および記憶手段を有する複数の計算ノードが計算ノード間通信手段を介して接続されてなる分散メモリ型マルチプロセッサシステムの動的負荷均等化装置において、
    各計算ノード内の計算手段の負荷を測定する負荷測定手段と、
    計算ノード全体の区分を分割して負荷均等化を行う区分を動的に決定する負荷均等化区分決定手段と、
    負荷均等化を行う各区分に対して、その区分に属する各計算ノードの単位データ当りの負荷,その区分内部における負荷の合計である区分全負荷,および負荷均等化後の目標となる負荷である区分均等負荷を計算する区分負荷情報計算手段と、
    負荷均等化を行う各区分に対して、負荷均等化を実現するために、各計算ノードのどのデータをどの計算ノードに移動させる必要があるかを決定する動的負荷均等化手段と、
    前記データ移動方式決定手段による決定結果に基づき、計算ノード間通信手段を利用して、実際に計算ノード間のデータの移動を行う計算ノード間データ移動手段と
    を含むことを特徴とする動的負荷均等化装置。
  5. コンピュータに、各計算ノードの負荷を測定する負荷測定ステップと、全計算ノードの負荷の合計である全負荷,各計算ノードにおける単位データ当りの負荷,および計算ノード当りの負荷である平均負荷を計算する負荷情報計算ステップと、計算ノード全体の区分を分割して負荷均等化を行う区分を動的に決定する負荷均等化区分決定ステップと、負荷均等化を行う各区分に対して、その区分内部における負荷の合計である区分全負荷,および負荷均等化後の目標となる負荷である区分均等負荷を計算する区分負荷情報計算ステップと、負荷均等化を行う各区分に対して、負荷均等化を実現するために、各計算ノードのどのデータをどの計算ノードに移動させる必要があるかを決定するデータ移動方式決定ステップと、前記データ移動方式決定ステップの決定結果に基づき、計算ノード間通信手段を利用して、実際に計算ノード間のデータの移動を行う計算ノード間データ移動ステップとを実行させるためのプログラム。
  6. コンピュータに、各計算ノード内の計算手段の負荷を測定する負荷測定ステップと、計算ノード全体の区分を分割して負荷均等化を行う区分を動的に決定する負荷均等化区分決定ステップと、負荷均等化を行う各区分に対して、その区分に属する各計算ノードの単位データ当りの負荷,その区分内部における負荷の合計である区分全負荷,および負荷均等化後の目標となる負荷である区分均等負荷を計算する区分負荷情報計算ステップと、負荷均等化を行う各区分に対して、負荷均等化を実現するために、各計算ノードのどのデータをどの計算ノードに移動させる必要があるかを決定するデータ移動方式決定ステップと、前記データ移動方式決定ステップの決定結果に基づき、計算ノード間通信手段を利用して、実際に計算ノード間のデータの移動を行う計算ノード間データ移動ステップとを実行させるためのプログラム。
JP2002166795A 2002-06-07 2002-06-07 動的負荷均等化方法および動的負荷均等化装置 Expired - Fee Related JP3826848B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002166795A JP3826848B2 (ja) 2002-06-07 2002-06-07 動的負荷均等化方法および動的負荷均等化装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002166795A JP3826848B2 (ja) 2002-06-07 2002-06-07 動的負荷均等化方法および動的負荷均等化装置

Publications (2)

Publication Number Publication Date
JP2004013567A JP2004013567A (ja) 2004-01-15
JP3826848B2 true JP3826848B2 (ja) 2006-09-27

Family

ID=30434241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002166795A Expired - Fee Related JP3826848B2 (ja) 2002-06-07 2002-06-07 動的負荷均等化方法および動的負荷均等化装置

Country Status (1)

Country Link
JP (1) JP3826848B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101400286B1 (ko) 2008-01-22 2014-05-26 삼성전자주식회사 다중 프로세서 시스템에서 작업을 이동시키는 방법 및 장치

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5527416B2 (ja) 2010-08-25 2014-06-18 富士通株式会社 ネットワーク評価装置、ネットワーク評価方法及びネットワーク評価プログラム
CN114090223A (zh) * 2020-08-24 2022-02-25 北京百度网讯科技有限公司 访存请求调度方法、装置、设备以及存储介质
CN113093682B (zh) * 2021-04-09 2022-07-05 天津商业大学 一种非集中递归式动态负载均衡计算系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101400286B1 (ko) 2008-01-22 2014-05-26 삼성전자주식회사 다중 프로세서 시스템에서 작업을 이동시키는 방법 및 장치

Also Published As

Publication number Publication date
JP2004013567A (ja) 2004-01-15

Similar Documents

Publication Publication Date Title
CN110619595B (zh) 一种基于多fpga加速器互联的图计算优化方法
Barthels et al. Rack-scale in-memory join processing using RDMA
US20120233486A1 (en) Load balancing on heterogeneous processing clusters implementing parallel execution
US11436258B2 (en) Prometheus: processing-in-memory heterogenous architecture design from a multi-layer network theoretic strategy
US8325761B2 (en) System and method for establishing sufficient virtual channel performance in a parallel computing network
US11861272B2 (en) Comprehensive contention-based thread allocation and placement
US10871996B2 (en) Detection, modeling and application of memory bandwith patterns
US20170193077A1 (en) Load balancing for large in-memory databases
CN109472361B (zh) 神经网络优化方法
CN105577806B (zh) 一种分布式缓存方法及系统
Cheng et al. Efficient data redistribution to speedup big data analytics in large systems
CN104636187A (zh) 基于负载预测的numa架构中虚拟机调度方法
Zhang et al. DIDO: Dynamic pipelines for in-memory key-value stores on coupled CPU-GPU architectures
CN114625500A (zh) 云环境下拓扑感知的微服务应用调度的方法及应用
JP3826848B2 (ja) 動的負荷均等化方法および動的負荷均等化装置
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
WO2021115082A1 (zh) 作业调度方法以及作业调度装置
CN117033004B (zh) 负载均衡方法、装置、电子设备及存储介质
Iserte et al. An study of the effect of process malleability in the energy efficiency on GPU-based clusters
EP3985498B1 (en) Programmable device for processing data set, and method for processing data set
Madsen et al. Enorm: Efficient window-based computation in large-scale distributed stream processing systems
CN112306628A (zh) 一种基于多核服务器的虚拟网络功能资源管理框架
US20180246806A1 (en) Memory management in multi-processor environments
Franklin et al. A general matrix iterative model for dynamic load balancing
Zhou et al. Pim-dl: Boosting dnn inference on digital processing in-memory architectures via data layout optimizations

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050124

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050307

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060403

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060613

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060626

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100714

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110714

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110714

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120714

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120714

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130714

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees