JPH08166931A - 並列計算機の負荷分散方法 - Google Patents

並列計算機の負荷分散方法

Info

Publication number
JPH08166931A
JPH08166931A JP30890694A JP30890694A JPH08166931A JP H08166931 A JPH08166931 A JP H08166931A JP 30890694 A JP30890694 A JP 30890694A JP 30890694 A JP30890694 A JP 30890694A JP H08166931 A JPH08166931 A JP H08166931A
Authority
JP
Japan
Prior art keywords
cpu
task
load
parallel computer
cpus
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
JP30890694A
Other languages
English (en)
Inventor
Hiroaki Sato
裕昭 佐藤
Kazuhiro Aoyama
和弘 青山
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 JP30890694A priority Critical patent/JPH08166931A/ja
Publication of JPH08166931A publication Critical patent/JPH08166931A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】 通信路の通信負荷が小さく、負荷分散のオー
バーヘッドが少なく、CPU構成の情報を局所化した、
スケーラビリティのある並列計算機の負荷分散方法を得
る。 【構成】 タスクキュー3a、3b、3cをCPU1
a、1b、1c毎に持たせ、タスクの生成時に自分のC
PUで処理できない場合にのみ、他のCPUのタスクキ
ューにタスクを登録し実行させる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、並列計算機の負荷分
散方法に関するものである。
【0002】
【従来の技術】図13は、従来の並列計算機の負荷分散
方法を示すブロック図であり、図において、1a、1
b、1cはCPU、2a、2b、2cはそれぞれCPU
1a、1b、1cに接続されているメモリ、3はCPU
1a、1b、1cが実行するタスクを保持しておくタス
クキュー、5はメモリ2a、2b、2cをCPU1a、
1b、1cで共有するための通信路である。
【0003】次に動作について図14(a)、(b)を
参照しながら説明する。図14(a)、(b)は図13
のCPU1a、1b、1cで動作する並列計算機の負荷
分散方法を示すフローチャートであり、図14(a)は
タスク生成処理を示し、図14(b)はタスク割当処理
を示す。
【0004】並列計算機の負荷分散方法を行うために、
CPU1a、1b、1cは、タスクを生成する際に、S
45ステップでタスクを生成した後、S46ステップで
タスクをタスクキュー3に登録する。次に、CPU1
a、1b、1cは、自分のCPUで実行しているタスク
が資源待ち状態などでブロッキングされた場合、S47
ステップで実行中のタスクをタスクキュー3に退避し、
S48ステップでタスクキュー3から別のタスクを取り
だし、自分のCPUに割り当てて実行する。このよう
に、1つのタスクキューでタスクを管理することによ
り、個々のCPUは均等な負荷状況となり、負荷分散が
実現される。
【0005】
【発明が解決しようとする課題】従来の並列計算機の負
荷分散方法は以上のように行われているので、タスクを
生成したCPUと、タスクを実行するCPUが互い違い
になる場合がある。また並列計算機のCPUはタスクの
生成とタスクの割り当てを行う度に、共有のタスクキュ
ーにアクセスする必要がある。そのため通信路の通信負
荷が大きく、並列計算機のCPUの個数を増やしていく
と、通信路の性能がボトルネックとなり、並列計算機の
性能が発揮できないという問題点があった。
【0006】この発明は上記のような問題点を解消する
ためになされたもので、通信路の通信負荷が小さく、ス
ケーラビリティのある並列計算機の負荷分散方法を得る
ことを目的としており、さらに負荷分散のオーバーヘッ
ドが少なく、CPU構成の情報を局所化した並列計算機
の負荷分散方法を得ることを目的とする。
【0007】
【課題を解決するための手段】この発明の実施例1に係
る並列計算機の負荷分散方法は、タスクの生成時に自分
のCPUで処理できない場合に、並列計算機内のCPU
の負荷状況を調べ、並列計算機内の負荷の小さいCPU
にタスクを転送し実行させるものである。
【0008】また、この発明の実施例2に係る並列計算
機の負荷分散方法は、タスクの生成時に自分のCPUで
処理できない場合に、CPU間距離情報データベースか
らCPU間距離を取得し、並列計算機内のCPUの負荷
状況を調べ、並列計算機内の負荷が小さくCPU間距離
の短いCPUにタスクを転送し実行させるものである。
【0009】また、この発明の実施例3に係る並列計算
機の負荷分散方法は、あらかじめ何も処理を割り当てて
おかない予備CPUを備え、タスクの生成時に自分のC
PUで処理できない場合に、予備CPUにタスクを転送
し実行させるものである。
【0010】また、この発明の実施例4に係る並列計算
機の負荷分散方法は、タスク配分CPUを備え、タスク
の生成時に自分のCPUで処理できない場合に、タスク
配分CPUにタスクを転送し、タスク配分CPUが並列
計算機内のCPUの負荷状況を調べ、並列計算機内の負
荷の小さいCPUにタスクを転送し実行させるものであ
る。
【0011】また、この発明の実施例5に係る並列計算
機の負荷分散方法は、タスク配分CPUを備え、タスク
の生成時に自分のCPUで処理できない場合に、タスク
配分CPUにタスクを転送し、タスク配分CPUがCP
U間距離情報データベースからCPU間距離を取得し、
並列計算機内のCPUの負荷状況を調べ、並列計算機内
の負荷が小さくCPU間距離の短いCPUにタスクを転
送し実行させるものである。
【0012】また、この発明の実施例6に係る並列計算
機の負荷分散方法は、タスク配分CPUと、あらかじめ
何も処理を割り当てておかない予備CPUを備え、タス
クの生成時に自分のCPUで処理できない場合に、タス
ク配分CPUにタスクを転送し、タスク配分CPUが予
備CPUにタスクを転送し実行させるものである。
【0013】
【作用】この発明の実施例1における並列計算機の負荷
分散方法は、タスクの生成時に自分のCPUで処理でき
ない場合に、並列計算機内のCPUの負荷状況を調べ、
並列計算機内の負荷の小さいCPUにタスクを転送し実
行させることにより負荷分散を行う。
【0014】また、この発明の実施例2における並列計
算機の負荷分散方法は、タスクの生成時に自分のCPU
で処理できない場合に、CPU間距離情報データベース
からCPU間距離を取得し、並列計算機内のCPUの負
荷状況を調べ、並列計算機内の負荷が小さくCPU間距
離の短いCPUにタスクを転送し実行させることにより
負荷分散を行う。
【0015】また、この発明の実施例3における並列計
算機の負荷分散方法は、あらかじめ何も処理を割り当て
ておかない予備CPUを備え、タスクの生成時に自分の
CPUで処理できない場合に、予備CPUにタスクを転
送し実行させることにより負荷分散を行う。
【0016】また、この発明の実施例4における並列計
算機の負荷分散方法は、タスク配分CPUを備え、タス
クの生成時に自分のCPUで処理できない場合に、タス
ク配分CPUにタスクを転送し、タスク配分CPUが並
列計算機内のCPUの負荷状況を調べ、並列計算機内の
負荷の小さいCPUにタスクを転送し実行させることに
より負荷分散を行う。
【0017】また、この発明の実施例5における並列計
算機の負荷分散方法は、タスク配分CPUを備え、タス
クの生成時に自分のCPUで処理できない場合に、タス
ク配分CPUにタスクを転送し、タスク配分CPUがC
PU間距離情報データベースからCPU間距離を取得
し、並列計算機内のCPUの負荷状況を調べ、並列計算
機内の負荷が小さくCPU間距離の短いCPUにタスク
を転送し実行させることにより負荷分散を行う。
【0018】また、この発明の実施例6における並列計
算機の負荷分散方法は、タスク配分CPUと、あらかじ
め何も処理を割り当てておかない予備CPUを備え、タ
スクの生成時に自分のCPUで処理できない場合に、タ
スク配分CPUにタスクを転送し、タスク配分CPUが
予備CPUにタスクを転送し実行させることにより負荷
分散を行う。
【0019】
【実施例】
実施例1.図1は、この発明の実施例1による並列計算
機の負荷分散方式のブロック図であり、図において、1
a、1b、1cはCPU、2a、2b、2cはそれぞれ
CPU1a、1b、1cに接続されているメモリ、3
a、3b、cはそれぞれCPU1a、1b、1cが実行
するタスクを保持しておくタスクキュー、4a、4b、
4cはそれぞれCPU1a、1b、1cの負荷状況を表
す負荷情報、5はメモリ2a、2b、2cをCPU1
a、1b、1cで共有するための通信路である。
【0020】次に動作について図2を参照しながら説明
する。図2は図1のCPU1a、1b、1cで動作する
タスクの生成処理を示すフローチャートである。
【0021】並列計算機の負荷分散を行うために、CP
U1a、1b、1cは、タスクを生成する際に、図2に
示すタスク生成処理を実行する。まずCPU1aがタス
クを生成する場合について説明する。CPU1aは、S
1ステップでタスクを生成した後、S2ステップで自分
のCPUの負荷状況を負荷情報4aから読み取り、負荷
状況が許容値以下か否かを判断する。負荷状況が許容値
以下の場合は、生成されたタスクが自分のCPU1aで
処理可能であると見なして、S3ステップでタスクを自
分のCPU1aのタスクキュー3aに登録し、タスク生
成処理を終了する。負荷状況が許容値より大きい場合
は、生成されたタスクが自分のCPU1aで処理不可能
であると見なして、S4ステップで並列計算機内の他の
CPU1b、1cの負荷状況を負荷情報4b、4cから
読み取り、S5ステップで読み取った負荷状況から負荷
の一番小さいCPUを選択する。ここでCPUが選択さ
れたとすると、S6ステップで選択したCPU1cのタ
スクキュー3cにタスクを登録し、タスク生成処理を終
了する。CPU1b、1cがタスクを生成する場合も同
様である。
【0022】実施例2.図3は、この発明の実施例2に
よる並列計算機の負荷分散方式のブロック図であり、図
において、1a、1b、1cはCPU、2a、2b、2
cはそれぞれCPU1a、1b、1cに接続されている
メモリ、3a、3b、3cはそれぞれCPU1a、1
b、1cが実行するタスクを保持しておくタスクキュ
ー、4a、4b、4cはそれぞれCPU1a、1b、1
cの負荷状況を表す負荷情報、5はメモリ2a、2b、
2cをCPU1a、1b、1cで共有するための通信
路、6a、6b、6cはそれぞれCPU1a、1b、1
cから別のCPUまでの距離情報を含んだCPU間距離
情報データベースである。
【0023】次に動作について図4を参照しながら説明
する。図4は図3のCPU1a、1b、1cで動作する
タスク生成処理を示すフローチャートである。
【0024】並列計算機の負荷分散を行うために、CP
U1a、1b、1cは、タスクを生成する際に、図4に
示すタスク生成処理を実行する。まずCPU1aがタス
クを生成する場合について説明する。CPU1aは、S
7ステップでタスクを生成した後、S8ステップで自分
のCPUの負荷状況を負荷情報4aから読み取り、負荷
状況が許容値以下か否かを判断する。負荷状況が許容値
以下の場合は、生成されたタスクが自分のCPU1aで
処理可能であると見なして、S9ステップでタスクを自
分のCPU1aのタスクキュー3aに登録し、タスク生
成処理を終了する。負荷状況が許容値より大きい場合
は、生成されたタスクが自分のCPU1aで処理不可能
であると見なして、S10ステップで並列計算機内の他
のCPU1b、1cの負荷状況を負荷情報4b、4cか
ら読み取り、S11ステップで負荷状況が許容値以下の
CPUがあるか否かを判断する。負荷状況が許容値以下
のCPUが無い場合は、S12ステップで負荷の一番小
さいCPUを選択する。ここでCPU1cが選択された
とすると、S13ステップで選択したCPU1cのタス
クキュー3cにタスクを登録し、タスク生成処理を終了
する。負荷状況が許容値以下のCPUが有る場合は、S
14ステップでCPU間距離情報データベース6aから
CPU間距離を読み取り、負荷状況が許容値以下のCP
UのうちCPU間距離の一番短いCPUを選択する。こ
こでCPU1bが選択されたとすると、S15ステップ
で選択したCPU1bのタスクキュー3bにタスクを登
録し、タスク生成処理を終了する。CPU1b、1cが
タスクを生成する場合も同様である。
【0025】実施例3.図5は、この発明の実施例3に
よる並列計算機の負荷分散方式のブロック図であり、図
において、1a、1b、1cはCPU、2a、2b、2
cはそれぞれCPU1a、1b、1cに接続されている
メモリ、3a、3b、3cはそれぞれCPU1a、1
b、1cが実行するタスクを保持しておくタスクキュ
ー、4a、4b、4cはそれぞれCPU1a、1b、1
cの負荷状況を表す負荷情報、5はメモリ2a、2b、
2cをCPU1a、1b、1cで共有するための通信
路、7は予備CPU、8は予備CPU7に接続されてい
るメモリ、9は予備CPU7が実行するタスクを保持し
ておくタスクキューである。
【0026】次に動作について図6を参照しながら説明
する。図6は図5のCPU1a、1b、1cで動作する
タスク生成処理を示すフローチャートである。
【0027】並列計算機の負荷分散を行うために、CP
U1a、1b、1cは、タスクを生成する際に、図6に
示すタスク生成処理を実行する。まずCPU1aがタス
クを生成する場合について説明する。CPU1aは、S
16ステップでタスクを生成した後、S17ステップで
自分のCPUの負荷状況を負荷情報4aから読み取り、
負荷状況が許容値以下か否かを判断する。負荷状況が許
容値以下の場合は、生成されたタスクが自分のCPU1
aで処理可能であると見なして、S18ステップでタス
クを自分のCPU1aのタスクキュー3aに登録し、タ
スク生成処理を終了する。負荷状況が許容値より大きい
場合は、生成されたタスクが自分のCPU1aで処理不
可能であると見なして、S19ステップで予備CPU7
のタスクキュー9にタスクを登録し、タスク生成処理を
終了する。CPU1b、1cがタスクを生成する場合も
同様である。
【0028】実施例4.図7は、この発明の実施例4に
よる並列計算機の負荷分散方式のブロック図であり、図
において、1a、1b、1cはCPU、2a、2b、2
cはそれぞれCPU1a、1b、1cに接続されている
メモリ、3a、3b、3cはそれぞれCPU1a、1
b、1cが実行するタスクを保持しておくタスクキュ
ー、4a、4b、4cはそれぞれCPU1a、1b、1
cの負荷状況を表す負荷情報、5はメモリ2a、2b、
2cをCPU1a、1b、1cで共有するための通信
路、10はタスク配分CPU、11はタスク配分CPU
10に接続されているメモリである。
【0029】次に動作について図8(a)、(b)を参
照しながら説明する。図8(a)、(b)は負荷分散方
式を示すフローチャートであり、図8(a)は図7のC
PU1a、1b、1cで動作するタスク生成処理を示
し、図8(b)は図7のタスク配分CPU10で動作す
るタスク配分処理を示す。
【0030】並列計算機の負荷分散を行うために、CP
U1a、1b、1cは、タスクを生成する際に、図8
(a)に示すタスク生成処理を実行する。まずCPU1
aがタスクを生成する場合について説明する。CPU1
aは、S20ステップでタスクを生成した後、S21ス
テップで自分のCPUの負荷状況を負荷情報4aから読
み取り、負荷状況が許容値以下か否かを判断する。負荷
状況が許容値以下の場合は、生成されたタスクが自分の
CPU1aで処理可能であると見なして、S22ステッ
プでタスクを自分のCPU1aのタスクキュー3aに登
録し、タスク生成処理を終了する。負荷状況が許容値よ
り大きい場合は、生成されたタスクが自分のCPU1a
で処理不可能であると見なして、S23ステップでタス
ク配分CPU10にタスクを送信し、タスク生成処理を
終了する。タスク配分CPU10は常に図8(b)に示
すタスク配分処理を実行しており、S24ステップでC
PU1aが送信したタスクを受信する。そして、S25
ステップで並列計算機内のタスクを送信したCPU1a
以外のCPU1b、1cの負荷状況を負荷情報4b、4
cから読み取り、S26ステップで読み取った負荷状況
から負荷の一番小さいCPUを選択する。ここでCPU
1cが選択されたとすると、S27ステップで選択した
CPU1cのタスクキュー3cにタスクを登録する。C
PU1b、1cがタスクを生成する場合も同様である。
【0031】実施例5.図9は、この発明の実施例5に
よる並列計算機の負荷分散方式のブロック図であり、図
において、1a、1b、1cはCPU、2a、2b、2
cはそれぞれCPU1a、1b、1cに接続されている
メモリ、3a、3b、3cはそれぞれCPU1a、1
b、1cが実行するタスクを保持しておくタスクキュ
ー、4a、4b、4cはそれぞれCPU1a、1b、1
cの負荷状況を表す負荷情報、5はメモリ2a、2b、
2cをCPU1a、1b、1cで共有するための通信
路、6はCPU1a、1b、1c相互の距離情報を含ん
だCPU間距離情報データベース、10はタスク配分C
PU、11はタスク配分CPU10に接続されているメ
モリである。
【0032】次に動作について図10(a)、(b)を
参照しながら説明する。図10(a)、(b)は負荷分
散方式を示すフローチャートであり、図10(a)は図
9のCPU1a、1b、1cで動作するタスク生成処理
を示し、図10(b)は図9のタスク配分CPU10で
動作するタスク配分処理を示す。
【0033】並列計算機の負荷分散を行うために、CP
U1a、1b、1cは、タスクを生成する際に、図10
(a)に示すタスク生成処理を実行する。まずCPU1
aがタスクを生成する場合について説明する。CPU1
aは、S28ステップでタスクを生成した後、S29ス
テップで自分のCPUの負荷状況を負荷情報4aから読
み取り、負荷状況が許容値以下か否かを判断する。負荷
状況が許容値以下の場合は、生成されたタスクが自分の
CPU1aで処理可能であると見なして、S30ステッ
プでタスクを自分のCPU1aのタスクキュー3aに登
録し、タスク生成処理を終了する。負荷状況が許容値よ
り大きい場合は、生成されたタスクが自分のCPU1a
で処理不可能であると見なして、S31ステップでタス
ク配分CPU10にタスクを送信し、タスク生成処理を
終了する。タスク配分CPU10は常に図10(b)に
示すタスク配分処理を実行しており、S32ステップで
CPU1aが送信したタスクを受信する。そして、S3
3ステップで並列計算機内のタスクを送信したCPU1
a以外のCPU1b、1cの負荷状況を負荷情報4b、
4cから読み取り、S34ステップで負荷状況が許容値
以下のCPUがあるか否かを判断する。負荷状況が許容
値以下のCPUが無い場合は、S35ステップで負荷の
一番小さいCPUを選択する。ここでCPU1cが選択
されたとすると、S36ステップで選択したCPU1c
のタスクキュー3cにタスクを登録する。負荷状況が許
容値以下のCPUが有る場合は、S37ステップでCP
U間距離情報データベース6からCPU間距離を読み取
り、負荷状況が許容値以下のCPUのうちCPU間距離
の一番短いCPUを選択する。ここでCPU1bが選択
されたとすると、S38ステップで選択したCPU1b
のタスクキュー3bにタスクを登録する。CPU1b、
1cがタスクを生成する場合も同様である。
【0034】実施例6.図11は、この発明の実施例6
による並列計算機の負荷分散方式のブロック図であり、
図において、1a、1b、1cはCPU、2a、2b、
2cはそれぞれCPU1a、1b、1cに接続されてい
るメモリ、3a、3b、3cはそれぞれCPU1a、1
b、1cが実行するタスクを保持しておくタスクキュ
ー、4a、4b、4cはそれぞれCPU1a、1b、1
cの負荷状況を表す負荷情報、5はメモリ2a、2b、
2cをCPU1a、1b、1cで共有するための通信
路、7は予備CPU、8は予備CPU7に接続されてい
るメモリ、9は予備CPUが実行するタスクを保持して
おくタスクキュー、10はタスク配分CPU、11はタ
スク配分CPU10に接続されているメモリである。
【0035】次に動作について図12(a)、(b)を
参照しながら説明する。図12(a)、(b)は負荷分
散方式を示すフローチャートであり、図12(a)は図
11のCPU1a、1b、1cで動作するタスク生成処
理を示し、図12(b)は図11のタスク配分CPU1
0で動作するタスク配分処理を示す。
【0036】並列計算機の負荷分散を行うために、CP
U1a、1b、1cは、タスクを生成する際に、図12
(a)に示すタスク生成処理を実行する。まずCPU1
aがタスクを生成する場合について説明する。CPU1
aは、S39ステップでタスクを生成した後、S40ス
テップで自分のCPUの負荷状況を負荷情報4aから読
み取り、負荷状況が許容値以下か否かを判断する。負荷
状況が許容値以下の場合は、生成されたタスクが自分の
CPU1aで処理可能であると見なして、S41ステッ
プでタスクを自分のCPU1aのタスクキュー3aに登
録し、タスク生成処理を終了する。負荷状況が許容値よ
り大きい場合は、生成されたタスクが自分のCPU1a
で処理不可能であると見なして、S42ステップでタス
ク配分CPU10にタスクを送信し、タスク生成処理を
終了する。タスク配分CPU10は常に図12(b)に
示すタスク配分処理を実行しており、S43ステップで
CPU1aが送信したタスクを受信する。そして、S4
4ステップで予備CPU7のタスクキュー9にタスクを
登録する。CPU1b、1cがタスクを生成する場合も
同様である。
【0037】
【発明の効果】この発明の実施例1によれば、タスクの
生成時に自分のCPUで処理できない場合に、並列計算
機内のCPUの負荷状況を調べ、並列計算機内の負荷の
小さいCPUにタスクを転送し実行させることにより負
荷分散を行うので、通信路へのアクセスは、タスクの生
成時に自分のCPUで処理できない場合にのみ行われる
ため、通信路の通信負荷が小さくなる。
【0038】また、この発明の実施例2によれば、タス
クの生成時に自分のCPUで処理できない場合に、CP
U間距離情報データベースからCPU間距離を取得し、
並列計算機内のCPUの負荷状況を調べ、並列計算機内
の負荷が小さくCPU間距離の短いCPUにタスクを転
送し実行させることにより負荷分散を行うので、通信路
へのアクセスは、タスクの生成時に自分のCPUで処理
できない場合にのみ行われ、さらに通信路へのアクセス
が近距離間で行われるため、通信路の通信負荷がさらに
小さくなる。
【0039】また、この発明の実施例3によれば、あら
かじめ何も処理を割り当てておかない予備CPUを備
え、タスクの生成時に自分のCPUで処理できない場合
に、予備CPUにタスクを転送し実行させることによ
り、負荷分散を行うので、通信路へのアクセスは、タス
クの生成時に自分のCPUで処理できない場合にのみ行
われるため、通信路の通信負荷が小さくなる。さらにタ
スクを転送する先のCPUがあらかじめ決められている
ため、負荷分散のオーバーヘッドが少なくなる。
【0040】また、この発明の実施例4によれば、タス
ク配分CPUを備え、タスクの生成時に自分のCPUで
処理できない場合に、タスク配分CPUにタスクを転送
し、タスク配分CPUが並列計算機内のCPUの負荷状
況を調べ、並列計算機内の負荷の小さいCPUにタスク
を転送し実行させることにより負荷分散を行うので、通
信路へのアクセスは、タスクの生成時に自分のCPUで
処理できない場合にのみ行われるため、通信路の通信負
荷が小さくなる。さらにCPUがどのように構成されて
いるかという情報はタスク配分CPUのみが把握してい
ればよいため、CPUの増設による負荷分散方式の変更
はタスク配分CPUの処理のみでよく、拡張性に優れ
る。
【0041】また、この発明の実施例5によれば、タス
ク配分CPUを備え、タスクの生成時に自分のCPUで
処理できない場合に、タスク配分CPUにタスクを転送
し、タスク配分CPUがCPU間距離情報データベース
からCPU間距離を取得し、並列計算機内のCPUの負
荷状況を調べ、並列計算機内の負荷が小さくCPU間距
離の短いCPUにタスクを転送し実行させることにより
負荷分散を行うので、通信路へのアクセスは、タスクの
生成時に自分のCPUで処理できない場合にのみ行わ
れ、さらに通信路へのアクセスが近距離間で行われるた
め、通信路の通信負荷がさらに小さくなる。さらにCP
Uがどのように構成されているかという情報はタスク配
分CPUのみが把握していればよいため、CPUの増設
による負荷分散方式の変更はタスク配分CPUの処理の
みでよく、拡張性に優れる。
【0042】また、この発明の実施例6によれば、タス
ク配分CPUと、あらかじめ何も処理を割り当てておか
ない予備CPUを備え、タスクの生成時に自分のCPU
で処理できない場合に、タスク配分CPUにタスクを転
送し、タスク配分CPUが予備CPUにタスクを転送し
実行させることにより負荷分散を行うので、通信路への
アクセスは、タスクの生成時に自分のCPUで処理でき
ない場合にのみ行われるため、さらにタスクを転送する
先のCPUがあらかじめ決められているため、負荷分散
のオーバーヘッドが少なくなる。さらにCPUがどのよ
うに構成されているかという情報はタスク配分CPUの
みが把握していればよいため、CPUの増設による負荷
分散方式の変更はタスク配分CPUの処理のみでよく、
拡張性に優れる。
【図面の簡単な説明】
【図1】 この発明の実施例1を示すブロック図であ
る。
【図2】 この発明の実施例1を示すフローチャートで
ある。
【図3】 この発明の実施例2を示すブロック図であ
る。
【図4】 この発明の実施例2を示すフローチャートで
ある。
【図5】 この発明の実施例3を示すブロック図であ
る。
【図6】 この発明の実施例3を示すフローチャートで
ある。
【図7】 この発明の実施例4を示すブロック図であ
る。
【図8】 この発明の実施例4を示すフローチャートで
ある。
【図9】 この発明の実施例5を示すブロック図であ
る。
【図10】 この発明の実施例5を示すフローチャート
である。
【図11】 この発明の実施例6を示すブロック図であ
る。
【図12】 この発明の実施例6を示すフローチャート
である。
【図13】 従来の並列計算機の負荷分散方法を示すブ
ロック図である。
【図14】 従来の並列計算機の負荷分散方法を示すフ
ローチャートである。
【符号の説明】
1 CPU、2 メモリ、3 タスクキュー、4 負荷
情報、5 通信路、6CPU間距離情報データベース、
7 予備CPU、8 予備CPUのメモリ、9 予備C
PUのタスクキュー、10 タスク配分CPU、11
タスク配分CPUのメモリ。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 複数のCPUを持つ並列計算機上で、各
    CPUの処理負荷がオーバーフローしないように処理負
    荷を分散する負荷分散方法において、各CPUが自分の
    CPUの負荷状況を観測し、あるCPUがタスクを生成
    する際に、自分のCPUの負荷が大きく生成したタスク
    を処理できない場合、並列計算機内のCPUの負荷状況
    を調べ、負荷の小さいCPUにタスクを転送し実行させ
    ることを特徴とする並列計算機の負荷分散方法。
  2. 【請求項2】 複数のCPUを持つ並列計算機上で、各
    CPUの処理負荷がオーバーフローしないように処理負
    荷を分散する負荷分散方法において、各CPUが自分の
    CPUの負荷状況を観測し、あるCPUがタスクを生成
    する際に、自分のCPUの負荷が大きく生成したタスク
    を処理できない場合、CPU間距離情報データベースか
    らCPU間距離を取得し、並列計算機内のCPUの負荷
    状況を調べ、負荷が小さくCPU間距離の短いCPUに
    タスクを転送し実行させることを特徴とする並列計算機
    の負荷分散方法。
  3. 【請求項3】 複数のCPUを持つ並列計算機上で、各
    CPUの処理負荷がオーバーフローしないように処理負
    荷を分散する負荷分散方法において、あらかじめ何も処
    理を割り当てておかない予備CPUを備え、各CPUが
    自分のCPUの負荷状況を観測し、あるCPUがタスク
    を生成する際に、自分のCPUの負荷が大きく生成した
    タスクを処理できない場合、予備CPUにタスクを転送
    し実行させることを特徴とする並列計算機の負荷分散方
    法。
  4. 【請求項4】 複数のCPUを持つ並列計算機上で、各
    CPUの処理負荷がオーバーフローしないように処理負
    荷を分散する負荷分散方法において、タスク配分CPU
    を備え、各CPUが自分のCPUの負荷状況を観測し、
    あるCPUがタスクを生成する際に、自分のCPUの負
    荷が大きく生成したタスクを処理できない場合、タスク
    配分CPUにタスクを転送し、タスク配分CPUが並列
    計算機内のCPUの負荷状況を調べ、負荷の小さいCP
    Uにタスクを転送し実行させることを特徴とする並列計
    算機の負荷分散方法。
  5. 【請求項5】 複数のCPUを持つ並列計算機上で、各
    CPUの処理負荷がオーバーフローしないように処理負
    荷を分散する負荷分散方法において、タスク配分CPU
    を備え、各CPUが自分のCPUの負荷状況を観測し、
    あるCPUがタスクを生成する際に、自分のCPUの負
    荷が大きく生成したタスクを処理できない場合、タスク
    配分CPUにタスクを転送し、タスク配分CPUがCP
    U間距離情報データベースからCPU間距離を取得し、
    並列計算機内のCPUの負荷状況を調べ、負荷が小さく
    CPU間距離の短いCPUにタスクを転送し実行させる
    ことを特徴とする並列計算機の負荷分散方法。
  6. 【請求項6】 複数のCPUを持つ並列計算機上で、各
    CPUの処理負荷がオーバーフローしないように処理負
    荷を分散する負荷分散方法において、タスク配分CPU
    と、あらかじめ何も処理を割り当てておかない予備CP
    Uを備え、各CPUが自分のCPUの負荷状況を観測
    し、あるCPUがタスクを生成する際に、自分のCPU
    の負荷が大きく生成したタスクを処理できない場合、タ
    スク配分CPUにタスクを転送し、タスク配分CPUが
    予備CPUにタスクを転送し実行させることを特徴とす
    る並列計算機の負荷分散方法。
