JPH07295942A - Distributed processor and load distribution processing method - Google Patents

Distributed processor and load distribution processing method

Info

Publication number
JPH07295942A
JPH07295942A JP6089494A JP8949494A JPH07295942A JP H07295942 A JPH07295942 A JP H07295942A JP 6089494 A JP6089494 A JP 6089494A JP 8949494 A JP8949494 A JP 8949494A JP H07295942 A JPH07295942 A JP H07295942A
Authority
JP
Japan
Prior art keywords
processes
child
storage means
computer
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6089494A
Other languages
Japanese (ja)
Inventor
Toshiaki Takewaki
敏晃 武脇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP6089494A priority Critical patent/JPH07295942A/en
Publication of JPH07295942A publication Critical patent/JPH07295942A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To suppress inter-process communication through computers from frequently occuring in the case of performing automatic load distribution in the plural computers. CONSTITUTION:At the time of compiling a program, inter-process communication relation included in the program is statically analyzed by an inter-process communication relation analysis part 111 and inter-process parentage relation is statically analyzed by an inter-process parentage relation analysis part 112 respectively and the analysis information is stored in a process analysis information storage part 13. When the need of distributing the process from the computer 10-1 to the other computer is generated while executing the program, based on the process analysis information stored in the process analysis information storage part 13, a process selection part 16 selects the process with less inter-process communication relation from a process pool 14 and further, when it is indicated that the processes to be slaves are present for the process by (inter-process parentage relation information in) the process analysis information, they are selected together.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、複数の計算機からなる
分散処理装置及び分散処理装置上の各計算機において適
用される負荷分散処理方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a distributed processing device comprising a plurality of computers and a load distribution processing method applied to each computer on the distributed processing device.

【0002】[0002]

【従来の技術】従来から、より処理能力の高い計算機シ
ステムを実現するために、複数の計算機が仕事を分担し
て並列に処理を行う並列処理技術の開発が行われてい
る。このような並列処理技術で最も問題となることは、
いかに効率良くそれぞれの計算機に仕事(プロセス)を
割り付けることができるかである。この作業は、一般に
負荷分散と呼ばれている。
2. Description of the Related Art Conventionally, in order to realize a computer system having a higher processing capacity, parallel processing technology has been developed in which a plurality of computers share the work and perform processing in parallel. The biggest problem with such parallel processing technology is
It is how efficiently work (process) can be assigned to each computer. This work is generally called load balancing.

【0003】負荷分散には、プログラマがプロセスをど
のように複数の計算機に割り付けるかをプログラム中に
明示する方法(以下、明示的負荷分散と称する)と、処
理装置が自動的にプログラムを割り付ける方法(以下、
自動的負荷分散と称する)とがある。
For load balancing, a method in which a programmer explicitly specifies how to allocate a process to a plurality of computers in a program (hereinafter referred to as explicit load balancing) and a method in which a processor automatically allocates the program. (Less than,
Automatic load balancing)).

【0004】明示的負荷分散は、プログラマがプログラ
ム全体に対して深い理解を持ち、システムの想定できる
挙動を考慮できるならば、効率の良いものになる。しか
しながら、大規模なシステムや開発途上のシステムの場
合に、システム全体の挙動を考慮して負荷分散の指示を
行うことは困難を極める。また、小規模なシステムであ
っても、システムの挙動が動作の度に大きく変化する場
合には、指示が難しく、更には、システムのチューニン
グに大きな労力を必要とする。
Explicit load balancing can be efficient if the programmer has a deep understanding of the program as a whole and can consider the expected behavior of the system. However, in the case of a large-scale system or a system under development, it is extremely difficult to give a load balancing instruction in consideration of the behavior of the entire system. Further, even in a small-scale system, it is difficult to give an instruction when the behavior of the system greatly changes with each operation, and further, a great effort is required to tune the system.

【0005】一方、自動的負荷分散は、処理装置が自動
的に負荷を分散するために、並列プログラミングの初心
者やシステムの開発途上においても、或る程度の並列性
が得られる。しかしながら、従来の自動的負荷分散の方
法では、必ずしも負荷分散が効率良く行われないことが
あった。
On the other hand, in the automatic load balancing, a certain degree of parallelism can be obtained even for a beginner of parallel programming or during the development of the system because the processing device automatically balances the load. However, in the conventional automatic load balancing method, load balancing may not always be performed efficiently.

【0006】本発明者は、この要因が、候補となるプロ
セスの選択において、キューに入れられた順序などを基
準にすること、即ち複数の候補がある場合に一定の重み
でプロセスの選択が行われることにあることを認識する
に至った。具体的には、候補となるプロセスの選択にお
いて、キューに入れられた順序などを基準にしている結
果、プロセス間通信の頻繁な部分が別の計算機に割り当
てられることが発生すると、通信のボトルネックを招い
てしまう。また、生存期間の短いプロセスが他の計算機
に割り当てられると、割り付け操作(負荷分散操作)が
頻繁に発生する。いずれも負荷分散がうまくいかない。
The present inventor uses this factor in selecting a candidate process based on the queued order, that is, when there are a plurality of candidates, the process is selected with a certain weight. I came to recognize that there is something to be done. Specifically, when a candidate process is selected based on the queued order, etc., if a frequent part of interprocess communication is assigned to another computer, a communication bottleneck occurs. Will be invited. Moreover, when a process with a short life span is assigned to another computer, an allocation operation (load balancing operation) frequently occurs. In both cases, load distribution does not work well.

【0007】[0007]

【発明が解決しようとする課題】上記したように従来か
ら知られている明示的負荷分散では、プログラマがプロ
グラム全体の実行時の挙動を把握した上で、プログラム
中に負荷分散の指定を行わなければならないが、システ
ム全体の挙動を把握することは極めて困難であり、簡単
に適用できないという問題があった。
As described above, in the conventionally known explicit load balancing, the programmer must specify the load balancing in the program after grasping the behavior at the time of execution of the entire program. However, it is extremely difficult to understand the behavior of the entire system, and there is a problem that it cannot be easily applied.

【0008】また、従来の自動的負荷分散では、複数の
候補がある場合に一定の重みでプロセスの選択が行われ
るために、負荷分散操作が頻繁に発生するなど、必ずし
も負荷分散が効率良く行えないという問題があった。
Further, in the conventional automatic load balancing, when there are a plurality of candidates, the process is selected with a constant weight, so that the load balancing operation frequently occurs and the load balancing is not always performed efficiently. There was a problem of not having.

【0009】本発明は上記事情を考慮してなされたもの
でその目的は、複数の計算機で自動的負荷分散を行う場
合、計算機をまたがるプロセス間通信が頻繁に起きるこ
とを抑えることができ、処理効率の良い分散処理装置、
及び高性能な負荷分散処理方法を提供することにある。
The present invention has been made in consideration of the above circumstances, and an object thereof is to suppress frequent occurrence of inter-process communication across computers when performing automatic load balancing by a plurality of computers, Efficient distributed processing equipment,
And to provide a high-performance load balancing processing method.

【0010】[0010]

【課題を解決するための手段及び作用】本発明の第1の
観点に係る構成は、分散処理装置を構成する各計算機
に、プログラムからプロセス間の通信関係を静的に解析
するプロセス間通信関係解析手段と、プログラムに含ま
れるプロセス間の親子関係を静的に解析するプロセス間
親子関係解析手段と、プロセス間通信関係解析手段によ
って得られたプロセス間の通信関係情報及びプロセス間
親子関係解析手段によって得られたプロセス間の親子関
係情報がプロセス解析情報として格納されるプロセス解
析情報格納手段と、プロセスの集合が格納されるプロセ
ス格納手段と、プログラムの実行時に、プロセスの生
成、実行、中断、消滅の管理を行うプロセス実行手段で
あって、プロセスの生成時には生成したプロセスをプロ
セス格納手段に格納し、プロセスの消滅時にはプロセス
格納手段から該当するプロセスを取り除くプロセス実行
手段と、プログラム実行時に、プロセス解析情報格納手
段に格納されているプロセス解析情報をもとに、他の計
算機に処理を依頼するプロセスをプロセス格納手段から
選択するプロセス選択手段と、プロセス選択手段によっ
て選択されたプロセスを他の計算機に送るプロセス送信
手段と、他の計算機から送られたプロセスを受信してプ
ロセス格納手段に格納するプロセス受信手段とを備えた
ことを特徴とするものである。
The configuration according to the first aspect of the present invention relates to an inter-process communication relationship in which each computer constituting a distributed processing device statically analyzes the communication relationship between processes from a program. Analyzing means, inter-process parent-child relationship analyzing means for statically analyzing parent-child relationships between processes included in the program, communication relationship information between processes obtained by the inter-process communication relationship analyzing means, and inter-process parent-child relationship analyzing means Process analysis information storage means for storing the parent-child relationship information between processes obtained as a result as process analysis information, a process storage means for storing a set of processes, and a process generation, execution, interruption, A process execution means for managing disappearance, and when the process is created, the created process is stored in the process storage means. When a process disappears, a process execution unit that removes the corresponding process from the process storage unit and a process that requests another computer to perform processing based on the process analysis information stored in the process analysis information storage unit when the program is executed. Process selection means for selecting from the process storage means, process transmission means for sending the process selected by the process selection means to another computer, and process reception for receiving the process sent from another computer and storing it in the process storage means And means.

【0011】上記の構成においては、例えばコンパイル
時などに、その対象となるプログラム内に含まれるプロ
セス間の通信関係がプロセス間通信関係解析手段により
解析され、同じくプロセス間の親子関係がプロセス間親
子関係解析手段により解析される。これらの解析によっ
て得られた情報から、プロセス間の通信関係とプロセス
間の親子関係を知ることが可能となる。そこで、これら
の情報(プロセス解析情報)をプログラムの実行時に利
用可能とするために、プロセス解析情報格納手段に格納
しておく。
In the above configuration, for example, at the time of compiling, the inter-process communication relation analyzing means analyzes the communication relation between the processes included in the target program, and the parent-child relation between processes is also the inter-process parent-child relation. It is analyzed by the relationship analysis means. From the information obtained by these analyzes, it becomes possible to know the communication relationship between processes and the parent-child relationship between processes. Therefore, these pieces of information (process analysis information) are stored in the process analysis information storage means in order to be available when the program is executed.

【0012】さて、プログラム実行中には、プロセス実
行手段によって、プロセスの生成、実行、中断、消滅が
管理される。また、プログラム実行中において他計算機
に負荷分散を行う必要が発生した場合には、プロセス選
択手段が起動される。プロセス選択手段は、プロセス解
析情報格納手段に格納されているプロセス解析情報をも
とに、他の計算機に処理を依頼するプロセスをプロセス
格納手段に格納されているプロセス集合の中から選択す
る。ここで、プロセス間通信関係の少ないプロセスを選
択して他計算機に送ることにより、そのプロセスが送り
先の計算機で処理された際に、計算機をまたがるプロセ
ス間通信の発生を最小限に抑えることが可能となる。ま
た、選択したプロセスに、子となるプロセスがあること
がプロセス間親子関係情報によって示されている場合に
は、それら(のうちプロセス格納手段に格納されている
プロセス)も一緒に選択して他計算機に送ることによ
り、一層高性能な負荷分散が可能となる。
During program execution, the process execution means manages the generation, execution, interruption, and disappearance of processes. Further, when it is necessary to distribute the load to other computers during the execution of the program, the process selecting means is activated. The process selecting means selects, from the process set stored in the process storing means, a process for requesting processing to another computer based on the process analysis information stored in the process analyzing information storing means. Here, by selecting a process that has little inter-process communication relationship and sending it to another computer, it is possible to minimize the occurrence of inter-process communication across computers when the process is processed by the destination computer. Becomes In addition, if the interprocess parent-child relationship information indicates that the selected process has child processes, those (of which, the processes stored in the process storage means) are also selected together. By sending the data to a computer, it becomes possible to perform load distribution with higher performance.

