JP2615408B2 - Parallel computer system - Google Patents

Parallel computer system

Info

Publication number
JP2615408B2
JP2615408B2 JP5255306A JP25530693A JP2615408B2 JP 2615408 B2 JP2615408 B2 JP 2615408B2 JP 5255306 A JP5255306 A JP 5255306A JP 25530693 A JP25530693 A JP 25530693A JP 2615408 B2 JP2615408 B2 JP 2615408B2
Authority
JP
Japan
Prior art keywords
processor
load
group
processor group
type
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 - Lifetime
Application number
JP5255306A
Other languages
Japanese (ja)
Other versions
JPH0793265A (en
Inventor
貴之 中川
真知子 朝家
俊明 垂井
徳安 井門
Original Assignee
工業技術院長
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 工業技術院長 filed Critical 工業技術院長
Priority to JP5255306A priority Critical patent/JP2615408B2/en
Publication of JPH0793265A publication Critical patent/JPH0793265A/en
Application granted granted Critical
Publication of JP2615408B2 publication Critical patent/JP2615408B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明は動的負荷分散を行なう並
列計算機システムに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a parallel computer system for performing dynamic load distribution.

【0002】[0002]

【従来の技術】従来、並列計算機システムにおける各プ
ロセッサが実行する負荷の均等化については”Load
Dispatching Strategy on
Parallel Inference Machin
es”(FGCS88予稿集、Vol.3、pp987
〜993、1988年)において論じられている。
2. Description of the Related Art Conventionally, load equalization executed by each processor in a parallel computer system is described in "Load."
Dispatching Strategy on
Parallel Inference Machine
es ”(FGCS88 Proceedings, Vol. 3, pp 987
993, 1988).

【0003】上記従来技術では、それぞれ共有メモリに
接続された複数のプロセッサより最下層のプロセッサグ
ループを複数構成し、更にこれらのプロセッサグループ
をネットワークにより階層的に接続して、階層化された
プロセッサグループを実現する。各プロセッサ毎の実行
待ち負荷量をそのプロセッサが属する最下層のグループ
の共有メモリに置き、各最下層のグループの代表プロセ
ッサが、自グループの負荷を他のグループに分散するに
当たり、他のプロセッサグループの代表プロセッサにそ
の負荷量を問い合わせ、その、他グループの負荷と自グ
ループの負荷とに基づいて自グループの負荷の分散を制
御していた。
In the above prior art, a plurality of lowermost processor groups are formed from a plurality of processors connected to a shared memory, respectively, and these processor groups are hierarchically connected by a network to form a hierarchical processor group. To achieve. The amount of execution waiting load for each processor is placed in the shared memory of the lowest group to which the processor belongs, and when the representative processor of each lowest group distributes the load of its own group to another group, another processor group The load amount of the own group is controlled based on the load of the other group and the load of the own group.

【0004】この負荷量の問い合わせは、問い合わせ先
のグループの代表プロセッサで実行中の通常処理の進行
を阻害しないようにするため、その通常処理の切れ目を
待って行なっていた。
[0004] Inquiring of the load amount is performed at a break of the normal processing so as not to hinder the progress of the normal processing being executed by the representative processor of the group of the inquiry destination.

【0005】[0005]

【発明が解決しようとする課題】上記従来技術では、こ
のように負荷量の問い合わせを問い合わせ先での通常処
理の切れ目で行なうため、負荷分散制御は、平均して通
常処理の半分の時間待たされる。
In the above-mentioned prior art, since the inquiry about the load amount is made at the break of the normal processing at the inquiry destination, the load distribution control waits half the time of the normal processing on average. .

【0006】さらにこの従来技術では、負荷分散元のグ
ループの代表プロセッサから他のグループに負荷を問い
合わせるメッセージを転送するため、それらの二つのグ
ループ間でこのメッセージを転送するに必要な時間が掛
かる。とくに、これらのグループが属する階層が異なる
程、この転送時間が大きくなる。
Further, in this prior art, since a message for inquiring about the load from the representative processor of the load distribution source group to another group is transferred, it takes a long time to transfer this message between the two groups. In particular, the transfer time increases as the layers to which these groups belong differ.

【0007】本発明は、上記2つの問題点を解決し、効
率の良い動的負荷分散を行なう並列計算機システムを提
供することを目的とする。
An object of the present invention is to solve the above two problems and to provide a parallel computer system for performing efficient dynamic load distribution.

【0008】[0008]

【課題を解決するための手段】上記目的を解決するため
に、本並列計算機は、それぞれ共有メモリに接続された
複数のプロセッサからなる複数の下位プロセッサグルー
プと、該複数のプロセッサグループを相互に接続するネ
ットワークからなるものとする。
[Means for Solving the Problems] In order to solve the above-mentioned purpose
The parallel computers were connected to shared memory
Multiple lower processor groups consisting of multiple processors
And a network for interconnecting the plurality of processor groups.
Network.

【0009】そして、該ネットワークは、それぞれ一つ
のプロセッサグループに対応して設けられ、その対応す
るプロセッサグループに属するプロセッサに関連するメ
ッセージの転送を中継するための複数の通信制御プロセ
ッサと、それぞれ該複数のプロセッサグループのそれぞ
れ一部を包含する複数の上位プロセッサグループの一つ
に対応して設けられた複数の下位ネットワークノードで
あって、それぞれ該対応する一つの上位プロセッサグル
ープに属する一部の複数の下位プロセッサグループに接
続された一群の通信制御プロセッサに共通に接続された
ものと、該複数の下位ネットワークノードを相互に接続
する少なくとも一つの上位ネットワークノードとを有す
るものとする。
[0009] The networks each have one
Are provided corresponding to the processor groups of
Related to processors belonging to the specified processor group.
Multiple communication control processes to relay message transfer
And each of the plurality of processor groups
One of a number of higher-level processor groups
With multiple lower network nodes provided corresponding to
And the corresponding one of the upper processor
Connected to some lower-level processor groups belonging to
Connected to a group of connected communication control processors
And the plurality of lower network nodes interconnected
With at least one upper network node
Shall be.

【0010】また、各下位ネットワークノードは、それ
に対応する上位プロセッサグループに含まれる一部の複
数の下位プロセッサグループのそれぞれに対応して設け
られた複数の第1種負荷レジスタと、該一部の複数の下
位プロセッサグループに接続された一群の通信制御プロ
セッサとの間でメッセージの中継を行なう第1種ネット
ワーク制御回路とを有し、該上位ネットワークノード
は、該複数の下位プロセッサグループのそれぞれに対応
して設けられた複数の第2種負荷レジスタと、該複数の
下位ネットワークノードとの間でメッセージの中継を行
なう第2種ネットワーク回路とを有するものとする。
Further , each lower network node
Some duplicates included in the upper processor group corresponding to
Provided for each of the number of lower processor groups
A plurality of type 1 load registers, and a plurality of
Group of communication control processors connected to
Type 1 net that relays messages to and from Sessa
A work control circuit, and the upper network node
Corresponds to each of the plurality of lower-level processor groups.
A plurality of second-type load registers provided as
Relays messages to lower-level network nodes
And a second type network circuit.

【0011】また、各プロセッサは、それに接続された
共有メモリ内のそのプロセッサに対応して定められた負
荷格納領域に、プロセッサがサブプログラム処理を完了
する毎にそのプロセッサの負荷を格納するようにプログ
ラムされるものとする。
Also, each processor is connected to it.
Negative for the processor in shared memory
Processor completes subprogram processing in load storage area
Program to store the processor load every time
Shall be rammed.

【0012】また、各通信制御プロセサは、通信制御プ
ロセッサがメッセージの中継のプログラム処理を完了す
る毎に、対応する下位プロセッサグループに対して設け
られた共有メモリ内の複数の負荷格納領域から、そのプ
ロセッサグループに属する個々のプロセッサの負荷を読
み出し、読み出された負荷を加算することでそのプロセ
ッサグループの負荷を算出し、算出された負荷を、その
通信制御プロセッサに接続された下位ネットワークノー
ド内の、その下位プロセッサグループに対応して設けら
れた共有レジスタである第1種負荷レジスタに書き込む
手段と、その対応する下位プロセッサグループに対応し
て設けられた第1種負荷レジスタに保持された負荷と当
該下位プロセッサグループに対応して設けられた分配閾
値とを比較する手段と、当該第1種負荷レジスタに保持
されている負荷がその分配閾値以上の場合に、その対応
する下位プロセッサグループが属する上位プロセッサグ
ループに属し、かつ、負荷値が最小である他の一つの下
位プロセッサグループを選択する手段と、その選択した
他の一つの下位プロセッサグループに対応して設けられ
た第1種負荷レジスタに保持された負荷とを読み出し、
これらの読み出された負荷に基づいて、その対応する下
位プロセッサグループの負荷の一部を上記他の下位プロ
セッサグループに分配すべきか否かを判別する手段と、
当該他の一つのプロセッサグループに対応する該第1種
負荷レジスタに保持されている負荷値が当該下位プロセ
ッサグループに対応する該第1種負荷レジスタの負荷値
より小さい場合に当該下位プロセッサグループから当該
他の一つの下位プロセッサグループへ負荷を分配する手
段を有するものとする。
Further, each time the communication control processor completes the message relay program processing, the communication control processor reads a plurality of load storage areas from the plurality of load storage areas in the shared memory provided for the corresponding lower processor group. The load of each processor belonging to the processor group is read, the load of the processor group is calculated by adding the read loads, and the calculated load is stored in a lower network node connected to the communication control processor. Means for writing to a type 1 load register which is a shared register provided for the lower processor group, and a load held in the type 1 load register provided for the corresponding lower processor group. A method for comparing with a distribution threshold provided for the lower processor group If, when the load has been held in the first type load register is more than the distribution threshold value, the host processor grayed the lower processor group to which the corresponding belongs
Means for selecting another lower processor group that belongs to the loop and has the smallest load value, and is held in a first type load register provided corresponding to the selected other lower processor group. And read the load
Means for determining whether to distribute a part of the load of the corresponding lower processor group to the other lower processor group based on the read loads,
If the load value held in the first type load register corresponding to the other one processor group is smaller than the load value of the first type load register corresponding to the lower processor group, the lower processor group will It is assumed that a means for distributing the load to another lower processor group is provided.

【0013】また、各下位ネットワークノード内の第1
種のネットワーク制御回路は、第1種のネットワーク制
御回路がメッセージの中継のプログラム処理を完了する
毎に、その下位ネットワークノード内に設けられた上記
複数の第1種負荷レジスタから、その下位ネットワーク
ノードに対応する上位プロセッサグループに属する個々
の下位プロセッサグループの負荷を読み出し、これらの
読み出された負荷を加算することでその対応する上位プ
ロセッサグループの負荷を算出し、算出された負荷を、
上記上位ネットワークノード内の、その対応する上位プ
ロセサグループに対応して設けられた共有レジスタであ
る第2種負荷レジスタに書き込む手段と、その対応する
上位プロセッサグループに対応して設けられた第2種負
荷レジスタに保持された負荷と当該上位プロセッサグル
ープに対応して設けられた分配閾値とを比較する手段
と、当該第2種負荷レジスタに保持されている負荷がそ
の分配閾値以上の場合に、その対応する上位プロセッサ
グループ以外の、負荷値が最小である同一レベルの他の
一つの上位プロセッサグループを選択する手段と、その
選択した他の一つの上位プロセッサグループに対応して
設けられた第2種負荷レジスタに保持された負荷とを読
み出し、これらの読み出された負荷に基づいて、その対
応する上位ブロセッサグループの負荷の一部を、上記他
の上位プロセッサグループに分配すべきか否かを判別す
る手段と、当該他の一つの上位プロセッサグループに対
応する該第2種負荷レジスタに保持されている負荷値が
当該上位プロセッサグループに対応する該第2種負荷レ
ジスタの負荷値より小さい場合に当該上位プロセッサグ
ループから当該他の一つの上位プロセッサグループへ負
荷を分散する手段を有し、ここで前記負荷はプロセッサ
グループに属するプロセッサでの実行待ち状態にあるサ
ブプログラムの総数であるものとする。
Also, the first in each lower network node
Each time the first type of network control circuit completes the message relay program processing, the type of network control circuit reads the plurality of first type load registers provided in the lower level network node from the lower level network node. The load of each lower processor group belonging to the upper processor group corresponding to is read, the load of the corresponding upper processor group is calculated by adding these read loads, and the calculated load is
Means for writing to a second type load register, which is a shared register provided for the corresponding upper processor group, in the upper network node, and a second type provided for the corresponding upper processor group Means for comparing the load held in the load register with a distribution threshold provided for the higher-level processor group; and, when the load held in the second type load register is equal to or greater than the distribution threshold, Other than the corresponding upper-level processor group ,
The means for selecting one upper processor group and the loads held in the second type load registers provided corresponding to the other selected upper processor group are read out, and these read loads are read. Means for determining whether to distribute a part of the load of the corresponding upper processor group to the other upper processor group based on the second type corresponding to the other upper processor group. Means for distributing the load from the upper processor group to the other upper processor group when the load value held in the load register is smaller than the load value of the second type load register corresponding to the upper processor group. Wherein the load is the total number of subprograms waiting to be executed by the processors belonging to the processor group. And those which are.

【0014】[0014]

【作用】各下位または上位のプロセッサグループの負荷
量を保持するネットワーク内に設け、負荷量をプログラ
ム完了毎に設定するようにし、これを参照して各プロセ
ッサグループの負荷を分散するか判別する手段をネット
ワーク内に設けたので、最新の負荷値を参照しながら、
各プロセッサに負荷を問い合わせることなく負荷の分配
を実行できる。
The present invention is provided in a network for holding the load amount of each lower or upper processor group, and the load amount is programmed.
Is set every time the system is completed, and means for determining whether to distribute the load of each processor group with reference to this is provided in the network, so while referring to the latest load value,
Load distribution can be executed without inquiring each processor about the load.

【0015】[0015]

【実施例】以下、本発明の実施例を説明する。Embodiments of the present invention will be described below.

【0016】図1に、並列計算機システムを構成する複
数のプロセッサPE0からPE7およびこれらを接続す
るネットワークを示す。
FIG. 1 shows a plurality of processors PE0 to PE7 constituting a parallel computer system and a network connecting them.

【0017】本実施例の特徴の一つは、このネットワー
クが、これらのプロセッサを階層化された複数のプロセ
ッサグループに分けていることである。すなわち、共有
メモリ1は、それに接続されているプロセッサPE0〜
PE1間の通信に使用される。この共有メモリ1に接続
されたプロセッサPE0、PE1が最下層のプロセッサ
グループを構成する。同様に、共有メモリ2に接続され
たプロセッサPE2、PE3が他の最下層のプロセッサ
グループを構成する。共有メモリ3に接続されたプロセ
ッサPE4、PE5が他の最下層のプロセッサグループ
を構成する。共有メモリ4に接続されたプロセッサPE
6、PE7が他の最下層のプロセッサグループを構成す
る。
One of the features of this embodiment is that the network divides these processors into a plurality of hierarchical processor groups. That is, the shared memory 1 has the processors PE0 to PE0 connected thereto.
Used for communication between PE1. The processors PE0 and PE1 connected to the shared memory 1 form a lowermost processor group. Similarly, the processors PE2 and PE3 connected to the shared memory 2 constitute another lowermost processor group. The processors PE4 and PE5 connected to the shared memory 3 constitute another lowermost processor group. Processor PE connected to shared memory 4
6, PE7 forms another lowermost processor group.

【0018】以下では、これらの最下層のプロセッサグ
ループをレベル0のプロセッサグループということがあ
る。
Hereinafter, these lowermost processor groups may be referred to as level 0 processor groups.

【0019】以下では、PE0、PE1からなるグルー
プのグループ番号を#0、PE2、PE3からなるグル
ープのグループ番号を#1、PE4、PE5からなるグ
ループのグループ番号を#2、PE6、PE7からなる
グループのグループ番号を#3とする。
In the following, the group number of the group consisting of PE0 and PE1 is # 0, the group number of the group consisting of PE2 and PE3 is # 1, and the group number of the group consisting of PE4 and PE5 is # 2, PE6 and PE7. The group number of the group is # 3.

【0020】それぞれのグループのプロセッサは、それ
ぞれに対応して設けられた、ネットワークを構成する通
信制御プロセッサCC0、CC1、CC2、CC3に接
続されている。
The processors in each group are connected to communication control processors CC0, CC1, CC2, and CC3 which are provided correspondingly and form a network.

【0021】通信制御プロセッサCC0、CC1は、ネ
ットワークを構成するネットワークノード50に接続さ
れている。
The communication control processors CC0 and CC1 are connected to a network node 50 forming a network.

【0022】通信制御プロセッサCC2、CC3は、ネ
ットワークを構成するネットワークノード51に接続さ
れている。
The communication control processors CC2 and CC3 are connected to a network node 51 constituting a network.

【0023】ネットワークノード50とネットワークノ
ード51は、さらに上位のネットワークノード52に接
続されている。
The network nodes 50 and 51 are connected to a higher-level network node 52.

【0024】通信制御プロセッサCCi(i=0、1、
2、または3)は、それに接続されたレベル0のプロセ
ッサグループのプロセッサと、そのプロセッサグループ
以外のグループに属する他のプロセッサとの間に転送さ
れるメッセージの中継をする。つまり、これらの通信制
御プロセッサはレベル0のプロセッサグループ用であ
る。
The communication control processor CCi (i = 0, 1,
2 or 3) relays a message transferred between a processor of a level 0 processor group connected thereto and another processor belonging to a group other than the processor group. That is, these communication control processors are for a processor group of level 0.

【0025】ネットワークノード50は、通信制御プロ
セッサCC0に接続されたプロセッサPE0またはPE
1と通信制御プロセッサCC1に接続された他のプロセ
ッサPE2またはPE3との間あるいは通信制御プロセ
ッサCC0とCC1のいずれかに接続されたプロセッサ
PE0からPE3のいずれかとネットワークノード51
に接続された他のプロセッサPE4からPE7のいずれ
かとの間に転送されるメッセージの中継を行なう。
The network node 50 is connected to the processor PE0 or PE0 connected to the communication control processor CC0.
1 and another processor PE2 or PE3 connected to the communication control processor CC1, or any one of the processors PE0 to PE3 connected to one of the communication control processors CC0 and CC1 and the network node 51.
Relays a message transferred between any of the other processors PE4 to PE7 connected to the other.

【0026】言い替えると、ネットワークノード50
は、ネットワークノード51、52を経由することな
く、通信制御プロセッサCC0またはCC1に接続され
たプロセッサ間でメッセージを転送するためのネットワ
ークを構成する。こうして、通信制御プロセッサCC
0、CC1に接続されたプロセッサは、二つのレベル0
のプロセッサグループを含むプロセッサグループを構成
する。以下では、このプロセッサグループをレベル1の
プロセッサグループと呼ぶ。このグループの番号を#0
1とする。なお、本実施例では、メッセージを特定のプ
ロセッサに転送するときには、例えば、メッセージに転
送先プロセッサ番号を付ける。メッセージを特定のグル
ープに送るときには、メッセージにその転送先グループ
の番号を付ける。
In other words, the network node 50
Constitutes a network for transferring messages between processors connected to the communication control processor CC0 or CC1 without passing through the network nodes 51 and 52. Thus, the communication control processor CC
0, the processor connected to CC1 has two levels 0
Of the processor group including the processor group of. Hereinafter, this processor group is referred to as a level 1 processor group. # 0 of this group
Let it be 1. In this embodiment, when a message is transferred to a specific processor, for example, a transfer destination processor number is attached to the message. When sending a message to a particular group, number the message with its forwarding group.

【0027】同様に、ネットワークノード51は、ネッ
トワークノード50、52を経由することなく、通信制
御プロセッサCC2またはCC3に接続されたプロセッ
サ間でメッセージを転送するためのネットワークを構成
する。こうして、通信制御プロセッサCC2、CC3に
接続されたプロセッサは、他のレベル1のプロセッサグ
ループを構成する。このグループの番号を#23とす
る。
Similarly, the network node 51 forms a network for transferring a message between processors connected to the communication control processor CC2 or CC3 without passing through the network nodes 50 and 52. Thus, the processors connected to the communication control processors CC2 and CC3 form another level 1 processor group. The group number is # 23.

【0028】ネットワークノード52は、ネットワーク
ノード50に接続されたプロセッサとネットワークノー
ド51に接続された他のプロセッサとの間で転送される
メッセージの中継を行なう。言い替えると、ネットワー
クノード52は、ネットワークノード50、51に接続
されたレベル1のグループ#01に属するプロセッサ
と、レベル1のグループ#23に属するプロセッサを包
含する一つのプロセッサグループ内でのメッセージの通
信を中継する。
The network node 52 relays a message transferred between a processor connected to the network node 50 and another processor connected to the network node 51. In other words, the network node 52 communicates messages within one processor group including processors belonging to the level 1 group # 01 and processors belonging to the level 1 group # 23 connected to the network nodes 50 and 51. Relay.

【0029】以上から明らかなように、本実施例には、
4つのレベル0のプロセッサグループ#0、#1、#
2、#3が含まれ、さらに、二つのレベル1のプロセッ
サグループ#01、#23が含まれている。
As is clear from the above, in this embodiment,
Four level 0 processor groups # 0, # 1, #
2 and # 3, and two level 1 processor groups # 01 and # 23.

【0030】本実施例の他の特徴は、各レベルのグルー
プの負荷はネットワークに分散して記憶されていること
である。すなわち、ネットワークノード50には、レベ
ル0のグループ#0の負荷量の総和を保持するレジスタ
10と、レベル0のグループ#1の負荷量を保持するレ
ジスタ11とが設けられている。
Another feature of this embodiment is that the load of each level group is distributed and stored in the network. That is, the network node 50 is provided with the register 10 for holding the sum of the load amounts of the level 0 group # 0 and the register 11 for holding the load amount of the level 0 group # 1.

【0031】同様に、ネットワークノード51には、レ
ベル0のグループ#2の負荷量を保持するレジスタ12
と、レベル0のグループ#3の負荷量を保持するレジス
タ13とが設けられている。
Similarly, the network node 51 has a register 12 for holding the load amount of the level # 0 group # 2.
And a register 13 for holding the load of the group # 3 of level 0.

【0032】同様に、ネットワークノード52には、レ
ベル1のグループ#01の負荷量を保持するレジスタ0
1と、レベル1のグループ#23の負荷量を保持するレ
ジスタ23とが設けられている。
Similarly, the network node 52 has a register 0 for holding the load amount of the group # 01 of level 1.
1 and a register 23 for holding the load amount of the level # 1 group # 23.

【0033】なお、共有メモリ1から4内にある領域2
0から27はそれぞれ、個々のプロセッサPE0から7
の負荷量を保持するための領域である。それぞれの領域
への負荷量の書き込みは、対応するプロセッサにより行
なわれる。
The area 2 in the shared memories 1 to 4
0 to 27 are the individual processors PE 0 to 7 respectively.
This is an area for holding the load amount. Writing of the load amount to each area is performed by the corresponding processor.

【0034】本実施例のさらに他の特徴は、通信制御プ
ロセッサCC0、CC1、CC2、CC3がそれぞれレ
ベル0用の共有レジスタ10、11、12、13への負
荷量の書き込み行ない、さらに、これらを参照して負荷
の分散を行なうことである。すなわち、通信制御プロセ
ッサCC0、CC1は、ともに共有レジスタ10と11
を参照する。通信制御プロセッサCC2、CC3は、と
もに共有レジスタ12と13を参照する。
Still another feature of the present embodiment is that the communication control processors CC0, CC1, CC2, and CC3 write the load amounts to the shared registers 10, 11, 12, and 13 for level 0, respectively. Referencing and distributing the load. That is, the communication control processors CC0 and CC1 both share the registers 10 and 11
See The communication control processors CC2 and CC3 both refer to the shared registers 12 and 13.

【0035】同様に、ネットワークノード50内に設け
られたネットワーク制御回路CC01およびネットワー
クノード51内に設けられたネットワーク制御回路CC
23が、それぞれレベル1用の共有レジスタ01、23
への負荷量の書き込みを行なう。いずれのネットワーク
制御回路CC01、CC02もともにこれらのレジスタ
01、23を参照して負荷の分散を行なう。
Similarly, the network control circuit CC01 provided in the network node 50 and the network control circuit CC provided in the network node 51
23 are shared registers 01 and 23 for level 1, respectively.
Write the load amount to Both network control circuits CC01 and CC02 refer to these registers 01 and 23 to distribute the load.

【0036】本実施例で、各プロセッサPE0〜7およ
び通信制御プロセッサCC0〜3およびネットワーク制
御回路CC01、CC23はマイコン等により実現でき
る。また、本実施例では3階層構成のシステムで説明す
るが、階層が増えた場合も、階層毎の負荷量を管理する
ことにより、同様の効果が得られる。
In this embodiment, the processors PE0 to PE7, the communication control processors CC0 to CC3, and the network control circuits CC01 and CC23 can be realized by a microcomputer or the like. In this embodiment, a system having a three-layer structure will be described. However, even when the number of layers increases, the same effect can be obtained by managing the load amount for each layer.

【0037】各グループの負荷量は、例えば、一般に用
いられている、そのグループに属するプロセッサで実行
待ち状態にあるサブプログラムの総数で表す。
The load of each group is represented, for example, by the total number of commonly used sub-programs waiting to be executed by the processors belonging to the group.

【0038】本実施例の動作を以下に説明する。The operation of this embodiment will be described below.

【0039】図2は、各プロセッサPEi(但し、i=
0、1、、、または7)および各通信制御プロセッサC
Cj(但し、j=0、1、2、または3)、および各ネ
ットワーク制御回路CCk(但し、k=01または2
3)により実行される処理を示す。なお、ネットワーク
制御回路C03は、メッセージの中継を行なうが、負荷
の分散をしないので、ネットワーク制御回路CC01、
CC23とは区別される。
FIG. 2 shows each processor PEi (where i =
0, 1,, or 7) and each communication control processor C
Cj (where j = 0, 1, 2, or 3) and each network control circuit CCk (where k = 01 or 2)
The processing executed by 3) is shown. The network control circuit C03 relays the message, but does not distribute the load.
It is distinguished from CC23.

