JPH08185377A - 分散計算機システム - Google Patents

分散計算機システム

Info

Publication number
JPH08185377A
JPH08185377A JP6327137A JP32713794A JPH08185377A JP H08185377 A JPH08185377 A JP H08185377A JP 6327137 A JP6327137 A JP 6327137A JP 32713794 A JP32713794 A JP 32713794A JP H08185377 A JPH08185377 A JP H08185377A
Authority
JP
Japan
Prior art keywords
group
load
computer
computers
distributed
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
JP6327137A
Other languages
English (en)
Inventor
Ryozo Kiyohara
良三 清原
Kaori Kawakami
かおり 川上
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP6327137A priority Critical patent/JPH08185377A/ja
Publication of JPH08185377A publication Critical patent/JPH08185377A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 不均質な計算機からなる分散システムにおい
て効率的な負荷分散を行う。 【構成】 まずユーザーが、分散システムを幾つのグル
ープに分けるか設定する(S20)。次に、各計算機の
プロセッサの能力値として速度比及びメモリサイズ比を
設定する(S21,S22)。そして、設定された各能
力値に基づき、全計算機の能力値の和をグループ数で割
ることによりグループの大きさを求める(S23)。次
にこれに基づいて、グループの大きさの条件を満たすよ
うな計算機の組合せを、詰め込み問題を解くことによっ
て求める(S24)。これにより、分散システムを、均
等な能力を有するグループにグループ分けできる(S2
5)。このようにシステムを均等なグループに分け、グ
ループ単位で負荷分散を行うことにより、均質マシン環
境での並列処理を想定したプログラムを、効率的に負荷
分散することができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ネットワークにより相
互接続された複数の計算機からなる分散計算機システム
に関し、特に能力や機能が異なる複数の計算機から構成
される分散計算機システムにおける負荷分散技術に関す
る。
【0002】
【従来の技術】分散計算機システムにおいては、処理速
度を向上させるために、予め並列処理を念頭に置いてプ
ログラミングを行い、プログラムをコンパイルする時に
静的に各計算機に対して負荷を割り付けるということが
行われる。従来のこのような静的負荷分散は、同じ能
力、機能を有する複数の計算機からなるシステムを対象
にしたものであり、それら均等な能力を有する各計算機
に対して負荷を均等に配分することにより、高い処理能
力を得ようとするものである。
【0003】図9は、特開平3−252855号公報に
示されるこのような静的負荷分散方式を示したものであ
る。この方式では、まずS101においてシステム全体
のプロセッサ数を設定し、S102でソースプログラム
を読み込む。そして、S103で、ソースプログラムの
各部分ごとに、その部分が負荷分散可能な部分であるか
判定する。この従来例では、負荷分散可能部分として繰
り返し部分(Do文)を例にとっており、この判定では
Do文であるか否かを判定している。そして、この判定
でYESとなった場合、その判別されたDo文をS10
4で取り出す。取り出されたDo文は、S105、10
6、…107等において、P個のプロセッサに対する負
荷の割り付け設定が行われる。このとき、この従来の負
荷分散方法では、Do文のN回の繰り返しを、繰り返し
順にP回毎に各プロセッサに割り当てていくことにより
(例えば、S105の「Do n K=0,N,P」
は、ループ変数Kの初期値0から終値Nまで、P毎の繰
り返しを割り付けることを意味する)、そのプログラム
の実行時までに繰り返しの終値Nが定まらないような場
合でも、各プロセッサに静的に均等な負荷を割り付け、
コンパイルを行っていた(S108)。
【0004】
【発明が解決しようとする課題】しかしながら、このよ
うな従来の静的負荷分散手法は、同じ計算機(プロセッ
サ)からなるシステムを対象としたものであり、異なっ
た計算機を含む不均質な分散計算機システムについての
考慮がなされていなかった。
【0005】ネットワークシステムは、同じ計算機だけ
で構成されている場合よりも、様々な機種の計算機が同
じネットワーク上に接続されている場合のほうが現実的
には多い。このような様々な機種の計算機からなる不均
質なネットワークシステムにおいて、従来の負荷分散手
法を適用した場合、処理効率が低下してしまう。すなわ
ち、従来手法は、各計算機を全く同一なものとみなして
それらに均等に負荷を配分するので、不均質なネットワ
ーク環境に適用すると、能力の高い計算機と低い計算機
にそれぞれ同じだけの負荷が割り当てられることにな
り、効率が低下する。
【0006】一方、このような不均質なシステム環境に
おいて、処理効率を優先的に考えて負荷分散を行おうと
すれば、各計算機の能力に合わせて仕事を割り付ける必
要があり、予めプログラム作成時点から対象システムの
各計算機の能力を考慮しておかなければならない。しか
しながら、プログラムがどのような分散環境で用いられ
るかはプログラミング時にはわからなく、これは現実的
ではない。また、もしそのように特定の分散システム環
境に合わせたプログラムを作ったとしても、そのプログ
ラムには汎用性がなく、例えばそのシステムを少し拡張
しただけでも効率が低下してしまう可能性がある。ま
た、プログラミングの効率から考えても、対象システム
のマシン構成等を意識せずに(すなわち、逆にいえば、
均質なシステム環境を仮定して)プログラミングできる
ほうが望ましい。
【0007】このように、汎用性やプログラミング効率
を考慮すると、均質なシステム環境を仮定したプログラ
ム(すなわち、システム構成に依存しないプログラム)
が望ましいが、これをそのまま不均質なシステムで実行
すると、前述したような効率の問題が生じる。
【0008】本発明は、このような課題を解決するため
になされたものであり、均質環境を想定して作成された
プログラムを実行する場合に、不均質な分散計算機シス
テム環境であっても効率的な負荷分散が行えるようにす
ることを目的とする。
【0009】
【課題を解決するための手段】前述の目的を達成するた
めに、本発明に係る分散計算機システムは、複数の計算
機からなり、負荷を各計算機に分散して処理する分散計
算機システムであって、プログラムの実行前に、前記各
計算機を、含まれる計算機の能力値の和が略等しい複数
のグループにグループ分けするグループ化手段と、前記
各グループに対して負荷を分配する負荷分配手段とを有
し、前記グループ単位で負荷分散を行うことを特徴とす
る。能力値としては、計算機のプロセッサ速度やメモリ
サイズを用いることができる。
【0010】また、本発明においては、グループ化手段
は、前記各計算機を各々の能力値に応じた個数の仮想化
計算機から成るものとみなし、仮想化計算機単位でグル
ープ分けを行うことを特徴とする。
【0011】また、本発明は、各グループ内での負荷分
散の際に、前記負荷分配手段から負荷を受け取った計算
機が、この計算機の属するグループ内の各計算機を各々
の能力値に応じた個数の仮想化計算機から成るものとみ
なし、グループ内において各仮想化計算機に対して負荷
を分配することを特徴とする。
【0012】また、本発明においては、前記グループ化
手段は、グループ分けによってできた各グループごと
に、そのグループ内で最も能力値の高い計算機をそのグ
ループの代表計算機として設定し、前記負荷分配手段
は、各グループの代表計算機に対して負荷を分配し、各
グループの代表計算機が、前記負荷分配手段によって分
配された負荷をグループ内の各計算機に対して負荷を分
配することを特徴とする。
【0013】また、本発明は、グループ分けによってで
きた各グループの構成情報を利用して、プログラム実行
時の各グループごとの負荷量を調整する負荷分散調整手
段を有することを特徴とする。
【0014】また、本発明は、グループ分けによってで
きた各グループの構成情報を利用して、プログラム実行
時の各グループごとの負荷量を表示する負荷状況表示手
段を有することを特徴とする。
【0015】
【作用】本発明では、プログラムの実行前に、分散計算
機システムに含まれる各計算機をグループ分けする。こ
のグループ分けは、各グループの能力がほぼ均等になる
ように行う。すなわち、グループ内の計算機の能力値の
和が、各グループでほぼ等しくなるようにグループ分け
する。このようにしてできたグループに対してグループ
単位で負荷を割り付けることにより、不均質な計算機か
らなる環境でも、均質な計算機からなる環境での負荷分
散の場合と同様の方法で負荷分散を行うことが可能とな
る。
【0016】このようなグループ化により、同じ能力値
の総和を有するグループであっても、能力値の低い計算
機を多く含むグループは相対的に多数の計算機を含む傾
向となり、能力値の高い計算機を多く含むグループは相
対的に少数の計算機しか含まない傾向となる。したがっ
て、各グループに対して負荷を均等に分配し、さらにグ
ループ内の負荷分散を各計算機に対して均等に行う構成
とした場合、能力値の低い計算機を多く含むグループの
計算機は、能力値の高い計算機を多く含むグループの計
算機よりも負荷の分配を受ける頻度が小さくなるので、
分散システムの各計算機の負荷が全体として平準化され
る傾向となり、システム全体の効率が改善される。
【0017】グループ化の基準となる能力値としては、
各計算機のプロセッサの速度や、各計算機の実メモリ、
ディスク等のメモリのサイズを用いることができる。
【0018】このようなグループ化を行う際、システム
内の各計算機の能力に大きな偏りがあるなどして、うま
く均等なグループにグループ分けできない場合は、各計
算機を仮想化した上でグループ分けを行う。すなわち、
各計算機をそれぞれの能力に応じた個数の仮想化計算機
から成るものとみなし、その仮想化計算機を単位として
グループ分けを行うことにより、計算機単位でグループ
分けをしてうまくいかない場合でも、ある計算機を複数
のグループで共有することができるので、均等なグルー
プ分けを行うことができる。この手法は、最初から分散
システム内の計算機をすべて仮想化してしまってグルー
プ分けを行う場合だけでなく、計算機単位で大まかにグ
ループ分けしてから、均等になっていない部分(グルー
プ)だけ仮想化して調整するという構成であってもよ
い。
【0019】ここで、グループ分けによって作成された
各グループに対して分配された負荷を、各グループ内の
計算機に分配する際に、単に各計算機に均等に分配する
のではなく、グループ内において計算機の仮想化を行
い、仮想化計算機単位で負荷を分散する構成とすること
により、グループ内においても効率よく負荷を分散でき
る。すなわち、各計算機は能力に応じた数の仮想化計算
機とみなされ、その仮想化計算機を単位として均等に負
荷が分配されることにより、結局グループ内の各計算機
には、その計算機の能力に比例した負荷量が割り当てら
れることになる。
【0020】また、グループ分けの際に各グループの中
で最も能力値の高い計算機を代表計算機と定め、負荷分
配手段が各グループに負荷を割り当てる際にその代表計
算機に対して負荷を分配し、グループに対して割り当て
られた負荷をその代表計算機によってグループ内の計算
機に対して割り当てる構成とすることにより、グループ
に対して負荷を割り当てる時に、宛先の計算機をグルー
プ内の計算機の中からランダムに選ぶ場合よりも処理効
率が向上する。すなわち、グループへの負荷割り当て時
の宛先の計算機をランダムに選ぶ場合は、能力の低い計
算機が宛先として選ばれる場合がある。この場合、その
能力の低い計算機からグループ内の計算機への負荷割当
ての処理が遅くなり、処理効率が低くなってしまう。こ
れに対して、グループへの負荷割り当ての宛先をグルー
プ内で最も能力の高い代表計算機に定める構成とすれ
ば、グループ内の計算機への負荷割り当ての処理を素早
く行うことができ、全体としての処理効率が向上する。
この代表計算機を設定する手法は、グループに対して割
り当てられた負荷をグループ内において分配する際に、
グループ内の計算機を仮想化して仮想化計算機単位で負
荷の分配をする場合など、グループ内の負荷割当て時に
ある程度大きな処理を行う必要がある場合に有効であ
る。
【0021】また、このようにグループ分けを行い、各
グループに対して均等に負荷を分配するとしても、割り
当てられる個々の仕事の大きさのばらつき等により、実
際には各グループごとに負荷量が異なってくる場合があ
る。このような場合には、負荷調整手段が、各グループ
の構成情報(すなわち各グループに含まれる計算機の情
報)を用いて、各グループの能力値及び現在のグループ
全体としての負荷量を求め、これに基づいて各グループ
の負荷が均等になるように負荷割当てを調整する。ま
た、このような場合において、負荷状況表示手段により
各グループの負荷状況を表示する構成とすることによ
り、ユーザーがその表示を見て各グループへの負荷割当
てを調整することも可能である。
【0022】
【実施例】以下、本発明に係る分散計算機システムの実
施例を図面に基づいて説明する。
【0023】第1実施例 図1は、ネットワークに接続される計算機の基本構成を
示すブロック図であり、図において計算機1は通信線に
より構築されているネットワーク2を介して他の計算機
に接続されている。計算機1には、CPU3、メモリ
4、各種データを格納するディスク5、及びネットワー
クを介して他の計算機と通信するためのネットワーク入
出力部6が含まれている。また、図2は、図1に示した
構成を持つ計算機10〜15をネットワーク2によって
結合して構成した分散計算機システムを示している。以
下、このような構成の分散計算機システムを例にとっ
て、本発明の実施例を説明する。
【0024】例えば、図2において、各計算機のプロセ
ッサ速度が、計算機10のプロセッサ速度を1として、
計算機11、12及び13の速度が1、計算機14の速
度が2、計算機15の速度が3であったとする。さら
に、各計算機のメモリサイズが、計算機10のメモリサ
イズを1として、計算機11、13及び14のメモリサ
イズが1、計算機12のメモリサイズが2、計算機15
のメモリサイズが3であったとする。このような不均質
な分散計算機システムにおいて、本実施例では、以下に
示すようなグループ分けを行って負荷分散を行う。
【0025】図3は、グループ分けの流れを示すフロー
チャートである。本実施例においてグループ分けを行う
のは、負荷分散の対象となるプログラムを実行するとき
である。すなわち、ある計算機に対してプログラムの実
行が指示されたときに、その計算機が分散計算機システ
ムをグループ化し、その後グループ単位で負荷を分配す
る。
【0026】グループ分けの処理では、まず最初に、そ
のプログラムの実行を指示したユーザーが、システムを
幾つのグループに分けるかを設定する(S20)。これ
は、コマンド入力時に引数によってグループ数を指定す
る構成としてもよいし、コマンドを入力すると対話的に
ユーザーに対してグループ数を問い合わせる構成として
もよい。
【0027】次に、各計算機のプロセッサの速度比及び
メモリサイズ比を設定する(S21,S22)。この設
定は、ユーザーが行ってもよいし、またコマンド入力を
受けた計算機が、自動的に各計算機と通信を行って能力
値を読取り、それに従って自動的に各能力値を設定する
構成としてもよい。また、予めシステム内の各計算機の
能力を示したテーブルを作成しておき、それを自動設定
する構成としてもよい。
【0028】そして、このように設定された各能力値に
基づき、各グループの大きさを求める(S23)。すな
わち、プロセッサ速度については、上述したプロセッサ
速度の比から、この分散システムはトータルで1+1+
1+1+2+3=9の速度を有することになり、例えば
S20において3つのグループに分けるように設定され
ていたとすると、各グループの大きさは、プロセッサ速
度に関しては“3”となる。同様にメモリサイズについ
ての各グループの大きさは“3”となる。
【0029】このようにしてグループの大きさが求まる
と、次にこれに基づいて、プロセッサ速度が3、メモリ
サイズが3のグループが3つできるように各計算機10
〜15の組み合わせを求める。これは、詰め込み問題
(ナップザック問題)を解くための公知の手法を用いる
ことによって行うことができる(S24)。
【0030】このような一連の処理を行うことにより、
各グループの内部構成、すなわち各グループに含まれる
計算機の組合わせが決まる(S25)。この例では、グ
ループ1={計算機10、11、13}、グループ2=
{計算機12、14}、グループ3={計算機15}と
グループ分けすることができる。この各グループは、プ
ロセッサ速度の和、及びメモリサイズの和が等しくなっ
ている。
【0031】このようにグループ分けすることにより、
各グループへの仕事の割り付けを、仮想的にプロセッサ
速度及びメモリサイズが等しい計算機への仕事の割り付
けとみなすことができる。
【0032】ここで、仮にグループ分けを行わず、各計
算機に対して均等に(均等な頻度で)仕事を配分したと
すると、各計算機には、その能力に関わらずほぼ同量の
仕事が割当てられることになる。従って、この場合は、
プロセッサ速度1の計算機10にも、プロセッサ速度3
の計算機15にも、システムの全負荷量の1/6の仕事
が割当てられることになる。これに対して、本実施例の
ように各グループに均等に負荷を配分し、さらにグルー
プに配分された負荷をグループ内の各計算機に均等に配
分した場合は、各グループに対して全負荷量の1/3ず
つが分配され、グループ内ではその1/3の仕事が各計
算機に同じ頻度で分配されるので、結局、3つの計算機
からなるグループ1に所属する計算機10には全負荷量
の1/9が割当てられ、1つの計算機からなるグループ
3に所属する計算機15には全負荷量の1/3が分配さ
れることになる。すなわち、各計算機の能力の大小をあ
る程度反映した負荷分散が行われる。このように、本実
施例によれば、システム全体の処理効率が向上する。
【0033】すなわち、各「グループ」に対して仕事を
分配すると言っても、実際にはグループ内のどれかの
「計算機」に仕事を一旦送る必要があるが、そのような
宛先の計算機をグループ内でランダムに選ぶようにすれ
ば、結局、グループ内の各計算機には均等な頻度で仕事
が分配されることになり、上述の効果が得られることに
なる。
【0034】さらに言えば、このグループ分けの際に能
力値の低い計算機から順にグループにまとめていく構成
とすれば、各計算機の能力にさらによくマッチした負荷
量の割当てができる。能力値の低い計算機からグループ
にまとめていくことにより、各グループはそれぞれ能力
値の近い計算機から構成されることになり、しかも1グ
ループを構成する計算機の数が、能力値の低い計算機か
らなるグループほど多くなる。従って、各グループに対
して均等に配分された負荷をグループ内の各計算機に均
等に(すなわち、ランダムに)分配すると、能力値の低
い計算機からなるグループほど各計算機に負荷が割り当
てられる頻度が小さくなり、各計算機に割当てられる負
荷量が小さくなる。よって、全体的に、各計算機には能
力に応じた負荷量が割当てられることになる。
【0035】なお、ここでは、求められた各グループの
大きさがたまたま整数値になる場合を例にとって説明し
たが、うまい具合に整数値とならない場合は、例えば求
められたグループの大きさを整数値に丸めて、各グルー
プをその大きさになるようにグループ分けするという方
法をとればよい。このような場合でも、計算機単位で負
荷を分配するよりも効率がよい。
【0036】また、この例では、プロセッサ速度及びメ
モリサイズの2つの能力値の量について、それぞれ各グ
ループの大きさが等しくなるという条件を満たす組合わ
せが存在したが、このように複数の条件を同時に満たす
組合わせが無い場合も多い。このような場合には、予め
条件に優先順位をつけておき、優先順位の高い条件ほど
よく満足するようにする構成とすればよい。
【0037】以上の例では、各グループが、ちょうどS
23で求められたグループの大きさになるような適当な
計算機の組合わせが存在したが、どのような組合わせを
行ってもうまくグループ分けできない場合もある。この
ような場合は、まず求められたグループの大きさ(理想
値)に近くなるように計算機単位で大まかにグループ分
けをしてから、各グループのうちでその大きさ(能力値
の和)が理想値から大きくはなれているグループ(複数
あるはずである)を取り出し、それらグループにおいて
グループの組み直しを行う。このとき、それら各グルー
プに含まれる各計算機を、各々の能力に応じた個数の仮
想化計算機から成るものとみなし、その仮想化計算機を
単位としてグループ分けを行う。
【0038】例えば、グループ化手段によってグループ
の大きさ(能力値の和)が6のグループを作ることにな
り、ほとんどのグループはその条件を満たすようにグル
ープ分けできたが、最後に能力値4の計算機(仮に計算
機A,B,Cとする)が3つ残った場合を考える。この
場合、計算機単位でグループ分けを行うと、能力値が8
のグループと能力値が4のグループしかできず、極めて
偏った状態となる。
【0039】そこで、このような場合、各計算機をそれ
ぞれ能力値に応じた個数の仮想化計算機とみなす。すな
わち、この場合、それぞれの計算機を例えば4つの仮想
化計算機とみなし、この仮想化計算機を単位として2つ
のグループにグループ分けを行う。このとき、同一の計
算機(実計算機)に含まれる仮想化計算機は、できるだ
け同一のグループになるようにする。すると、例えば
{計算機Aに含まれる全仮想化計算機,計算機Bに含ま
れる2つの仮想化計算機}、{計算機Bに含まれる2つ
の仮想化計算機,計算機Cに含まれる全仮想化計算機}
という2つのグループに分けることができる。そして、
これら2つのグループに対して仕事を分配する際には、
実際の宛先の計算機としてグループ内の仮想化計算機を
ランダムに指定することにより、各実計算機に対して能
力に応じた仕事を分配することができる。
【0040】さて、次に、各グループに対して分配され
た負荷をグループ内の計算機へ割り当てる際の割当ての
手法の例を説明する。
【0041】まず、第1の例は、グループ分けによって
できた全グループについて仮想化を行い、グループ内に
含まれる各計算機を各々の能力値に応じた個数の仮想化
計算機とみなし、グループに割り当てられた負荷をグル
ープ内で仮想化計算機単位で分配するという構成であ
る。この構成によれば、各グループ内は、同じ能力値を
有する仮想化計算機からなる環境とみなせる。従って、
グループ内では、各仮想化計算機に対してランダムに仕
事の割り当てを行うことにより、均等な負荷分散が実現
される。各仮想化計算機に対して均等に負荷が割り当て
られることにより、実計算機単位では能力値に応じた量
の負荷が割り当てられることになり、効率の良い負荷分
散が可能となる。なお、この場合、ユーザーがプログラ
ム実行のコマンドを入力した計算機においてグループ分
け及び各グループへの負荷分配までの作業を行い、各グ
ループで負荷を受けとった計算機がグループ内の各計算
機への負荷の分配を行う。なお、グループ分け、各グル
ープへの負荷分配、及び各グループ内の各計算機への負
荷割り当ての一連の作業を、プログラム実行のコマンド
を入力した計算機ですべて行う構成としても良い。
【0042】また、第2の例は、グループ分けの際に、
各グループごとに代表計算機を定め、各グループへの負
荷をまず各グループの代表計算機に対して分配し、その
代表計算機がグループ内の各計算機への負荷分散を行う
という構成である。ここで、代表計算機としては、各グ
ループにおいて最も能力値の大きな計算機を選ぶ。
【0043】各グループへ負荷分配を行う際にグループ
内の計算機にランダムに選んで負荷分配の宛先とする構
成では、能力の低い計算機に負荷が分配される場合があ
り、この場合グループ内への負荷割当ての処理の速度が
低くなり、処理効率が低下する。これに対して、グルー
プ内の最も能力値の高い計算機を代表計算機とする構成
では、グループへの負荷分配時の宛先は必ずグループ内
の最も能力の高い計算機となるので、グループ内での負
荷分配の処理効率が高くなる。この構成は、グループを
構成する各計算機の能力の差が大きい場合に特に効果が
ある。また、この構成は、代表計算機がそれぞれのグル
ープ内の計算機について仮想化を行い、代表計算機が仮
想化計算機単位でグループ内の負荷分配を行う場合な
ど、代表計算機によるグループ内負荷分配に多くの処理
が必要な場合に特に有効である。
【0044】なお、これら2つの方法の他にも、実計算
機単位でグループ内の負荷分配を行ってもよい。
【0045】また、以上の例では、まず計算機単位でグ
ループ分けを行い、グループ分けのうまくいかないとこ
ろを仮想化の手法を用いて処理していたが、この他に
も、分散システムの全計算機について仮想化を行い、仮
想化計算機単位でグループ分けをする構成としても良
い。この場合、各計算機はそれぞれ能力値に応じた個数
の仮想化計算機とみなされ、同一の実計算機に含まれる
仮想化計算機はできるだけ同じグループになるようにグ
ループ分けされる。この手法を用いた場合、グループ数
を自動設定することもできる。すなわち、上述の例で
は、グループ数はユーザーが設定していたが、この手法
では、分散システムに含まれる仮想化計算機の全数を求
め、その約数のうち適切な数(グループ数の大体の範囲
を予め与えておけば、約数の中から自動的に選ぶことが
できる)を自動的に選択して、グループ数として設定す
ることができる。これにより、グループ分けの諸段階を
すべて自動化できる。
【0046】なお、仮想化の手法を用いた自動的なグル
ープ数設定及びグループ分けは、プログラムの効率的な
コンパイルにも役立つ。ここでは、自動的なグループ数
設定の手法をコンパイル時に適用する手法を説明する。
すなわち、図4に示すように、あるソースプログラムを
コンパイルするときに、分散システム全体に対して上述
の仮想化処理を行い、仮想化計算機の全数に対応したグ
ループ数を求める(S30)。求められたグループ数
は、コンパイラに与えられる。コンパイラは、分散シス
テムがそのグループ数の均質なグループからなるものと
仮定して、各グループに対して負荷を割り付ける(S3
1)。これにより、処理効率の高い実行形式プログラム
を得ることができる。
【0047】また、本実施例においては、プロセッサ速
度やメモリサイズ等の計算機の能力に着目してグループ
分けを行ったが、この他にも、例えば各計算機が有して
いるOS(オペレーティングシステム)やI/O装置
(プリンタなど)等、各計算機の有する機能によってグ
ループ分けを行い、このようなグループに対して負荷分
散を行うこともできる。これを、図5に示す分散システ
ムを例にとって説明する。
【0048】図5の分散システムには、ネットワーク2
を介して、OS−1を有する計算機110、111及び
112と、OS−2を有する計算機113と、OS−3
を有する計算機114とが接続されている。ここで、O
S−1、OS−2、OS−3は、OSの種類を表すもの
とする。そして、計算機114にのみ、プリンタ120
が接続されている。このような分散システムにおける、
機能に着目したグループ分けの手順を図6のフローチャ
ートに基づいて説明する。
【0049】まず、そのプログラムの実行を指示したユ
ーザーが、システムを幾つのグループに分けるかを設定
する(S40)。次に、各計算機が有するOSの種類及
びI/O装置の種類を設定する(S41,S42)。こ
の設定は、ユーザーが行ってもよいし、またコマンド入
力を受けた計算機が自動的に設定する構成でもよい。そ
して、このように設定された各計算機の機能(OSの種
類、I/O装置の種類)に基づき、グループが保持すべ
き機能を決定する(S43)。すなわち、この例では、
3種類のOSと1種類のI/O装置(ここではプリン
タ)が存在するので、各グループが3種類のOSすべて
を有しかつプリンタとの接続関係を有するように定め
る。
【0050】そして、各グループがこのような機能の条
件を満たすよう、詰め込み問題を解いて、各計算機のグ
ループ分けを行う(S44、S45)。なお、このグル
ープ分けにおいては、必要に応じて計算機の仮想化を行
いながら、条件を満たすような計算機の組み合わせを求
める。S40においてグループ数が3つに指定された場
合を考えると、分散システムにはOS−1の計算機が3
台あるので、これらは各グループに1台ずつ割り当てら
れる。OS−2及びOS−3の計算機は、各々1台ずつ
しかないので、仮想化を行ってそれぞれを3台の仮想化
計算機とみなして、各グループに割り当てる。そして、
プリンタを有する計算機は1台しかないので、これも仮
想化を行って各グループに割り当てる。
【0051】このような作業により、例えば、グループ
1={計算機110、113、114}、グループ2=
{計算機111、113、114}、グループ3={計
算機112、113、114}というようなグループ分
けができる。
【0052】このように計算機の機能に着目し、各グル
ープが等しい機能を持つようにグループ分けを行うこと
により、個々の計算機の機能の違いを意識せずに負荷分
散を行うことができる。すなわち、例えば、プリンタを
用いる仕事を分配する際には、プリンタを有する計算機
を捜し出してその仕事を割り当てなければならないが、
グループ分けで等機能のグループを作成すると、どのグ
ループもプリンタと接続していることになるので、プリ
ンタの有無を調べずにランダムに負荷の割り当てを行う
ことができる。
【0053】第2実施例 以上の実施例は、静的な負荷分散に関するものであった
が、本発明の手法は動的な負荷分散にも応用することが
できる。以下においては、動的負荷分散に関する実施例
を説明する。
【0054】分散システムにおいて動的な負荷分散を行
う場合、システム内の各計算機の負荷量の現状を把握
し、各計算機の負荷が適切な量になるように負荷の分配
量を調整する必要がある。このような動的負荷分散を司
るソフトウエアを、ここでは負荷分散ユーティリティと
呼ぶ。
【0055】計算機(プロセッサ)の負荷量を求めるツ
ールは従来からあり、計算機はそのようなツールを用い
て各自の負荷量を求めることができる。負荷分散ユーテ
ィリティは、そのようにして求められた各計算機の負荷
量を受けとり、動的な負荷分散を行う。従来の負荷分散
ユーティリティは、均質な計算機からなる分散環境を対
象としていたので、各計算機から現在の負荷量を受けと
って、負荷量の低い計算機に対して負荷を分配していく
という構成で良かった。ところが、不均質な計算機から
なる分散システムでは、このような単純な手法ではうま
くいかず、理想的には個々の計算機の能力と現在の負荷
量とを総合評価した上で、適切な計算機に対して負荷を
分配する必要がある。しかし、分散システムの規模が大
きくなると、個々の計算機の現状を監視して適切な分配
先を選び出すのは極めて困難となり時間を要する作業と
なる。
【0056】そこで、本実施例では、前述の第1実施例
で説明したグループ分けの手法を用いて、効率的な動的
負荷分散を行う。すなわち、分散システムを、含まれる
計算機の能力値の総和が等しくなる複数のグループにグ
ループ分けし、このようにしてできたグループを単位と
して、負荷分散ユーティリティにより負荷の分配を行
う。
【0057】図7は、本実施例における動的負荷分散の
処理の流れを示すフローチャートである。図に示すよう
に、まず、プログラムの実行前にグループ分けが行わ
れ、グループ数や、各グループを構成する計算機のリス
ト等のグループの構成情報が負荷分散ユーティリティに
与えられる(S50)。負荷分散ユーティリティは、各
計算機から現在の負荷状況を受けとり、これを各グルー
プの構成情報と組み合わせて、各グループの負荷量を求
める(S51)。ここで、各計算機の負荷情報は、絶対
量ではなく計算機の全能力に対する割合で示される場合
が多いので、S51において各グループの負荷量を求め
る場合には、各計算機から得られた負荷情報を各計算機
の能力値を用いて換算して絶対的な負荷量を求め、これ
の和をとる。そして、このようにして得られた各グルー
プの負荷量に基づき、負荷分散ユーティリティが各グル
ープの負荷量の調整を行う(S52)。各グループは能
力の等しい計算機とみなすことができるので、負荷分散
ユーティリティは、負荷量が小さいグループから順に負
荷を割り当てていくだけで、自動的に負荷量の調整を行
うことができる。このようにして各グループに割り当て
られた負荷は、第1実施例で示した手法のうちのいずれ
かを用いて、グループ内の各計算機に分配される(S5
3)。
【0058】このように、本実施例では、能力が均質な
グループを対象として負荷の分配を行うことにより、不
均質な計算機からなる分散環境においても、均質な計算
機からなる分散環境の場合とほぼ同様にして動的負荷分
散を行うことができる。
【0059】第3実施例 グループ分けの手法はユーザ等による負荷の調整にも適
用可能である。すなわち、各グループの負荷状況の表示
を行い、この表示を見てユーザ等が各グループの負荷量
を調整することも可能である。
【0060】図8は、このような負荷状況の表示処理の
流れを示したものである。図に示すように、まずプログ
ラムの実行前にグループ分けが行われ、グループ数や、
各グループを構成する計算機のリスト等のグループの構
成情報が負荷状況表示ツールに与えられる(S60)。
そして、負荷状況表示ツールは、各計算機から現在の負
荷状況を受けとり、これを各グループの構成情報と組み
合わせて、各グループの負荷量を求め(S61)、それ
を表示する(S62)。
【0061】ユーザは、この負荷状況表示ツールの表示
を見て、負荷の少ないグループに対して優先的に負荷を
割り当てることにより、各グループの負荷量の調整を行
う。例えば、この負荷量の調整は、ユーザーが表示ツー
ルの表示を見ながらソースコードを書き替えるなどの方
法により行う。このように、ユーザは、分散環境の不均
質さを意識することなく、負荷分散の調整を行うことが
できる。
【0062】
【発明の効果】以上説明したように、本発明によれば、
能力等がそれぞれ異なった計算機から構成されている分
散計算機システムにおいても、均質な能力の計算機から
なる分散環境を仮定して作成されたプログラムを、効率
的に負荷分散して実行することができる。
【0063】また、仮想化の手法を用いることにより、
より理想的なグループ分けを行うことができる。
【0064】また、各グループにおいて、グループ内の
計算機を仮想化して、仮想化計算機単位でグループ内の
負荷分散を行うことにより、各実計算機にはそれぞれ能
力に応じた負荷が割り当てられることになり、効率的な
負荷分散が達成される。
【0065】また、各グループにおいて、最も能力の高
い計算機を代表計算機に選び、グループに対する負荷分
配の際の宛先をこの代表計算機にすることにより、グル
ープ内の最も能力の高い計算機に負荷が割り当てられる
ので、グループ内の各計算機への負荷分配等の処理の効
率が向上する。
【0066】また、グループ分けによってできた各グル
ープの構成情報を負荷調整手段に適用することにより、
動的な負荷分散を行うこともできる。
【0067】さらに、グループ分けによってできた各グ
ループの構成情報を負荷状況表示手段によって表示する
構成とすることにより、ユーザーがその表示を見なが
ら、負荷分配の調整を行うことが可能となる。
【図面の簡単な説明】
【図1】 計算機の基本構成を示すブロック図である。
【図2】 計算機のネットワーク結合の例を示すブロッ
ク図である。
【図3】 本発明の第1実施例におけるグループ分けの
手順を示すフローチャートである。
【図4】 グループ分けの情報を利用したコンパイルの
処理の流れを示すフローチャートである。
【図5】 計算機のネットワーク結合の他の例を示すブ
ロック図である。
【図6】 機能に着目したグループ分けの手順を示すフ
ローチャートである。
【図7】 本発明の第2実施例における負荷分散ユーテ
ィリティを用いた動的負荷分散の処理の流れを示すフロ
ーチャートである。
【図8】 本発明の第3実施例における負荷状況表示ツ
ールを用いた負荷情報の表示処理の流れを示したフロー
チャートである。
【図9】 従来の静的負荷分散方法を示すフローチャー
トである。
【符号の説明】
1 計算機、2 ネットワーク、3 CPU、4 メモ
リ、5 ディスク、6 ネットワーク入出力部。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 複数の計算機からなり、負荷を各計算機
    に分散して処理する分散計算機システムであって、 プログラムの実行前に、前記各計算機を、含まれる計算
    機の能力値の和が略等しい複数のグループにグループ分
    けするグループ化手段と、 前記各グループに対して負荷を分配する負荷分配手段
    と、 を有し、グループ単位で負荷分散を行うことを特徴とす
    る分散計算機システム。
  2. 【請求項2】 請求項1記載の分散計算機システムにお
    いて、 前記能力値は、各計算機のプロセッサ速度であることを
    特徴とする分散計算機システム。
  3. 【請求項3】 請求項1記載の分散計算機システムにお
    いて、 前記能力値は、各計算機のメモリサイズであることを特
    徴とする分散計算機システム。
  4. 【請求項4】 請求項1〜3記載のいずれかに記載の分
    散計算機システムにおいて、 前記グループ化手段は、前記各計算機を各々の能力値に
    応じた個数の仮想化計算機から成るものとみなし、仮想
    化計算機単位でグループ分けを行うことを特徴とする分
    散計算機システム。
  5. 【請求項5】 請求項1〜3のいずれかに記載の分散計
    算機システムにおいて、 各グループ内での負荷分散の際に、前記負荷分配手段か
    ら負荷を受け取った計算機が、この計算機の属するグル
    ープ内の各計算機を各々の能力値に応じた個数の仮想化
    計算機から成るものとみなし、グループ内において各仮
    想化計算機に対して負荷を分配することを特徴とする分
    散計算機システム。
  6. 【請求項6】 請求項1〜5のいずれかに記載の分散計
    算機システムにおいて、 前記グループ化手段は、グループ分けによってできた各
    グループごとに、そのグループ内で最も能力値の高い計
    算機をそのグループの代表計算機として設定し、 前記負荷分配手段は、各グループの代表計算機に対して
    負荷を分配し、 各グループの代表計算機が、前記負荷分配手段によって
    分配された負荷をグループ内の各計算機に対して割り当
    てることを特徴とする分散計算機システム。
  7. 【請求項7】 請求項1〜6のいずれかに記載の分散計
    算機システムにおいて、 グループ分けによってできた各グループの構成情報を利
    用してプログラム実行時の各グループごとの負荷量を調
    整する負荷分散調整手段を有することを特徴とする分散
    計算機システム
  8. 【請求項8】 請求項1〜6のいずれかに記載の分散計
    算機システムにおいて、 グループ分けによってできた各グループの構成情報を利
    用してプログラム実行時の各グループごとの負荷量を表
    示する負荷状況表示手段を有することを特徴とする分散
    計算機システム