【0013】また、本発明の第2の観点に係る構成は、
上記第1の観点に係る構成において、プロセス間通信関
係解析手段及びプロセス間親子関係解析手段に代えて、
プログラム内に含まれるプロセスから起動される子プロ
セス数を静的に解析するプロセス数解析手段を設け、こ
のプロセス数解析手段によって予め得られている子プロ
セス数の情報をもとに、他の計算機に処理を依頼するプ
ロセスをプロセス選択手段において選択するようにした
ことを特徴とする。
The configuration according to the second aspect of the present invention is
In the configuration according to the first aspect, in place of the inter-process communication relation analysis means and the inter-process parent-child relation analysis means,
Provided is a process number analysis means for statically analyzing the number of child processes activated from the processes included in the program, and based on the information of the child process number obtained in advance by this process number analysis means, another computer The process selecting means selects a process to be processed by the process selecting means.

【0014】即ち上記の構成においては、静的な子プロ
セス数の情報をもとに、他の計算機に処理を依頼するプ
ロセスが選択される。ここで、静的な子プロセス数の多
いプロセスを選択して他計算機に送ることにより、その
送り先計算機での負荷を多くし、負荷分散処理の頻繁な
発生を防ぐことが可能となる。
That is, in the above-mentioned configuration, a process for requesting processing to another computer is selected based on the static information on the number of child processes. Here, by selecting a process having a large number of static child processes and sending it to another computer, it is possible to increase the load on the destination computer and prevent frequent occurrence of load balancing processing.

【0015】また、本発明の第3の観点に係る構成は、
各プロセスが起動した子プロセス数を動的に計測するプ
ロセス数管理手段を設け、このプロセス数管理手段によ
り得られる動的な子プロセス数をもとに、他の計算機に
処理を依頼するプロセスをプロセス選択手段において選
択するようにしたことを特徴とする。
The configuration according to the third aspect of the present invention is
A process number management unit that dynamically measures the number of child processes started by each process is provided, and based on the dynamic number of child processes obtained by this process number management unit, a process that requests another computer to process It is characterized in that the selection is made by the process selecting means.

【0016】即ち上記の構成においては、動的な子プロ
セス数の情報をもとに、他の計算機に処理を依頼するプ
ロセスが選択される。ここで、動的な子プロセス数の多
いプロセスはプロセス間通信が既に発生している可能性
が高いので選択の対象から外し、動的な子プロセス数の
少ないプロセスを選択して他計算機に送ることにより、
その送り先計算機とのプロセス間通信を減らすことが可
能となる。
That is, in the above-mentioned configuration, the process for requesting the processing to another computer is selected based on the information of the dynamic number of child processes. Here, it is highly likely that interprocess communication has already occurred for a process with a large number of dynamic child processes, so it is excluded from the selection targets, and a process with a small number of dynamic child processes is selected and sent to another computer. By
It becomes possible to reduce interprocess communication with the destination computer.

【0017】本発明の第4の観点に係る構成は、上記第
2の観点に係る構成と第3の観点に係る構成とを組み合
わせ、プロセス数解析手段によって予め得られている静
的な子プロセス数の情報及びプロセス数管理手段によっ
て得られた動的な子プロセス数をもとに、他の計算機に
処理を依頼するプロセスをプロセス選択手段において選
択するようにしたことを特徴とする。
The configuration according to the fourth aspect of the present invention is a combination of the configuration according to the second aspect and the configuration according to the third aspect, which is a static child process previously obtained by the process number analysis means. It is characterized in that the process selecting means selects a process for requesting processing to another computer based on the number information and the number of dynamic child processes obtained by the process number managing means.

【0018】即ち上記の構成においては、静的なプロセ
ス数の情報及び動的な子プロセス数の情報をもとに、他
の計算機に処理を依頼するプロセスが選択される。ここ
で、静的な子プロセス数がより多く、動的な子プロセス
数がより少ないプロセスを選択して他計算機に送ること
により、その送り先計算機での負荷を多くし、負荷分散
処理の頻繁な発生を防ぐことと、その送り先計算機との
プロセス間通信を減らすことが可能となる。
That is, in the above configuration, a process for requesting processing to another computer is selected based on the information on the number of static processes and the information on the number of dynamic child processes. Here, by selecting a process with a larger number of static child processes and a smaller number of dynamic child processes and sending it to another computer, the load on the destination computer is increased and frequent load balancing processing is performed. It is possible to prevent the occurrence and reduce the inter-process communication with the destination computer.

【0019】[0019]

【実施例】以下、図面を参照して本発明の実施例につき
説明する。 [第1の実施例]図1は本発明の第1の実施例に係る分
散処理装置の主要な構成を示すブロック図である。
Embodiments of the present invention will be described below with reference to the drawings. [First Embodiment] FIG. 1 is a block diagram showing the main configuration of a distributed processing apparatus according to the first embodiment of the present invention.

【0020】図1に示す分散処理装置は、複数の計算機
10-1,…,10-i,…と、これら各計算機間の通信に
用いられる通信路20により構成される。計算機10-1
は、プログラム変換部11、プログラム格納部12、プ
ロセス解析情報格納部13、プロセスプール14、プロ
セス実行部15、プロセス選択部16及びプロセス送受
信部17を有している。この計算機10-1の構成は、他
の計算機についても同様である。
The distributed processing system shown in FIG. 1 comprises a plurality of computers 10-1, ..., 10-i, ... And a communication path 20 used for communication between these computers. Calculator 10-1
Has a program conversion unit 11, a program storage unit 12, a process analysis information storage unit 13, a process pool 14, a process execution unit 15, a process selection unit 16, and a process transmission / reception unit 17. The configuration of this computer 10-1 is the same for other computers.

【0021】プログラム変換部11は、図示せぬコンパ
イラの他に、プロセス間通信などのプログラム依存を静
的に解析するためのプロセス間通信関係解析部111
と、プロセスの生成構造を解析するためのプロセス間親
子関係解析部112と、この各解析部111,112で
得られた情報をプロセス解析情報として統合し、プロセ
ス解析情報格納部12に書き込むプロセス解析情報書込
部113とを有している。
The program conversion unit 11 includes an inter-process communication relation analysis unit 111 for statically analyzing program dependence such as inter-process communication in addition to a compiler (not shown).
And the inter-process parent-child relationship analysis unit 112 for analyzing the generation structure of the process, and the information obtained by the analysis units 111 and 112 are integrated as process analysis information and written in the process analysis information storage unit 12. It has an information writing unit 113.

【0022】プログラム格納部12は、プログラム(こ
こではソースプログラム)を格納しておくためのもので
あり、図示せぬ2次記憶上に確保される。プロセス解析
情報格納部13は、プロセス間通信関係解析部111及
びプロセス間親子関係解析部112によって得られたプ
ロセス解析情報を格納しておくためのものであり、2次
記憶上に確保される。
The program storage unit 12 is for storing a program (here, a source program), and is secured on a secondary storage (not shown). The process analysis information storage unit 13 is for storing the process analysis information obtained by the inter-process communication relation analysis unit 111 and the inter-process parent-child relation analysis unit 112, and is secured in the secondary storage.

【0023】プロセスプール14は、計算機(ここでは
計算機10-1)内のプロセスを格納しておくためのもの
であり、図示せぬ主記憶、もしくは2次記憶上に置かれ
る。ここで、プログラム格納部12及びプロセス解析情
報格納部13は、分散処理装置内で、各計算機から共有
可能であるとする。
The process pool 14 is for storing processes in a computer (here, the computer 10-1), and is placed in a main memory or a secondary memory (not shown). Here, it is assumed that the program storage unit 12 and the process analysis information storage unit 13 can be shared by each computer in the distributed processing device.

【0024】プロセス実行部15は、プログラムの実行
時に、プロセスの生成、プロセスの実行(起動)、プロ
セスの中断、プロセスの消滅(終了)の管理を行うもの
である。プロセス実行部15はまた、実行プロセスの生
成した子プロセスをプロセスプール14に格納する動作
と、消滅したプロセスをプロセスプール14から取り除
くなどの操作も行う。
The process execution unit 15 manages generation of a process, execution (activation) of a process, interruption of a process, and disappearance (termination) of a process when a program is executed. The process execution unit 15 also performs an operation of storing the child process generated by the execution process in the process pool 14, and an operation of removing the disappeared process from the process pool 14.

【0025】プロセス選択部16は、プロセスを他の計
算機に分散させるとき、プロセス解析情報格納部13に
格納されている情報をもとに、プロセスプール14から
候補となるプロセスを選択するものである。
The process selection unit 16 selects a candidate process from the process pool 14 based on the information stored in the process analysis information storage unit 13 when the process is distributed to other computers. .

【0026】プロセス送受信部17は、プロセス選択部
16により選択されたプロセスを他の計算機に送信する
プロセス送信部171と、他の計算機から送られてきた
プロセスを受信してプロセスプール14に格納するプロ
セス受信部172とから構成される。
The process transmission / reception unit 17 receives a process selected by the process selection unit 16 to another computer, and a process transmission unit 171 to receive a process sent from another computer and stores it in the process pool 14. It is composed of a process receiving unit 172.

【0027】次に、図1の構成の分散処理装置における
計算機動作を、計算機10-1での動作を例に、(1)プ
ログラム解析時と、(2)プログラム実行時にわけて説
明する。 (1)プログラム解析時 まず、本実施例におけるプログラムの解析は、プログラ
ムのコンパイル/リンクと同時に行われるものとする。
コンパイルを指示されたプログラム(ソースプログラ
ム)は、プログラム変換部11内の図示せぬコンパイラ
によってプログラム格納部12から取り出され、コンパ
イル/リンクが行われる。このプログラム格納部12か
ら取り出されたプログラムは、同時にプログラム変換部
11内のプロセス間通信関係解析部111及びプロセス
間親子関係解析部112に渡される。
Next, the computer operation in the distributed processing apparatus having the configuration shown in FIG. 1 will be described by taking the operation of the computer 10-1 as an example, separately for (1) program analysis and (2) program execution. (1) At the time of program analysis First, the analysis of the program in this embodiment is performed simultaneously with the compiling / linking of the program.
The program (source program) instructed to compile is taken out from the program storage unit 12 by a compiler (not shown) in the program conversion unit 11 and compiled / linked. The programs extracted from the program storage unit 12 are simultaneously passed to the inter-process communication relation analysis unit 111 and the inter-process parent-child relation analysis unit 112 in the program conversion unit 11.

【0028】プロセス間通信関係解析部111は、コン
パイラによるコンパイル/リンクの対象となるプログラ
ムを受け取ると、当該プログラムからプロセス間通信の
部分を探す。即ち、プロセス間通信関係解析部111
は、プロセス間通信の部分がプログラム中に“comm
(プロセス名)”で示されているものとすると、その
“comm(プロセス名)”の箇所をプロセス間通信の
部分としてプログラムから探すことにより、当該プログ
ラムに含まれるプロセス間の通信関係を静的に解析す
る。
Upon receiving the program to be compiled / linked by the compiler, the inter-process communication relation analysis unit 111 searches for the inter-process communication part from the program. That is, the inter-process communication relationship analysis unit 111
The intercommunication part is "comm
(Process name) ", the" comm (process name) "part is searched for from the program as a part of the interprocess communication to statically establish the communication relationship between the processes included in the program. To analyze.