【0040】(1)各プロセッサPEiおよび各通信制
御プロセッサCCj、ネットワーク制御回路CCkは、
通常のプログラム処理c1を行なう。ここでプロセッサ
PEiが行なうプログラム処理とは、一つのサブプログ
ラムの処理などそのプロセッサが予定されているプログ
ラムの実行を言う。通信制御プロセッサCCiあるいは
ネットワーク制御回路CCkが行なうプログラム処理と
は、メッセージ1個の受信およびそのメッセージの転送
などのメッセージの中継処理を言う。
(1) Each processor PEi, each communication control processor CCj, and the network control circuit CCk
The normal program processing c1 is performed. Here, the program processing performed by the processor PEi refers to execution of a program for which the processor is scheduled, such as processing of one subprogram. The program processing performed by the communication control processor CCi or the network control circuit CCk refers to message relay processing such as reception of one message and transfer of the message.

【0041】(2)各プロセッサPEi、通信制御プロ
セッサCCjあるいはネットワーク制御回路CCkが上
に説明したプログラム処理を完了する毎に、負荷量のセ
ット処理c2を行なう。
(2) Each time each processor PEi, communication control processor CCj or network control circuit CCk completes the above-described program processing, a load amount setting processing c2 is performed.

【0042】すなわち、プロセッサPEi、例えば、P
E1は、自プロセッサの保持する実行待ち負荷量を対応
する共有メモリ、例えば1、上の負荷格納領域、例え
ば、領域20にセットする。
That is, the processor PEi, for example, P
E1 sets the amount of execution waiting load held by its own processor in the corresponding load storage area, for example, area 20 above the corresponding shared memory, for example, 1.