JP6327137A 1994-12-28 1994-12-28 分散計算機システム Pending JPH08185377A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6327137A JPH08185377A (ja) 1994-12-28 1994-12-28 分散計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6327137A JPH08185377A (ja) 1994-12-28 1994-12-28 分散計算機システム

Publications (1)

Publication Number Publication Date
JPH08185377A true JPH08185377A (ja) 1996-07-16

Family

ID=18195734

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6327137A Pending JPH08185377A (ja) 1994-12-28 1994-12-28 分散計算機システム

Country Status (1)

Country Link
JP (1) JPH08185377A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11265365A (ja) * 1997-10-29 1999-09-28 Lucent Technol Inc 分散型実時間制御システムのモジュールにおける過負荷応答方法
WO2001084343A1 (fr) 2000-04-28 2001-11-08 Taisho Pharmaceutical Co., Ltd. Procede d'attribution de travail dans un procede de traitement en parallele et procede de traitement en parallele correspondant
CN100385401C (zh) * 2004-12-24 2008-04-30 富士通株式会社 使用状态分析处理方法及分析处理器
JP2009223371A (ja) * 2008-03-13 2009-10-01 Nec Corp コンピュータリンク方法及びシステム
US8180924B2 (en) 2007-04-11 2012-05-15 Konica Minolta Business Technologies, Inc. Information processing apparatus, information processing method and program for the same
JP2017089608A (ja) * 2015-02-03 2017-05-25 いすゞ自動車株式会社 エンジンの燃焼室構造の設計方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11265365A (ja) * 1997-10-29 1999-09-28 Lucent Technol Inc 分散型実時間制御システムのモジュールにおける過負荷応答方法
WO2001084343A1 (fr) 2000-04-28 2001-11-08 Taisho Pharmaceutical Co., Ltd. Procede d'attribution de travail dans un procede de traitement en parallele et procede de traitement en parallele correspondant
US7370328B2 (en) 2000-04-28 2008-05-06 Honda Motor Co., Ltd. Method for assigning job in parallel processing method and parallel processing method
CN100394416C (zh) * 2000-04-28 2008-06-11 大正制药株式会社 并行处理方法中的作业分配方法及并行处理方法
EP2202640A1 (en) 2000-04-28 2010-06-30 Taisho Pharmaceutical Co. Ltd. Job assignment method in parallel processing method and parallel processing method
EP2204735A1 (en) 2000-04-28 2010-07-07 Taisho Pharmaceutical Co. Ltd. Job assignment method in parallel processing method and parallel processing method
CN100385401C (zh) * 2004-12-24 2008-04-30 富士通株式会社 使用状态分析处理方法及分析处理器
US8180924B2 (en) 2007-04-11 2012-05-15 Konica Minolta Business Technologies, Inc. Information processing apparatus, information processing method and program for the same
JP2009223371A (ja) * 2008-03-13 2009-10-01 Nec Corp コンピュータリンク方法及びシステム
US8595337B2 (en) 2008-03-13 2013-11-26 Nec Corporation Computer link method and computer system
JP2017089608A (ja) * 2015-02-03 2017-05-25 いすゞ自動車株式会社 エンジンの燃焼室構造の設計方法