JP30890694A 1994-12-13 1994-12-13 並列計算機の負荷分散方法 Pending JPH08166931A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30890694A JPH08166931A (ja) 1994-12-13 1994-12-13 並列計算機の負荷分散方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30890694A JPH08166931A (ja) 1994-12-13 1994-12-13 並列計算機の負荷分散方法

Publications (1)

Publication Number Publication Date
JPH08166931A true JPH08166931A (ja) 1996-06-25

Family

ID=17986704

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30890694A Pending JPH08166931A (ja) 1994-12-13 1994-12-13 並列計算機の負荷分散方法

Country Status (1)

Country Link
JP (1) JPH08166931A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004509386A (ja) * 2000-06-30 2004-03-25 タレス ネデルラント ベー.フェー. 複数のプロセッサにソフトウェア機能を自動的に割り当てる方法
US8996278B2 (en) 2011-07-20 2015-03-31 Toyota Jidosha Kabushiki Kaisha Control device for internal combustion engine

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004509386A (ja) * 2000-06-30 2004-03-25 タレス ネデルラント ベー.フェー. 複数のプロセッサにソフトウェア機能を自動的に割り当てる方法
US8996278B2 (en) 2011-07-20 2015-03-31 Toyota Jidosha Kabushiki Kaisha Control device for internal combustion engine