【0043】通信制御プロセッサCCj、例えばCC0
は、任意のあらかじめ定めた時点で、それぞれに接続さ
れたレベル0のプロセッサグループ、例えば、#0に属
する複数のプロセッサ、例えばPE0、1の負荷量を、
そのグループの共有メモリ、例えば1、の負荷格納領
域、例えば20、21から読みだし、それらを加算し
て、そのプロセッサグループの負荷量を算出する。
The communication control processor CCj, for example, CC0
Represents the load amount of a plurality of processors belonging to level 0, for example, a plurality of processors belonging to # 0, for example, PE0, 1 at any predetermined time,
The load is read from the shared memory of the group, for example, one load storage area, for example, 20, 21 and added to calculate the load of the processor group.

【0044】さらに、その算出された負荷量を、その通
信制御プロセッサCCjに接続されたネットワークノー
ド、例えばCC01、内のそのグループに対応して設け
られた共有レジスタ、例えば10にセットする。
Further, the calculated load amount is set in a shared register, eg, 10, provided corresponding to the group in a network node, eg, CC01, connected to the communication control processor CCj.

【0045】ネットワーク制御回路CCk、例えばCC
01は、任意のあらかじめ定めた時点で、それに接続さ
れたレベル0のプロセッサグループ、例えば#0、#1
の負荷量を、そのネットワーク制御回路CCkが含まれ
ているネットワークノード、例えば50、内の、それぞ
れのグループに対応する共有レジスタ、例えば10、1
1から読み出し、それらを加算して、そのネットワーク
制御回路CCkに接続されたレベル1のプロセッサグル
ープの負荷量を算出する。
Network control circuit CCk, for example, CC
01 is a level 0 processor group connected to it at any predetermined time, for example, # 0, # 1
Of the shared register corresponding to each group, for example, 10, 1 in the network node including the network control circuit CCk, for example, 50.
1 and add them to calculate the load amount of the level 1 processor group connected to the network control circuit CCk.