【0029】一方、プロセス間親子関係解析部112
は、コンパイラによるコンパイル/リンクの対象となる
プログラムを受け取ると、当該プログラムに含まれる子
プロセス生成の部分(子プロセスのフォーク部分)を探
す。即ちプロセス間親子関係解析部112は、子プロセ
スのフォーク部分がプログラム中に“fork(プロセ
ス名)で示されているものとすると、その“fork
(プロセス名)”の箇所を子プロセスのフォーク部分と
してプログラムから探すことにより、当該プログラムに
含まれるプロセス間の親子関係を静的に解析する。
On the other hand, the inter-process parent-child relationship analysis unit 112
When receiving a program to be compiled / linked by the compiler, searches for a child process generation portion (fork portion of the child process) included in the program. That is, the inter-process parent-child relationship analysis unit 112, assuming that the fork part of the child process is indicated by "fork (process name)" in the program, the "fork"
By searching the program for "process name" as a fork part of the child process, the parent-child relationship between the processes included in the program is statically analyzed.

【0030】ここで、コンパイルを指示されたプログラ
ムが図2に示すようなものであるとする。この場合、プ
ロセス間通信関係解析部111は、この図2に示すプロ
グラムから、プロセスAがプロセスB及びプロセスDと
通信し、プロセスDがプロセスAと通信することを見つ
ける。またプロセス間通信関係解析部111は、プロセ
スEが他のプロセスと通信しないことも見つける。
Here, it is assumed that the program instructed to compile is as shown in FIG. In this case, the inter-process communication relationship analysis unit 111 finds from the program shown in FIG. 2 that the process A communicates with the process B and the process D, and the process D communicates with the process A. The inter-process communication relation analysis unit 111 also finds that the process E does not communicate with other processes.

【0031】一方、プロセス間親子関係解析部112
は、プロセスAが子プロセスとしてプロセスBとプロセ
スCをフォークする(生成する)ことを見つける。また
プロセス間親子関係解析部112は、プロセスDとプロ
セスEが子プロセスをフォークしないことも見つける。
On the other hand, the inter-process parent-child relationship analysis unit 112
Finds that process A forks (creates) process B and process C as child processes. The inter-process parent-child relationship analysis unit 112 also finds that the process D and the process E do not fork a child process.

【0032】プロセス間通信関係解析部111によって
見つけられたプロセス間の通信関係の解析情報は、対象
プロセスのプロセス名と、そのプロセス名のプロセスと
通信を行う全てのプロセス(関連プロセス)のプロセス
名とが組になったプロセス解析情報として、プロセス解
析情報書込部113に渡される。また、プロセス間親子
関係解析部112によって見つけられたプロセス間の親
子関係の解析情報は、対象プロセスのプロセス名と、当
該対象プロセスの全ての子プロセス(関連プロセス)の
プロセス名とが組になったプロセス解析情報として、プ
ロセス解析情報書込部113に渡される。
The analysis information of the inter-process communication relation found by the inter-process communication relation analyzing unit 111 is the process name of the target process and the process names of all processes (related processes) that communicate with the process having the process name. It is passed to the process analysis information writing unit 113 as the process analysis information in the form of a pair. The analysis information of the parent-child relationship between processes found by the inter-process parent-child relationship analysis unit 112 is a combination of the process name of the target process and the process names of all child processes (related processes) of the target process. It is passed to the process analysis information writing unit 113 as the process analysis information.

【0033】したがって、コンパイルを指示されたプロ
グラムが図2に示すようなものである場合、プロセス間
通信関係解析部111からプロセス解析情報書込部11
3には、対象プロセスAのプロセス名と関連プロセス
B,Dのプロセス名との組、及び対象プロセスDのプロ
セス名と関連プロセスAのプロセス名との組が、プロセ
ス解析情報として渡される。同様に、プロセス間親子関
係解析部112からプロセス解析情報書込部113に
は、対象プロセスAのプロセス名と関連プロセスB,C
のプロセス名との組が、プロセス解析情報として渡され
る。
Therefore, when the program instructed to compile is as shown in FIG. 2, the interprocess communication relation analysis unit 111 to the process analysis information writing unit 11
A set of the process name of the target process A and the process names of the related processes B and D, and a set of the process name of the target process D and the process name of the related process A are passed to 3 as process analysis information. Similarly, the process name of the target process A and the related processes B and C are transferred from the inter-process parent / child relationship analysis unit 112 to the process analysis information writing unit 113.
The process name and the process name are passed as process analysis information.

【0034】プロセス解析情報書込部113は、プロセ
ス間通信関係解析部111及びプロセス間親子関係解析
部112からプロセス解析情報を受け取ると、プロセス
間通信関係解析部111からのプロセス解析情報には通
信関係を示す識別フラグCを付し、プロセス間親子関係
解析部112からのプロセス解析情報には親子関係を示
す識別フラグFを付して、図3に示す形式で、即ち対象
プロセス名と、その対象プロセス名のプロセスとの関係
を識別するフラグ(プロセス間通信関係を示す識別フラ
グCまたはプロセス間親子関係を示す識別フラグF)
と、対象プロセスと当該識別フラグで示される関係を持
つ全ての関連プロセスのプロセス名(の集合)とを組に
して、プロセス解析情報格納部13に書き込む。 (2)プログラム実行時 次に、計算機10-1におけるプログラム実行時の動作を
説明する。
When the process analysis information writing unit 113 receives the process analysis information from the inter-process communication relation analysis unit 111 and the inter-process parent-child relation analysis unit 112, the process analysis information from the inter-process communication relation analysis unit 111 communicates with the process analysis information. An identification flag C indicating a relationship is attached, and an identification flag F indicating a parent-child relationship is attached to the process analysis information from the inter-process parent-child relationship analysis unit 112 in the format shown in FIG. Flag for identifying the relationship between the target process name and the process (identification flag C indicating inter-process communication relationship or identification flag F indicating inter-process parent-child relationship)
And the target process and the process names (sets) of all the related processes having the relationship indicated by the identification flag are written into the process analysis information storage unit 13. (2) Program Execution Next, the operation of the computer 10-1 during program execution will be described.

【0035】プロセス実行部15は、プログラム実行時
には、プロセスの生成、プロセスの実行(起動)、プロ
セスの中断、プロセスの消滅(終了)の管理を行う。そ
してプロセス実行部15は、プロセス生成時には、生成
した新たなプロセスをプロセスプール14に格納し、プ
ロセス消滅時には、消滅したプロセスをプロセスプール
14から取り除くなどの操作を行う。
The process execution unit 15 manages generation of a process, execution (activation) of a process, interruption of a process, and disappearance (termination) of a process during program execution. Then, the process execution unit 15 stores the generated new process in the process pool 14 when the process is generated, and performs an operation such as removing the deleted process from the process pool 14 when the process is deleted.

【0036】さて、プログラム実行状態において計算機
10-1の負荷が高くなり、他計算機にプロセスを分散さ
せる必要が生じた場合、計算機10-1内のプロセス選択
部16は、プロセス解析情報格納部13に格納されてい
る、図3に示した形式のプロセス解析情報をもとに、候
補プロセスを選択する。
When the load on the computer 10-1 becomes high in the program execution state and it becomes necessary to distribute the processes to other computers, the process selection unit 16 in the computer 10-1 causes the process analysis information storage unit 13 to operate. A candidate process is selected based on the process analysis information of the format shown in FIG.

【0037】本実施例において、上記したプロセスの負
荷分散先の計算機には、その時点において分散処理装置
中で最も負荷の低い計算機が選ばれる。このため、各計
算機は、任意のタイミング或いは定期的に、自身の負荷
を他の全計算機に例えばブロードキャスト通信により通
知すると共に、他計算機から通知された当該計算機の負
荷状態を、負荷テーブル(負荷記憶部)等により保持・
管理して、他計算機の最新の負荷状態を把握できるよう
になっている。
In the present embodiment, the computer with the lowest load in the distributed processing apparatus at that time is selected as the computer to which the load of the above process is distributed. For this reason, each computer notifies its own load to all other computers by, for example, broadcast communication at an arbitrary timing or at regular intervals, and the load state of the computer notified from the other computer is stored in the load table (load storage). Part) etc.
It can be managed and grasp the latest load status of other computers.

【0038】ここで、プロセス選択部16のプロセス選
択動作を、プロセスプール14の内容が図4(a)に示
す状態にある場合と、図4(b)に示す状態にある場合
の各々について、図5のフローチャートを参照して説明
する。
Here, the process selecting operation of the process selecting section 16 is performed for each of the case where the content of the process pool 14 is in the state shown in FIG. 4A and the case where it is in the state shown in FIG. 4B. This will be described with reference to the flowchart of FIG.

【0039】プロセス選択部16は、他計算機、例えば
計算機10-iにプロセスを分散させる必要が生じた場
合、プロセスプール14に格納されているプロセスは当
該計算機10-iへのマイグレーション(移動)が可能で
あるものとして、そのいずれを移動(他計算機10-iで
処理)させるかを、次のようにして判断し、選択する。
When it becomes necessary to distribute the process to another computer, for example, the computer 10-i, the process selection unit 16 does not migrate the process stored in the process pool 14 to the computer 10-i. It is possible to determine which of them is to be moved (processed by the other computer 10-i) in the following manner and selected.

【0040】まずプロセス選択部16は、プロセスプー
ル14に格納されているプロセスの数を調べ(ステップ
S1)、プロセス数が1つの場合(ステップS2)に
は、そのプロセスを他計算機(計算機10-i)で処理さ
せるべきものとして選択する(ステップS3)。この
際、プロセス選択部16は、選択したプロセスをプロセ
スプール14から取り除く。
First, the process selection unit 16 checks the number of processes stored in the process pool 14 (step S1). If the number of processes is one (step S2), the process is selected by another computer (computer 10-). It is selected as one to be processed in i) (step S3). At this time, the process selection unit 16 removes the selected process from the process pool 14.

【0041】またプロセス選択部16は、プロセスプー
ル14に格納されているプロセス数が2つ以上の場合に
は、プロセス解析情報格納部13を参照して、プロセス
プール14に格納されている各プロセスについて、その
プロセスのプロセス名を対象プロセス名として持ち且つ
識別フラグCを持つプロセス解析情報を探し、その関連
プロセス数を調べる(ステップS4)。
When the number of processes stored in the process pool 14 is two or more, the process selection unit 16 refers to the process analysis information storage unit 13 to refer to each process stored in the process pool 14. Regarding, the process analysis information having the process name of the process as the target process name and having the identification flag C is searched, and the number of related processes is checked (step S4).

【0042】プロセス選択部16は、ステップS4で関
連プロセス数を調べた結果、関連プロセス数が最小の対
象プロセスが1つだけ存在する場合(ステップS5)に
は、そのプロセスを他計算機(計算機10-i)で処理す
べきものとして選択する(ステップS3)。この理由
は、識別フラグCを持つ対象プロセスの中から、関連プ
ロセス数(即ち、対象プロセスと通信を行うプロセス
数)が最小の唯一の対象プロセスを選択した場合、計算
機をまたがるプロセス間通信の発生を最小限に抑えるこ
とができ、処理効率の向上を図ることができるためであ
る。なお、プロセス選択部16は、ステップS3にてプ
ロセスを選択した場合、その選択したプロセスをプロセ
スプール14から取り除く。
As a result of checking the number of related processes in step S4, if there is only one target process having the smallest number of related processes (step S5), the process selection unit 16 determines that process as another computer (computer 10). -i) is selected as one to be processed (step S3). The reason for this is that, from among the target processes having the identification flag C, when the only target process having the smallest number of related processes (that is, the number of processes communicating with the target process) is selected, inter-process communication across computers occurs. This is because the processing efficiency can be minimized and the processing efficiency can be improved. When the process selecting unit 16 selects a process in step S3, the process selecting unit 16 removes the selected process from the process pool 14.

