JPH07271736A - Multiprocessor system - Google Patents
Multiprocessor systemInfo
- Publication number
- JPH07271736A JPH07271736A JP5955194A JP5955194A JPH07271736A JP H07271736 A JPH07271736 A JP H07271736A JP 5955194 A JP5955194 A JP 5955194A JP 5955194 A JP5955194 A JP 5955194A JP H07271736 A JPH07271736 A JP H07271736A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- processor
- memory
- load
- units
- 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.)
- Withdrawn
Links
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、システムの負荷を分散
して処理するマルチプロセッサシステムに関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a multiprocessor system for distributing and processing the system load.
【0002】[0002]
【従来の技術】従来のマルチプロセッサシステムの概略
を図4に示す。図4において、1はプログラムコードや
データが格納されているメモリ構成部で、n個のメモリ
ユニット1a,…,1dからなっている。3は上記メモ
リ構成部1からプログラムコードやデータを読み出し、
処理を実行した後、その結果をメモリ構成部1に書き出
すプロセッサ構成部で、m個のプロセッサユニット3
a,…,3dからなっている。2は上記メモリ構成部1
とプロセッサ構成部3とを物理的に接続する切換え可能
な任意のスイッチングネットワークである。2. Description of the Related Art An outline of a conventional multiprocessor system is shown in FIG. In FIG. 4, reference numeral 1 denotes a memory configuration unit in which program codes and data are stored, which is composed of n memory units 1a, ..., 1d. 3 reads the program code and data from the memory configuration unit 1,
After the processing is executed, the result is written to the memory configuration unit 1, and the m processor units 3
.., 3d. 2 is the memory configuration unit 1
It is an arbitrary switching network capable of switching that physically connects the processor configuration unit 3 and the processor configuration unit 3.
【0003】マルチプロセッサシステムは、システムの
性能及び処理能力を向上させることが非常に重要であ
る。そのため、各プロセッサユニット3a,…,3dの
負荷は可能な限り均一である必要がある。In multiprocessor systems, it is very important to improve the performance and processing power of the system. Therefore, the load on each processor unit 3a, ..., 3d needs to be as uniform as possible.
【0004】従来のマルチプロセッサシステムは、予め
実行前にプロセッサ構成部3内のm個のプロセッサユニ
ット3a,…,3dにそれぞれ実行するプロセスが固定
的に割り当てられて実行が開始される。通常、実行前の
割り当ては各プロセッサユニットの負荷が均一となる様
に配置されるが(これを「静的負荷分散」という)、実
際の実行では静的負荷分散の期待通りに負荷が均一化さ
れず、負荷の不均一が発生する。In the conventional multiprocessor system, processes to be executed are fixedly allocated to the m processor units 3a, ..., 3d in the processor configuration unit 3 before execution, and the execution is started. Normally, the allocation before execution is arranged so that the load on each processor unit is uniform (this is called "static load balancing"), but in actual execution, the load is balanced as expected for static load balancing. However, the load becomes uneven.
【0005】このため従来のマルチプロセッサシステム
では、主に次に示す分散方法を用いて負荷の均一化を図
っている。 (i )静的負荷分散のみにより、ある程度負荷を均一化
する。従って、実行時にどれだけ負荷の不均一があって
も動的負荷分散は行なわない。Therefore, in the conventional multiprocessor system, the distribution method shown below is mainly used to equalize the load. (I) Uniformize the load to some extent only by static load balancing. Therefore, dynamic load balancing is not performed no matter how uneven the load is during execution.
【0006】(ii)静的負荷分散に加えて、動的負荷分
散も併せて行なう。従来の動的負荷分散の方法は、プロ
セッサユニットに割り当てられているプロセスを、その
プロセスが存在するメモリユニットから別のメモリユニ
ットに移動させる。この移動はプログラムコード、デー
タ、途中過程の情報を含んでいる。また、プロセスの移
動にあたっては、各プロセッサユニットが相互に情報を
交換して、負荷分散実施の可否判断とプロセスの移動を
行なっている。(Ii) In addition to static load balancing, dynamic load balancing is also performed. The conventional dynamic load balancing method moves a process assigned to a processor unit from the memory unit in which the process exists to another memory unit. This move contains program code, data, and half-way information. Further, in moving a process, each processor unit exchanges information with each other to determine whether or not to perform load balancing and move the process.
【0007】[0007]
【発明が解決しようとする課題】従来のマルチプロセッ
サシステムでは、負荷の均一化を図る場合、上記のよう
に動的負荷分散を行なわないか、或いは動的負荷分散を
行なったとしても、各プロセッサユニットが相互に情報
を交換し合い動的負荷分散の実施可否を決定した後、プ
ロセスを移動する対象となるプロセッサユニット同士が
同期をとって、プロセスの移動を行なっている。In the conventional multiprocessor system, when the load is to be equalized, the dynamic load distribution is not performed as described above, or even if the dynamic load distribution is performed, each processor is not processed. After the units exchange information with each other and decide whether or not to implement dynamic load balancing, the processor units that are the targets of the process migration move in synchronization with each other.
【0008】しかし、この従来の方法では、各プロセッ
サユニット間の情報交換のための時間遅れが生じ、更に
プロセスの移動に際して、プロセスを移動する処理時間
の分だけ、移動の対象となるプロセッサユニットの実行
が停止されるため、マルチプロセッサシステムの性能が
わずかだけ向上するか、もしくは低下する事態さえ起こ
り得る。However, in this conventional method, a time delay occurs for exchanging information between the processor units, and further, when the process is moved, the processor units to be moved are moved by the processing time for moving the process. Because execution is halted, the performance of a multiprocessor system can be slightly improved or even degraded.
【0009】本発明は上記実情に鑑みてなされたもの
で、各プロセッサ間の情報交換の時間遅れ、動的負荷分
散の実施可否決定やプロセスの移動時間のためのオーバ
ーヘッド(無駄時間)を抑えて、性能を向上し得るマル
チプロセッサシステムを提供することを目的とする。The present invention has been made in view of the above circumstances, and suppresses the time delay of information exchange between the processors, the overhead (dead time) for determining whether to implement dynamic load balancing and the process moving time. It is an object of the present invention to provide a multiprocessor system capable of improving performance.
【0010】[0010]
【課題を解決するための手段】本発明に係るマルチプロ
セッサシステムは、プロセスを記憶する複数のメモリユ
ニットにより構成されるメモリ構成部と、上記メモリユ
ニットに記憶されたプロセスが割り当てられ、この割り
当てられたプロセスを処理する複数のプロセッサユニッ
トにより構成されるプロセッサ構成部と、該プロセッサ
構成部のプロセッサユニット及びメモリ構成部のメモリ
ユニットを接続するスイッチングネットワークと、上記
各プロセスユニットがプロセス処理に伴い負荷に関する
情報を上記対応するメモリユニットに書き込む手段と、
上記メモリ構成部のメモリユニットにネットワークを介
して接続され、該メモリユニットに書き込まれた負荷に
関する情報に基づいて各プロセッサユニットの負荷分散
レベルを判断し、各プロセッサユニットの負荷が平均化
するように負荷を分散制御する負荷分散プロセッサユニ
ットとを具備したことを特徴とする。In a multiprocessor system according to the present invention, a memory configuration section composed of a plurality of memory units for storing processes and a process stored in the memory unit are allocated, and the allocation is performed. A processor configuration unit configured by a plurality of processor units for processing different processes, a switching network connecting the processor unit of the processor configuration unit and a memory unit of the memory configuration unit, and each of the process units relating to the load associated with the process processing. Means for writing information to the corresponding memory unit,
The load distribution level of each processor unit is connected to the memory unit of the memory configuration unit via a network, the load distribution level of each processor unit is determined based on the information about the load written in the memory unit, and the load of each processor unit is averaged. And a load balancing processor unit for controlling load balancing.
【0011】[0011]
【作用】プロセッサ構成部の各プロセッサユニットは、
割り当てられたプロセス群を1つ1つ処理すると共に、
その処理に伴って負荷に関する情報を所有するメモリユ
ニットに書き込む。この負荷に関する情報としては、例
えば個々のプロセスのプログラムサイズ、データサイズ
等のプロセス情報、個々のプロセスの実行時間を示すプ
ロセスコード、個々のプロセス実行のために参照する必
要のあるメモリユニットとその占有時間を示すプロセス
メモリ情報等が用いられる。また、上記メモリユニット
には、負荷情報として予め個々のプロセスが実行されて
いるプロセッサユニットを示すプロセッサ情報、個々の
メモリユニットが属しているプロセッサユニットを示す
メモリ情報が書き込まれている。[Function] Each processor unit of the processor configuration unit is
While processing each assigned process group one by one,
Along with the processing, the information regarding the load is written in the owning memory unit. The information regarding this load includes, for example, process information such as the program size and data size of each process, the process code indicating the execution time of each process, the memory unit that needs to be referenced to execute each process, and its occupation. For example, process memory information indicating time is used. Further, in the memory unit, processor information indicating a processor unit in which an individual process is executed and memory information indicating a processor unit to which the individual memory unit belongs are written in advance as load information.
【0012】負荷分散プロセッサユニットは、上記メモ
リユニットに書き込まれた負荷に関する情報に基づいて
負荷分散を実施するか否かを判定し、負荷分散を実施す
る場合は、負荷分散の対象となるプロセスとプロセッサ
ユニットを決定する。更に、この決定されたプロセスと
プロセッサユニットに対する負荷分散の実現方法を決定
し、その決定に従って負荷を分散させて、各プロセッサ
ユニットの負荷が平均化させる。The load balancing processor unit determines whether to perform load balancing based on the information on the load written in the memory unit. Determine the processor unit. Further, a method of realizing load distribution for the determined processes and processor units is determined, the load is distributed according to the determination, and the load of each processor unit is averaged.
【0013】この結果、マルチプロセッサシステムの各
プロセッサユニットの負荷情報を時間遅れを抑えて一括
して入力でき、プロセッサユニットの動的負荷分散を実
現できると共に、負荷分散に伴うオーバーヘッドも抑え
ることができる。As a result, the load information of each processor unit of the multiprocessor system can be collectively input while suppressing the time delay, the dynamic load distribution of the processor units can be realized, and the overhead accompanying the load distribution can be suppressed. .
【0014】[0014]
【実施例】以下、図面を参照して本発明の一実施例を説
明する。図1は、本発明の一実施例に係るマルチプロセ
ッサシステムの基本構成図である。図2は、本発明の主
要部分である負荷分散プロセッサユニットの構成図であ
る。図3は、負荷分散プロセッサユニットの動作の説明
図である。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described below with reference to the drawings. FIG. 1 is a basic configuration diagram of a multiprocessor system according to an embodiment of the present invention. FIG. 2 is a configuration diagram of a load balancing processor unit which is a main part of the present invention. FIG. 3 is an explanatory diagram of the operation of the load distribution processor unit.
【0015】図1において、1はメモリ構成部で、n個
のメモリユニット1a,…,1dからなり、これらのメ
モリユニット1a,…,1dには、予めプロセスが格納
されている。3は上記メモリ構成部1からプロセスを読
み出し、処理を実行した後、その結果をメモリ構成部1
に書き出すプロセッサ構成部で、m個のプロセッサユニ
ット3a,…,3dからなっている。2は上記メモリ構
成部1とプロセッサ構成部3を物理的に接続する切換え
可能な任意のスイッチングネットワークである。In FIG. 1, reference numeral 1 denotes a memory configuration unit, which comprises n memory units 1a, ..., 1d, and processes are stored in advance in these memory units 1a ,. 3 reads out a process from the memory configuration unit 1, executes the process, and then outputs the result to the memory configuration unit 1.
., 3d, which is a processor configuration unit to be written in. Reference numeral 2 is an arbitrary switchable switching network that physically connects the memory configuration unit 1 and the processor configuration unit 3.
【0016】上記メモリ構成部1の各メモリユニット1
a,…,1dは、所属するプロセッサ構成部3内のプロ
セッサユニットが決まっている。また、プロセッサ構成
部3内のプロセッサユニット3a,…,3dには、予め
実行するプロセス群が割り当てられている。更に、スイ
ッチングネットワーク2は、各プロセッサユニット3
a,…,3dが所有するメモリユニット1a,…,1d
に対して接続されている。Each memory unit 1 of the memory configuration section 1
The processor units in the processor configuration unit 3 to which a, ..., 1d belong are determined. A process group to be executed is assigned to the processor units 3a, ..., 3d in the processor configuration unit 3 in advance. Furthermore, the switching network 2 includes each processor unit 3
Memory units 1a, ..., 1d owned by a, ..., 3d
Connected to.
【0017】そして、上記メモリ構成部1に対して負荷
分散プロセッサユニット4を設け、メモリ構成部1内の
各メモリユニット1a,…,1dと負荷分散プロセッサ
ユニット4との間を(1×n)のスイッチングネットワ
ーク5により接続している。この負荷分散プロセッサユ
ニット4は、プロセッサ構成部3内のプロセッサユニッ
ト3a,…3dが実行するプロセスによる負荷を動的に
分散させて平均化するためのもので、図2に示すように
構成されている。A load balancing processor unit 4 is provided for the memory configuration unit 1 and the distance between each memory unit 1a, ..., 1d in the memory configuration unit 1 and the load balancing processor unit 4 is (1 × n). Are connected by the switching network 5. The load distribution processor unit 4 is for dynamically distributing and averaging loads by the processes executed by the processor units 3a, ... 3d in the processor configuration unit 3, and is configured as shown in FIG. There is.
【0018】負荷分散プロセッサユニット4は、図2に
示すように、各プロセッサユニット毎の負荷を算出する
プロセッサ情報処理部6、メモリユニット毎のメモリの
空き領域を算出するメモリ情報処理部7、現状の負荷状
況を基に動的負荷分散の実施の可否を決める負荷分散判
定部8、負荷分散を行なう具体的方法をプロセスの移動
により実現するか、或いはスイッチングネットワーク2
の切換えにより実現するかを決める負荷分散手段決定部
9、プロセスのメモリユニット間の移動を行なうプロセ
ス移動処理部10、スイッチングネットワーク2の切換
えを行なうネットワーク切換部11により構成されてい
る。As shown in FIG. 2, the load distribution processor unit 4 includes a processor information processing unit 6 for calculating a load for each processor unit, a memory information processing unit 7 for calculating a memory free area for each memory unit, and a current status. Load balancing judgment unit 8 which decides whether or not to implement dynamic load balancing based on the load status of the process, or a specific method of load balancing is realized by moving the process, or the switching network 2
The load balancing means deciding unit 9 for deciding whether or not to implement the process, the process migration processing unit 10 for migrating processes between memory units, and the network switching unit 11 for switching the switching network 2.
【0019】また、上記負荷分散プロセッサユニット4
には、メモリ構成部1のメモリユニット1a,…,1d
から符号12〜符号16で示す負荷情報が読出される。
この負荷情報において、符号12は個々のプロセスが実
行されているプロセッサユニットを示すプロセッサ情
報、13は個々のメモリユニットが属しているプロセッ
サユニットを示すメモリ情報、14は個々のプロセスの
プログラムコードサイズ、データサイズ、スタックサイ
ズ、ヒープサイズ(heap size )を示すプロセス情報で
ある。なお、上記ヒープサイズは、プログラム実行時に
動的に獲得できるメモリサイズの上限を示している。プ
ログラムによっては、一時的なワーク領域を大量に使用
するものがあり、この場合、プログラムはワークエリア
が必要なときにメモリの取得を行なうが、そのためのメ
モリ領域をヒープという。The load distribution processor unit 4 is also provided.
, 1d of the memory configuration unit 1
The load information indicated by reference numerals 12 to 16 is read from.
In this load information, reference numeral 12 is processor information indicating a processor unit in which each process is executed, 13 is memory information indicating a processor unit to which each memory unit belongs, 14 is a program code size of each process, It is process information indicating the data size, stack size, and heap size. The heap size indicates the upper limit of the memory size that can be dynamically acquired when the program is executed. Some programs use a large amount of temporary work area. In this case, the program acquires memory when the work area is needed. The memory area for that purpose is called heap.
【0020】また、符号15は個々のプロセスの実行時
間を示すプロセスコード、16は個々のプロセス実行の
ために参照する必要のあるメモリユニットとその占有時
間を示すプロセスメモリ情報である。更に、17は負荷
分散プロセッサユニット4が負荷分散することを対象と
なるプロセッサユニットに知らせるための負荷分散通知
信号である。Reference numeral 15 is a process code indicating the execution time of each process, and 16 is process memory information indicating a memory unit that needs to be referenced for executing the individual process and its occupied time. Further, reference numeral 17 is a load balancing notification signal for notifying the target processor unit that the load balancing processor unit 4 is load balancing.
【0021】プロセッサ情報処理部6は、プロセッサ情
報12及びプロセスコード15を入力としてプロセッサ
負荷18を算出し、負荷分散判定部8へ出力する。メモ
リ情報処理部7は、メモリ情報13、プロセッサ情報1
4を入力として、メモリ余裕19を算出し、負荷分散判
定部8へ出力する。この負荷分散判定部8は、プロセッ
サ負荷18、メモリ余裕19、プロセッサ情報12、プ
ロセッサ情報14及びプロセスコード15を入力とし
て、負荷分散の実施負荷を判定し、負荷分散判定結果2
0を出力すると共に、負荷分散を実施する場合、どのプ
ロセスをどのプロセッサユニットで実行することに変更
するかを決定し、負荷分散プロセス情報21を出力す
る。上記負荷分散判定結果20は、負荷分散手段決定部
9へ送られ、負荷分散プロセス情報21は、負荷分散手
段決定部9、プロセス移動処理部10及びネットワーク
切換部11へ送られる。The processor information processing unit 6 receives the processor information 12 and the process code 15 as input, calculates the processor load 18, and outputs it to the load distribution determination unit 8. The memory information processing unit 7 has memory information 13 and processor information 1
The memory margin 19 is calculated using 4 as an input, and is output to the load balancing determination unit 8. The load distribution determination unit 8 receives the processor load 18, the memory margin 19, the processor information 12, the processor information 14, and the process code 15 as input, and determines the load of execution of load distribution.
In addition to outputting 0, it determines which process is to be executed by which processor unit when load balancing is performed, and outputs load balancing process information 21. The load balancing determination result 20 is sent to the load balancing means determining unit 9, and the load balancing process information 21 is sent to the load balancing means determining unit 9, the process migration processing unit 10 and the network switching unit 11.
【0022】負荷分散手段決定部9は、負荷分散判定部
8によって生成された負荷分散プロセス情報21、プロ
セッサ情報12、プロセスコード15及びプロセスメモ
リ情報16を入力として、負荷分散の実現手段として、
プロセス移動指令22またはネットワーク切換指令23
を生成する。プロセス移動処理部10は、プロセッサ情
報12、負荷分散プロセス情報21、プロセス移動指令
22を入力とし、プロセス移動指令22が入力された際
にプロセスを移動し、移動したことを負荷分散通知信号
17により対象となったプロセッサユニットに通知す
る。The load balancing means determining unit 9 receives the load balancing process information 21, the processor information 12, the process code 15 and the process memory information 16 generated by the load balancing determining unit 8 as an input, and serves as a load balancing implementing means.
Process movement command 22 or network switching command 23
To generate. The process migration processing unit 10 receives the processor information 12, the load balancing process information 21, and the process migration command 22 as input, and migrates the process when the process migration command 22 is input, and notifies the migration by the load balancing notification signal 17. Notify the target processor unit.
【0023】ネットワーク切換部11は、メモリ情報1
3、負荷分散プロセス情報21及びネットワーク切換指
令23を入力とし、ネットワーク切換指令23が入力さ
れた際にスイッチングネットワーク2の切換を行ない、
切換えたことを負荷分散通知信号17により対象となっ
たプロセッサユニットに通知する。The network switching unit 11 uses the memory information 1
3, the load balancing process information 21 and the network switching command 23 are input, and the switching network 2 is switched when the network switching command 23 is input,
The switching is notified to the target processor unit by the load balancing notification signal 17.
【0024】次に上記実施例の動作を説明する。メモリ
構成部1内のメモリユニット1a,…,1dには、予め
プロセスが格納されている。また、各メモリユニット1
a,…,1dは、所属するプロセッサ構成部3内のプロ
セッサユニット3a,…,3dが決まっている。これら
のプロセッサユニット3a,…,3dには、予め実行す
るプロセス群が割り当てられている。プロセッサユニッ
ト3a,…,3dは、所有するメモリユニット1a,
…,1dにスイッチングネットワーク2を介して接続さ
れている。Next, the operation of the above embodiment will be described. Processes are stored in advance in the memory units 1a, ..., 1d in the memory configuration unit 1. In addition, each memory unit 1
The processor units 3a, ..., 3d in the processor configuration unit 3 to which a, ..., 1d belong are determined. A process group to be executed is assigned to these processor units 3a, ..., 3d in advance. The processor units 3a, ..., 3d have their own memory units 1a,
, 1d via the switching network 2.
【0025】そして、プロセッサユニット3a,…,3
dは、割り当てられたプロセス群を1つ1つ処理し、各
プロセスの処理に要した処理時間をプロセスコード15
として所有するメモリユニット1a,…,1dに書き込
む。また、各プロセッサユニット3a,…,3dは、プ
ロセス毎にプロセッサ情報14とプロセスメモリ情報1
6も所有するメモリユニット1a,…,1dに書き込
む。また、メモリユニット1a,…,1dは、予めプロ
セッサ情報12とメモリ情報13を保持している。Then, the processor units 3a, ..., 3
d processes the allocated process group one by one, and processes the processing time required for processing each process with the process code 15
, 1d which are owned by Further, each of the processor units 3a, ..., 3d has processor information 14 and process memory information 1 for each process.
6 is also written in the owning memory units 1a, ..., 1d. Further, the memory units 1a, ..., 1d hold processor information 12 and memory information 13 in advance.
【0026】そして、負荷分散プロセッサユニット4
は、図3のフローチャートに示す負荷分散の処理動作を
実行する。即ち、負荷分散プロセッサユニット4は、ま
ず、プロセッサ情報処理部6が、プロセッサ情報12及
びプロセスコード15よりプロセッサユニット3a,
…,3d毎の負荷であるプロセッサ負荷18を算出する
(ステップS1)。また、メモリ情報処理部7は、メモ
リ情報13及びプロセッサ情報14より、メモリユニッ
ト1a,…,1d毎の空き領域であるメモリ余裕19を
算出する(ステップS2)。The load balancing processor unit 4
Executes the load balancing processing operation shown in the flowchart of FIG. That is, in the load balancing processor unit 4, first, the processor information processing unit 6 uses the processor information 12 and the process code 15 to determine the processor unit 3a,
The processor load 18, which is the load for each 3d, is calculated (step S1). Further, the memory information processing unit 7 calculates a memory margin 19 which is a free area for each of the memory units 1a, ..., 1d from the memory information 13 and the processor information 14 (step S2).
【0027】負荷分散判定部8は、プロセッサ負荷1
8、プロセッサ情報12及びプロセスコード15によ
り、負荷分散判定結果20を生成し、この負荷分散判定
結果20に基づいて負荷分散を実施するか否かを判定す
る(ステップS3,S4)。The load distribution determination unit 8 determines the processor load 1
8, the processor information 12 and the process code 15 generate a load balancing determination result 20, and based on the load balancing determination result 20, it is determined whether or not to perform load balancing (steps S3 and S4).
【0028】プロセッサをPi (iは1〜N、Nはプロ
セッサ数)、プロセッサPi 上で実行されるプロセスj
をpi,j (jは1〜ni 、ni はプロセッサPi 上のプ
ロセス数)、プロセスpi,j の基準時間当たりの実行時
間をtpi,j、プロセッサの基準時間をtunit(全プロセ
ッサ共通)、とすると、A processor Pi (i is 1 to N, N is the number of processors), and a process j executed on the processor Pi
Let p i, j (j is 1 to ni, n i is the number of processes on the processor Pi), tpi, j is the execution time per reference time of the process p i, j, and t unit (common to all processors) is the reference time of the processor. Then,
【0029】[0029]
【数1】 により求められる。つまり、分散の2乗がある値ρ2 以
上のとき、負荷分散要と判断する。ここで、ρは、シス
テム毎に予め決定しておく定数値である。[Equation 1] Required by. That is, when the square of the dispersion is a certain value ρ 2 or more, it is determined that the load distribution is required. Here, ρ is a constant value determined in advance for each system.
【0030】負荷分散判定部8は、負荷分散を行なわな
いときは、そのまま処理を終了するが、負荷分散を行な
うと決定したときには、プロセッサ負荷18、メモリ余
裕19、プロセッサ情報12、プロセス情報14及びプ
ロセスコード15により、負荷分散のために実行するプ
ロセッサユニット3a,…,3dを変更するプロセス
と、そのプロセスを実行するプロセッサユニット3a,
…,3dを決定する負荷分散プロセス情報21を生成す
る(ステップS5)。When the load balancing is not performed, the load balancing determination unit 8 terminates the processing as it is, but when it is decided to perform the load balancing, the processor load 18, the memory allowance 19, the processor information 12, the process information 14 and , 3d to be executed for load distribution by the process code 15, and the processor unit 3a to execute the process.
The load balancing process information 21 for determining 3d is generated (step S5).
【0031】負荷分散の方法は、予め設定しておくこと
により、次の2種類の方法を選択できる。 (i )分岐限定法により、最適のプロセスの組み合わせ
を決める。By setting the load distribution method in advance, the following two types of methods can be selected. (I) An optimal process combination is determined by the branch and bound method.
【0032】この方法は、通常の最適化手法により実現
するが、負荷分散プロセッサユニット4のオーバーヘッ
ドが大きくなる。 (ii)簡易的に決定する方法を用いる。This method is realized by a normal optimization method, but the overhead of the load balancing processor unit 4 becomes large. (Ii) Use a simple determination method.
【0033】この方法は、負荷分散レベルを1〜プロセ
ッサ数/2まで選択可能とするもので、レベルは許容可
能なオーバーヘッドによって変更する。この簡易的に決
定する方法について以下に説明する。This method allows the load distribution level to be selected from 1 to the number of processors / 2, and the level is changed depending on the allowable overhead. A method of simply determining this will be described below.
【0034】(a)負荷分散可能なプロセッサの組を見
つける。Pi −Pideal >(ρ/N1/2 )となるプロセ
ッサ(平均値より高負荷のプロセッサ)及びPideal −
Pi >(ρ/N1/2 )となるプロセッサ(平均値より低
負荷のプロセッサ)を負荷の不均一のものより組とす
る。つまり、その組となったプロセッサ間でプロセスを
移動する。もし、0組ならば負荷分散要を不要とする。(A) Find a set of load-balanceable processors. Pi-Pideal> (ρ / N 1/2 ) (higher than average load) and Pideal-
Processors with Pi> (ρ / N 1/2 ) (processors having a load lower than the average value) are set from those having uneven loads. That is, the process is moved between the processors in the set. If there are 0 pairs, the need for load balancing is unnecessary.
【0035】(b)負荷分散レベルにより、レベル以内
の組について負荷分散を行なう。例えばレベル1ならば
最大1組の間でプロセスを移動する。 (c)移動プロセスを決定する。(B) Depending on the load distribution level, load distribution is performed for groups within the level. For example, in the case of level 1, the process is moved among a maximum of one set. (C) Determine the transfer process.
【0036】組となったプロセッサについて、各プロセ
ッサに割り当てられているプロセスの実行時間の小さい
ものより、移動する候補とし、m個プロセスを移動した
として、With regard to the processors in the set, it is assumed that the execution time of the process assigned to each processor is smaller and the candidate is moved, and m processes are moved.
【0037】[0037]
【数2】 [Equation 2]
【0038】または、移動先のメモリ余裕が限界値とな
った、ときに処理を終了する。上記のようにして移動す
るプロセスと、その移動元及び移動先が決定する。Alternatively, the processing is terminated when the memory margin of the moving destination reaches the limit value. The process of moving as described above and the source and destination of the process are determined.
【0039】次に負荷分散手段決定部9は、上記負荷分
散プロセス情報21、プロセッサ情報12、プロセスコ
ード15及びプロセスメモリ情報16により、負荷分散
の実現方法を以下の2方法のうち、処理時間の短い方を
選択する(ステップS6)。Next, the load balancing means determining unit 9 determines the load balancing method from among the following two methods based on the load balancing process information 21, the processor information 12, the process code 15 and the process memory information 16: The shorter one is selected (step S6).
【0040】(i )負荷分散の対象となるプロセスをい
ままで実行していたプロセッサユニットが所有している
メモリユニットから、新しく実行することになるプロセ
ッサユニットが所有しているメモリユニットに転送す
る。例えばプロセッサユニット3aが所有しているメモ
リユニット1aから、新しく実行することになるプロセ
ッサユニット3bが所有しているメモリユニット1bに
転送する。この場合、プロセスの物理的な転送に伴うオ
ーバーヘッドが生じる。(I) The process to be load-balanced is transferred from the memory unit owned by the processor unit that has been executing until now to the memory unit owned by the processor unit to be newly executed. For example, the data is transferred from the memory unit 1a owned by the processor unit 3a to the memory unit 1b owned by the processor unit 3b to be newly executed. In this case, there is overhead associated with the physical transfer of the process.
【0041】(ii)負荷分散の対象となるプロセスの物
理的な転送は行なわず、負荷分散の対象となるプロセス
をいままで実行していたプロセッサユニットの所有して
いたメモリユニットを新しく実行しようとするプロセッ
サユニットの所有とする。このため、スイッチングネッ
トワーク2により接続を切り換える。この場合、切換え
られたメモリユニット上にある負荷分散の対象でないプ
ロセスは、元のプロセッサユニットが実行するため、そ
れらのプロセス実行のためのネットワークの接続を切り
換えることによるオーバーヘッドが生じる。(Ii) The process to be load-balanced is not physically transferred, but the memory unit owned by the processor unit that has been executing the process to be load-balanced is newly executed. Owned by the processor unit. Therefore, the connection is switched by the switching network 2. In this case, the processes that are not subject to load balancing on the switched memory units are executed by the original processor unit, so that the overhead caused by switching the network connection for executing those processes occurs.
【0042】上記(i )の方法が選択されたときは、負
荷分散手段決定部9によりプロセス移動指令22が生成
される。また、上記(ii)の方法が選択されたときは、
負荷分散手段決定部9によりネットワーク切換指令23
が生成される。上記プロセス移動指令22あるいはネッ
トワーク切換指令23の生成によって、プロセスを転送
するか否かが判定される(ステップS7)。When the method (i) is selected, the process load command 22 is generated by the load balancing means determining unit 9. Also, when the method (ii) above is selected,
The network switching command 23 is issued by the load balancing means determining unit 9.
Is generated. By generating the process movement command 22 or the network switching command 23, it is determined whether or not to transfer the process (step S7).
【0043】プロセス移動処理部10がプロセス移動指
令22を受け取ると、プロセッサ情報12、負荷分散プ
ロセス情報21に基づいて負荷分散の対象となるプロセ
スのメモリユニット間の転送を行ない、関係するプロセ
ッサユニットに負荷分散通知信号17を送出する(ステ
ップS8)。また、ネットワーク切換部11がネットワ
ーク切換指令23を受け取ったときは、メモリ情報1
3、負荷分散プロセス情報21に基づいて負荷分散の対
象となるプロセスのあるメモリユニットを新しく実行す
るプロセッサユニットへと接続を切り換え、関係するプ
ロセッサユニットに負荷分散通知信号17を送出する。
以上で負荷分散プロセッサユニット4の処理を終了す
る。When the process migration processing unit 10 receives the process migration command 22, the process migration processing unit 10 performs transfer between the memory units of the processes to be load-balanced on the basis of the processor information 12 and the load balancing process information 21, and the related processor units are transferred. The load balancing notification signal 17 is transmitted (step S8). When the network switching unit 11 receives the network switching command 23, the memory information 1
3. Based on the load balancing process information 21, the connection is switched to the processor unit that newly executes the memory unit having the process to be load balanced, and the load balancing notification signal 17 is sent to the relevant processor unit.
With that, the processing of the load distribution processor unit 4 is completed.
【0044】[0044]
【発明の効果】以上詳記したように本発明によれば、マ
ルチプロセッサシステムにおいて、メモリ構成部の各メ
モリユニットにネットワークを介して負荷分散処理ユニ
ットを接続することにより、負荷に対する情報を時間遅
れを抑えて一括して入力でき、プロセッサユニットに対
する動的負荷分散を実現できると共に、負荷分散に伴う
オーバーヘッドも抑えることができる。As described in detail above, according to the present invention, in a multiprocessor system, by connecting a load distribution processing unit to each memory unit of a memory configuration unit via a network, information regarding a load is delayed. It is possible to suppress the above and input all at once, to realize dynamic load distribution to the processor unit and also to suppress overhead due to the load distribution.
【図1】本発明の一実施例に係るマルチプロセッサの基
本構成図。FIG. 1 is a basic configuration diagram of a multiprocessor according to an embodiment of the present invention.
【図2】同実施例における負荷分散プロセッサユニット
の構成を示すブロック図。FIG. 2 is a block diagram showing a configuration of a load balancing processor unit according to the embodiment.
【図3】同実施例における処理動作を示すフローチャー
ト。FIG. 3 is a flowchart showing a processing operation in the embodiment.
【図4】従来のマルチプロセッサシステムの基本構成
図。FIG. 4 is a basic configuration diagram of a conventional multiprocessor system.
1 メモリ構成部 1a,…,1d メモリユニット 2 スイッチングネットワーク 3 プロセッサ構成部 3a,…,3d プロセッサユニット 4 負荷分散プロセッサユニット 5 (1×n)のスイッチングネットワーク 6 プロセッサ情報処理部 7 メモリ情報処理部 8 負荷分散判定部 9 負荷分散手段決定部 10 プロセス移動処理部 11 ネットワーク切換部 1 memory configuration unit 1a, ..., 1d memory unit 2 switching network 3 processor configuration unit 3a, ..., 3d processor unit 4 load balancing processor unit 5 (1 × n) switching network 6 processor information processing unit 7 memory information processing unit 8 Load balancing determination unit 9 Load balancing means determination unit 10 Process migration processing unit 11 Network switching unit
Claims (1)
トにより構成されるメモリ構成部と、上記メモリユニッ
トに記憶されたプロセスが割り当てられ、この割り当て
られたプロセスを処理する複数のプロセッサユニットに
より構成されるプロセッサ構成部と、該プロセッサ構成
部のプロセッサユニット及びメモリ構成部のメモリユニ
ットを接続するスイッチングネットワークと、上記各プ
ロセスユニットがプロセス処理に伴い負荷に関する情報
を上記対応するメモリユニットに書き込む手段と、上記
メモリ構成部のメモリユニットにネットワークを介して
接続され、該メモリユニットに書き込まれた負荷に関す
る情報に基づいて各プロセッサユニットの負荷分散レベ
ルを判断し、各プロセッサユニットの負荷が平均化する
ように負荷を分散制御する負荷分散プロセッサユニット
とを具備したことを特徴とするマルチプロセッサシステ
ム。1. A memory configuration unit comprising a plurality of memory units for storing processes, and a plurality of processor units for allocating the processes stored in the memory unit and processing the assigned processes. A processor configuration unit, a switching network connecting the processor unit of the processor configuration unit and a memory unit of the memory configuration unit, means for each process unit to write information regarding the load in the corresponding memory unit in accordance with process processing, The load is connected to the memory unit of the memory configuration unit via a network, the load distribution level of each processor unit is determined based on the information about the load written in the memory unit, and the load of each processor unit is averaged. Decentralized A multiprocessor system comprising a load balancing processor unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5955194A JPH07271736A (en) | 1994-03-29 | 1994-03-29 | Multiprocessor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5955194A JPH07271736A (en) | 1994-03-29 | 1994-03-29 | Multiprocessor system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07271736A true JPH07271736A (en) | 1995-10-20 |
Family
ID=13116509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5955194A Withdrawn JPH07271736A (en) | 1994-03-29 | 1994-03-29 | Multiprocessor system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH07271736A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100410918C (en) * | 2004-02-27 | 2008-08-13 | 索尼株式会社 | Information processing apparatus, method, system and information processing program |
JP2008262351A (en) * | 2007-04-11 | 2008-10-30 | Mitsubishi Electric Corp | Access control device |
-
1994
- 1994-03-29 JP JP5955194A patent/JPH07271736A/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100410918C (en) * | 2004-02-27 | 2008-08-13 | 索尼株式会社 | Information processing apparatus, method, system and information processing program |
JP2008262351A (en) * | 2007-04-11 | 2008-10-30 | Mitsubishi Electric Corp | Access control device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101502896B1 (en) | Distributed memory cluster control apparatus and method using map reduce | |
US11526276B2 (en) | Upgrade management method and scheduling node, and storage system | |
US8185656B2 (en) | Process and computer for collectively transmitting unique messages, and recording medium storing a program for collectively transmitting unique messages | |
JPH08185380A (en) | Parallel computer | |
CN104702691A (en) | Distributed load balancing method and device | |
CN113553171A (en) | Load balancing control method, device and computer readable storage medium | |
KR102172607B1 (en) | Method for balanced scale-out of resource on distributed and collaborative container platform environment | |
EP0107453A1 (en) | Data processing systems | |
CN106059940A (en) | Flow control method and device | |
CN113382040B (en) | Load balancing method, electronic device and computer readable storage medium | |
JPH07271736A (en) | Multiprocessor system | |
US8223144B2 (en) | Method and apparatus for processing object collision | |
CN112631994A (en) | Data migration method and system | |
JPH10207850A (en) | Dispatching system and method for multiprocessor system, and recording medium recorded with dispatching program | |
CN114827079B (en) | Capacity expansion method, device and storage medium of network address translation gateway | |
CN116302327A (en) | Resource scheduling method and related equipment | |
JP2020021254A (en) | Storage device and method for controlling the same | |
KR100331492B1 (en) | How to configure a distributed computer system | |
US7240155B2 (en) | Decision mechanisms for adapting RAID operation placement | |
JP3377125B2 (en) | Network load smoothing method | |
JPH1188373A (en) | Load distribution method by connection sorting | |
EP0463813A2 (en) | Elevator group management system and elevator assignment method | |
JP2007042083A (en) | Database management system construction method, device, program and recording medium | |
JPH1063607A (en) | Dma controller | |
JPH04342057A (en) | Task management system of multiprocessor system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20010605 |