JPH0668051A - 並列計算機 - Google Patents
並列計算機Info
- Publication number
- JPH0668051A JPH0668051A JP4219599A JP21959992A JPH0668051A JP H0668051 A JPH0668051 A JP H0668051A JP 4219599 A JP4219599 A JP 4219599A JP 21959992 A JP21959992 A JP 21959992A JP H0668051 A JPH0668051 A JP H0668051A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- job
- processors
- group
- jobs
- 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)【要約】
【目的】 複数のプロセッサを有し、各プロセッサがジ
ョブを保持しておくジョブ保持部と、該ジョブ保持部か
らジョブを取り出して実行するとともに、ジョブ保持部
に実行すべきジョブがない場合に他のプロセッサに対し
て新たなジョブの要求を行う並列計算機において、ジョ
ブを要求するメッセージの移動距離を平均的に短くして
メッセージの到着の遅れが生じなくなるようにして効率
のよい負荷の動的な均等化を得るとともに、ジョブ間の
局所性を保つことができる並列計算機を提供することを
目的とする。 【構成】 複数のプロセッサ1〜16を複数のグループ
17〜20に分けて構成し、各プロセッサは、そのプロ
セッサが属するグループ内のプロセッサにジョブを要求
し、そのグループ内でジョブが得られない場合に、他の
グループのプロセッサにジョブを要求する
ョブを保持しておくジョブ保持部と、該ジョブ保持部か
らジョブを取り出して実行するとともに、ジョブ保持部
に実行すべきジョブがない場合に他のプロセッサに対し
て新たなジョブの要求を行う並列計算機において、ジョ
ブを要求するメッセージの移動距離を平均的に短くして
メッセージの到着の遅れが生じなくなるようにして効率
のよい負荷の動的な均等化を得るとともに、ジョブ間の
局所性を保つことができる並列計算機を提供することを
目的とする。 【構成】 複数のプロセッサ1〜16を複数のグループ
17〜20に分けて構成し、各プロセッサは、そのプロ
セッサが属するグループ内のプロセッサにジョブを要求
し、そのグループ内でジョブが得られない場合に、他の
グループのプロセッサにジョブを要求する
Description
【0001】
【産業上の利用分野】本発明は、複数のプロセッサから
構成される並列計算機に関するものであり、特に、該並
列計算機の負荷の動的均等化方式に関するものである。
構成される並列計算機に関するものであり、特に、該並
列計算機の負荷の動的均等化方式に関するものである。
【0002】
【従来の技術】近時、負荷を分散化し、システム全体と
しての処理効率を向上させる分散処理システムが開発さ
れている。
しての処理効率を向上させる分散処理システムが開発さ
れている。
【0003】例えば、図4は、文献Parallel Algorithm
s in Machine Intelligence and Vision,Springer-Verl
ag 1990 にVipin Kumar らによって書かれた論文“SC
ALABLE PARALLEL FORMULATI
ONS OF DEPTH−FIRST SEARC
H”の5頁右段上から4行目以降に記述されている並列
計算機の動的均等化方式の一例を示すものであり、1〜
16はCPU(以後、「プロセッサ」とする)を示し、
21〜36は各プロセッサ内のジョブのスケジューリン
グを行うスケジューラを示し、各スケジューラはカウン
タを有している。また、41〜56は実行可能なジョブ
をキュー(待ち行列)として格納するバッファメモリを
示す。また、70は各CPUを接続するネットワーク
を、60〜63はジョブをあらわす。
s in Machine Intelligence and Vision,Springer-Verl
ag 1990 にVipin Kumar らによって書かれた論文“SC
ALABLE PARALLEL FORMULATI
ONS OF DEPTH−FIRST SEARC
H”の5頁右段上から4行目以降に記述されている並列
計算機の動的均等化方式の一例を示すものであり、1〜
16はCPU(以後、「プロセッサ」とする)を示し、
21〜36は各プロセッサ内のジョブのスケジューリン
グを行うスケジューラを示し、各スケジューラはカウン
タを有している。また、41〜56は実行可能なジョブ
をキュー(待ち行列)として格納するバッファメモリを
示す。また、70は各CPUを接続するネットワーク
を、60〜63はジョブをあらわす。
【0004】次に動作について説明する。図4における
CPU1〜16中のスケジューラ21〜36が、バッフ
ァメモリ41〜56中のジョブをスケジューリングする
アルゴリズムを示す図5により説明すると、スケジュー
ラは、バッファメモリの中にジョブがあるか否かを判断
する(ステップ001)。ジョブがある場合には、スケ
ジューラはジョブを1つ取り出して(ステップ00
2)、実行し(ステップ003)、全てのプロセッサ上
で全体の実行が終了したか否かを判定し、まだ、終了し
ていなければ次のステップのスケジューリングを行う
(ステップ001)。バッファメモリ中にジョブがなか
った場合には、カウンタのtargetが保持する値に1を加
えて、プロセッサの台数Nで割った余りの値を新たなta
rgetの値とし、その値が示すプロセッサに対してジョブ
を要求する(ステップ005)。例えば、図4の場合に
は、プロセッサのカウンタのtargetの値が1である場
合、これに1を加えるとtargetの値は2となる。2をプ
ロセッサの台数16で割った余りは2であるので、プロ
セッサPE2に対してジョブを要求する。また、target
の値が15である場合、これに1を加えるとtargetの値
は16になる。16を16で割った余りは0であるの
で、プロセッサPE0に対してジョブを要求する。
CPU1〜16中のスケジューラ21〜36が、バッフ
ァメモリ41〜56中のジョブをスケジューリングする
アルゴリズムを示す図5により説明すると、スケジュー
ラは、バッファメモリの中にジョブがあるか否かを判断
する(ステップ001)。ジョブがある場合には、スケ
ジューラはジョブを1つ取り出して(ステップ00
2)、実行し(ステップ003)、全てのプロセッサ上
で全体の実行が終了したか否かを判定し、まだ、終了し
ていなければ次のステップのスケジューリングを行う
(ステップ001)。バッファメモリ中にジョブがなか
った場合には、カウンタのtargetが保持する値に1を加
えて、プロセッサの台数Nで割った余りの値を新たなta
rgetの値とし、その値が示すプロセッサに対してジョブ
を要求する(ステップ005)。例えば、図4の場合に
は、プロセッサのカウンタのtargetの値が1である場
合、これに1を加えるとtargetの値は2となる。2をプ
ロセッサの台数16で割った余りは2であるので、プロ
セッサPE2に対してジョブを要求する。また、target
の値が15である場合、これに1を加えるとtargetの値
は16になる。16を16で割った余りは0であるの
で、プロセッサPE0に対してジョブを要求する。
【0005】そのようにして、新たなジョブが得られた
場合には、通常は1個以上のジョブをバッファメモリに
格納し(ステップ006、007)、次のステップのス
ケジューリングを行う。新たなジョブが得られなかった
場合には、ジョブが得られるまで別のプロセッサに対し
て要求を行う(ステップ005)。例えば、前記例でプ
ロセッサPE2に対してジョブを要求してジョブを得ら
れなかった場合には、カウンタのtargetの値をさらに1
加え、プロセッサPE3に対してジョブを要求する。
場合には、通常は1個以上のジョブをバッファメモリに
格納し(ステップ006、007)、次のステップのス
ケジューリングを行う。新たなジョブが得られなかった
場合には、ジョブが得られるまで別のプロセッサに対し
て要求を行う(ステップ005)。例えば、前記例でプ
ロセッサPE2に対してジョブを要求してジョブを得ら
れなかった場合には、カウンタのtargetの値をさらに1
加え、プロセッサPE3に対してジョブを要求する。
【0006】図4は、プロセッサPE0上のバッファメ
モリには、ジョブが多数あり、その他のプロセッサ上に
はジョブが1つもない様子を示している。ここで、各プ
ロセッサのカウンタのtargetの値は、同図に示すよう
に、初期値としてそれぞれプロセッサの番号が与えられ
ているものとする。この時、プロセッサPE0では、バ
ッファメモリから次々とジョブが取り出されては実行さ
れる。その他のプロセッサでは、カウンタのtargetの値
が示す値にしたがってジョブを要求する。すなわち、プ
ロセッサPE1はプロセッサPE2に、プロセッサPE
2はプロセッサPE3に、プロセッサPE3はプロセッ
サPE4に対してジョブを要求する。これを繰り返すこ
とによって、いずれ全てのプロセッサがジョブを得る。
さらに実行が進んで図6に示すようにPE1とPE7の
バッファメモリが空になった場合には、それぞれのプロ
セッサはtargetの値にしたがってPE15とPE13に
新たなジョブを要求する。
モリには、ジョブが多数あり、その他のプロセッサ上に
はジョブが1つもない様子を示している。ここで、各プ
ロセッサのカウンタのtargetの値は、同図に示すよう
に、初期値としてそれぞれプロセッサの番号が与えられ
ているものとする。この時、プロセッサPE0では、バ
ッファメモリから次々とジョブが取り出されては実行さ
れる。その他のプロセッサでは、カウンタのtargetの値
が示す値にしたがってジョブを要求する。すなわち、プ
ロセッサPE1はプロセッサPE2に、プロセッサPE
2はプロセッサPE3に、プロセッサPE3はプロセッ
サPE4に対してジョブを要求する。これを繰り返すこ
とによって、いずれ全てのプロセッサがジョブを得る。
さらに実行が進んで図6に示すようにPE1とPE7の
バッファメモリが空になった場合には、それぞれのプロ
セッサはtargetの値にしたがってPE15とPE13に
新たなジョブを要求する。
【0007】
【発明が解決しようとする課題】しかし、以上のような
負荷の均等化方式においては、各プロセッサは自己以外
の全てのプロセッサに対して等しく順番にジョブを要求
するため、ジョブの要求及び移動のためにプロセッサ間
で通信されるメッセージの移動距離が平均的に長くな
り、プロセッサの台数が多くなった場合には、メッセー
ジの到着の遅れが顕著になると同時に、通信経路を占有
する時間も長くなるために負荷の均等化が効率よく行え
ない。また、ジョブ間の局所性が保たれないという問題
点があった。すなわち、例えば、ジョブAとジョブBを
実行する際に頻繁に通信しあう必要がある場合に、該2
つのジョブが離れたプロセッサで実行されると、通信の
オーバーヘッドによる遅れが生じるため、できるだけ近
くのプロセッサに割り付けられることが望ましい。
負荷の均等化方式においては、各プロセッサは自己以外
の全てのプロセッサに対して等しく順番にジョブを要求
するため、ジョブの要求及び移動のためにプロセッサ間
で通信されるメッセージの移動距離が平均的に長くな
り、プロセッサの台数が多くなった場合には、メッセー
ジの到着の遅れが顕著になると同時に、通信経路を占有
する時間も長くなるために負荷の均等化が効率よく行え
ない。また、ジョブ間の局所性が保たれないという問題
点があった。すなわち、例えば、ジョブAとジョブBを
実行する際に頻繁に通信しあう必要がある場合に、該2
つのジョブが離れたプロセッサで実行されると、通信の
オーバーヘッドによる遅れが生じるため、できるだけ近
くのプロセッサに割り付けられることが望ましい。
【0008】そこで、本発明は、ジョブを要求するメッ
セージの移動距離を平均的に短くしてメッセージの到着
の遅れが生じなくなるようにして効率のよい負荷の動的
な均等化を得るとともに、ジョブ間の局所性を保つこと
ができる並列計算機を提供することを目的とするもので
ある。
セージの移動距離を平均的に短くしてメッセージの到着
の遅れが生じなくなるようにして効率のよい負荷の動的
な均等化を得るとともに、ジョブ間の局所性を保つこと
ができる並列計算機を提供することを目的とするもので
ある。
【0009】
【課題を解決するための手段】本発明は、複数のプロセ
ッサを有し、各プロセッサがジョブを保持しておくジョ
ブ保持部と、該ジョブ保持部からジョブを取り出して実
行するとともに、ジョブ保持部に実行すべきジョブがな
い場合に他のプロセッサに対して新たなジョブの要求を
行うスケジューラとを有する並列計算機において、上記
複数のプロセッサを複数のグループに分けて構成し、各
プロセッサは、そのプロセッサが属するグループ内のプ
ロセッサにジョブを要求し、そのグループ内でジョブが
得られない場合に、他のグループのプロセッサにジョブ
を要求することを特徴とするものである。
ッサを有し、各プロセッサがジョブを保持しておくジョ
ブ保持部と、該ジョブ保持部からジョブを取り出して実
行するとともに、ジョブ保持部に実行すべきジョブがな
い場合に他のプロセッサに対して新たなジョブの要求を
行うスケジューラとを有する並列計算機において、上記
複数のプロセッサを複数のグループに分けて構成し、各
プロセッサは、そのプロセッサが属するグループ内のプ
ロセッサにジョブを要求し、そのグループ内でジョブが
得られない場合に、他のグループのプロセッサにジョブ
を要求することを特徴とするものである。
【0010】
【作用】本発明におけるに並列計算機では、並列計算機
を構成する複数のプロセッサがグループに分けて構成さ
れ、各プロセッサは、まず、そのプロセッサが属するグ
ループ内のプロセッサにジョブを要求する。該グループ
内のプロセッサからジョブを要求することができない場
合には、他のグループのプロセッサに対してジョブを要
求する。本発明によれば、まず、グループ内でジョブの
要求を行うことから、メッセージの移動距離を少なくす
ることができ、効率のよい負荷の動的な平均化を行うこ
とができるほか、ジョブの局所性も保つことができる。
を構成する複数のプロセッサがグループに分けて構成さ
れ、各プロセッサは、まず、そのプロセッサが属するグ
ループ内のプロセッサにジョブを要求する。該グループ
内のプロセッサからジョブを要求することができない場
合には、他のグループのプロセッサに対してジョブを要
求する。本発明によれば、まず、グループ内でジョブの
要求を行うことから、メッセージの移動距離を少なくす
ることができ、効率のよい負荷の動的な平均化を行うこ
とができるほか、ジョブの局所性も保つことができる。
【0011】
【実施例】以下、本発明の好適な実施例について図面に
基づき説明する。
基づき説明する。
【0012】本発明に係る並列計算機は、図1に示すよ
うに構成され、1〜16はプロセッサを、21〜36は
各プロセッサ内のジョブのスケジューリングを図2に示
したアルゴリズムに従い行うスケジューラを、41〜5
6は実行可能なジョブを格納するバッファメモリをそれ
ぞれ示している。また、70は各プロセッサを接続する
ネットワークを、60〜63はジョブを表す。本発明に
おいては、前記1〜16の各プロセッサをそれぞれ4台
ごとのプロセッサでグループ化し、プロセッサグループ
17〜20を形成しており、前記スケジューラが有する
カウンタは、targetPEとtargetPGの2つの値を有し
ている。
うに構成され、1〜16はプロセッサを、21〜36は
各プロセッサ内のジョブのスケジューリングを図2に示
したアルゴリズムに従い行うスケジューラを、41〜5
6は実行可能なジョブを格納するバッファメモリをそれ
ぞれ示している。また、70は各プロセッサを接続する
ネットワークを、60〜63はジョブを表す。本発明に
おいては、前記1〜16の各プロセッサをそれぞれ4台
ごとのプロセッサでグループ化し、プロセッサグループ
17〜20を形成しており、前記スケジューラが有する
カウンタは、targetPEとtargetPGの2つの値を有し
ている。
【0013】次に、本実施例の動作状態について説明す
る。各プロセッサのスケジューラは図2に示すアルゴリ
ズムに従い実行される。ここで、各グループに属するプ
ロセッサの台数がカウンタのGPEに保持されるととも
に、グループの個数はNofGに保持され、本実施例で
はGPEは4で、NofGも4となる。まず、バッファ
メモリの中にジョブがあるか否かを判断し(ステップ0
01)、ジョブがある場合には、スケジューラはジョブ
を1つ取り出して(ステップ002)、実行し(ステッ
プ003)、全てのプロセッサ上で全体の実行が終了し
たか否かを判定し、まだ、終了していなければ次のステ
ップのスケジューリングを行う(ステップ001)。
る。各プロセッサのスケジューラは図2に示すアルゴリ
ズムに従い実行される。ここで、各グループに属するプ
ロセッサの台数がカウンタのGPEに保持されるととも
に、グループの個数はNofGに保持され、本実施例で
はGPEは4で、NofGも4となる。まず、バッファ
メモリの中にジョブがあるか否かを判断し(ステップ0
01)、ジョブがある場合には、スケジューラはジョブ
を1つ取り出して(ステップ002)、実行し(ステッ
プ003)、全てのプロセッサ上で全体の実行が終了し
たか否かを判定し、まだ、終了していなければ次のステ
ップのスケジューリングを行う(ステップ001)。
【0014】バッファメモリ中にジョブがなかった場合
には、カウンタのtargetが保持する値に1を加えた値を
GPEで割った余りを新たなtargetPEの値とする(ス
テップ005)。そして、targetPEが自己を指示して
いない場合には、targetPEが指示するプロセッサに対
してジョブを要求する(ステップ006、007)。一
方、targetPEが自己を指示している場合には、自己を
指示する場合はプロセッサグループ内を一通り要求した
ことを意味しているので、targetPGが保持する値に1
を加えた値をNofGで割った余りを新たなtargetPG
の値とし、そのtargetPGが指すプロセッサグループ内
のtargetPEに対して新たなジョブを要求する(ステッ
プ008)。ステップ007又はステップ008で新た
なジョブが得られる場合には、通常は1個以上のジョブ
をバッファメモリに格納し(ステップ009、01
0)、次のステップのスケジューリングを行う。ジョブ
が得られなかった場合には、ステップ005に戻り、別
のプロセッサにジョブの要求を行う(ステップ00
9)。
には、カウンタのtargetが保持する値に1を加えた値を
GPEで割った余りを新たなtargetPEの値とする(ス
テップ005)。そして、targetPEが自己を指示して
いない場合には、targetPEが指示するプロセッサに対
してジョブを要求する(ステップ006、007)。一
方、targetPEが自己を指示している場合には、自己を
指示する場合はプロセッサグループ内を一通り要求した
ことを意味しているので、targetPGが保持する値に1
を加えた値をNofGで割った余りを新たなtargetPG
の値とし、そのtargetPGが指すプロセッサグループ内
のtargetPEに対して新たなジョブを要求する(ステッ
プ008)。ステップ007又はステップ008で新た
なジョブが得られる場合には、通常は1個以上のジョブ
をバッファメモリに格納し(ステップ009、01
0)、次のステップのスケジューリングを行う。ジョブ
が得られなかった場合には、ステップ005に戻り、別
のプロセッサにジョブの要求を行う(ステップ00
9)。
【0015】例えば、図1は、プロセッサグループPG
0内のプロセッサPE0のバッファメモリにはジョブが
多数あり、その他のプロセッサ上にはジョブが1つもな
い状態が示されており、スケジューラ21〜36が有す
るカウンタのtargetPGの値は初期値としてそれぞれの
プロセッサグループ番号に1を加えた値が与えられ、ta
rgetPEの値は初期値としてそれぞれのプロセッサ番号
が与えられている。具体的には、プロセッサPE0につ
いては、プロセッサグループがPG0でプロセッサグル
ープ番号が0であるので、targetPGにはこれに1を加
えた1の値が与えられ、また、プロセッサ番号が0であ
るので、targetPEには0の値が与えられている。
0内のプロセッサPE0のバッファメモリにはジョブが
多数あり、その他のプロセッサ上にはジョブが1つもな
い状態が示されており、スケジューラ21〜36が有す
るカウンタのtargetPGの値は初期値としてそれぞれの
プロセッサグループ番号に1を加えた値が与えられ、ta
rgetPEの値は初期値としてそれぞれのプロセッサ番号
が与えられている。具体的には、プロセッサPE0につ
いては、プロセッサグループがPG0でプロセッサグル
ープ番号が0であるので、targetPGにはこれに1を加
えた1の値が与えられ、また、プロセッサ番号が0であ
るので、targetPEには0の値が与えられている。
【0016】ここで、プロセッサグループPG0におけ
るプロセッサPE0では、バッファメモリ53から次々
とジョブが取り出されては実行される。プロセッサグル
ープPG0における他のプロセッサPE1、PE2、P
E3では、targetPG及びtargetPEが示す値にしたが
って新たなジョブを要求する。すなわち、プロセッサP
E1はtargetPEの値1に1を加え、GPEすなわち4
で割った余り2をtargetPEの値として、プロセッサP
E2に対してジョブの要求を行う。同様にして、プロセ
ッサPE2はプロセッサPE3に、プロセッサPE3は
プロセッサPE0に対してジョブを要求する。プロセッ
サグループPG0の他のプロセッサグループのプロセッ
サも同様なスケジューリングを行う。図1の例では、プ
ロセッサグループPG0以外のプロセッサグループのプ
ロセッサはグループ内のプロセッサに対してジョブを要
求してもジョブを得られないので、targetPGの指示す
る別のプロセッサグループ内のプロセッサに対してジョ
ブの要求を行う。例えば、プロセッサグループPG3の
プロセッサPE3が、ステップ005においてtargetP
Eの値が3となった場合には、targetPEは自己のプロ
セッサを示す事となり、ステップ008に進んで、targ
etPGの値は、targetPG値を1加えて4とし、この4
をNotG=4で割った余りの0となるので、プロセッ
サグループPG0のプロセッサPE3に対してジョブを
要求する。その後、プロセッサグループPG3のプロセ
ッサPE3は、プロセッサグループPG0内のPE0、
PE1、PE2順にジョブを要求することになる。
るプロセッサPE0では、バッファメモリ53から次々
とジョブが取り出されては実行される。プロセッサグル
ープPG0における他のプロセッサPE1、PE2、P
E3では、targetPG及びtargetPEが示す値にしたが
って新たなジョブを要求する。すなわち、プロセッサP
E1はtargetPEの値1に1を加え、GPEすなわち4
で割った余り2をtargetPEの値として、プロセッサP
E2に対してジョブの要求を行う。同様にして、プロセ
ッサPE2はプロセッサPE3に、プロセッサPE3は
プロセッサPE0に対してジョブを要求する。プロセッ
サグループPG0の他のプロセッサグループのプロセッ
サも同様なスケジューリングを行う。図1の例では、プ
ロセッサグループPG0以外のプロセッサグループのプ
ロセッサはグループ内のプロセッサに対してジョブを要
求してもジョブを得られないので、targetPGの指示す
る別のプロセッサグループ内のプロセッサに対してジョ
ブの要求を行う。例えば、プロセッサグループPG3の
プロセッサPE3が、ステップ005においてtargetP
Eの値が3となった場合には、targetPEは自己のプロ
セッサを示す事となり、ステップ008に進んで、targ
etPGの値は、targetPG値を1加えて4とし、この4
をNotG=4で割った余りの0となるので、プロセッ
サグループPG0のプロセッサPE3に対してジョブを
要求する。その後、プロセッサグループPG3のプロセ
ッサPE3は、プロセッサグループPG0内のPE0、
PE1、PE2順にジョブを要求することになる。
【0017】以上のような繰り返しでジョブの要求が行
われた後に、例えば、図3のような状態になったとす
る。この時に手持ちのジョブがないプロセッサはPG0
のPE1と、PG1のPE3であるが、これらは同一グ
ループ内のPE3とPE1にジョブを要求してジョブを
得ることができる。
われた後に、例えば、図3のような状態になったとす
る。この時に手持ちのジョブがないプロセッサはPG0
のPE1と、PG1のPE3であるが、これらは同一グ
ループ内のPE3とPE1にジョブを要求してジョブを
得ることができる。
【0018】なお、上記説明においては、プロセッサグ
ループの数を4とし、各グループに含まれるプロセッサ
の数を4とした場合について説明したが、上記例に限ら
れないことはいうまでもない。
ループの数を4とし、各グループに含まれるプロセッサ
の数を4とした場合について説明したが、上記例に限ら
れないことはいうまでもない。
【0019】また、ネットワークで接続された疎結合の
並列計算機に利用する場合について述べたが、共有メモ
リを持った密結合の並列計算機、あるいはローカルネッ
トワークで接続された分散計算機環境にも適用できるこ
とはいうまでもない。また、上記上記説明では、各プロ
セッサのスケジューラはカウンタの初期値として各々が
別の値を持っているが、全体のジョブの実行が開始され
る時一番ジョブを多く持っているプロセッサがあらかじ
め分かっている場合には、初期値として一定値を与えた
方がさらに効率よく行えることはいうまでもない。さら
に、上記説明で用いたtargetPGはカウンタになってい
るが、固定とした場合には負荷の均等化の効率は悪くな
るが、同様の効果を得ることができる。
並列計算機に利用する場合について述べたが、共有メモ
リを持った密結合の並列計算機、あるいはローカルネッ
トワークで接続された分散計算機環境にも適用できるこ
とはいうまでもない。また、上記上記説明では、各プロ
セッサのスケジューラはカウンタの初期値として各々が
別の値を持っているが、全体のジョブの実行が開始され
る時一番ジョブを多く持っているプロセッサがあらかじ
め分かっている場合には、初期値として一定値を与えた
方がさらに効率よく行えることはいうまでもない。さら
に、上記説明で用いたtargetPGはカウンタになってい
るが、固定とした場合には負荷の均等化の効率は悪くな
るが、同様の効果を得ることができる。
【0020】
【発明の効果】本発明は以上のように構成され、プロセ
ッサをグループ化することによって、実行すべきジョブ
がなくなったときに、まず、グループ内のプロセッサに
対してジョブを要求し、そのいずれからもジョブが得ら
れなかった場合に、他のグループ内のプロセッサに対し
てジョブを要求するので、プロセッサの台数が多くなっ
た場合にも、要求するメッセージ及びジョブの移動距離
を従来の方式よりも平均的に短くでき、ジョブの局所性
も保たれやすく、並列計算機における負荷の動的均等化
方式を効率よく行うことができる。
ッサをグループ化することによって、実行すべきジョブ
がなくなったときに、まず、グループ内のプロセッサに
対してジョブを要求し、そのいずれからもジョブが得ら
れなかった場合に、他のグループ内のプロセッサに対し
てジョブを要求するので、プロセッサの台数が多くなっ
た場合にも、要求するメッセージ及びジョブの移動距離
を従来の方式よりも平均的に短くでき、ジョブの局所性
も保たれやすく、並列計算機における負荷の動的均等化
方式を効率よく行うことができる。
【図1】本発明の実施例の並列計算機において、負荷の
均等化を行う前の状態を示す図である。
均等化を行う前の状態を示す図である。
【図2】本発明の実施例における各プロセッサのスケジ
ューリングを示すアルゴリズムである。
ューリングを示すアルゴリズムである。
【図3】本発明の実施例の並列計算機において、負荷の
均等化を行っている最中の状態を示す図である。
均等化を行っている最中の状態を示す図である。
【図4】従来の並列計算機において、負荷の均等化を行
う前の状態を示す図である。
う前の状態を示す図である。
【図5】従来における各プロセッサのスケジューリング
を示すアルゴリズムである。
を示すアルゴリズムである。
【図6】従来の並列計算機において、負荷の均等化を行
っている最中の状態を示す図である。
っている最中の状態を示す図である。
1〜16 プロセッサ 17〜20 プロセッサグループ 21〜36 スケジューラ 41〜56 バッファメモリ 60〜63 ジョブ 70 ネットワーク
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成5年10月5日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0016
【補正方法】変更
【補正内容】
【0016】ここで、プロセッサグループPG0におけ
るプロセッサPE0では、バッファメモリ53から次々
とジョブが取り出されては実行される。プロセッサグル
ープPG0における他のプロセッサPE1、PE2、P
E3では、targetPG及びtargetPEが示す値にしたが
って新たなジョブを要求する。すなわち、プロセッサP
E1はtargetPEの値1に1を加え、GPEすなわち4
で割った余り2をtargetPEの値として、プロセッサP
E2に対してジョブの要求を行う。同様にして、プロセ
ッサPE2はプロセッサPE3に、プロセッサPE3は
プロセッサPE0に対してジョブを要求する。プロセッ
サグループPG0の他のプロセッサグループのプロセッ
サも同様なスケジューリングを行う。図1の例では、プ
ロセッサグループPG0以外のプロセッサグループのプ
ロセッサはグループ内のプロセッサに対してジョブを要
求してもジョブを得られないので、targetPGの指示す
る別のプロセッサグループ内のプロセッサに対してジョ
ブの要求を行う。例えば、プロセッサグループPG3の
プロセッサPE3が、ステップ005においてtargetP
Eの値が3となった場合には、targetPEは自己のプロ
セッサを示す事となり、ステップ008に進んで、targ
etPGの値は、targetPG値を1加えて4とし、この4
をNofG=4で割った余りの0となるので、プロセッ
サグループPG0のプロセッサPE3に対してジョブを
要求する。その後、プロセッサグループPG3のプロセ
ッサPE3は、プロセッサグループPG0内のPE0、
PE1、PE2順にジョブを要求することになる。
るプロセッサPE0では、バッファメモリ53から次々
とジョブが取り出されては実行される。プロセッサグル
ープPG0における他のプロセッサPE1、PE2、P
E3では、targetPG及びtargetPEが示す値にしたが
って新たなジョブを要求する。すなわち、プロセッサP
E1はtargetPEの値1に1を加え、GPEすなわち4
で割った余り2をtargetPEの値として、プロセッサP
E2に対してジョブの要求を行う。同様にして、プロセ
ッサPE2はプロセッサPE3に、プロセッサPE3は
プロセッサPE0に対してジョブを要求する。プロセッ
サグループPG0の他のプロセッサグループのプロセッ
サも同様なスケジューリングを行う。図1の例では、プ
ロセッサグループPG0以外のプロセッサグループのプ
ロセッサはグループ内のプロセッサに対してジョブを要
求してもジョブを得られないので、targetPGの指示す
る別のプロセッサグループ内のプロセッサに対してジョ
ブの要求を行う。例えば、プロセッサグループPG3の
プロセッサPE3が、ステップ005においてtargetP
Eの値が3となった場合には、targetPEは自己のプロ
セッサを示す事となり、ステップ008に進んで、targ
etPGの値は、targetPG値を1加えて4とし、この4
をNofG=4で割った余りの0となるので、プロセッ
サグループPG0のプロセッサPE3に対してジョブを
要求する。その後、プロセッサグループPG3のプロセ
ッサPE3は、プロセッサグループPG0内のPE0、
PE1、PE2順にジョブを要求することになる。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0019
【補正方法】変更
【補正内容】
【0019】また、ネットワークで接続された疎結合の
並列計算機に利用する場合について述べたが、共有メモ
リを持った密結合の並列計算機、あるいはローカルネッ
トワークで接続された分散計算機環境にも適用できるこ
とはいうまでもない。また、上記説明では、各プロセッ
サのスケジューラはカウンタの初期値として各々が別の
値を持っているが、全体のジョブの実行が開始される時
一番ジョブを多く持っているプロセッサがあらかじめ分
かっている場合には、初期値として一定値を与えた方が
さらに効率よく行えることはいうまでもない。さらに、
上記説明で用いたtargetPGはカウンタになっている
が、固定とした場合でも負荷の均等化の効率は悪くなる
が、同様の効果を得ることができる。
並列計算機に利用する場合について述べたが、共有メモ
リを持った密結合の並列計算機、あるいはローカルネッ
トワークで接続された分散計算機環境にも適用できるこ
とはいうまでもない。また、上記説明では、各プロセッ
サのスケジューラはカウンタの初期値として各々が別の
値を持っているが、全体のジョブの実行が開始される時
一番ジョブを多く持っているプロセッサがあらかじめ分
かっている場合には、初期値として一定値を与えた方が
さらに効率よく行えることはいうまでもない。さらに、
上記説明で用いたtargetPGはカウンタになっている
が、固定とした場合でも負荷の均等化の効率は悪くなる
が、同様の効果を得ることができる。
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図6
【補正方法】変更
【補正内容】
【図6】
Claims (1)
- 【請求項1】 複数のプロセッサを有し、各プロセッサ
がジョブを保持しておくジョブ保持部と、該ジョブ保持
部からジョブを取り出して実行するとともに、ジョブ保
持部に実行すべきジョブがない場合に他のプロセッサに
対して新たなジョブの要求を行うスケジューラとを有す
る並列計算機において、 上記複数のプロセッサを複数のグループに分けて構成
し、 各プロセッサは、そのプロセッサが属するグループ内の
プロセッサにジョブを要求し、そのグループ内でジョブ
が得られない場合に、他のグループのプロセッサにジョ
ブを要求することを特徴とする並列計算機。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4219599A JPH0668051A (ja) | 1992-07-28 | 1992-07-28 | 並列計算機 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4219599A JPH0668051A (ja) | 1992-07-28 | 1992-07-28 | 並列計算機 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0668051A true JPH0668051A (ja) | 1994-03-11 |
Family
ID=16738062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4219599A Pending JPH0668051A (ja) | 1992-07-28 | 1992-07-28 | 並列計算機 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0668051A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8049933B2 (en) | 2003-09-17 | 2011-11-01 | Canon Kabushiki Kaisha | Copy-forgery-inhibited pattern image generation method and image processing apparatus |
US8054550B2 (en) | 2007-09-20 | 2011-11-08 | Toppan Printing Co., Ltd. | Optical device, laminate and labeled article |
US8055180B2 (en) | 2003-09-17 | 2011-11-08 | Canon Kabushiki Kaisha | Copy-forgery-inhibited pattern density parameter determination method, copy-forgery-inhibited pattern image generation method, and image processing |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63168761A (ja) * | 1987-01-07 | 1988-07-12 | Fujitsu Ltd | 並列処理系構成方式 |
-
1992
- 1992-07-28 JP JP4219599A patent/JPH0668051A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63168761A (ja) * | 1987-01-07 | 1988-07-12 | Fujitsu Ltd | 並列処理系構成方式 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8049933B2 (en) | 2003-09-17 | 2011-11-01 | Canon Kabushiki Kaisha | Copy-forgery-inhibited pattern image generation method and image processing apparatus |
US8055180B2 (en) | 2003-09-17 | 2011-11-08 | Canon Kabushiki Kaisha | Copy-forgery-inhibited pattern density parameter determination method, copy-forgery-inhibited pattern image generation method, and image processing |
US8553291B2 (en) | 2003-09-17 | 2013-10-08 | Canon Kabushiki Kaisha | Copy-forgery-inhibited pattern image generation method and image processing apparatus |
US10038802B2 (en) | 2003-09-17 | 2018-07-31 | Canon Kabushiki Kaisha | Copy-forgery-inhibited pattern image generation method and image processing apparatus |
US8054550B2 (en) | 2007-09-20 | 2011-11-08 | Toppan Printing Co., Ltd. | Optical device, laminate and labeled article |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7219121B2 (en) | Symmetrical multiprocessing in multiprocessor systems | |
US20080301406A1 (en) | System and method for allocating communications to processors in a multiprocessor system | |
US7269179B2 (en) | Control mechanisms for enqueue and dequeue operations in a pipelined network processor | |
US8510751B2 (en) | Optimizing workflow engines | |
JP5668014B2 (ja) | プロセッサにおけるタスクおよびデータ管理 | |
US5517662A (en) | Multiprocessor system with distributed memory | |
CN1238793C (zh) | 分布式存储器控制和带宽优化 | |
US7000048B2 (en) | Apparatus and method for parallel processing of network data on a single processing thread | |
EP2652614B1 (en) | Graphics processing dispatch from user mode | |
CN100535850C (zh) | 用于在编程引擎之间传送数据的方法和装置 | |
WO2007084700A2 (en) | System and method for thread handling in multithreaded parallel computing of nested threads | |
CN111309649A (zh) | 一种数据传输和任务处理方法、装置及设备 | |
US7433364B2 (en) | Method for optimizing queuing performance | |
US11650884B2 (en) | I/O to unpinned memory supporting memory overcommit and live migration of virtual machines | |
US6874040B2 (en) | Employing a data mover to communicate between dynamically selected zones of a central processing complex | |
CN111736959B (zh) | 异构集群下考虑数据亲和性的Spark任务调度方法 | |
JPH0668051A (ja) | 並列計算機 | |
CN114489807A (zh) | 在计算节点上分配对作业的处理 | |
JP7180424B2 (ja) | 並列処理装置、データ転送先決定方法およびデータ転送先決定プログラム | |
US7130936B1 (en) | System, methods, and computer program product for shared memory queue | |
US20070079077A1 (en) | System, method, and computer program product for shared memory queue | |
US7228375B1 (en) | System and method for efficient input/output of a computer system | |
CN109254844B (zh) | 一种大规模图的三角形计算方法 | |
US20110271060A1 (en) | Method And System For Lockless Interprocessor Communication | |
JPH09160884A (ja) | 動的負荷分散並列計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040930 |