【0043】これに対し、関連プロセス数が最小の対象
プロセスが2つ以上存在する場合には、この関連プロセ
ス数が最小の各対象プロセスを選択候補とする(ステッ
プS6)。この場合、プロセス選択部16は、プロセス
解析情報格納部13を参照して、各選択候補(対象プロ
セス)のプロセス名を対象プロセス名として持ち且つ識
別フラグFを持つプロセス解析情報を探し、その関連プ
ロセス数を調べる(ステップS7)。そしてプロセス選
択部16は、関連プロセス数が最大の対象プロセスを他
計算機(計算機10-i)で処理すべきものとして選択す
る(ステップS8)。この理由は、対象プロセスと通信
を行う関連プロセス数をもとに決定される選択候補が複
数の場合、その選択候補の中から、関連プロセス数(即
ち、対象プロセスの子プロセスとして生成される可能性
のある数)が最大の対象プロセスを選択した場合、計算
機10-1側の負荷が最も軽減されるためである。なお、
関連プロセス数が最大の対象プロセスが複数存在する場
合には、そのうちのいずれのプロセスを選択しても構わ
ない。プロセス選択部16は、ステップS8にてプロセ
スを選択した場合、その選択したプロセスをプロセスプ
ール14から取り除く。
On the other hand, when there are two or more target processes having the smallest number of related processes, each target process having the smallest number of related processes is selected as a selection candidate (step S6). In this case, the process selection unit 16 refers to the process analysis information storage unit 13 and searches for process analysis information having the process name of each selection candidate (target process) as the target process name and the identification flag F, and the related The number of processes is checked (step S7). Then, the process selection unit 16 selects the target process having the largest number of related processes as a process to be processed by another computer (computer 10-i) (step S8). The reason for this is that when there are multiple selection candidates that are determined based on the number of related processes that communicate with the target process, the number of related processes (that is, a process that can be created as a child process of the target process can be This is because the load on the computer 10-1 side is reduced the most when the target process having the largest number of characteristics is selected. In addition,
When there are a plurality of target processes having the maximum number of related processes, any one of them may be selected. When selecting a process in step S8, the process selection unit 16 removes the selected process from the process pool 14.

【0044】さて、プロセス選択部16は、他計算機
(計算機10-i)で処理させるべきプロセスを選択する
と(ステップS3またはS8)、そのプロセスの通信相
手となるプロセスのうちに、プロセスプール14に格納
されているプロセスが存在するか否かを調べ、存在する
ならば、そのプロセスを全て他計算機で処理すべきもの
として選択する(ステップS9,S10)。このステッ
プS9,S10の動作の詳細は次の通りである。
Now, when the process selection unit 16 selects a process to be processed by another computer (computer 10-i) (step S3 or S8), the process pool 14 will be included in the process pool 14 among the processes to be communicated with. It is checked whether or not the stored process exists, and if there is, the process is selected as one to be processed by another computer (steps S9 and S10). Details of the operations in steps S9 and S10 are as follows.

【0045】まず、ステップS3またはステップS8で
選択したプロセスを対象プロセスとし、且つ識別フラグ
Cを持つプロセス解析情報をプロセス解析情報格納部1
3から探す。次に、探したプロセス解析情報中の関連プ
ロセス名の中に、プロセスプール14に格納されている
プロセスを示すプロセス名があるか否かを調べ、あるな
らば、該当するプロセス名のプロセスをプロセスプール
14から全て選択し、その選択したプロセスをプロセス
プール14から取り除く。
First, the process analysis information storage unit 1 stores process analysis information having the process selected in step S3 or step S8 as a target process and having an identification flag C.
Search from 3. Next, it is checked whether or not the process name indicating the process stored in the process pool 14 is included in the related process names in the searched process analysis information, and if there is, the process having the corresponding process name is processed. Select all from the pool 14 and remove the selected process from the process pool 14.

【0046】このステップS9,S10を実行する理由
は、ステップS3またはステップS8で選択したプロセ
スとの間で通信を行うプロセス(関連プロセス)を選択
した場合、ステップS3またはステップS8で選択され
たプロセスと、ステップS9,S10で選択されたプロ
セスは、負荷分散先計算機(計算機10-i)側のみで処
理される確率が高いことによる。
The reason why steps S9 and S10 are executed is that when a process (related process) communicating with the process selected in step S3 or step S8 is selected, the process selected in step S3 or step S8 is selected. The process selected in steps S9 and S10 is likely to be processed only on the load balancing destination computer (computer 10-i) side.

【0047】プロセス選択部16は、計算機10-iに分
散させるべきプロセスを全て選択すると、その選択した
全てのプロセス(プロセス集合)を、プロセス送受信部
17内のプロセス送信部171により通信路20を介し
て計算機10-iに送らせる。
When the process selecting unit 16 selects all the processes to be distributed to the computer 10-i, the process transmitting unit 171 in the process transmitting / receiving unit 17 causes the process transmitting unit 171 in the process transmitting / receiving unit 17 to select all the selected processes (process sets). Via computer 10-i.

【0048】計算機10-iに送られたプロセス集合は、
(計算機10-1のプロセス受信部172に相当する)当
該計算機10-i内のプロセス受信部(図示せず)によっ
て受け取られ、(計算機10-1のプロセスプール14に
相当する)計算機10-i内のプロセスプール(図示せ
ず)に格納される。このようにして、計算機10-1から
計算機10-iへの負荷分散がなされる。
The process set sent to the computer 10-i is
A computer 10-i (corresponding to the process pool 14 of the computer 10-1) received by a process receiver (not shown) in the computer 10-i (corresponding to the process receiving unit 172 of the computer 10-1). It is stored in a process pool (not shown) inside. In this way, the load is distributed from the computer 10-1 to the computer 10-i.

【0049】以上に述べたプロセス選択部16の動作に
より、図4(a)に示すように、プロセスプール14に
プロセスA(プロセス名がAのプロセス)とプロセスE
(プロセス名がEのプロセス)が格納されている場合に
は、図3から明らかなように、プロセスAは2つのプロ
セスB,Dと通信し、プロセスEは他のプロセスと通信
しないことから、プロセスEが他計算機(計算機10-
i)に処理させる(送る)プロセスとして選択される。
そして、この選択されたプロセスEがプロセスプール1
4から取り除かれると共に、プロセス送信部171によ
り通信路20を介して計算機10-iに送られる。
By the operation of the process selecting unit 16 described above, as shown in FIG. 4A, the process A (process whose process name is A) and the process E are stored in the process pool 14.
In the case where (the process whose process name is E) is stored, as is clear from FIG. 3, since the process A communicates with the two processes B and D, and the process E does not communicate with other processes, Process E is another computer (computer 10-
It is selected as a process to be processed (sent) by i).
Then, the selected process E is the process pool 1
4 and is sent to the computer 10-i via the communication path 20 by the process sending unit 171.

【0050】同様に、図4(b)に示すように、プロセ
スプール14にプロセスA(プロセス名がAのプロセ
ス)とプロセスD(プロセス名がDのプロセス)が格納
されている場合には、図3から明らかなように、プロセ
スAは2つのプロセスB,Dと通信し、プロセスDは1
つのプロセスAとしか通信しないことから、プロセスD
が他計算機(計算機10-i)に処理させる(送る)プロ
セスとして選択される。この場合、選択したプロセスD
の通信相手となるプロセスAも、図4(b)に示すよう
にプロセスプール14に格納されているため、当該プロ
セスAも選択される。そして、プロセスDの他、当該プ
ロセスDの通信相手となるプロセスAがプロセスプール
14から取り除かれると共に、プロセス送信部171に
より通信路20を介して計算機10-iに送られる。 [第2の実施例]次に、この発明の第2の実施例につ
き、図面を参照して説明する。
Similarly, as shown in FIG. 4B, if the process A (process whose process name is A) and process D (process whose process name is D) are stored in the process pool 14, As is apparent from FIG. 3, process A communicates with two processes B and D, and process D
Process D because it communicates with only one process A
Is selected as a process to be processed (sent) by another computer (computer 10-i). In this case, the selected process D
Since the process A that is the communication partner of is also stored in the process pool 14 as shown in FIG. 4B, the process A is also selected. Then, in addition to the process D, the process A that is a communication partner of the process D is removed from the process pool 14 and is sent to the computer 10-i via the communication path 20 by the process transmission unit 171. [Second Embodiment] Next, a second embodiment of the present invention will be described with reference to the drawings.

【0051】図6は本発明の第2の実施例に係る分散処
理装置の主要な構成を示すブロック図である。図6に示
す分散処理装置は、複数の計算機30-1,…,30-i,
…と、これら各計算機間の通信に用いられる通信路40
により構成される。
FIG. 6 is a block diagram showing the main configuration of the distributed processing device according to the second embodiment of the present invention. The distributed processing device shown in FIG. 6 includes a plurality of computers 30-1, ..., 30-i,
... and a communication path 40 used for communication between these computers
It is composed of

【0052】計算機30-1は、プログラム変換部31、
プログラム格納部32、プロセス解析情報格納部33、
プロセスプール34、プロセス実行部35、プロセス選
択部36、プロセス送受信部37及びプロセス数管理部
38を有している。この計算機30-1の構成は、他の計
算機についても同様である。
The computer 30-1 includes a program conversion unit 31,
A program storage unit 32, a process analysis information storage unit 33,
The process pool 34, the process execution unit 35, the process selection unit 36, the process transmission / reception unit 37, and the process number management unit 38 are included. The configuration of the computer 30-1 is the same for other computers.

【0053】プログラム変換部31は、図示せぬコンパ
イラの他に、プログラムに含まれるプロセスが生成する
子プロセス数を静的に解析するプロセス数解析部311
と、この解析部311の解析で得られた情報(子プロセ
ス数情報)をプロセス解析情報としてプロセス解析情報
格納部12に書き込むプロセス解析情報書込部313と
を有している。
The program conversion unit 31 statically analyzes the number of child processes generated by processes included in the program in addition to the compiler (not shown), and the process number analysis unit 311.
And a process analysis information writing unit 313 that writes the information (child process number information) obtained by the analysis of the analysis unit 311 as process analysis information in the process analysis information storage unit 12.

【0054】プログラム格納部32は、プログラム(こ
こではソースプログラム)を格納しておくためのもので
あり、図示せぬ2次記憶上に確保される。プロセス解析
情報格納部33は、プロセス毎の静的な子プロセス数を
プロセス解析情報として格納しておくためのものであ
り、2次記憶上に確保される。
The program storage section 32 is for storing a program (here, a source program), and is secured in a secondary storage (not shown). The process analysis information storage unit 33 is for storing the number of static child processes for each process as process analysis information, and is secured in the secondary storage.

【0055】プロセスプール34は、計算機(ここでは
計算機30-1)内のプロセスを格納しておくためのもの
であり、図示せぬ主記憶、もしくは2次記憶上に置かれ
る。ここで、プログラム格納部32及びプロセス解析情
報格納部33は、分散処理装置内で、各計算機から共有
可能であるものとする。
The process pool 34 is for storing processes in a computer (here, the computer 30-1), and is placed in a main memory or a secondary memory (not shown). Here, it is assumed that the program storage unit 32 and the process analysis information storage unit 33 can be shared by each computer in the distributed processing device.

【0056】プロセス実行部35は、プログラムの実行
時に、プロセスの生成、プロセスの実行(起動)、プロ
セスの中断、プロセスの消滅(終了)の管理を行うもの
である。プロセス実行部35はまた、実行プロセスの生
成した子プロセスをプロセスプール34に格納する動作
と、消滅したプロセスをプロセスプール34から取り除
くなどの操作も行う。プロセス実行部35でのプロセス
の生成、消滅に関する情報はプロセス数管理部38に渡
されるようになっている。
The process execution unit 35 manages the generation of processes, the execution (activation) of processes, the interruption of processes, and the disappearance (termination) of processes when the program is executed. The process execution unit 35 also performs an operation of storing the child process generated by the execution process in the process pool 34 and an operation of removing the disappeared process from the process pool 34. Information regarding the generation and disappearance of processes in the process execution unit 35 is passed to the process number management unit 38.

【0057】プロセス選択部36は、プロセスを他の計
算機に分散させるとき、プロセス解析情報格納部33に
格納されている情報(静的な子プロセス数)と、プロセ
ス数管理部38で管理されている動的な子プロセス数の
情報の少なくとも一方を用いて、プロセスプール34か
ら候補となるプロセスを選択するものである。
The process selection unit 36 manages information (static child process number) stored in the process analysis information storage unit 33 and the process number management unit 38 when the process is distributed to other computers. The candidate process is selected from the process pool 34 by using at least one of the information of the number of dynamic child processes.

【0058】プロセス送受信部37は、プロセス選択部
36により選択されたプロセスを他の計算機に送信する
プロセス送信部371と、他の計算機から送られてきた
プロセスを受信してプロセスプール34に格納するプロ
セス受信部372とから構成される。
The process transmission / reception unit 37 receives the process selected by the process selection unit 36 to another computer and the process transmission unit 371 to receive the process sent from the other computer, and stores it in the process pool 34. It is composed of a process receiving unit 372.

【0059】プロセス数管理部38は、プロセス実行部
35から渡される情報をもとに、各プロセスにおける子
プロセスの動的な生成数を内部格納手段としての内部テ
ーブル381に保持管理する。このテーブル381が、
主記憶、もしくは2次記憶上に置かれるものであっても
構わない。
The process number management unit 38 holds and manages the dynamically generated number of child processes in each process in the internal table 381 as an internal storage unit based on the information passed from the process execution unit 35. This table 381
It may be placed in the main memory or the secondary memory.

【0060】次に、図6の構成の分散処理装置における
計算機動作を、計算機30-1での動作を例に、(1)プ
ログラム解析時と、(2)プログラム実行時にわけて説
明する。 (1)プログラム解析時 まず、本実施例におけるプログラムの解析は、プログラ
ムのコンパイル/リンクと同時に行われるものとする。
コンパイルを指示されたプログラム(ソースプログラ
ム)は、プログラム変換部31内の図示せぬコンパイラ
によってプログラム格納部32から取り出され、コンパ
イル/リンクが行われる。このプログラム格納部32か
ら取り出されたプログラムは、同時にプログラム変換部
31内のプロセス数解析部311に渡される。
Next, the computer operation in the distributed processing system configured as shown in FIG. 6 will be described by taking the operation of the computer 30-1 as an example, separately for (1) program analysis and (2) program execution. (1) At the time of program analysis First, the analysis of the program in this embodiment is performed simultaneously with the compiling / linking of the program.
The program (source program) instructed to compile is taken out from the program storage unit 32 by a compiler (not shown) in the program conversion unit 31, and compiled / linked. The programs retrieved from the program storage unit 32 are simultaneously passed to the process number analysis unit 311 in the program conversion unit 31.

【0061】プロセス数解析部311は、コンパイラに
よるコンパイル/リンクの対象となるプログラムを受け
取ると、当該プログラムに含まれる子プロセスの生成の
部分(子プロセスのフォーク部分)を探す。即ちプロセ
ス数解析部311は、子プロセスのフォーク部分がプロ
グラム中に“fork(プロセス名)で示されているも
のとすると、その“fork(プロセス名)”の箇所を
子プロセスのフォーク部分としてプログラムから探すこ
とにより、当該プログラムに含まれるプロセスが生成す
る子プロセス数の静的な解析を行う。
When the process number analysis unit 311 receives a program to be compiled / linked by the compiler, the process number analysis unit 311 searches for a child process generation portion (fork portion of the child process) included in the program. That is, assuming that the fork part of the child process is indicated by "fork (process name)" in the program, the process number analysis unit 311 uses the "fork (process name)" portion as the fork part of the child process. The static analysis of the number of child processes generated by the process included in the program is performed by searching from.

【0062】したがって、コンパイルを指示されたプロ
グラムが図7に示すようなものであるとすると、プロセ
ス数解析部311は、プロセスAが子プロセスとしてプ
ロセスBとプロセスCの2つを生成し、プロセスDがプ
ロセスEの1つを生成することを見つける。またプロセ
ス数解析部311は、プロセスEが子プロセスをフォー
クしないことも見つける。
Therefore, assuming that the program instructed to compile is as shown in FIG. 7, the process number analysis unit 311 causes the process A to generate two processes B and C as child processes. We find that D spawns one of processes E. The process number analysis unit 311 also finds that the process E does not fork a child process.

【0063】プロセス数解析部311は、コンパイルを
指示されたプログラムから見つけた情報を、対象プロセ
スのプロセス名と、そのプロセスの静的な子プロセス数
との対の形で、プロセス解析情報としてプロセス解析情
報書込部313に渡す。
The process number analysis unit 311 processes the information found from the program instructed to compile as process analysis information in the form of a pair of the process name of the target process and the number of static child processes of the process. It is passed to the analysis information writing unit 313.

【0064】したがって、コンパイルを指示されたプロ
グラムが図7に示したようなものである場合、プロセス
数解析部311からプロセス解析情報書込部313に
は、対象プロセスAのプロセス名と子プロセス数2の
対、対象プロセスDのプロセス名と子プロセス数1の
対、及び対象プロセスEのプロセス名と子プロセス数0
の対が、プロセス解析情報として渡される。
Therefore, when the program instructed to compile is as shown in FIG. 7, the process number analysis unit 311 to the process analysis information writing unit 313 tell the process name and the number of child processes of the target process A. 2 pairs, the process name of the target process D and the number of child processes 1 and the process name of the target process E and the number of child processes 0
Pairs are passed as process analysis information.

【0065】プロセス解析情報書込部313は、プロセ
ス数解析部311から渡されたプロセス解析情報、即ち
対象プロセス(のプロセス名)と静的な子プロセス数の
対を、図8に示す形式でプロセス解析情報格納部33に
書き込む。 (2)プログラム実行時 次に、計算機30-1におけるプログラム実行時の動作を
説明する。
The process analysis information writing unit 313 stores the process analysis information passed from the process number analysis unit 311 in other words, the pair of the target process (process name) and the static child process number in the format shown in FIG. Write in the process analysis information storage unit 33. (2) Program Execution Next, the operation of the computer 30-1 during program execution will be described.

【0066】プロセス実行部35は、プログラム実行時
には、プロセスの生成、プロセスの実行(起動)、プロ
セスの中断、プロセスの消滅(終了)の管理を行う。そ
してプロセス実行部35は、実行プロセスによるプロセ
ス生成時には、実行プロセスの生成した新たなプロセス
をプロセスプール34に格納し、プロセス消滅時には、
実行プロセスの消滅したプロセスをプロセスプール34
から取り除くなどの操作を行う。
The process execution unit 35 manages the generation of processes, the execution (activation) of processes, the interruption of processes, and the disappearance (termination) of processes during program execution. Then, the process execution unit 35 stores the new process generated by the execution process in the process pool 34 when the process is generated by the execution process, and when the process disappears.
The process pool 34
Perform operations such as removing from.

【0067】プロセス実行部35での実行プロセスによ
るプロセス生成とプロセス消滅の情報は対応する実行プ
ロセスと共にプロセス数管理部38に渡される。プロセ
ス数管理部38は、実行プロセス毎に、当該プロセスの
動的な子プロセス数を内部テーブル381に保持管理す
る。即ちプロセス数管理部38は、プロセス実行部35
からプロセス生成の情報を受け取る毎に、内部テーブル
381に保持されている対応するプロセスについての子
プロセス数をインクリメントし、プロセス実行部35か
らプロセス消滅の情報を受け取る毎に、対応するプロセ
スについての子プロセス数をデクリメントする。即ちプ
ロセス数管理部38は、各プロセス毎に、そのプロセス
が起動した子プロセス数を動的に計測する。
Information on process generation and process disappearance by the execution process in the process execution unit 35 is passed to the process number management unit 38 together with the corresponding execution process. The process number management unit 38 holds and manages, for each execution process, the dynamic child process number of the process in the internal table 381. That is, the process number management unit 38
Each time the process generation information is received from, the number of child processes for the corresponding process held in the internal table 381 is incremented, and each time the process disappearance information is received from the process execution unit 35, the child for the corresponding process is received. Decrement the number of processes. That is, the process number management unit 38 dynamically measures the number of child processes activated by each process.

【0068】ここで、計算機30-1の負荷が高くなり、
他計算機にプロセスを分散させる必要が生じたものとす
る。この場合、計算機30-1内のプロセス選択部36
は、プロセス解析情報格納部33に格納されている、図
8に示した形式で表されるプロセス毎の静的な子プロセ
ス数と、プロセス数管理部38の内部テーブル381に
保持されている、図9に示した形式で表される実行プロ
セス毎の動的な子プロセス数の情報をもとに、候補プロ
セスを選択する。
Here, the load of the computer 30-1 becomes high,
It is assumed that the process needs to be distributed to other computers. In this case, the process selection unit 36 in the computer 30-1
Is stored in the process analysis information storage unit 33 and is held in the internal table 381 of the process number management unit 38 and the number of static child processes for each process represented in the format shown in FIG. A candidate process is selected based on the information on the number of dynamic child processes for each execution process represented in the format shown in FIG.

【0069】このプロセス選択部36による候補プロセ
ス選択動作を、図10のフローチャートを参照して説明
する。プロセス選択部36は、他計算機、例えば計算機
30-iにプロセスを分散させる必要が生じた場合、プロ
セスプール34に格納されているプロセスの数を調べ
(ステップS21)、プロセス数が1つの場合(ステッ
プS22)には、そのプロセスを他計算機(計算機30
-i)で処理させるべきものとして選択する(ステップS
23)。この際、プロセス選択部36は、選択したプロ
セスをプロセスプール34から取り除く。
The candidate process selecting operation by the process selecting unit 36 will be described with reference to the flowchart of FIG. The process selection unit 36 checks the number of processes stored in the process pool 34 when it is necessary to distribute the processes to another computer, for example, the computer 30-i (step S21), and when the number of processes is one ( In step S22, the process is executed by another computer (computer 30).
-i) to be processed (step S)
23). At this time, the process selection unit 36 removes the selected process from the process pool 34.