Similar Documents

Publication Publication Date Title
US5867704A (en) Multiprocessor system shaving processor based idle state detection and method of executing tasks in such a multiprocessor system
US7155551B2 (en) Hardware semaphore intended for a multi-processor system
US5526492A (en) System having arbitrary master computer for selecting server and switching server to another server when selected processor malfunctions based upon priority order in connection request
US7730488B2 (en) Computer resource management method in distributed processing system
US5307496A (en) Multiprocessor computing apparatus for utilizing resources
US7089340B2 (en) Hardware management of java threads utilizing a thread processor to manage a plurality of active threads with synchronization primitives
US20040122953A1 (en) Communication multiplexor for use with a database system implemented on a data processing system
US20080168465A1 (en) Data processing system and semiconductor integrated circuit
US20020023118A1 (en) Method for effective utilizing of shared resources in computerized system
JP6468499B2 (ja) 分散コンピューティングアーキテクチャ
EP1768024B1 (en) Processing management device, computer system, distributed processing method, and computer program
US7007150B2 (en) Memory balancing and optimization services
CN114546587A (zh) 一种在线图像识别服务的扩缩容方法及相关装置
JP7346649B2 (ja) 同期制御システムおよび同期制御方法
JP4489958B2 (ja) イベントベースシステムの同時処理
JPH08166931A (ja) 並列計算機の負荷分散方法
JPH08292932A (ja) マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法
JP2009070135A (ja) 分散処理システム
JPH09160884A (ja) 動的負荷分散並列計算機
US9015717B2 (en) Method for processing tasks in parallel and selecting a network for communication
JP2580525B2 (ja) 並列計算機における負荷分散方法
JPH11102349A (ja) メモリ共有型マルチプロセッサシステムの負荷制御方式
US5062046A (en) Multiple processor system having a correspondence table for transferring processing control between instruction processors
JP4833911B2 (ja) プロセッサユニットおよび情報処理方法
JP2000207374A (ja) 分散処理計算機システム