【0046】さらに、その算出された負荷量を、そのネ
ットワーク制御回路CCkに接続されたネットワークノ
ードCC03内のそのグループに対応して設けられた共
有レジスタ、例えば01にセットする。
Further, the calculated load amount is set in a shared register, for example, 01 provided corresponding to the group in the network node CC03 connected to the network control circuit CCk.

【0047】(3)処理c2の実行後、各通信制御プロ
セッサCcj、例えばCC0および各ネットワーク制御
回路CCk、例えばCC01は、図3に示す制御フロー
に即して、動的負荷分散制御c3を行う。すなわち、 (3a)ステップd1では、各通信制御プロセッサCC
j、例えばCC0は、その通信制御プロセッサCCjに
接続されたレベル0のプロセツサグループ、例えば#0
の負荷量を、対応するネットワークノード、例えば50
内の、そのグループに対応する共有レジスタ、例えば、
10より読み出し、あらかじめ定めた閾値定数Tと比較
する。比較の結果、そのグループの負荷量がT以上の場
合、ステップd2に進む。T未満の場合、負荷分散する
自プロセッサグループで実行する負荷が足りなくなる可
能性が高いので、動的負荷分散を取りやめる。
(3) After execution of the process c2, each communication control processor Ccj, for example, CC0 and each network control circuit CCk, for example, CC01, control the control flow shown in FIG.
According to the above, the dynamic load distribution control c3 is performed. That is, (3a) In step d1, each communication control processor CC
j, for example CC0, is a level 0 processor group, for example, # 0, connected to its communication control processor CCj.
Of the corresponding network node, for example, 50
, A shared register corresponding to the group, for example,
10 and is compared with a predetermined threshold constant T. As a result of the comparison, when the load amount of the group is equal to or larger than T, the process proceeds to step d2. If it is less than T, there is a high possibility that the load to be executed by the own processor group for which the load is to be distributed will be insufficient, so the dynamic load distribution is canceled.