【0070】またプロセス選択部36は、プロセスプー
ル34に格納されているプロセス数が2つ以上の場合に
は、プロセス解析情報格納部33を参照して、プロセス
プール34に格納されている各プロセスについて、その
プロセスのプロセス名を対象プロセス名として持つプロ
セス解析情報を探し、その子プロセス数(静的な子プロ
セス数)を得る(ステップS24)。
When the number of processes stored in the process pool 34 is two or more, the process selection unit 36 refers to the process analysis information storage unit 33 to refer to each process stored in the process pool 34. Is searched for process analysis information having the process name of the process as the target process name, and the number of child processes (the number of static child processes) is obtained (step S24).

【0071】同時にプロセス選択部36は、プロセス数
管理部38の内部テーブル381を参照し、プロセスプ
ール34に格納されている各プロセスについて、そのプ
ロセスの動的な子プロセス数を得る(ステップS2
5)。
At the same time, the process selection unit 36 refers to the internal table 381 of the process number management unit 38 and obtains the dynamic child process number of each process stored in the process pool 34 (step S2).
5).

【0072】そしてプロセス選択部36は、ステップS
24,S25で得た、プロセスプール34に格納されて
いる各プロセスについての静的な子プロセス数と動的な
子プロセス数にそれぞれ固有の定数を乗じ、その定数倍
後の静的な子プロセス数から動的な子プロセス数を減じ
る(ステップS26)。
Then, the process selection unit 36 proceeds to step S
24, the static child process obtained by multiplying the number of static child processes and the number of dynamic child processes for each process stored in the process pool 34 by unique constants, and multiplying the constants by 24. The number of dynamic child processes is subtracted from the number (step S26).

