JPH04223548A - 並列処理システムの負荷配分方法 - Google Patents
並列処理システムの負荷配分方法Info
- Publication number
- JPH04223548A JPH04223548A JP41363390A JP41363390A JPH04223548A JP H04223548 A JPH04223548 A JP H04223548A JP 41363390 A JP41363390 A JP 41363390A JP 41363390 A JP41363390 A JP 41363390A JP H04223548 A JPH04223548 A JP H04223548A
- Authority
- JP
- Japan
- Prior art keywords
- task
- tasks
- processor
- processors
- allocation
- 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
Links
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、独立に実行可能な多数
のタスクを複数のプロセッサで並列処理するシステムに
おいて、各プロセッサにタスクを配分する方法に関し、
特に、プロセッサのアイドル時間の総和を許容限度以下
にすることを保証しながら、多数のタスクを少ない回数
で配分するため、タスクの配分単位の決定方法に関する
ものである。
のタスクを複数のプロセッサで並列処理するシステムに
おいて、各プロセッサにタスクを配分する方法に関し、
特に、プロセッサのアイドル時間の総和を許容限度以下
にすることを保証しながら、多数のタスクを少ない回数
で配分するため、タスクの配分単位の決定方法に関する
ものである。
【0002】
【従来の技術】図3に一般的な並列処理システムの概念
図を示す。図中、1−1〜1−SはS個(S≧1)のタ
スク源で、独立に実行可能なN個(N≧S)のタスクを
生成する。3−1〜3−Pは処理能力が均一なP個(P
>1)のプロセッサで、複数のタスクを並列処理する。 2はタスク配分手段であり、個々のプロセッサ3−1〜
3−Pに所望の個数のタスクを配分する。
図を示す。図中、1−1〜1−SはS個(S≧1)のタ
スク源で、独立に実行可能なN個(N≧S)のタスクを
生成する。3−1〜3−Pは処理能力が均一なP個(P
>1)のプロセッサで、複数のタスクを並列処理する。 2はタスク配分手段であり、個々のプロセッサ3−1〜
3−Pに所望の個数のタスクを配分する。
【0003】このような並列処理システムの負荷配分方
法は、例えばYung−Terng Wang,Rob
ert J.T.Morris:Load Share
ing in DistributedSystems
,IEEE Transactions on Com
puters,Vol.C−34,No.3,pp.2
04−217,Mar.1985で分類、整理されてい
るように、タスク源主導型とプロセッサ主導型に大別さ
れる。
法は、例えばYung−Terng Wang,Rob
ert J.T.Morris:Load Share
ing in DistributedSystems
,IEEE Transactions on Com
puters,Vol.C−34,No.3,pp.2
04−217,Mar.1985で分類、整理されてい
るように、タスク源主導型とプロセッサ主導型に大別さ
れる。
【0004】タスク源主導型は、各プロセッサ3−1〜
3−Pにタスクキューがあり、各タスク源1−1〜1−
Sでタスク生成されると、タスク配分手段2を用いて、
どのプロセッサにタスクを割り当てるかを決定する方法
である。配分先の決定方法としては、S>Pの場合にタ
スク源をグループ分して1グループに1つのプロセッサ
を割り当てる方法(source partition
)、一様分布の乱数を用いてタスクのプロセッサへの割
り当てを決定する方法(random splitti
ng)、各プロセッサに順にタスクを割り当てる方法(
cyclic splitting)、各プロセッサの
タスクキューの内最もタスク数の少ないところにタスク
を割り当てる方法(join theshortest
queue)などがある。
3−Pにタスクキューがあり、各タスク源1−1〜1−
Sでタスク生成されると、タスク配分手段2を用いて、
どのプロセッサにタスクを割り当てるかを決定する方法
である。配分先の決定方法としては、S>Pの場合にタ
スク源をグループ分して1グループに1つのプロセッサ
を割り当てる方法(source partition
)、一様分布の乱数を用いてタスクのプロセッサへの割
り当てを決定する方法(random splitti
ng)、各プロセッサに順にタスクを割り当てる方法(
cyclic splitting)、各プロセッサの
タスクキューの内最もタスク数の少ないところにタスク
を割り当てる方法(join theshortest
queue)などがある。
【0005】プロセッサ主導型は、各タスク源1−1〜
1−Sにタスクキューがあり、各プロセッサ3−1〜3
−Pが空き状態になると、タスク配分手段2を用いて、
どのタスク源からタスクを取り出すかを決定する方法で
ある。配分元の決定方法としては、(S<P)の場合に
プロセッサをグループ分けして1つのグループが1つの
タスク源からのタスクを処理する方法(server
partition)、一様分布の乱数を用いてタスク
を取り出すタスク源を決定する方法(random s
ervice)、各プロセッサがタスク源を順に回る方
法(cyclic service)、各タスク源のタ
スクキューの内最もタスク数の多いところからタスクを
取り出す方法(serve the longestq
ueue)などがある。
1−Sにタスクキューがあり、各プロセッサ3−1〜3
−Pが空き状態になると、タスク配分手段2を用いて、
どのタスク源からタスクを取り出すかを決定する方法で
ある。配分元の決定方法としては、(S<P)の場合に
プロセッサをグループ分けして1つのグループが1つの
タスク源からのタスクを処理する方法(server
partition)、一様分布の乱数を用いてタスク
を取り出すタスク源を決定する方法(random s
ervice)、各プロセッサがタスク源を順に回る方
法(cyclic service)、各タスク源のタ
スクキューの内最もタスク数の多いところからタスクを
取り出す方法(serve the longestq
ueue)などがある。
【0006】このような並列処理システムで大量のタス
クを処理する場合に、タスク数Nが固定であっても、タ
スクによって処理時間が異なる場合がある。代表的な例
としては、選択条件を満足するか否かによってデータ毎
の処理時間が異なるデータベス処理が挙げられる。この
場合には、各プロセッサに同数のタスクを配分するra
ndon splitting法やcyclic sp
litting法では、プロセッサによって処理の終了
時間が異なり、配分された全てのタスクの処理を早く終
えたプロセッサがアイドル状態になって、N個のタスク
の実行開始から終了までの経過時間が長くなる原因とな
る。そのため、処理が速く進んでいるプロセッサにタス
クを割り当てていくjoin the shortes
t queue法や、早く処理を終えたプロセッサが次
に処理するタスクを取り出していくプロセッサ主導型の
上記各方法のように、実行時のプロセッサの処理状況に
関する情報を用いて負荷配分を行う必要がある。この場
合、配分された全てのタスクを早く終えたプロセッサが
アイドルになる時間は、1タスクの処理時間以下とする
ことができる。
クを処理する場合に、タスク数Nが固定であっても、タ
スクによって処理時間が異なる場合がある。代表的な例
としては、選択条件を満足するか否かによってデータ毎
の処理時間が異なるデータベス処理が挙げられる。この
場合には、各プロセッサに同数のタスクを配分するra
ndon splitting法やcyclic sp
litting法では、プロセッサによって処理の終了
時間が異なり、配分された全てのタスクの処理を早く終
えたプロセッサがアイドル状態になって、N個のタスク
の実行開始から終了までの経過時間が長くなる原因とな
る。そのため、処理が速く進んでいるプロセッサにタス
クを割り当てていくjoin the shortes
t queue法や、早く処理を終えたプロセッサが次
に処理するタスクを取り出していくプロセッサ主導型の
上記各方法のように、実行時のプロセッサの処理状況に
関する情報を用いて負荷配分を行う必要がある。この場
合、配分された全てのタスクを早く終えたプロセッサが
アイドルになる時間は、1タスクの処理時間以下とする
ことができる。
【0007】しかし、従来は、1タスクを単位として配
分していたことから、負荷配分に必要な情報の収集や通
信のオーバヘッド、複数のプロセッサが同一のタスクキ
ューへアクセスすることを調停する排他制御によるオー
バヘッドおよびプロセッサの待ち時間が大きくなる問題
があった。この問題を解決する手法として、固定数B(
B≧1)個のタスクをまとめて割り当てるか又は取り出
す方法が前記文献に示されている。
分していたことから、負荷配分に必要な情報の収集や通
信のオーバヘッド、複数のプロセッサが同一のタスクキ
ューへアクセスすることを調停する排他制御によるオー
バヘッドおよびプロセッサの待ち時間が大きくなる問題
があった。この問題を解決する手法として、固定数B(
B≧1)個のタスクをまとめて割り当てるか又は取り出
す方法が前記文献に示されている。
【0008】
【発明が解決しようとする課題】上記負荷配法では、タ
スクの配分単位Bを小さくすると、特に1タスク毎に負
荷配分すると、アイドル時間の総和は小さくできるが、
タスクの配分回数が多く、通信や排他制限のオーバヘッ
ドおよびプロセッサ間の競合が大きくなり、逆に、タス
クの配分単位Bを大きくすると、アイドル時間の総和が
大きくなるという問題がある。
スクの配分単位Bを小さくすると、特に1タスク毎に負
荷配分すると、アイドル時間の総和は小さくできるが、
タスクの配分回数が多く、通信や排他制限のオーバヘッ
ドおよびプロセッサ間の競合が大きくなり、逆に、タス
クの配分単位Bを大きくすると、アイドル時間の総和が
大きくなるという問題がある。
【0009】本発明の目的は、プロセッサのアイドル時
間の総和が許容限度以下になることを保証したままで、
タスクの配分回数を少なくし、上記オーバヘッドや競合
を少なくすることにある。
間の総和が許容限度以下になることを保証したままで、
タスクの配分回数を少なくし、上記オーバヘッドや競合
を少なくすることにある。
【0010】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、S個(S≧1)のタスク源と、処理能力
が均一なP個(P>1)のプロセッサと、S個のタスク
源から生成されるN個(N≧S)の独立に実行可能なタ
スクについて、個々のプロセッサに所望の個数のタスク
を配分するタスク配分手段とを具備した並列処理システ
ムにおいて、タスク配分手段は、従来は固定であったタ
スクの配分単位を、1タスクあたりの処理時間の上限と
下限の比と、アイドル時間の総和の許容限度と、S個の
タスク源の未配分タスク数と、P個のプロセッサの未処
理タスク数とから、各プロセッサ配分できるタスク数の
上限値を決定することによって、可変としたことである
。
に、本発明は、S個(S≧1)のタスク源と、処理能力
が均一なP個(P>1)のプロセッサと、S個のタスク
源から生成されるN個(N≧S)の独立に実行可能なタ
スクについて、個々のプロセッサに所望の個数のタスク
を配分するタスク配分手段とを具備した並列処理システ
ムにおいて、タスク配分手段は、従来は固定であったタ
スクの配分単位を、1タスクあたりの処理時間の上限と
下限の比と、アイドル時間の総和の許容限度と、S個の
タスク源の未配分タスク数と、P個のプロセッサの未処
理タスク数とから、各プロセッサ配分できるタスク数の
上限値を決定することによって、可変としたことである
。
【0011】
【作用】本発明の負荷配分法では、タスクの配分単位を
可変とし、これからタスクを配分するプロセッサの1つ
に配分されるタスクは全て処理時間が上限値のタスクで
あり、それ以外のプロセッサに配分されるタスクは全て
、処理時間が下限値であるという、アイドル時間の総和
が最大になる場合でも、アイドル時間の総和を指定した
許容限度以下にできるという条件を満たすタスク数の上
限をタスクの配分単位とする。これによって、最初はタ
スクの配分単位を大きくして配分回数を少なくすること
により負荷配分のオーバヘッドおよびプロセッサ間の競
合を小さくできる。一方、処理が進行するに連れて、タ
スクの配分単位を小さくすることにより、アイドル時間
の総和を小さくできる。
可変とし、これからタスクを配分するプロセッサの1つ
に配分されるタスクは全て処理時間が上限値のタスクで
あり、それ以外のプロセッサに配分されるタスクは全て
、処理時間が下限値であるという、アイドル時間の総和
が最大になる場合でも、アイドル時間の総和を指定した
許容限度以下にできるという条件を満たすタスク数の上
限をタスクの配分単位とする。これによって、最初はタ
スクの配分単位を大きくして配分回数を少なくすること
により負荷配分のオーバヘッドおよびプロセッサ間の競
合を小さくできる。一方、処理が進行するに連れて、タ
スクの配分単位を小さくすることにより、アイドル時間
の総和を小さくできる。
【0012】
【実施例】図1は本発明の一実施例を示す図で、1はタ
スク源、2はタスク配分手段、3−1〜3−Pはプロセ
ッサである。ここでは、データベースの検索を例にとり
、記憶装置4−1〜4−Sからデータを1つ取り出し、
選択条件を満すデータであれば出力するという処理を1
つのタスクとする。従って、記憶装置4−1〜4−2が
タスク源1となる。
スク源、2はタスク配分手段、3−1〜3−Pはプロセ
ッサである。ここでは、データベースの検索を例にとり
、記憶装置4−1〜4−Sからデータを1つ取り出し、
選択条件を満すデータであれば出力するという処理を1
つのタスクとする。従って、記憶装置4−1〜4−2が
タスク源1となる。
【0013】タスク配分手段2は、記憶装置4−1〜4
−Sの未だどのプロセッサにも配分されていないタスク
数(未配分タスク数)を示す数値をそれぞれ格納してい
る未配分タスク数格納手段5−1〜5−S、各プロセッ
サ3−1〜3−Pに配分されてはいるが未だ処理されて
いないタスク数(未処理タスク数)を示す数値をそれぞ
れ格納している未処理タスク数格納手段6−1〜6−P
、タスク配分元のタスク源(ここでは記憶装置4−1〜
4−S)を決定する配分元決定手段7、タスク配分先の
プロセッサ3−1〜3−Pを決定する配分先決定手段8
、及び、配分するタスク数を決定する配分タスク数決定
手段9で構成される。未配分タスク数格納手段5−1〜
5−Sに格納されている数値はそれぞれ、記憶装置4−
1〜4−Sから未配分タスクが読み出される時に更新さ
れる。また、未処理タスク数格納手段6−1〜6−Pに
格納されている数値はそれぞれ、プロセッサ3−1〜3
−Pが未処理タスクを取り出す時およびプロセッサ3−
1〜3−Pが未処理タスクを処理する時に更新される。 配分元決定手段7、配分先決定手段8、配分タスク数決
定手段9の実体はプログラムである。このうち、配分元
決定手段7と配分先決定手段8のプログラムが実行する
アルゴリズムとしては、前記従来技術に示した手法など
を適用できる。
−Sの未だどのプロセッサにも配分されていないタスク
数(未配分タスク数)を示す数値をそれぞれ格納してい
る未配分タスク数格納手段5−1〜5−S、各プロセッ
サ3−1〜3−Pに配分されてはいるが未だ処理されて
いないタスク数(未処理タスク数)を示す数値をそれぞ
れ格納している未処理タスク数格納手段6−1〜6−P
、タスク配分元のタスク源(ここでは記憶装置4−1〜
4−S)を決定する配分元決定手段7、タスク配分先の
プロセッサ3−1〜3−Pを決定する配分先決定手段8
、及び、配分するタスク数を決定する配分タスク数決定
手段9で構成される。未配分タスク数格納手段5−1〜
5−Sに格納されている数値はそれぞれ、記憶装置4−
1〜4−Sから未配分タスクが読み出される時に更新さ
れる。また、未処理タスク数格納手段6−1〜6−Pに
格納されている数値はそれぞれ、プロセッサ3−1〜3
−Pが未処理タスクを取り出す時およびプロセッサ3−
1〜3−Pが未処理タスクを処理する時に更新される。 配分元決定手段7、配分先決定手段8、配分タスク数決
定手段9の実体はプログラムである。このうち、配分元
決定手段7と配分先決定手段8のプログラムが実行する
アルゴリズムとしては、前記従来技術に示した手法など
を適用できる。
【0014】以下では、プロセッサ主導型におけるse
rve the longest queue法、及び
、タスク源主導型におけるjoin the shor
test queue法の2種を用いて、本発明の実施
例を説明することにする。
rve the longest queue法、及び
、タスク源主導型におけるjoin the shor
test queue法の2種を用いて、本発明の実施
例を説明することにする。
【0015】データベースの検索では、データの内容は
未知であるがタスクの処理内容は既知であるので、1タ
スクあたりの実行時間の上限と下限、あるいは、少なく
ともその比を前以て知ることができる。そこで、
S:タスク源 P:プロセッサ数 Tmax:1タスクあたリの実行時間
の上限 Tmin:1タスクあたりの実
行時間の下限 Tk:アイドル時間の総
和の許容時間(ただしTk≧Tmax×(P−1))よ
り α=Tk/Tmin
(1) β=(
Tmax/Tmin)×(P−1)+1
(2) をあらかじめ計算しておいて、上記α、βと
mi:プロセッサiの未処理タスク数(i=1,
2,…P) ni:タスク源iの未配分
タスク数の総和(i=1,2,…S)からプロセッサi
に配分できるタスク数の上限biを
未知であるがタスクの処理内容は既知であるので、1タ
スクあたりの実行時間の上限と下限、あるいは、少なく
ともその比を前以て知ることができる。そこで、
S:タスク源 P:プロセッサ数 Tmax:1タスクあたリの実行時間
の上限 Tmin:1タスクあたりの実
行時間の下限 Tk:アイドル時間の総
和の許容時間(ただしTk≧Tmax×(P−1))よ
り α=Tk/Tmin
(1) β=(
Tmax/Tmin)×(P−1)+1
(2) をあらかじめ計算しておいて、上記α、βと
mi:プロセッサiの未処理タスク数(i=1,
2,…P) ni:タスク源iの未配分
タスク数の総和(i=1,2,…S)からプロセッサi
に配分できるタスク数の上限biを
【数1】
で計算する。
【0016】まず、プロセッサ主導型制御との組み合わ
せ例として、配分元の決定に各タスク源のタスクキュー
の内最もタスク数の多いところからタスクを取り出すs
ervethe longest queue法を用い
た場合について説明する。
せ例として、配分元の決定に各タスク源のタスクキュー
の内最もタスク数の多いところからタスクを取り出すs
ervethe longest queue法を用い
た場合について説明する。
【0017】処理開始前に予め、式(1),(2)のα
およびβを算出しておく。処理が開始されると、タスク
を未だ取り出していないプロセッサあるいは取り出した
タスクの処理を全て終えたプロセッサがタスク配分手段
2に制御を渡す。この場合のタスク配分手段2の処理順
を図2(a)に示す。
およびβを算出しておく。処理が開始されると、タスク
を未だ取り出していないプロセッサあるいは取り出した
タスクの処理を全て終えたプロセッサがタスク配分手段
2に制御を渡す。この場合のタスク配分手段2の処理順
を図2(a)に示す。
【0018】取り出したタスクの処理を全て終えたプロ
セッサが自分でタスクを取り出すので、ステップ101
の配分先決定手段8の処理は素通りである。配分先のプ
ロセッサの番号をiとする。
セッサが自分でタスクを取り出すので、ステップ101
の配分先決定手段8の処理は素通りである。配分先のプ
ロセッサの番号をiとする。
【0019】ステップ102では、配分タスク数決定手
段9が、未配分タスク数格納手段5−1〜5−Sから読
み込んだ記憶装置4−1〜4−Sの未配分タスク数nk
と、未処理タスク数格納手段6−1〜6−Pから読み込
んだプロセッサ3−1〜3−Pの未処理タスク数mjと
、あらかじめ算出しておいたαとβとから、プロセッサ
iが取り出すタスク数biを式(3)で算出する。ここ
で、mi=0であるから、式(3)の−miの計算は不
要である。
段9が、未配分タスク数格納手段5−1〜5−Sから読
み込んだ記憶装置4−1〜4−Sの未配分タスク数nk
と、未処理タスク数格納手段6−1〜6−Pから読み込
んだプロセッサ3−1〜3−Pの未処理タスク数mjと
、あらかじめ算出しておいたαとβとから、プロセッサ
iが取り出すタスク数biを式(3)で算出する。ここ
で、mi=0であるから、式(3)の−miの計算は不
要である。
【0020】ステップ103では、配分元決定手段7が
未配分タスク数格納手当5−1〜5−Sの数値を読み込
み、記憶装置4−1〜4−Sの未配分タスク数nkの最
も多いタスク源を選択する。
未配分タスク数格納手当5−1〜5−Sの数値を読み込
み、記憶装置4−1〜4−Sの未配分タスク数nkの最
も多いタスク源を選択する。
【0021】ステップ104では、配分元決定手段7が
上記決定したタスク源からbi個のタスクを取り出し、
プロセッサiに渡す。なお、タスクの取り出された未配
分タスク数格納手段の数値はbiだけ減算される。
上記決定したタスク源からbi個のタスクを取り出し、
プロセッサiに渡す。なお、タスクの取り出された未配
分タスク数格納手段の数値はbiだけ減算される。
【0022】このようにして、プロセッサiは、取り出
されたタスクを順次実行し、タスクがなくなると、再び
タスク配分手段2に制御を渡す。これをタスクがなくな
るまで繰り返す。
されたタスクを順次実行し、タスクがなくなると、再び
タスク配分手段2に制御を渡す。これをタスクがなくな
るまで繰り返す。
【0023】次に、タスク主導型制御との組み合わせ例
として、配分先の決定に各プロセッサのタスクキューの
内最もタスク数の少ないところにタスクを割り当てるj
oin the shortest queue法を用
いた場合も説明する。
として、配分先の決定に各プロセッサのタスクキューの
内最もタスク数の少ないところにタスクを割り当てるj
oin the shortest queue法を用
いた場合も説明する。
【0024】ここでは、記憶装置4−1〜4−Sは制御
用プロセッサ付きの磁気ディスクであるとする。上記s
erve the longest queue法の例
と同様に、処理開始前に予め、式(1)、(2)のαお
よびβを算出しておく。処理が開始されると、制御用プ
ロセッサは磁気ディスクから複数個、例えば1トラック
分のデータを読み込む。データが読み込まれると、制御
用プロセッサはタスク配分手段2に制御を渡す。この場
合のタスク配分手段2の処理手順2の処理手順を図2(
b)に示す。
用プロセッサ付きの磁気ディスクであるとする。上記s
erve the longest queue法の例
と同様に、処理開始前に予め、式(1)、(2)のαお
よびβを算出しておく。処理が開始されると、制御用プ
ロセッサは磁気ディスクから複数個、例えば1トラック
分のデータを読み込む。データが読み込まれると、制御
用プロセッサはタスク配分手段2に制御を渡す。この場
合のタスク配分手段2の処理手順2の処理手順を図2(
b)に示す。
【0025】データを読み込んだ制御用プロセッサ配分
元になるので、ステップ201の配分元決定手段7の処
理は素通りとなる。
元になるので、ステップ201の配分元決定手段7の処
理は素通りとなる。
【0026】ステップ202では、配分先決定手段8が
、未処理タスク格納手段6−1〜6−Pの数値を読み込
み、プロセッサ3−1〜3−Pから未処理タスク数mj
の最少ないプロセッサを選択する。配分先のプロセッサ
の番号をiとする。
、未処理タスク格納手段6−1〜6−Pの数値を読み込
み、プロセッサ3−1〜3−Pから未処理タスク数mj
の最少ないプロセッサを選択する。配分先のプロセッサ
の番号をiとする。
【0027】ステップ203では、配分タスク数決定手
段9が、未配分タスク数格納手段5−1〜5−Sから読
み込んだ記憶装置4−1〜4−Sの未配分タスク数nk
と、未処理タスク数格納手段6−1〜6−Pから読み込
んだプロセッサ3−1〜3−Pの未処理タスク数mjと
、あらかじめ算出しておいたαとβとから、プロセッサ
iに割り当てるタスク数biを式(3)で算出する。そ
して、この算出したタスク数biを配分先決定手段8に
与える。
段9が、未配分タスク数格納手段5−1〜5−Sから読
み込んだ記憶装置4−1〜4−Sの未配分タスク数nk
と、未処理タスク数格納手段6−1〜6−Pから読み込
んだプロセッサ3−1〜3−Pの未処理タスク数mjと
、あらかじめ算出しておいたαとβとから、プロセッサ
iに割り当てるタスク数biを式(3)で算出する。そ
して、この算出したタスク数biを配分先決定手段8に
与える。
【0028】ステップ204では、配分先決定8が、決
定されたプロセッサiにbi個のタスクを割り当てる。
定されたプロセッサiにbi個のタスクを割り当てる。
【0029】プロセッサは、割り当てられたタスクを順
次実行し、制御用プロセッサは、ディスクからデータを
読み込んでは、上記タスク配分手段2に制御を渡す。以
上の手順を全てのデータが読み込まれ、割り当てられる
まで繰り返す。
次実行し、制御用プロセッサは、ディスクからデータを
読み込んでは、上記タスク配分手段2に制御を渡す。以
上の手順を全てのデータが読み込まれ、割り当てられる
まで繰り返す。
【0030】最後に、具体例として、10台のプロセッ
サが1万レコードのデータを全て記憶装置から取り出し
て、指定された条件を満たすレコードから指定されたフ
ィールドを取り出して出力する場合を示す。条件を満す
データは千レコードのデータの処理を1タスクとし、1
レコードの処理時間の内訳を、データの取り出しに1m
s、条件判定に1.5ms、指定されたフィールドの取
り出しと出力に5msとすると、タスクあたりの処理時
間の下限Tmin=2.5ms、タスクあたりの処理時
間の上限Tmax=7.5msとなる。アイドル時間の
総和の許容限度を、保証できる最小値であるTk=Tm
ax×(P−1)=67.5msとする。式(1)、(
2)を用いて、α=27.0,β=28.0を前以て計
算しておく。
サが1万レコードのデータを全て記憶装置から取り出し
て、指定された条件を満たすレコードから指定されたフ
ィールドを取り出して出力する場合を示す。条件を満す
データは千レコードのデータの処理を1タスクとし、1
レコードの処理時間の内訳を、データの取り出しに1m
s、条件判定に1.5ms、指定されたフィールドの取
り出しと出力に5msとすると、タスクあたりの処理時
間の下限Tmin=2.5ms、タスクあたりの処理時
間の上限Tmax=7.5msとなる。アイドル時間の
総和の許容限度を、保証できる最小値であるTk=Tm
ax×(P−1)=67.5msとする。式(1)、(
2)を用いて、α=27.0,β=28.0を前以て計
算しておく。
【0031】タスク源は1つとする。したがって、配分
元決定手段は不要である。配分先決定手段としては、未
処理タスクがなくなったプロセッサが自分でタスクを取
り出す方法を用いる。これは、プロセッサをグループ分
けして1つのグループが1つのタスク源からのタスクを
処理するserver partition法のグルー
プ内の動作と同じである。
元決定手段は不要である。配分先決定手段としては、未
処理タスクがなくなったプロセッサが自分でタスクを取
り出す方法を用いる。これは、プロセッサをグループ分
けして1つのグループが1つのタスク源からのタスクを
処理するserver partition法のグルー
プ内の動作と同じである。
【0032】処理開始時には、全てのプロセッサの未処
理タスク数が0であるから、全てのプロセッサ配分タス
ク数決定手段(配分タスク数決定プログラム)を起動し
て、配分タスク数bi(i=1,…,10)を式(3)
で次のように決定する。bi=(10000+0+27
.0)/28.0−0=358従って、全てのプロセッ
サが358個のタスクを取り出す。
理タスク数が0であるから、全てのプロセッサ配分タス
ク数決定手段(配分タスク数決定プログラム)を起動し
て、配分タスク数bi(i=1,…,10)を式(3)
で次のように決定する。bi=(10000+0+27
.0)/28.0−0=358従って、全てのプロセッ
サが358個のタスクを取り出す。
【0033】ここで、条件を満たすレコードが記憶装置
の前半に集中しており、条件を満たすレコードから取り
出されるとすると、プロセッサ1および2は、条件を満
たすデータを扱うタスクのみ358個取り出し、プロセ
ッサ3は条件を満たすデータを扱うタスクを284個、
満たさないデータを扱うタスクを74個取り出し、プロ
セッサ4〜10は条件を満たさないデータを扱うタスク
を358個取り出すことになる。未配分タスクは642
0個であり、これらは満たさないデータを扱うタスクで
ある。
の前半に集中しており、条件を満たすレコードから取り
出されるとすると、プロセッサ1および2は、条件を満
たすデータを扱うタスクのみ358個取り出し、プロセ
ッサ3は条件を満たすデータを扱うタスクを284個、
満たさないデータを扱うタスクを74個取り出し、プロ
セッサ4〜10は条件を満たさないデータを扱うタスク
を358個取り出すことになる。未配分タスクは642
0個であり、これらは満たさないデータを扱うタスクで
ある。
【0034】次の配分は、プロセッサ4〜10が全ての
タスクの処理を終えた時点であり、プロセッサ1及び2
は120タスク目を処理中、プロセッサ3は条件を満た
すデータを扱うタスクから処理されたとすると120タ
スク目を処理中である。したがって、未処理タスク数は
717個であるから、配分タスク数bi(i=4,…,
10)は bi=(6420+717+27.0)/
28.0−0=255となり、プロセッサ4〜10は、
255個のタスクを取り出す。
タスクの処理を終えた時点であり、プロセッサ1及び2
は120タスク目を処理中、プロセッサ3は条件を満た
すデータを扱うタスクから処理されたとすると120タ
スク目を処理中である。したがって、未処理タスク数は
717個であるから、配分タスク数bi(i=4,…,
10)は bi=(6420+717+27.0)/
28.0−0=255となり、プロセッサ4〜10は、
255個のタスクを取り出す。
【0035】以後、同様の手順を繰り返して、表1のよ
うにタスクを取り出していく。プロセッサ1〜2、プロ
セッサ4〜10は同時に処理を終えるので、表1ではま
とめて記し、配分回数は1プロセッサに付き1回として
数えている。
うにタスクを取り出していく。プロセッサ1〜2、プロ
セッサ4〜10は同時に処理を終えるので、表1ではま
とめて記し、配分回数は1プロセッサに付き1回として
数えている。
【0036】
【表1】
【0037】表1のように、本発明の負荷配分法では、
最初は多くのタスクを配分し、徐々に配分量を少なくし
ていく。本数値例では、タスクの取り出し回数は延べ1
47回になる。
最初は多くのタスクを配分し、徐々に配分量を少なくし
ていく。本数値例では、タスクの取り出し回数は延べ1
47回になる。
【0038】従来の負荷配分手法では一定量のタスクを
配分するため、アイドル時間の総和の許容限度を同じに
すると、一度に配分できるタスク数は高々1個であるか
ら、10000回のタスク配分操作が必要になる。本発
明を用いることによって、配分タスク数の簡単な計算を
少数回実行するだけで、タスクの配分回数を極めて少な
くできることが判る。
配分するため、アイドル時間の総和の許容限度を同じに
すると、一度に配分できるタスク数は高々1個であるか
ら、10000回のタスク配分操作が必要になる。本発
明を用いることによって、配分タスク数の簡単な計算を
少数回実行するだけで、タスクの配分回数を極めて少な
くできることが判る。
【0039】以上に示した本発明の実施例では、1タス
ク当たりの処理時間の上限、下限、アイドル時間の総和
の許容限度をすべて時間で与えたが、処理時間の上限と
下限の比Tmax/Tminと許容限度と下限の比Tk
/Tminで与えることもできる。
ク当たりの処理時間の上限、下限、アイドル時間の総和
の許容限度をすべて時間で与えたが、処理時間の上限と
下限の比Tmax/Tminと許容限度と下限の比Tk
/Tminで与えることもできる。
【0040】また、ここでは、タスク源主導型のjoi
n the shortest queue法、プロセ
ッサ主導型のserver partition法およ
びserve the longest queue法
の例を示したが、本負荷配分法では、各プロセッサに配
分するタスク数のみを規定しており、タスクの配分する
時刻、タスクの配分元のタスク源およびタスクの配分先
のプロセッサの決定法には依存しない。これらの決定に
は、任意の負荷配分法を使用できる。
n the shortest queue法、プロセ
ッサ主導型のserver partition法およ
びserve the longest queue法
の例を示したが、本負荷配分法では、各プロセッサに配
分するタスク数のみを規定しており、タスクの配分する
時刻、タスクの配分元のタスク源およびタスクの配分先
のプロセッサの決定法には依存しない。これらの決定に
は、任意の負荷配分法を使用できる。
【0041】以上説明したように、本発明の負荷配分方
法によれば、配分タスク数の簡単な計算を少数回実行す
ることだけで、アイドル時間の総和を小さく抑えたまま
でタスクの配分回数を極めて小さくでき、負荷配分に要
する通信やタスクキューの排他制御のオーバヘッドおよ
びプロセッサ間の競合を小さくできる。したがって、従
来の負荷配分法よりも、処理終了までの時間を短縮でき
る。
法によれば、配分タスク数の簡単な計算を少数回実行す
ることだけで、アイドル時間の総和を小さく抑えたまま
でタスクの配分回数を極めて小さくでき、負荷配分に要
する通信やタスクキューの排他制御のオーバヘッドおよ
びプロセッサ間の競合を小さくできる。したがって、従
来の負荷配分法よりも、処理終了までの時間を短縮でき
る。
【図1】本発明の一実施例を示す構成図である。
【図2】本発明の処理フローの一例で、(a)はプロセ
ッサ主導型、(b)はタスク源主導型である。
ッサ主導型、(b)はタスク源主導型である。
【図3】一般的な並列処理システムの概念図である。
1 タスク源
2 タスク配分手段
3−1〜3−P プロセッサ
5−1〜5−S 未配分タスク数格納手段6−1〜6
−P 未処理タスク数格納手段7 配分元決定手段 8 配分先決定手段 9 配分タスク数格納手段
−P 未処理タスク数格納手段7 配分元決定手段 8 配分先決定手段 9 配分タスク数格納手段
Claims (1)
- 【請求項1】 タスクを生成するS個(S≧1)のタ
スク源と、前記タスクを処理する処理能力が均一なP個
(P>1)のプロセッサとを具備した並列処理システム
において、タスクをプロセッサで実行した場合の処理時
間の上限値と下限値の比である処理時間比と、全てのタ
スクの実行を完了するまでに前記プロセッサが該タスク
に関する処理をしていない時間の和である全プロセッサ
のアイドル時間の総和の許容限度が与えられたときに、
該与えられた処理時間比と、アイドル時間の総和の許容
限度と、前記S個のタスク源の未配分タスク数と、前記
P個のプロセッサの未処理タスク数と、プロセッサ数と
から、前記プロセッサ各々に配分できるタスク数の上限
値を決定し、該上限値以下のタスクを、前記プロセッサ
に割り当てるかあるいは前記タスク源から取り出すこと
を特徴とする並列処理システムの負荷配分方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP41363390A JPH04223548A (ja) | 1990-12-25 | 1990-12-25 | 並列処理システムの負荷配分方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP41363390A JPH04223548A (ja) | 1990-12-25 | 1990-12-25 | 並列処理システムの負荷配分方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04223548A true JPH04223548A (ja) | 1992-08-13 |
Family
ID=18522232
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP41363390A Pending JPH04223548A (ja) | 1990-12-25 | 1990-12-25 | 並列処理システムの負荷配分方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH04223548A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06332875A (ja) * | 1993-05-26 | 1994-12-02 | Nec Corp | マルチプロセッサシステム診断装置 |
| JPH07200495A (ja) * | 1993-12-28 | 1995-08-04 | Nec Corp | 負荷分散型マルチプロセッサ方式に於ける負荷平準化方 式 |
| US20090094437A1 (en) * | 2007-10-07 | 2009-04-09 | Masahiro Fukuda | Method And Device For Controlling Multicore Processor |
| JP2009169756A (ja) * | 2008-01-17 | 2009-07-30 | Fujitsu Ltd | 分散処理プログラム、分散処理装置、および分散処理方法 |
-
1990
- 1990-12-25 JP JP41363390A patent/JPH04223548A/ja active Pending
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06332875A (ja) * | 1993-05-26 | 1994-12-02 | Nec Corp | マルチプロセッサシステム診断装置 |
| JPH07200495A (ja) * | 1993-12-28 | 1995-08-04 | Nec Corp | 負荷分散型マルチプロセッサ方式に於ける負荷平準化方 式 |
| US20090094437A1 (en) * | 2007-10-07 | 2009-04-09 | Masahiro Fukuda | Method And Device For Controlling Multicore Processor |
| US8209552B2 (en) * | 2007-10-07 | 2012-06-26 | Alpine Electronics, Inc. | Method and device for controlling multicore processor |
| JP2009169756A (ja) * | 2008-01-17 | 2009-07-30 | Fujitsu Ltd | 分散処理プログラム、分散処理装置、および分散処理方法 |
| US8631118B2 (en) | 2008-01-17 | 2014-01-14 | Fujitsu Limited | Recording medium having distributed processing program stored therein, distributed processing device and distributed processing method |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Shi et al. | MDP and machine learning-based cost-optimization of dynamic resource allocation for network function virtualization | |
| JP4205066B2 (ja) | マルチノード型コンピュータ・システムにおいてリソースを管理する装置、方法、およびプログラム | |
| Tan et al. | Delay tails in MapReduce scheduling | |
| US11816509B2 (en) | Workload placement for virtual GPU enabled systems | |
| Coffman Jr et al. | Computer scheduling methods and their countermeasures | |
| US8224938B2 (en) | Data processing system and method for iteratively re-distributing objects across all or a minimum number of processing units | |
| JP2004056517A (ja) | トランザクション振り分けプログラム | |
| CN110262896A (zh) | 一种面向Spark系统的数据处理加速方法 | |
| US8316375B2 (en) | Load-balancing of processes based on inertia | |
| JPH09218858A (ja) | 分散型データベース管理システム | |
| CN111078413A (zh) | 一种定时任务的执行方法、装置、计算机设备及存储介质 | |
| JPH04223548A (ja) | 並列処理システムの負荷配分方法 | |
| US7647592B2 (en) | Methods and systems for assigning objects to processing units | |
| Gunther | Dual‐Resource Parallel Queues with Server Transfer and Information Access Delays | |
| Whitt | A multi-class fluid model for a contact center with skill-based routing | |
| Huang et al. | Workload vs scheduling policies in a dual-resource constrained job shop | |
| EP4325346B1 (en) | Balancing throughput and fairness of storage devices in a multi-client environment | |
| Stephen et al. | Enhanced round Robin algorithm for cloud computing | |
| CN112306670A (zh) | 一种Docker虚拟化场景下的服务器集群优化方法 | |
| Caron et al. | Multi-criteria malleable task management for hybrid-cloud platforms | |
| EP1612672B1 (en) | A data processing system for assigning objects to processing units | |
| JP3150114B2 (ja) | ディスパッチ装置及びcpuの割り当て方法ならびにディスパッチ・プログラムを格納した記憶媒体 | |
| Wilson | Approaches to machine load balancing in flexible manufacturing systems | |
| JPH04149762A (ja) | データ制御方式 | |
| Chen et al. | A lower bound for minimizing waiting time in coexisting virtual and physical worlds |