【0048】同様に、このステップd1では、各ネット
ワーク制御回路CCj、例えばCC01は、その制御回
路CCkに接続されたレベル1のプロセッサグループ、
例えば#01の負荷量を、対応するネットワークノード
52内の、そのグループに対応する共有レジスタ、例え
ば01より読み出し、あらかじめ定めた閾値定数Tと比
較する。比較の結果、そのグループの負荷量がT以上の
場合、ステップd2に進む。T未満の場合、動的負荷分
散制御を取りやめる。
Similarly, in this step d1, each network control circuit CCj, for example, CC01 is a level 1 processor group connected to its control circuit CCk,
For example, the load amount of # 01 is read from the shared register corresponding to the group, for example, 01 in the corresponding network node 52, and is compared with a predetermined threshold constant T. As a result of the comparison, when the load amount of the group is equal to or larger than T, the process proceeds to step d2. If it is less than T, the dynamic load distribution control is cancelled.

【0049】(3b)ステップd2では、各通信制御プ
ロセッサCCj、例えばCC0および各ネットワーク制
御回路CCk、例えばCC01は、負荷分散対象の候補
プロセッサグループのグループ番号を決定する。
(3b) In step d2, each communication control processor CCj, eg, CC0, and each network control circuit CCk, eg, CC01, determines a group number of a candidate processor group to be load-balanced.

【0050】すなわち、通信制御プロセッサCCj、例
えばCC0は、その通信制御プロセッサCCjに接続さ
れたレベル0のプロセッサグループ、例えば#0が属す
るレベル1のプロセッサグループ、例えば#01に属す
る他のレベル0のプロセッサグループの一つを、負荷分
配先候補として、乱数により選択する。
That is, the communication control processor CCj, for example, CC0, is connected to the communication control processor CCj, and is a level 0 processor group, for example, a level 1 processor group to which # 0 belongs, for example, another level 0 belonging to # 01. One of the processor groups is selected by a random number as a load distribution destination candidate.

【0051】本実施例では、同一のレベル1のプロセッ
サグループに属するレベル0のプロセッサグループは、
二つしかないので、この選択においては、その通信制御
プロセッサCCj、例えばCC0に接続されたレベル0
のプロセッサグループ、例えば#01以外のレベル0の
プロセッサグループ、例えば、#1を選択することにな
る。このため、本実施例では、通信制御プロセッサCC
0は、分配先候補としてプロセッサグループ#1を選択
し、通信制御プロセッサCC1は、分配先候補としてプ
ロセッサグループ#0を選択する。通信制御プロセッサ
CC2、CC3についても同様である。
In this embodiment, level 0 processor groups belonging to the same level 1 processor group are:
Since there are only two, in this selection the level 0 connected to its communication control processor CCj, for example CC0
, For example, a processor group of level 0 other than # 01, for example, # 1. For this reason, in the present embodiment, the communication control processor CC
0 selects the processor group # 1 as the distribution destination candidate, and the communication control processor CC1 selects the processor group # 0 as the distribution destination candidate. The same applies to the communication control processors CC2 and CC3.

【0052】同様に、ネットワーク制御回路CCk、例
えばCC01は、そのネットワーク制御回路CCkに接
続されたレベル1のプロセッサグループ、例えば#01
が属するレベル2のプロセッサグループに属する他のレ
ベル1のプロセッサグループの一つを、負荷分配先候補
として、乱数により選択する。
Similarly, the network control circuit CCk, for example, CC01 is a level 1 processor group connected to the network control circuit CCk, for example, # 01.
One of the level 1 processor groups belonging to the level 2 processor group to which is belongs is selected as a load distribution destination candidate by using a random number.

【0053】本実施例では、同一のレベル2のプロセッ
サグループに属するレベル1のプロセッサグループは、
二つしかないので、この選択においては、そのネットワ
ーク制御回路CCk、例えばCC01に接続されたレベ
ル1のプロセッサグループ、例えば#01以外のレベル
1のプロセッサグループ、例えば、#23を選択するこ
とになる。このため、本実施例では、ネットワーク制御
回路CC01は、分配先候補としてプロセッサグループ
#23を選択し、ネットワーク制御回路23は、分配先
候補としてプロセッサグループ#01を選択する。
In this embodiment, the level 1 processor groups belonging to the same level 2 processor group are:
Since there are only two, in this selection, a level 1 processor group connected to the network control circuit CCk, for example, CC01, for example, a level 1 processor group other than # 01, for example, # 23 is selected. . Therefore, in the present embodiment, the network control circuit CC01 selects the processor group # 23 as a distribution destination candidate, and the network control circuit 23 selects the processor group # 01 as a distribution destination candidate.

【0054】(3c)ステップd3では、各通信制御プ
ロセッサCCj、例えばCC0および各ネットワーク制
御回路CCk、例えばCC01は、決定した負荷分散対
象の候補プロセッサグループの負荷量を、そのグループ
に対応付けられた共有レジスタから読み出す。
(3c) In step d3, each communication control processor CCj, eg, CC0, and each network control circuit CCk, eg, CC01, associates the determined load distribution of the candidate processor group for load distribution with the group. Read from the shared register.

【0055】例えば、通信制御プロセッサCC0は、分
配先候補のレベル0のプロセッサ#1の負荷量を共有レ
ジスタ11より読みだす。同様に、通信制御プロセッサ
CC1は、分配先候補のレベル0のプロセッサ#0の負
荷量を共有レジスタ10より読みだす。
For example, the communication control processor CC 0 reads out the load of the processor # 1 of level 0 as a distribution destination candidate from the shared register 11. Similarly, the communication control processor CC1 reads out the load amount of the distribution destination candidate level # 0 processor # 0 from the shared register 10.

【0056】同様に、ネットワーク制御回路CC01
は、分配先候補のレベル1のプロセッサ#23の負荷量
を共有レジスタ23より読みだし、ネットワーク制御回
路CC23は、分配先候補のレベル1のプロセッサ#0
1の負荷量を共有レジスタ01より読みだす。
Similarly, the network control circuit CC01
Reads the load amount of the distribution destination candidate level 1 processor # 23 from the shared register 23, and the network control circuit CC23 reads out the distribution destination candidate level 1 processor # 0.
1 is read from the shared register 01.

【0057】(3d)ステップd4では、各通信制御プ
ロセッサCCj、例えばCC0および各ネットワーク制
御回路CCk、例えばCC01は、読み出した、分配先
候補プロセッサグループの負荷量と分配元のプロセッサ
グループの負荷量を比較する。
(3d) In step d4, each communication control processor CCj, for example, CC0 and each network control circuit CCk, for example, CC01 read the load amount of the distribution destination candidate processor group and the load amount of the distribution source processor group. Compare.

【0058】例えば、通信制御プロセッサCC0は、そ
れに対応するレベル0のプロセッサ#0の負荷量を共有
レジスタ10より読みだし、先にステップd3で読み出
された負荷量と比較する。他の通信制御プロセッサCC
1等も同様である。
For example, the communication control processor CC0 reads the load amount of the processor # 0 of level 0 corresponding thereto from the shared register 10 and compares it with the load amount previously read in step d3. Other communication control processor CC
The same applies to 1 and the like.

【0059】ネットワーク制御回路CC01は、自己に
対応するレベル1のプロセッサグループ#01の負荷量
を共有レジスタ01より読みだし、先にステップd3読
みだした負荷量と比較する。
The network control circuit CC01 reads the load amount of the level 1 processor group # 01 corresponding to the network control circuit CC01 from the shared register 01, and compares it with the load amount previously read in step d3.