【0073】次にプロセス選択部36は、ステップS2
6で求めた各プロセス毎の減算値(定数倍後の静的な子
プロセス数から動的な子プロセス数を減じた値)が最大
となるプロセス、即ち静的な子プロセス数がより多く、
動的な子プロセス数がより少ないプロセスを、他計算機
(計算機30-i)で処理すべきものとして選択する(ス
テップS27)。
Next, the process selection section 36 determines in step S2.
The maximum subtracted value for each process (value obtained by subtracting the number of dynamic child processes from the number of static child processes after multiplication by a constant) obtained in step 6, that is, the number of static child processes is larger,
A process having a smaller number of dynamic child processes is selected as a process to be processed by another computer (computer 30-i) (step S27).

【0074】この理由は、静的な子プロセス数が多いプ
ロセスほど、そのプロセスが負荷分散先の計算機(計算
機30-i)で処理された場合に当該負荷分散先計算機で
の負荷を多くして負荷分散処理の頻繁な発生(頻発)を
防ぐことが可能となり、動的な子プロセス数が少ないプ
ロセスほど、そのプロセスが負荷分散先の計算機(計算
機30-i)で処理された場合に計算機30-1と負荷分散
先計算機との間のプロセス間通信を減らすことが可能と
なるためである。
The reason for this is that the more static child processes there are, the greater the load on the load balancing destination computer when the process is processed by the load balancing destination computer (computer 30-i). It becomes possible to prevent frequent occurrence (frequent occurrence) of load balancing processing, and a process with a smaller number of dynamic child processes will be processed by the computer 30 when the process is processed by the load balancing destination computer (computer 30-i). This is because it is possible to reduce inter-process communication between -1 and the load balancing computer.

【0075】逆に、動的な子プロセス数が多いプロセス
は、プロセス間通信が既に発生している可能性が高いた
め、もし、このようなプロセスが負荷分散先の計算機
(計算機30-i)で処理された場合には、計算機30-1
と負荷分散先計算機との間のプロセス間通信となってし
まう可能性が高い。
On the other hand, a process having a large number of dynamic child processes has a high possibility that inter-process communication has already occurred. Therefore, if such a process is a load-balanced computer (computer 30-i). If processed by, the computer 30-1
There is a high possibility that inter-process communication will occur between the load balancing computer and the load balancing destination computer.

【0076】プロセス選択部36は、ステップS27に
おいてプロセス選択を行った際には、選択したプロセス
をプロセスプール34から取り除く。なお、本実施例で
は、静的な子プロセス数の重みと動的な子プロセス数の
重みが等しいものとして、上記の定数を同じ値(例えば
1)としているが、これに限るものではない。
The process selection unit 36 removes the selected process from the process pool 34 when the process is selected in step S27. In this embodiment, the weight of the static child process number and the weight of the dynamic child process number are equal, and the above constants have the same value (for example, 1), but the present invention is not limited to this.

【0077】プロセス選択部36は、上記ステップS2
3或いはステップS27により計算機30-iに分散させ
るべきプロセスを選択すると、その選択したプロセスを
プロセス送受信部37内のプロセス送信部371により
通信路40を介して計算機30-iに送らせる。
The process selection section 36 determines the above step S2.
3 or the process to be distributed to the computer 30-i is selected in step S27, the selected process is transmitted to the computer 30-i via the communication path 40 by the process transmitting unit 371 in the process transmitting / receiving unit 37.

【0078】計算機30-iに送られたプロセスは、(計
算機30-1のプロセス受信部372に相当する)当該計
算機30-i内のプロセス受信部(図示せず)によって受
け取られ、(計算機30-1のプロセスプール34に相当
する)計算機30-i内のプロセスプール(図示せず)に
格納される。このようにして、計算機30-1から計算機
30-iへの負荷分散がなされる。
The process sent to the computer 30-i is received by the process receiving unit (not shown) in the computer 30-i (corresponding to the process receiving unit 372 of the computer 30-1), and Stored in a process pool (not shown) in the computer 30-i (corresponding to the process pool 34 of -1). In this way, the load is distributed from the computer 30-1 to the computer 30-i.

【0079】以上に述べたプロセス選択部36の動作の
具体例を、プロセス解析情報格納部33の内容が図8の
ようになっていると共に、プロセス数管理部38の内部
テーブル381の内容が図9のようになっており、更に
プロセスプール34には例えばプロセスA、プロセスE
及びプロセスDが格納されている(即ち選択可能なプロ
セスがA,D,Eの3つである)場合について、説明す
る。
FIG. 8 shows the contents of the process analysis information storage unit 33 and the contents of the internal table 381 of the process number management unit 38 as a concrete example of the operation of the process selection unit 36 described above. 9 and the process pool 34 includes, for example, process A and process E.
And the case where the process D is stored (that is, there are three selectable processes A, D, and E) will be described.

【0080】この例では、プロセスプール34に格納さ
れているプロセスの数が3であるから、ステップS2
1,S22からステップS24に進み、図8に示すプロ
セス解析情報格納部33の内容から、プロセスA,D,
Eのそれぞれ静的な子プロセス数2,1,0が取得され
る。また、次のステップS25において、図9に示す内
部テーブル381の内容から、プロセスA,D,Eのそ
れぞれ動的なプロセス数0,1,0が取得される。
In this example, since the number of processes stored in the process pool 34 is 3, step S2
1, from S22 to S24, the process A, D, from the contents of the process analysis information storage unit 33 shown in FIG.
The respective static child process numbers 2, 1, 0 of E are acquired. Further, in the next step S25, the dynamic process numbers 0, 1, 0 of the processes A, D, E are acquired from the contents of the internal table 381 shown in FIG.

【0081】次にステップS26が行われ、プロセスA
については、2(静的な子プロセス数)×1(定数)−
0(動的な子プロセス数)×1(定数)=2が、プロセ
スDについては、1(静的な子プロセス数)×1(定
数)−1(動的な子プロセス数)×1(定数)=0が、
そしてプロセスEについては、0(静的な子プロセス
数)×1(定数)−0(動的な子プロセス数)×1(定
数)=0が、それぞれ求められる。
Next, step S26 is performed, and the process A
Is 2 (the number of static child processes) x 1 (constant)-
0 (dynamic child process number) × 1 (constant) = 2, but for process D, 1 (static child process number) × 1 (constant) −1 (dynamic child process number) × 1 ( Constant) = 0,
For the process E, 0 (static child process number) × 1 (constant) −0 (dynamic child process number) × 1 (constant) = 0 is obtained.

【0082】この例では、プロセスAについての減算値
が最大であることから、ステップS27ではプロセス
A,D,Eの中からプロセスAが選択される。なお、上
記の減算値が最大となるプロセスが複数存在する場合に
は、そのうちのいずれのプロセスを選択しても構わな
い。
In this example, since the subtraction value for the process A is the maximum, the process A is selected from the processes A, D and E in step S27. If there are a plurality of processes having the maximum subtraction value, any one of them may be selected.

【0083】以上は、他計算機に負荷分散させるべきプ
ロセスを、静的な子プロセス数と動的な子プロセス数の
両情報をもとに選択する場合について説明したが、効果
は少し低下するものの、静的な子プロセス数の重みだ
け、或いは動的な子プロセス数の重みだけをもとに、プ
ロセス選択を行うことも可能である。
In the above, the case where the process to be load-balanced to another computer is selected based on both the information of the number of static child processes and the number of dynamic child processes has been described, but the effect is slightly lowered. It is also possible to select a process based on only the static weight of the child process or the dynamic weight of the child process.

【0084】例えば、プロセス選択部36において、静
的な子プロセス数のみをもとに負荷分散させるべきプロ
セスを選択する方式を適用する場合には、(選択した)
プロセスの送り先計算機での負荷を多くし、負荷分散処
理の頻発を防ぐために、静的な子プロセス数の多いプロ
セスを選択すれば良い。したがって、プロセス解析情報
格納部33の内容が図8のようになっている例では、プ
ロセスAが選択されることになる。
For example, when the process selection unit 36 applies a method of selecting a process to be load-balanced based only on the number of static child processes, (selected)
In order to increase the load on the destination computer of the process and prevent frequent load balancing processing, it is sufficient to select a process with a large number of static child processes. Therefore, in the example in which the content of the process analysis information storage unit 33 is as shown in FIG. 8, the process A is selected.

【0085】次に、プロセス選択部36において、動的
な子プロセス数のみをもとに負荷分散させるべきプロセ
スを選択する方式を適用する場合には、(選択した)プ
ロセスの送り先計算機とのプロセス間通信を減らすため
に、動的な子プロセス数の少ないプロセスを選択すれば
良い。したがって、プロセス数管理部38の内部テーブ
ル381の内容が図9のようになっている例では、プロ
セスAまたはプロセスEのいずれかが選択されることに
なる。このように候補が複数ある場合には、内部テーブ
ル381での並び順によって選んでも、ランダムに選ん
でも構わない。
Next, in the process selection unit 36, when applying the method of selecting the process to be load-balanced based only on the number of dynamic child processes, the process with the destination computer of the (selected) process In order to reduce inter-communication, a process with a small number of dynamic child processes may be selected. Therefore, in the example in which the content of the internal table 381 of the process number management unit 38 is as shown in FIG. 9, either the process A or the process E is selected. When there are a plurality of candidates in this way, they may be selected according to the arrangement order in the internal table 381 or may be selected randomly.

【0086】[0086]

【発明の効果】以上詳述したように本発明によれば、プ
ログラム内に含まれるプロセス間の通信関係及びプロセ
ス間の親子関係を予め解析して、その解析情報を保存し
ておき、プログラム実行中に他計算機に負荷分散を行う
必要が発生した場合に、この保存しておいたプロセス解
析情報をもとに他の計算機に処理を依頼するプロセスを
選択する構成とすることにより、計算機をまたがるプロ
セス間通信の発生を最小限に抑えることができる。
As described in detail above, according to the present invention, the communication relationship between processes and the parent-child relationship between processes included in a program are analyzed in advance, and the analysis information is saved and the program is executed. If it becomes necessary to distribute the load to other computers during the process, the process is configured to select the process to be requested to another computer based on the saved process analysis information. The occurrence of interprocess communication can be minimized.