Similar Documents

Publication Publication Date Title
US9959337B2 (en) Independent data processing environments within a big data cluster system
US10609129B2 (en) Method and system for multi-tenant resource distribution
US7437730B2 (en) System and method for providing a scalable on demand hosting system
CN109117264B (zh) 容器工作负载调度器以及调度容器工作负载的方法
JP4185103B2 (ja) 実行可能プログラムをスケジューリングするためのシステム及び方法
CN105843683B (zh) 用于动态优化平台资源分配的方法、系统和设备
JP5229590B2 (ja) サーバ組替支援システム、サーバ組替支援方法
JP3416877B2 (ja) タスクを並列処理するための装置及び方法
JP2004252988A (ja) コンピュータ・システムにおける区画間の動的プロセッサ再配分
Berlińska et al. Comparing load-balancing algorithms for MapReduce under Zipfian data skews
Seth et al. Dynamic threshold-based dynamic resource allocation using multiple VM migration for cloud computing systems
US10853137B2 (en) Efficient resource allocation for concurrent graph workloads
CN112612613B (zh) 用于在虚拟分布式异构环境下实现多gpu调度的方法和系统
JPH08185377A (ja) 分散計算機システム
US20040093477A1 (en) Scalable parallel processing on shared memory computers
KR20010014861A (ko) 컴퓨터 시스템의 하나의 논리적 분할부에서의 최대인터랙티브 작업을 나머지 분할부들에서의 최대인터랙티브 작업과 별도로 지정하는 장치 및 방법
Naik et al. A survey on various task scheduling algorithms toward load balancing in public cloud
Meftah et al. Effect of service broker policies and load balancing algorithms on the performance of large scale internet applications in cloud datacenters
JP2009087213A (ja) 計算機余力算出装置、計算機余力算出方法
JP2000315163A (ja) プロセッサ資源の均衡のとれた分配を実行する方法及びそのシステム
US7937708B2 (en) Computer system and method for allocating computational power based on a two stage process
Verschelde et al. Computing feedback laws for linear systems with a parallel Pieri homotopy
Veeramallu Dynamically Allocating the Resources Using Virtual Machines
Baliś et al. Scientific workflow management on hybrid clouds with cloud bursting and transparent data access
Li et al. Deployment of services in a cloud subject to memory and license constraints