【0060】各通信制御プロセッサCCjあるいは各ネ
ットワーク制御回路CCkでの上記比較の結果、分配先
候補プロセッサグループの負荷量と分配元のプロセッサ
グループの負荷量を比較する候補プロセッサグループの
負荷量が分配元のプロセッサグループの負荷量より少な
い場合、そのステップd5に進む。そうでないときに
は、その通信制御プロセッサCCjあるいはネットワー
ク制御回路CCkは負荷分散を行なわない。
As a result of the above comparison in each communication control processor CCj or each network control circuit CCk, the load amount of the candidate processor group for comparing the load amount of the distribution destination candidate processor group with the load amount of the distribution source processor group is determined by the distribution source. If it is smaller than the load amount of the processor group, the process proceeds to step d5. Otherwise, the communication control processor CCj or the network control circuit CCk does not perform load distribution.

【0061】(3e)ステップd5では、負荷分配を行
なう。
(3e) In step d5, load distribution is performed.

【0062】すなわち、ステップd4で負荷分散を行な
うと決定された通信制御プロセッサCCjは、それに接
続された分配元のレベル0のプロセッサグループ#jに
属するいずれかのプロセッサに負荷の分配を要求する。
That is, the communication control processor CCj, which is determined to perform load distribution in step d4, requests one of the processors belonging to the distribution source level 0 processor group #j connected thereto to distribute the load.

【0063】例えば、通信制御プロセッサCC0がレベ
ル0のグループ#0の負荷を他のレベル0のグループ#
1に分配すると決定された場合、この通信制御プロセッ
サCC0は、それに接続されたプロセッサグループ#0
に属するプロセッサPE0、PE1のいずれか一方を選
択し、これに負荷の分配を要求する。例えば、もっとも
早く通常のプログラム処理の切れ目に達したプロセッサ
を選択する。選択されたプロセッサは、負荷として実行
待ちになっているプログラムに、分配先プロセッサグル
ープの番号を宛て先として付加したメッセージをネット
ワークに、より具体的には、その選択されたプロセッサ
に接続された通信制御プロセッサCC0に転送する。
For example, the communication control processor CC0 changes the load of the level 0 group # 0 to another level 0 group # 0.
If it is determined that the communication control processor CC0 is to be distributed to the processor group # 1, the communication control processor CC0 is connected to the processor group # 0.
And selects one of the processors PE0 and PE1 belonging to the group, and requests the load distribution thereto. For example, the processor that has reached the break of the normal program processing earliest is selected. The selected processor sends, to the network, a message in which the number of the distribution destination processor group is added as the destination to the program waiting to be executed as a load, and more specifically, the communication connected to the selected processor. Transfer to control processor CC0.

【0064】同様に、ステップd4で負荷分散を行なう
と決定されたネットワーク制御回路CCk、例えば、C
C01は、それに接続された二つの通信制御プロセッサ
CCj、例えば、CC0、CC1の一方を選択し、それ
に負荷の分配を要求する。例えば、通信制御プロセッサ
CC0、CC1の内、対応するレベル0のプロセッサグ
ループの負荷が大きい方、例えば、CC0を分配元レベ
ル0のグループとして選択する。選択された通信制御プ
ロセッサ、例えば、CC0は、分配元のプロセッサグル
ープ#0に属するプロセッサの一つを選択し、それに負
荷の分配を要求する。例えば、もっとも早く通常のプロ
グラム処理の切れ目に達したプロセッサ、例えばPE0
を選択する。
Similarly, the network control circuit CCk determined to carry out load distribution in step d4, for example, C
C01 selects one of the two communication control processors CCj connected to it, for example, CC0 and CC1, and requests it to distribute the load. For example, of the communication control processors CC0 and CC1, the one with the larger load of the corresponding processor group of level 0, for example, CC0 is selected as the distribution source level 0 group. The selected communication control processor, for example, CC0 selects one of the processors belonging to the processor group # 0 of the distribution source and requests the processor to distribute the load. For example, the processor that has reached the break in the normal program processing earliest, for example, PE0
Select

【0065】選択されたプロセッサは、負荷として実行
待ちになっているプログラムに、分配先プロセッサグル
ープ番号を宛て先として付加したメッセージをネットワ
ークに、より具体的には、その選択されたプロセッサに
接続された通信制御プロセッサCCi、例えば、CC0
に転送する。
The selected processor is connected to the network, more specifically, a message in which the program waiting to be executed as the load and the distribution destination processor group number added as the destination is connected to the network, more specifically, to the selected processor. Communication control processor CCi, for example, CC0
Transfer to

【0066】以上のごとくにして、動的負荷分配制御c
3の処理が終了する。
As described above, the dynamic load distribution control c
The process of No. 3 ends.

【0067】(4)図2に戻り、次のステップc4で
は、このようにして送出された分配すべきプログラムを
分配先のグループに属するいずれかのプロセッサに転送
する。この転送処理は、このプログラムを中継する通信
制御プロセッサおよびネットワーク制御回路により実行
される。
(4) Returning to FIG. 2, in the next step c4, the program to be distributed thus transmitted is transferred to one of the processors belonging to the distribution destination group. This transfer process is executed by a communication control processor and a network control circuit that relay this program.

【0068】例えば、前述のように、通信制御プロセッ
サCC0がレベル0のグループ#0の負荷を他のレベル
0のグループ#1に分配すると決定され、プロセッサP
E0が、分配元プロセッサとして選択され、このプロセ
ッサから、分配すべきプログラムに分配先プロセッサグ
ループの番号#1を宛て先として付加したメッセージを
通信制御プロセッサCC0に転送した場合、この転送さ
れた分配すべきプログラムは、通信制御プロセッサCC
0が中継してネットワーク制御回路CC01を介して、
分配先プロセッサグループ#1に対応する通信制御プロ
セッサCC1に転送される。
For example, as described above, it is determined that the communication control processor CC0 distributes the load of the level 0 group # 0 to another level 0 group # 1,
When E0 is selected as the distribution source processor, and when a message in which a program to be distributed is added with the destination processor group number # 1 as a destination is transmitted from this processor to the communication control processor CC0, the transferred distribution is performed. The program to be executed is the communication control processor CC
0 relays via the network control circuit CC01,
The data is transferred to the communication control processor CC1 corresponding to the distribution destination processor group # 1.

【0069】この通信制御プロセッサCC1は、それに
接続されたプロセッサグループ#1に属するプロセッサ
PE2、PE3のいずれか一方を選択し、これにこのメ
ッセージを転送する。この際、これらの二つのプロセッ
サのうち、負荷量が最小のプロセッサを選択すると、無
駄な分配をさらに削減する効果がある。
The communication control processor CC1 selects one of the processors PE2 and PE3 belonging to the processor group # 1 connected thereto, and transfers this message to this. At this time, if a processor with the smallest load amount is selected from these two processors, useless distribution is further reduced.

【0070】同様に、前述のように、ネットワーク制御
回路、例えばCC01がレベル1のグループ#01の負
荷を他のレベル1のグループ#23に分配すると決定さ
れ、PE0が分配元のプロセッサとして選択された場
合、このPE0から送出された分配すべきプログラムを
含んだメッセージを、この分配元のプロセッサPE0に
接続された通信制御プロセッサCC0、ネットワーク制
御回路CC01、CC03を介して分配先プロセッサグ
ループ#23に対応するネットワーク制御回路CC23
に転送される。この制御回路CC23は、グループ23
に含まれた2つのレベル0のグループ#2、#3の一つ
を選択する。例えば、これらの内の負荷量の少ないグル
ープ、例えば#2を選択し、選択されたグループに対応
する通信制御プロセッサ、例えば、CC02にこのメッ
セージを転送する。通信制御プロセッサCC02は、そ
れに接続された二つのプロセッサPE4、PE5の一つ
を分配先プロセッサとして選択し、それにこのメッセー
ジを転送する。例えば、これらの内の負荷量の小さい一
つを選択する。
Similarly, as described above, it is determined that the network control circuit, for example, CC01 distributes the load of level # 1 group # 01 to another level # 1 group # 23, and PE0 is selected as the distribution source processor. In this case, the message including the program to be distributed transmitted from the PE0 is transmitted to the distribution destination processor group # 23 via the communication control processor CC0 and the network control circuits CC01 and CC03 connected to the distribution source processor PE0. Corresponding network control circuit CC23
Is forwarded to The control circuit CC23 includes a group 23
, One of the two level 0 groups # 2 and # 3. For example, a group with a small load amount, for example, # 2 is selected, and this message is transferred to the communication control processor corresponding to the selected group, for example, CC02. The communication control processor CC02 selects one of the two processors PE4 and PE5 connected thereto as a distribution destination processor, and transfers this message to it. For example, one of these with a small load amount is selected.