【0087】また、本発明によれば、プログラム内に含
まれるプロセスから起動される子プロセス数を静的に解
析して保存しておき、プログラム実行中に他計算機に負
荷分散を行う必要が発生した場合には、この保存してお
いた静的な子プロセス数情報をもとに他の計算機に処理
を依頼するプロセスを選択する構成とすることにより、
その送り先計算機での負荷を多くし、負荷分散処理の頻
繁な発生を防ぐことができる。
Further, according to the present invention, it is necessary to statically analyze and store the number of child processes started from the processes included in the program, and perform load distribution to other computers during the execution of the program. In this case, by configuring to select the process to request processing to another computer based on this saved static child process number information,
It is possible to increase the load on the destination computer and prevent frequent occurrence of load balancing processing.

【0088】また、本発明によれば、プログラム実行中
に、各プロセスが起動した子プロセス数を動的に計測
し、他計算機に負荷分散を行う必要が発生した場合に
は、この動的な子プロセス数情報をもとに他の計算機に
処理を依頼するプロセスを選択する構成とすることによ
り、その送り先計算機とのプロセス間通信を減らすこと
ができる。
Further, according to the present invention, when it is necessary to dynamically measure the number of child processes started by each process during the execution of the program and to distribute the load to other computers, this dynamic process is performed. By adopting a configuration in which a process for requesting processing to another computer is selected based on the child process number information, communication between processes with the destination computer can be reduced.

【0089】また、本発明によれば、プログラム内に含
まれるプロセスから起動される子プロセス数を静的に解
析して保存しておく一方、プログラム実行中に、各プロ
セスが起動した子プロセス数を動的に計測するように
し、他計算機に負荷分散を行う必要が発生した場合に
は、この動的な子プロセス数情報及び上記保存しておい
た静的な子プロセス数情報をもとに他の計算機に処理を
依頼するプロセスを選択する構成とすることにより、そ
の送り先計算機での負荷を多くし、負荷分散処理の頻繁
な発生を防ぐと共に、その送り先計算機とのプロセス間
通信を減らすことができる。
Further, according to the present invention, the number of child processes activated by the processes included in the program is statically analyzed and stored, while the number of child processes activated by each process during program execution. When it is necessary to distribute the load to other computers by dynamically measuring the number of times, based on this dynamic child process number information and the static child process number information saved above. By increasing the load on the destination computer, preventing frequent occurrence of load balancing processing, and reducing the inter-process communication with the destination computer by configuring the process that requests the processing to other computers. You can

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

【図1】本発明の第1の実施例に係る分散処理装置の主
要な構成を示すブロック図。
FIG. 1 is a block diagram showing the main configuration of a distributed processing device according to a first embodiment of the present invention.

【図2】同第1の実施例におけるプログラム例を示す
図。
FIG. 2 is a diagram showing an example of a program in the first embodiment.

【図3】同第1の実施例におけるプロセス解析情報格納
部13の内容例を示す図。
FIG. 3 is a diagram showing an example of contents of a process analysis information storage unit 13 in the first embodiment.

【図4】同第1の実施例におけるプロセスプール14の
状態例を示す図。
FIG. 4 is a diagram showing an example of a state of a process pool 14 in the first embodiment.

【図5】同第1の実施例におけるプロセス選択部16の
動作手順を説明するためのフローチャート。
FIG. 5 is a flowchart for explaining an operation procedure of the process selection unit 16 in the first embodiment.

【図6】本発明の第2の実施例に係る分散処理装置の主
要な構成を示すブロック図。
FIG. 6 is a block diagram showing the main configuration of a distributed processing device according to a second embodiment of the present invention.

【図7】同第2の実施例におけるプログラム例を示す
図。
FIG. 7 is a diagram showing an example of a program in the second embodiment.

【図8】同第2の実施例におけるプロセス解析情報格納
部33の内容例を示す図。
FIG. 8 is a diagram showing an example of contents of a process analysis information storage section 33 in the second embodiment.

【図9】同第2の実施例における内部テーブル381の
内容例を示す図。
FIG. 9 is a diagram showing an example of contents of an internal table 381 in the second embodiment.

【図10】同第2の実施例におけるプロセス選択部36
の動作手順を説明するためのフローチャート。
FIG. 10 is a process selection unit 36 in the second embodiment.
6 is a flowchart for explaining the operation procedure of FIG.

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

10-1,10-i,30-1,30-i…計算機、11,21
…プログラム変換部、12,32…プログラム格納部、
13,33…プロセス解析情報格納部、14,34…プ
ロセスプール(プロセス格納手段)、15,35…プロ
セス実行部、16,36…プロセス選択部、17,37
…プロセス送受信部、20,40…通信路、38…プロ
セス数管理部、111…プロセス間通信関係解析部、1
12…プロセス間親子関係解析部、113,313…プ
ロセス解析情報書込部、171,371…プロセス送信
部、172,372…プロセス受信部、311…プロセ
ス数解析部。
10-1, 10-i, 30-1, 30-i ... Calculator 11,21
... program conversion section, 12, 32 ... program storage section,
13, 33 ... Process analysis information storage unit, 14, 34 ... Process pool (process storage unit), 15, 35 ... Process execution unit, 16, 36 ... Process selection unit, 17, 37
... process transmitting / receiving unit, 20, 40 ... communication path, 38 ... process number managing unit, 111 ... inter-process communication relation analyzing unit, 1
12 ... Inter-process parent-child relationship analysis unit, 113, 313 ... Process analysis information writing unit, 171, 371 ... Process transmission unit, 172, 372 ... Process reception unit, 311 ... Process number analysis unit.

Claims (8)