【0071】以上のごとくにして負荷を分配されたプロ
セッサは、その負荷を実行待ち負荷プールに加える。
The processor to which the load has been distributed as described above adds the load to the execution waiting load pool.

【0072】以上の説明から明らかなごとく、本実施例
では、複数の階層に分かれたプロセッサグループ間の負
荷の分配において、各階層毎に負荷の分配をするか否か
を決定する。その際、ネットワーク中に各階層の各グル
ープの負荷量を保持し、ネットワーク中に設けられた通
信制御プロセッサあるいはネットワーク制御回路により
この負荷量を参照して負荷分散を行なうか否かを制御す
る。
As is clear from the above description, in this embodiment, in the distribution of loads among the processor groups divided into a plurality of layers, it is determined whether or not to distribute the load for each layer. At this time, the load of each group of each layer is held in the network, and the communication control processor or the network control circuit provided in the network refers to the load and controls whether or not to perform load distribution.

【0073】この結果、各プロセッサに負荷量を問い合
わせる必要がなく、また、問い合わせ時に、問い合わせ
先のプロセッサの処理の終了を待つ必要がない。その結
果、負荷の分配の要否を高速に決定できる。
As a result, it is not necessary to inquire each processor about the load amount, and it is not necessary to wait for the completion of the processing of the inquired processor at the time of inquiry. As a result, the necessity of load distribution can be determined at high speed.

【0074】[0074]

【発明の効果】本発明によれば、負荷分散制御で必要と
なる各プロセッサグループに対する負荷量を、ネットワ
ーク内で高速に参照できるので、動的負荷分散制御を高
速化する効果がある。
According to the present invention, the amount of load on each processor group required for the load distribution control can be referenced at high speed in the network, so that the dynamic load distribution control can be speeded up.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明による並列計算機システムの1実施例の
構成図である。
FIG. 1 is a configuration diagram of an embodiment of a parallel computer system according to the present invention.

【図2】図1のシステムでの各プロセッサ、各通信制御
プロセッサ、各ネッワーク転送制御回路によるプロセス
制御のフローチャートである。
FIG. 2 is a flowchart of process control by each processor, each communication control processor, and each network transfer control circuit in the system of FIG. 1;

【図3】図2に示した処理中の動的負荷分散制御の詳細
フローチャートである。
FIG. 3 is a detailed flowchart of the dynamic load distribution control during the processing shown in FIG. 2;

【符号の説明】[Explanation of symbols]

1〜4...共有メモリ、 11〜13..プロセッサグループ内実行待ち負荷量格納
共有レジスタ、 20〜27..プロセッサ実行待ち負荷量格納領域。
1 to 4... Shared memory, 11 to 13 .. processor waiting load amount storage shared register in processor group, 20 to 27 .. processor execution waiting load amount storage area.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 井門 徳安 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (56)参考文献 特開 平2−208731(JP,A) 特開 昭62−233873(JP,A) 特開 昭61−296465(JP,A) 電子情報通信学会技術研究報告,91〜 130!,P.41−47 AFIPS CONF PROC N ATL COMPUT CONF,48, P.613−622 ──────────────────────────────────────────────────続 き Continuation of the front page (72) Inventor Tokuyasu Imon 1-280 Higashi Koikebo, Kokubunji-shi, Tokyo Inside the Central Research Laboratory, Hitachi, Ltd. (56) References JP-A-2-208731 (JP, A) -233873 (JP, A) JP-A-61-296465 (JP, A) IEICE Technical Report, 91-130! , P. 41-47 AFIPS CONF PROC NATL COMPUT CONF, 48, p. 613-622

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】それぞれ共有メモリに接続された複数のプ
ロセッサからなる複数の下位プロセッサグループと、 該複数のプロセッサグループを相互に接続するネットワ
ークからなり、 該ネットワークは、 それぞれ一つのプロセッサグループに対応して設けら
れ、その対応するプロセッサグループに属するプロセッ
サに関連するメッセージの転送を中継するための複数の
通信制御プロセッサと、 それぞれ該複数のプロセッサグループのそれぞれ一部を
包含する複数の上位プロセッサグループの一つに対応し
て設けられた複数の下位ネットワークノードであって、
それぞれ該対応する一つの上位プロセッサグループに属
する一部の複数の下位プロセッサグループに接続された
一群の通信制御プロセッサに共通に接続されたものと、 該複数の下位ネットワークノードを相互に接続する少な
くとも一つの上位ネットワークノードとを有し、 各下位ネットワークノードは、 それに対応する上位プロセッサグループに含まれる一部
の複数の下位プロセッサグループのそれぞれに対応して
設けられた複数の第1種負荷レジスタと、 該一部の複数の下位プロセッサグループに接続された一
群の通信制御プロセッサとの間でメッセージの中継を行
なう第1種ネットワーク制御回路とを有し、 該上位ネットワークノードは、該複数の下位プロセッサ
グループのそれぞれに対応して設けられた複数の第2種
負荷レジスタと、該複数の下位ネットワークノードとの
間でメッセージの中継を行なう第2種ネットワーク回路
とを有し、 各プロセッサは、それに接続された共有メモリ内のその
プロセッサに対応して定められた負荷格納領域に、プロ
セッサがサブプログラム処理を完了する毎にそのプロセ
ッサの負荷を格納するようにプログラムされ、 各通信制御プロセサは、 通信制御プロセッサがメッセージの中継のプログラム処
理を完了する毎に、 対応する下位プロセッサグループに対して設けられた共
有メモリ内の複数の負荷格納領域から、そのプロセッサ
グループに属する個々のプロセッサの負荷を読み出し、
読み出された負荷を加算することでそのプロセッサグル
ープの負荷を算出し、算出された負荷を、その通信制御
プロセッサに接続された下位ネットワークノード内の、
その下位プロセッサグループに対応して設けられた共有
レジスタである第1種負荷レジスタに書き込む手段と、 その対応する下位プロセッサグループに対応して設けら
れた第1種負荷レジスタに保持された負荷と当該下位プ
ロセッサグループに対応して設けられた分配閾値とを比
較する手段と、当該第1種負荷レジスタに保持されてい
る負荷がその分配閾値以上の場合に、その対応する下位
プロセッサグループが属する上位プロセッサグループ
属し、かつ、負荷値が最小である他の一つの下位プロセ
ッサグループを選択する手段と、その選択した他の一つ
の下位プロセッサグループに対応して設けられた第1種
負荷レジスタに保持された負荷とを読み出し、これらの
読み出された負荷に基づいて、その対応する下位プロセ
ッサグループの負荷の一部を上記他の下位プロセッサグ
ループに分配すべきか否かを判別する手段と、当該他の
一つのプロセッサグループに対応する該第1種負荷レジ
スタに保持されている負荷値が当該下位プロセッサグル
ープに対応する該第1種負荷レジスタの負荷値より小さ
い場合に当該下位プロセッサグループから当該他の一つ
の下位プロセッサグループヘ負荷を分配する手段を有
し、 各下位ネットワークノード内の第1種のネットワーク制
御回路は、 第1種のネットワーク制御回路がメッセージの中継のプ
ログラム処理を完了する毎に、その下位ネットワークノ
ード内に設けられた上記複数の第1種負荷レジスタか
ら、その下位ネットワークノードに対応する上位プロセ
ッサグループに属する個々の下位プロセッサグループの
負荷を読み出し、これらの読み出された負荷を加算する
ことでその対応する上位プロセッサグループの負荷を算
出し、算出された負荷を、上記上位ネットワークノード
内の、その対応する上位プロセサグループに対応して設
けられた共有レジスタである第2種負荷レジスタに書き
込む手段と、 その対応する上位プロセッサグループに対応して設けら
れた第2種負荷レジスタに保持された負荷と当該上位プ
ロセッサグループに対応して設けられた分配閾値とを比
較する手段と、当該第2種負荷レジスタに保持されてい
る負荷がその分配閾値以上の場合に、その対応する上位
プロセッサグループ以外の、負荷値が最小である同一レ
ベルの他の一つの上位プロセッサグループを選択する手
段と、その選択した他の一つの上位プロセッサグループ
に対応して設けられた第2種負荷レジスタに保持された
負荷とを読み出し、これらの読み出された負荷に基づい
て、その対応する上位プロセッサグループの負荷の一部
を、上記他の上位プロセッサグループに分配すべきか否
かを判別する手段と、当該他の一つの上位プロセッサグ
ループに対応する該第2種負荷レジスタに保持されてい
る負荷値が当該上位プロセッサグループに対応する該第
2種負荷レジスタの負荷値より小さい場合に当該上位プ
ロセッサグループから当該他の一つの上位プロセッサグ
ループへ負荷を分散する手段を有し、 ここで前記負荷はプロセッサグループに属するプロセッ
サでの実行待ち状態にあるサブプログラムの総数である
ことを特徴とする並列計算機システム。
A plurality of lower processor groups each including a plurality of processors connected to a shared memory; and a network interconnecting the plurality of processor groups. Each of the networks corresponds to one processor group. A plurality of communication control processors for relaying the transfer of messages related to the processors belonging to the corresponding processor group; and a plurality of upper processor groups each including a part of each of the plurality of processor groups. A plurality of lower-level network nodes provided corresponding to
One commonly connected to a group of communication control processors connected to some of the plurality of lower processor groups belonging to the corresponding one upper processor group, and at least one interconnecting the plurality of lower network nodes. A plurality of first-type load registers provided corresponding to each of a plurality of lower-order processor groups included in the corresponding upper-order processor group; A first type network control circuit for relaying a message to and from a group of communication control processors connected to the plurality of lower processor groups; and the upper network node comprises a plurality of lower processor groups. A plurality of second-type load registers provided corresponding to each of And a second-type network circuit for relaying a message between the plurality of lower-level network nodes, wherein each processor has a load storage area defined in correspondence with the processor in a shared memory connected thereto. Each communication control processor is programmed to store the load of the processor each time the processor completes the subprogram processing. Each time the communication control processor completes the message relay program processing, the corresponding lower processor From a plurality of load storage areas in the shared memory provided for the group, read the load of each processor belonging to the processor group,
The load of the processor group is calculated by adding the read loads, and the calculated load is calculated in the lower network node connected to the communication control processor.
Means for writing to a type 1 load register which is a shared register provided corresponding to the lower processor group, and a load held in the type 1 load register provided corresponding to the corresponding lower processor group; Means for comparing a distribution threshold provided for the lower processor group with the upper processor to which the corresponding lower processor group belongs when the load held in the first type load register is equal to or greater than the distribution threshold Means for selecting another lower processor group belonging to the group and having the smallest load value, and a first type load register provided corresponding to the selected other lower processor group. And read the load of the corresponding lower processor group based on the read load. Means for determining whether a part of the load is to be distributed to the other lower processor group, and the load value held in the first type load register corresponding to the other processor group is determined by the lower processor. Means for distributing a load from the lower processor group to the other lower processor group when the load value of the first type load register corresponding to the group is smaller than the first type load register; Each time the first type network control circuit completes the message relay program processing, the network control circuit responds to the lower level network node from the plurality of first type load registers provided in the lower level network node. Read the load of each lower processor group belonging to the upper processor group The load of the corresponding upper processor group is calculated by adding the read loads of the above, and the calculated load is shared in the upper network node corresponding to the corresponding upper processor group. Means for writing to a second type load register, which is a register, a load held in a second type load register provided corresponding to the corresponding upper processor group, and a distribution threshold provided corresponding to the higher processor group And a means for comparing the same load with the smallest load value other than the corresponding upper processor group when the load held in the second type load register is equal to or more than the distribution threshold.
Means for selecting another upper processor group of the bell and the load held in the second type load register provided corresponding to the selected other upper processor group; Means for determining whether or not to distribute a part of the load of the corresponding upper processor group to the other upper processor group based on the performed load, and When the load value held in the second type load register is smaller than the load value of the second type load register corresponding to the upper processor group, the load is distributed from the upper processor group to the other upper processor group. Wherein the load is a sub-processor that is waiting to be executed by a processor belonging to a processor group. A parallel computer system characterized by the total number of grams.
JP5255306A 1993-09-20 1993-09-20 Parallel computer system Expired - Lifetime JP2615408B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5255306A JP2615408B2 (en) 1993-09-20 1993-09-20 Parallel computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5255306A JP2615408B2 (en) 1993-09-20 1993-09-20 Parallel computer system

Publications (2)

Publication Number Publication Date
JPH0793265A JPH0793265A (en) 1995-04-07
JP2615408B2 true JP2615408B2 (en) 1997-05-28

Family

ID=17276948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5255306A Expired - Lifetime JP2615408B2 (en) 1993-09-20 1993-09-20 Parallel computer system

Country Status (1)

Country Link
JP (1) JP2615408B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09305551A (en) * 1996-05-10 1997-11-28 Toshiba Corp Parallel computer system
US5999712A (en) * 1997-10-21 1999-12-07 Sun Microsystems, Inc. Determining cluster membership in a distributed computer system
JP4001698B2 (en) * 1999-10-14 2007-10-31 富士通株式会社 Load balancing system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AFIPS CONF PROC NATL COMPUT CONF,48,P.613−622
電子情報通信学会技術研究報告,91〜130!,P.41−47

Also Published As

Publication number Publication date
JPH0793265A (en) 1995-04-07

Similar Documents

Publication Publication Date Title
US5533198A (en) Direction order priority routing of packets between nodes in a networked system
US7287255B2 (en) System and method for dynamic ordering in a network processor
US5778429A (en) Parallel processor system including a cache memory subsystem that has independently addressable local and remote data areas
US7386849B2 (en) Managing parallel execution of work granules according to their affinity
CN101354682B (en) Apparatus and method for settling access catalog conflict of multi-processor
US5721819A (en) Programmable, distributed network routing
US6128296A (en) Method and apparatus for distributed packet switching using distributed address tables
JPH06259384A (en) Multiprocessor
JP2010218364A (en) Information processing system, and communication control apparatus and method
JP2004531005A (en) Partitioning database ownership between different database servers to control access to the database
CN112947860B (en) Hierarchical storage and scheduling method for distributed data copies
WO2023184836A1 (en) Subgraph segmented optimization method based on inter-core storage access, and application
JPH10214223A (en) Information processing system
US6363458B1 (en) Adaptive granularity method for integration of fine and coarse communication in the distributed shared memory system
JP2615408B2 (en) Parallel computer system
WO2023184834A1 (en) Collective communication optimization method for global high-degree vertices, and application
Majcherczyk et al. SwarmMesh: A distributed data structure for cooperative multi-robot applications
JPH0793639B2 (en) Method and system for mitigating processing and recording requirements at a network node
JPH09160884A (en) Dynamic load-distributed parallel computer
Laili et al. Parallel transfer evolution algorithm
US4969085A (en) Memory module for a memory-managed computer system
JP2580525B2 (en) Load balancing method for parallel computers
WO2017222689A1 (en) Method, apparatus and system for performing matching operations in a computing system
Bokka et al. Time-optimal domain-specific querying on enhanced meshes
Sivarami Reddy et al. Simultaneous scheduling of machines and tools considering tool transfer times in multimachine FMS using CSA