【特許請求の範囲】[Claims] 【請求項1】 複数の計算機により負荷を分散して処理
する分散処理装置において、 前記各計算機に、 プログラムからプロセス間の通信関係を静的に解析する
プロセス間通信関係解析手段と、 前記プログラムに含まれるプロセス間の親子関係を静的
に解析するプロセス間親子関係解析手段と、 前記プロセス間通信関係解析手段によって得られたプロ
セス間の通信関係情報及び前記プロセス間親子関係解析
手段によって得られたプロセス間の親子関係情報がプロ
セス解析情報として格納されるプロセス解析情報格納手
段と、 プロセスの集合が格納されるプロセス格納手段と、 プログラムの実行時に、プロセスの生成、実行、中断、
消滅の管理を行うプロセス実行手段であって、プロセス
の生成時には生成したプロセスを前記プロセス格納手段
に格納し、プロセスの消滅時には前記プロセス格納手段
から該当するプロセスを取り除くプロセス実行手段と、 プログラム実行時に、前記プロセス解析情報格納手段に
格納されているプロセス解析情報をもとに、他の計算機
に処理を依頼するプロセスを前記プロセス格納手段から
選択するプロセス選択手段と、 前記プロセス選択手段によって選択されたプロセスを他
の計算機に送るプロセス送信手段と、 他の計算機から送られたプロセスを受信して前記プロセ
ス格納手段に格納するプロセス受信手段とを具備するこ
とを特徴とする分散処理装置。
1. A distributed processing device for processing a load by a plurality of computers in a distributed manner, wherein each computer has an inter-process communication relation analyzing means for statically analyzing a communication relation between processes from a program, and the program. The inter-process parent-child relationship analysis means for statically analyzing the parent-child relationship between the included processes, the inter-process communication relationship information obtained by the inter-process communication relationship analysis means, and the inter-process parent-child relationship analysis means Process analysis information storage means for storing parent-child relationship information between processes as process analysis information, process storage means for storing a set of processes, and generation, execution, suspension,
Process execution means for managing disappearance, which stores the created process in the process storage means when the process is created, and removes the corresponding process from the process storage means when the process is deleted; A process selection unit that selects a process from the process storage unit that requests a process to another computer based on the process analysis information stored in the process analysis information storage unit; A distributed processing device comprising: a process transmitting means for transmitting a process to another computer; and a process receiving means for receiving a process transmitted from another computer and storing the process in the process storing means.
【請求項2】 分散処理装置上の各計算機において適用
される負荷分散処理方法であって、 プログラムからプロセス間の通信関係を静的に解析して
プロセス間通信関係情報を得ると共に前記プログラムに
含まれるプロセス間の親子関係を静的に解析してプロセ
ス間親子関係情報を得て、それぞれプロセス解析情報と
してプロセス解析情報格納手段に格納しておき、 プログラム実行中に負荷分散を行う場合には、前記プロ
セス解析情報格納手段に格納されているプロセス解析情
報をもとに、他の計算機に処理を依頼するプロセスを、
プロセスの集合が格納されているプロセス格納手段から
選択して他の計算機へ送信し、 他の計算機からプロセスが送信された場合には、当該プ
ロセスを受信して、前記プロセス格納手段に格納するこ
とを特徴とする負荷分散処理方法。
2. A load distribution processing method applied to each computer on a distributed processing apparatus, wherein a communication relationship between processes is statically analyzed from a program to obtain interprocess communication relationship information and included in the program. When a parent-child relationship between processes is statically analyzed to obtain inter-process parent-child relationship information and stored as process analysis information in the process analysis information storage means, and load distribution is performed during program execution, Based on the process analysis information stored in the process analysis information storage means, a process for requesting processing to another computer,
Select from the process storage means that stores a set of processes and send it to another computer. If a process is sent from another computer, receive the process and store it in the process storage means. Load balancing processing method characterized by the above.
【請求項3】 複数の計算機により負荷を分散して処理
する分散処理装置において、 前記各計算機に、 プログラム内に含まれるプロセスから起動される子プロ
セス数を静的に解析するプロセス数解析手段と、 前記プロセス数解析手段によって得られた子プロセス数
の情報が格納されるプロセス解析情報格納手段と、 プロセスの集合が格納されるプロセス格納手段と、 プログラムの実行時に、プロセスの生成、実行、中断、
消滅の管理を行うプロセス実行手段であって、プロセス
の生成時には生成したプロセスを前記プロセス格納手段
に格納し、プロセスの消滅時には前記プロセス格納手段
から該当するプロセスを取り除くプロセス実行手段と、 プログラムの実行時に、前記プロセス解析情報格納手段
に格納されている子プロセス数情報をもとに、他の計算
機に処理を依頼するプロセスを前記プロセス格納手段か
ら選択するプロセス選択手段と、 前記プロセス選択手段によって選択されたプロセスを他
の計算機に送るプロセス送信手段と、 他の計算機から送られたプロセスを受信して前記プロセ
ス格納手段に格納するプロセス受信手段とを具備するこ
とを特徴とする分散処理装置。
3. A distributed processing device for distributing and processing a load by a plurality of computers, wherein each computer has a process number analysis means for statically analyzing the number of child processes started from a process included in a program. , Process analysis information storage means for storing information on the number of child processes obtained by the process number analysis means, process storage means for storing a set of processes, and generation, execution, and interruption of processes during program execution ,
Process execution means for managing disappearance, which stores the created process in the process storage means when the process is created, and removes the corresponding process from the process storage means when the process is deleted, and program execution Sometimes, based on the child process number information stored in the process analysis information storage means, a process selection means for selecting a process to be requested from another computer from the process storage means, and a process selection means for selecting the process. A distributed processing apparatus comprising: a process transmitting means for transmitting the processed process to another computer; and a process receiving means for receiving the process transmitted from the other computer and storing the process in the process storing means.
【請求項4】 分散処理装置上の各計算機において適用
される負荷分散処理方法であって、 プログラム内に含まれるプロセスから起動される子プロ
セス数を静的に解析して、その子プロセス数の情報をプ
ロセス解析情報格納手段に格納しておき、 プログラム実行中に負荷分散を行う場合には、前記プロ
セス解析情報格納手段に格納されている子プロセス数情
報をもとに、他の計算機に処理を依頼するプロセスを、
プロセスの集合が格納されているプロセス格納手段から
選択して他の計算機へ送信し、 他の計算機からプロセスが送信された場合には、当該プ
ロセスを受信して、前記プロセス格納手段に格納するこ
とを特徴とする負荷分散処理方法。
4. A load distribution processing method applied to each computer on a distributed processing apparatus, wherein the number of child processes started from processes included in a program is statically analyzed, and information on the number of child processes is obtained. Is stored in the process analysis information storage means, and when load distribution is performed during program execution, processing is performed on another computer based on the child process number information stored in the process analysis information storage means. The process of requesting
Select from the process storage means that stores a set of processes and send it to another computer. If a process is sent from another computer, receive the process and store it in the process storage means. Load balancing processing method characterized by the above.
【請求項5】 複数の計算機により負荷を分散して処理
する分散処理装置において、 前記各計算機に、 プロセスの集合が格納されるプロセス格納手段と、 プログラムの実行時に、プロセスの生成、実行、中断、
消滅の管理を行うプロセス実行手段であって、プロセス
の生成時には生成したプロセスを前記プロセス格納手段
に格納し、プロセスの消滅時には前記プロセス格納手段
から該当するプロセスを取り除くプロセス実行手段と、 各プロセスが起動した子プロセス数を動的に計測するプ
ロセス数管理手段と、 前記プロセス数管理手段によって計測された子プロセス
数の情報が格納されるプロセス数格納手段と、 前記プロセス数格納手段に格納されている子プロセス数
の情報をもとに、他の計算機に処理を依頼するプロセス
を前記プロセス格納手段から選択するプロセス選択手段
と、 前記プロセス選択手段によって選択されたプロセスを他
の計算機に送るプロセス送信手段と、 他の計算機から送られたプロセスを受信して前記プロセ
ス格納手段に格納するプロセス受信手段とを具備するこ
とを特徴とする分散処理装置。
5. A distributed processing device for processing a load by a plurality of computers in a distributed manner, wherein each computer has a process storage means for storing a set of processes, and the generation, execution, and suspension of processes when a program is executed. ,
Process execution means for managing disappearance, which stores the created process in the process storage means when the process is created, and removes the corresponding process from the process storage means when the process is created, and each process A process number management unit that dynamically measures the number of activated child processes, a process number storage unit that stores information about the number of child processes measured by the process number management unit, and a process number storage unit that stores the information. Based on the information of the number of existing child processes, process selecting means for selecting a process to be requested from another computer from the process storing means, and process transmission for sending the process selected by the process selecting means to another computer Means and a process sent from another computer and received in the process storing means. Distributed processing apparatus characterized by comprising a process receiving means for paying.
【請求項6】 分散処理装置上の各計算機において適用
される負荷分散処理方法であって、 各プロセスが起動した子プロセス数を動的に解析して、
その子プロセス数の情報をプロセス数格納手段に格納
し、 プログラム実行中に負荷分散を行う場合には、前記プロ
セス数格納手段に格納されている子プロセス数情報をも
とに、他の計算機に処理を依頼するプロセスを、プロセ
スの集合が格納されているプロセス格納手段から選択し
て他の計算機へ送信し、 他の計算機からプロセスが送信された場合には、当該プ
ロセスを受信して、前記プロセス格納手段に格納するこ
とを特徴とする負荷分散処理方法。
6. A load distribution processing method applied to each computer on a distributed processing apparatus, wherein the number of child processes activated by each process is dynamically analyzed,
When the information on the number of child processes is stored in the process number storage means and the load is distributed during the program execution, it is processed by another computer based on the child process number information stored in the process number storage means. The process requesting the request is selected from the process storage means in which a set of processes is stored and transmitted to another computer. When the process is transmitted from another computer, the process is received and the process A load distribution processing method characterized by storing in a storage means.
【請求項7】 複数の計算機により負荷を分散して処理
する分散処理装置において、 前記各計算機に、 プログラム内に含まれるプロセスから起動される子プロ
セス数を静的に解析するプロセス数解析手段と、 前記プロセス数解析手段によって得られた子プロセス数
の情報が格納されるプロセス解析情報格納手段と、 プロセスの集合が格納されるプロセス格納手段と、 プログラムの実行時に、プロセスの生成、実行、中断、
消滅の管理を行うプロセス実行手段であって、プロセス
の生成時には生成したプロセスを前記プロセス格納手段
に格納し、プロセスの消滅時には前記プロセス格納手段
から該当するプロセスを取り除くプロセス実行手段と、 各プロセスが起動した子プロセス数を動的に計測するプ
ロセス数管理手段と、 前記プロセス数管理手段によって計測された子プロセス
数の情報が格納されるプロセス数格納手段と、 前記プロセス解析情報格納手段に格納されている子プロ
セス数の情報及び前記プロセス数格納手段に格納されて
いる子プロセス数の情報をもとに、他の計算機に処理を
依頼するプロセスを前記プロセス格納手段から選択する
プロセス選択手段と、 前記プロセス選択手段によって選択されたプロセスを他
の計算機に送るプロセス送信手段と、 他の計算機から送られたプロセスを受信して前記プロセ
ス格納手段に格納するプロセス受信手段とを具備するこ
とを特徴とする分散処理装置。
7. A distributed processing device for processing a load by a plurality of computers in a distributed manner, wherein each computer has a process number analysis means for statically analyzing the number of child processes started from a process included in a program. , Process analysis information storage means for storing information on the number of child processes obtained by the process number analysis means, process storage means for storing a set of processes, and generation, execution, and interruption of processes during program execution ,
Process execution means for managing disappearance, which stores the created process in the process storage means when the process is created, and removes the corresponding process from the process storage means when the process is created, and each process Process number management means for dynamically measuring the number of activated child processes, process number storage means for storing information on the number of child processes measured by the process number management means, and process analysis information storage means A process selecting means for selecting from the process storing means a process for requesting processing to another computer based on the information of the number of child processes stored and the information of the number of child processes stored in the process number storing means, Process transmitting means for transmitting the process selected by the process selecting means to another computer; And a process receiving unit that receives a process sent from another computer and stores the process in the process storing unit.
【請求項8】 分散処理装置上の各計算機において適用
される負荷分散処理方法であって、 プログラム内に含まれるプロセスから起動される子プロ
セス数を静的に解析して、その子プロセス数の情報をプ
ロセス解析情報格納手段に格納しておく一方、各プロセ
スが起動した子プロセス数を動的に計測して、その子プ
ロセス数の情報をプロセス数格納手段に格納し、 プログラム実行中に負荷分散を行う場合には、前記プロ
セス解析情報格納手段に格納されている子プロセス数情
報及び前記プロセス数格納手段に格納されている子プロ
セス数情報をもとに、他の計算機に処理を依頼するプロ
セスを、プロセスの集合が格納されているプロセス格納
手段から選択して他の計算機へ送信し、 他の計算機からプロセスが送信された場合には、当該プ
ロセスを受信して、前記プロセス格納手段に格納するこ
とを特徴とする負荷分散処理方法。
8. A load distribution processing method applied to each computer on a distributed processing device, wherein the number of child processes activated from processes included in a program is statically analyzed, and information on the number of child processes is obtained. Is stored in the process analysis information storage means, the number of child processes activated by each process is dynamically measured, and the information on the number of child processes is stored in the process number storage means to distribute the load during program execution. When performing, a process for requesting processing to another computer is performed based on the child process number information stored in the process analysis information storage means and the child process number information stored in the process number storage means. , Select from the process storage means that stores a set of processes and send it to another computer. If the process is sent from another computer, A load distribution processing method, characterized in that the load is received and stored in the process storage means.
JP6089494A 1994-04-27 1994-04-27 Distributed processor and load distribution processing method Pending JPH07295942A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6089494A JPH07295942A (en) 1994-04-27 1994-04-27 Distributed processor and load distribution processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6089494A JPH07295942A (en) 1994-04-27 1994-04-27 Distributed processor and load distribution processing method

Publications (1)

Publication Number Publication Date
JPH07295942A true JPH07295942A (en) 1995-11-10

Family

ID=13972318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6089494A Pending JPH07295942A (en) 1994-04-27 1994-04-27 Distributed processor and load distribution processing method

Country Status (1)

Country Link
JP (1) JPH07295942A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11272623A (en) * 1998-03-19 1999-10-08 Fujitsu Ltd Process allocation method, static scheduling device and record medium
WO2001084343A1 (en) 2000-04-28 2001-11-08 Taisho Pharmaceutical Co., Ltd. Method for assigning job in parallel processing method and parallel processing method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11272623A (en) * 1998-03-19 1999-10-08 Fujitsu Ltd Process allocation method, static scheduling device and record medium
WO2001084343A1 (en) 2000-04-28 2001-11-08 Taisho Pharmaceutical Co., Ltd. Method for assigning job in parallel processing method and parallel processing method
US7370328B2 (en) 2000-04-28 2008-05-06 Honda Motor Co., Ltd. Method for assigning job in parallel processing method and parallel processing method
CN100394416C (en) * 2000-04-28 2008-06-11 大正制药株式会社 Method for assigning job in parallel processing method and parallel processing method
EP2202640A1 (en) 2000-04-28 2010-06-30 Taisho Pharmaceutical Co. Ltd. Job assignment method in parallel processing method and parallel processing method
EP2204735A1 (en) 2000-04-28 2010-07-07 Taisho Pharmaceutical Co. Ltd. Job assignment method in parallel processing method and parallel processing method

Similar Documents

Publication Publication Date Title
US9965324B2 (en) Process grouping for improved cache and memory affinity
US10635664B2 (en) Map-reduce job virtualization
JP6172649B2 (en) Information processing apparatus, program, and information processing method
US20150227586A1 (en) Methods and Systems for Dynamically Allocating Resources and Tasks Among Database Work Agents in an SMP Environment
US8112526B2 (en) Process migration based on service availability in a multi-node environment
US8271523B2 (en) Coordination server, data allocating method, and computer program product
CA2415043A1 (en) A communication multiplexor for use with a database system implemented on a data processing system
US9323464B2 (en) Assigning device adaptors to use to copy source extents to target extents in a copy relationship
WO2020125396A1 (en) Processing method and device for shared data and server
Wildstrom et al. Towards self-configuring hardware for distributed computer systems
CN105760212A (en) Data redistribution method and device based on vessels
US20230100484A1 (en) Serverless function colocation with storage pools
CN111984729A (en) Heterogeneous database data synchronization method, device, medium and electronic equipment
KR102247249B1 (en) A computer program for asynchronous data processing in a database management system
CN112947851A (en) NUMA system and page migration method in NUMA system
JPH07295942A (en) Distributed processor and load distribution processing method
JP2004326480A (en) Distributed parallel analysis method of mass data
CN115220908A (en) Resource scheduling method, device, electronic equipment and storage medium
US20100199281A1 (en) Managing the Processing of Processing Requests in a Data Processing System Comprising a Plurality of Processing Environments
KR101812452B1 (en) Method for executing processing of queries in cloud services and apparatus using the same
JPH09101902A (en) Job scheduling system
JP6506773B2 (en) INFORMATION PROCESSING APPARATUS, METHOD, AND PROGRAM
US5062046A (en) Multiple processor system having a correspondence table for transferring processing control between instruction processors
JP3241214B2 (en) Distributed processing apparatus and process execution method
KR101989033B1 (en) Appratus for managing platform and method for using the same

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080927

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080927

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090927

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 7

Free format text: PAYMENT UNTIL: 20090927

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 8

Free format text: PAYMENT UNTIL: 20100927

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 8

Free format text: PAYMENT UNTIL: 20100927

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100927

Year of fee payment: 8

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100927

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 9

Free format text: PAYMENT UNTIL: 20110927

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 10

Free format text: PAYMENT UNTIL: 20120927