JPH09293057A - Task allocation method in hierarchical structure type multiprocessor system - Google Patents

Task allocation method in hierarchical structure type multiprocessor system

Info

Publication number
JPH09293057A
JPH09293057A JP13112496A JP13112496A JPH09293057A JP H09293057 A JPH09293057 A JP H09293057A JP 13112496 A JP13112496 A JP 13112496A JP 13112496 A JP13112496 A JP 13112496A JP H09293057 A JPH09293057 A JP H09293057A
Authority
JP
Grant status
Application
Patent type
Prior art keywords
tasks
processors
cluster
main
free
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
JP13112496A
Other languages
Japanese (ja)
Inventor
Katsuaki Fundou
勝昭 分銅
Original Assignee
Nec 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

Links

Abstract

PROBLEM TO BE SOLVED: To perform efficient parallel processing by the hierarchical structure type multiprocessor system.
SOLUTION: When a source program 10 is translated, a compiler 11 predicts the execution times of respective tasks which can be processed in parallel and overhead times at the time of the execution of the tasks by clusters different from a main cluster and incorporates them as prediction results 120 in an object program 12. A scheduler 13 when allocating the tasks to processors judges whether the tasks are completed earlier by expecting free processors to be obtained in the main cluster 2 or assigning the tasks to free processors in other clusters unless free processors to which all the tasks are assigned are present in the main cluster 2, and then allocates the tasks to the cluster which will complete the tasks.
COPYRIGHT: (C)1997,JPO

Description

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

【0001】 [0001]

【発明の属する技術分野】本発明は階層構造型マルチプロセッサシステムで並列処理を行う場合のタスク割り当て方法に関する。 The present invention relates to relates to a task allocation method for performing parallel processing in a hierarchical structure multiprocessor system.

【0002】 [0002]

【従来の技術】マルチプロセッサシステムの一種に、図6に示すように、複数のプロセッサ4とそれらで共有されるローカルメモリ3とから構成されるクラスタ2を複数備え、これら複数のクラスタ2を共通システムバス1 One type of the prior art multiprocessor system, as shown in FIG. 6, a plurality of formed clusters 2 from the local memory 3 which is shared by those with multiple processors 4, a plurality of clusters 2 common system bus 1
によって相互にデータ転送可能に接続した階層構造型マルチプロセッサシステムがある。 There are hierarchical multiprocessor system connected mutual data transfer can by. この階層構造型マルチプロセッサシステムの特徴は、各クラスタ2毎にローカルメモリ3を有する為、全てのプロセッサ4で1つのメモリを共有する通常の密結合マルチプロセッサシステムに比べてメモリアクセス競合の頻度が低下することである。 Features of this hierarchy multiprocessor system, since having the local memory 3 for each cluster 2, the frequency of memory access conflict than normal tightly coupled multiprocessor system sharing a single memory on all processors 4 it is to decrease. 但し、他のクラスタのローカルメモリ上のデータを必要とする場合には、そのデータを自クラスタのローカルメモリに転送する必要があり、時間がかかる。 However, in the case that requires data on the local memory of the other cluster, it is necessary to transfer the data to the local memory of its own cluster, take time.

【0003】このような特徴を有するため、或るユーザプログラムを階層構造型マルチプロセッサシステムで実行する場合、複数のクラスタの中から1つのクラスタを主クラスタとして選択し、ユーザプログラムの開始から終了まで主クラスタ内のプロセッサに、ユーザプログラムを構成する各タスクを割り当てる方法が一般に採用されている。 [0003] Because of such features, if you run a certain user program hierarchically multiprocessor system, one cluster from among a plurality of clusters is selected as the primary cluster, from the start to the end of the user program the processor in the primary cluster, a method of assigning each task constituting the user program is generally employed.

【0004】 [0004]

【発明が解決しようとする課題】ところで、ユーザプログラムの或る処理を複数に分割してその各々を別々のタスクとしてマルチプロセッサシステムで並列処理する場合の、その分割方法として次の2通りがある。 [SUMMARY OF THE INVENTION Incidentally, in the case of dividing a certain processing of the user program into a plurality parallel processing in a multi-processor system to each as a separate task, there are two ways: as a dividing method . その1つは、例えば特開平1−152571号公報に示されるように、使用可能なプロセッサ台数を前提とし、ユーザプログラムの処理をその使用可能プロセッサ台数で均等に分割し、その各々を1つのタスクとする方法であり、他の方法は、ソースプログラム中でユーザが予め並列化数を指示しておき、その並列化指示に従ってユーザプログラムの処理を分割し、その各々を1つのタスクとする方法である。 One, for example, as shown in JP-A-1-152571, assume the number of processors available, evenly divide the processing of the user program in the available number of processors, the one each task in that a method, other methods may leave indicates the number previously parallelism user in the source program, a method of dividing the processing of the user program in accordance with the parallelization instruction, the each one of the tasks is there.

【0005】前者のような分割方法の場合、従来のタスク割り当て方法でも問題は生じない。 In the case of division method such as the former, there is no problem in the related task allocation methods. 同時に使用可能なプログラム台数を前提に並列処理するタスク数が決定されるため、全てのタスクが並列処理されるからである。 At the same time since the number of tasks in parallel processing on the assumption usable program number is determined, because all the tasks are processed in parallel.
しかしながら、後者のような分割方法の場合、タスク数分の空きプロセッサが常に存在するとは限らないため、 However, if the division method such as the latter, since the idle processor for the number of tasks is not always present,
全てのタスクが並列処理される保証はない。 There is no guarantee that all tasks are processed in parallel. この場合、 in this case,
従来のタスク割り当て方法では、常に1つの主クラスタ内のプロセッサにタスクを割り当てるようにしている為、空きプロセッサ数が足りないと、空きプロセッサができるまで残りのタスクが必ず待たされることになる。 In the conventional task allocation method, always because it has to assign a task to a processor in one of the main cluster, the number of idle processors is insufficient, so that the remaining tasks are always wait until there is room processor.

【0006】なお、主クラスタ中に空きプロセッサが無い場合、他のクラスタに空きプロセッサがあれば直ちにそのプロセッサにタスクを割り当てるようにすることが考えられる。 [0006] When idle processors is not in the primary cluster, it is conceivable to assign immediately tasks to the processor if there is a space processor to another cluster. しかしながら、前述したように他のクラスタのローカルメモリ上のデータを必要とする場合にはそのデータを自クラスタのローカルメモリに転送する必要があって、それには或る程度の時間がかかるため、他のクラスタのプロセッサに割り当てると、そのタスクの実行終了時刻や後続の処理の開始が却って遅くなる場合があり、問題である。 However, it is necessary to transfer the data in the case that requires data on the local memory of the other cluster, as described above in the local memory of its own cluster, it takes time of about one to, other assigning of the processors of the cluster, there is a case where the start of the execution end time and subsequent processing of the task is rather slow, a problem.

【0007】そこで本発明の目的は、並列処理可能なタスクを基本的には1つのクラスタのプロセッサ群に割り当てるようにするが、全タスクを割り当てるだけの空きプロセッサが存在しない場合には、割り当て先を1つのクラスタに限定せず、処理が早まるならば別のクラスタに割り当てることで、ユーザプログラムの処理時間の短縮を図ることにある。 [0007] Accordingly, an object of the present invention, although the parallelism possible tasks basically to assign the processor group of one cluster, if the idle processor only assign all tasks is not present, assignees the not limited to one cluster, if the process is accelerated by assigning to another cluster is to shorten the processing time of the user program.

【0008】 [0008]

【課題を解決するための手段】本発明は、メモリと該メモリを共有する複数のプロセッサとから構成されるクラスタを複数備え、これら複数のクラスタが共通システムバスを通じて相互にデータ転送可能に接続された階層構造型マルチプロセッサシステムにおけるタスク割り当て方法において、ソースプログラムを翻訳して目的プログラムを生成するコンパイラにおいて、並列化の指示に従って並列処理可能な複数のタスクを生成した際に、各タスクの実行時間を予測すると共にタスクを前記目的プログラムを主として実行する主クラスタと異なるクラスタで実行した場合のオーバヘッド時間を予測して、これらの予測結果を目的プログラムに付加し、目的プログラムのタスクをプロセッサに割り当てるスケジューラにおいて、並列処理可能 SUMMARY OF THE INVENTION The present invention includes a plurality of clusters comprised of a plurality of processors sharing a memory and the memory, the plurality of clusters each other is data transfer connected to through a common system bus in task allocation method in the hierarchical structure multiprocessor system, the compiler generates the object program to translate a source program, upon generating a plurality of tasks that can be parallel processed in accordance with instructions in parallel, the execution time of each task to predict the overhead time when the task was executed in the primary cluster different from cluster mainly executing the object program as well as predict, these prediction results added to the object program, assign tasks of the object program to the processor scheduler in, parallelizable タスクは基本的に前記主クラスタのプロセッサ群に割り当てるようにするが、全タスクを割り当てるだけの空きプロセッサが不足している場合には、主クラスタに空きプロセッサが生じるのを待った方が早いか、それとも他のクラスタの空きプロセッサにタスクを割り当てた方が早いかを、前記予測結果を利用して判断し、処理が早くなる側のクラスタにタスクを割り当てることを特徴とする。 The task is to be assigned to the processor group of basically the main cluster, all the way when the free processor of only assign a task is insufficient, or is faster to waiting for the free processor occurs in the main cluster, or whether the earlier assigned tasks to idle processors of other clusters, the determining using the prediction result, the process and allocates a task to the faster side cluster.

【0009】また、タスクを前記主クラスタと異なるクラスタで実行した場合のオーバヘッド時間を、当該タスクを他のクラスタのプロセッサで実行させるためにそのクラスタのローカルメモリへ前記主クラスタのローカルメモリから転送しておく必要のあるデータの転送時間と、当該タスクの処理によって書き換えられた前記他のクラスタのローカルメモリのデータを前記主クラスタのローカルメモリに転送する時間とを少なくとも考慮して予測することを特徴とする。 Further, the overhead time of running on a cluster of different tasks and the main cluster, transferred to the local memory of the cluster in order to execute the tasks in the processor of the other clusters from the local memory of the main cluster wherein the transfer time of the data that needs previously, to predict at least in consideration of the time and to transfer the data in the local memory of the other cluster rewritten by the processing of the task in the local memory of the main cluster to.

【0010】更に、並列処理可能な複数のタスクのうち次に割り当てようとするタスクのオーバヘッド時間と、 Furthermore, the overhead time of the task to be assigned next of parallelism possible plurality of tasks,
並列処理可能な複数のタスクのうち既に主クラスタに割り当てられているタスクの実行時間および割り当て時刻から判明する空きプロセッサが生じるまでの待ち時間とを比較して、主クラスタに空きプロセッサが生じるのを待った方が早いか、それとも他のクラスタの空きプロセッサにタスクを割り当てた方が早いかを判断することを特徴とする。 By comparing the waiting time for idle processors turn out from the execution time and the allocation time of a task already allocated to the primary cluster of the plurality of tasks that can parallel processing results, that the free processor occurs in the main cluster or those who waited fast, or is characterized in that to determine whether the earlier you assign a task to a free processor of the other cluster.

【0011】 [0011]

【発明の実施の形態】次に本発明の実施の形態の例について図面を参照して詳細に説明する。 For examples of embodiments of the invention will now embodiment of the present invention with reference to the accompanying drawings.

【0012】図1は本発明の一実施例のシステム構成図である。 [0012] Figure 1 is a system configuration diagram of an embodiment of the present invention. 同図において、MPSは図6で説明した階層構造型マルチプロセッサシステムであり、各々が複数のプロセッサ4とそれらで共有されるローカルメモリ3とから構成される複数のクラスタ2が共通システムバス1によって相互にデータ転送可能に接続されている。 In the figure, MPS is a hierarchical multiprocessor system described in Figure 6, a plurality of clusters 2 composed of a local memory 3 which each is shared by those with multiple processor 4 via a common system bus 1 are connected to each other data can be transferred to. また、 Also,
10はユーザが作成したソースプログラムである。 10 is a source program created by the user. このソースプログラム10は高級言語で処理が記述されており、特に並列処理可能な部分についてはユーザが予めその並列化数を指示した並列化指示を埋め込んである。 The source program 10 is written is processed in a high level language, an embedded parallelization instruction designated by the user in advance the parallelization numbers especially parallelism moiety. 更に、11はソースプログラム10を翻訳して階層構造型マルチプロセッサシステムMPS向けの目的プログラム12を生成するコンパイラである。 Further, 11 is a compiler that generates the object program 12 in the hierarchy-type multiprocessor system MPS for translating a source program 10. このコンパイラ11 This compiler 11
で生成される目的プログラム12中には、コンパイラ1 In the in the target program 12 is generated, compiler 1
1の後述する処理によって、並列処理可能なタスクに関する実行時間とオーバヘッド時間との予測結果120が埋め込まれている。 By a process 1 described later, the prediction result 120 is embedded between the execution time and the overhead time associated parallelism possible tasks. また、13は目的プログラム12を階層構造型マルチプロセッサシステムMPSで実行すべく、目的プログラム12を構成する各タスクをクラスタ2のプロセッサ4に割り当てるスケジューラである。 Further, 13 to execute the object program 12 in a hierarchical structure multiprocessor system MPS, a scheduler assigns each task constituting the target program 12 in the processor 4 of the cluster 2. このスケジューラ13は、目的プログラム12を実行するために少なくとも1つの空きプロセッサが存在する1つのクラスタ2を主クラスタとして選択し、基本的に主クラスタ内のプロセッサ群に目的プログラム12のタスクを割り当てる。 The scheduler 13, one cluster 2 in which at least one idle processors is present in order to execute the object program 12 is selected as the primary cluster, assigning the task of target program 12 into processor groups in essentially primary cluster. 但し、並列処理可能な複数のタスクを割り当てる際には割り当て先を主クラスタに限定せず、処理が早まるなら別のクラスタに割り当てる。 However, when allocating a plurality of tasks that can be parallel processing without limiting the assignees the primary cluster is assigned to another cluster if processing is accelerated.

【0013】図2はコンパイラ11の構成例とその処理例とを示している。 [0013] Figure 2 shows an example of a configuration of a compiler 11 and its processing example. コンパイラ11は、入力となるソースプログラム10を読み込み、構文解析を行って中間テキスト113を生成する解析部110と、中間テキスト113を読み込み、ユーザから指示された並列化指示に従って処理を並列化して、並列化中間テキスト114を生成する並列化部111と、並列化中間テキスト114 Compiler 11 reads the source program 10 as an input, and the analysis unit 110 to generate an intermediate text 113 performs syntax analysis, reads the intermediate text 113, and parallel processing in accordance with parallelization instruction instructed by a user, a parallelizing unit 111 for generating a parallelized intermediate text 114, parallelization intermediate text 114
から目的プログラム12を生成する生成部112とから構成され、特に並列化部111には、実行時間・オーバヘッド時間予測手段1110が設けられている。 From consist generation unit 112. which generates an object program 12, in particular to the parallel portion 111, the execution time overhead time predicting means 1110 is provided.

【0014】この実行時間・オーバヘッド時間予測手段1110は、並列化部111において、ソースプログラム10中の或る処理部分が並列化指示に従って複数に分割されてその各々が1つのタスクとされた場合に、図2 [0014] The execution time overhead time predicting means 1110, the parallelization section 111, when a certain processing portion of the source program 10, each is a single task is divided into a plurality accordance parallelization directive , as shown in FIG. 2
のステップS1〜S3の処理を行って、各タスクを主クラスタのプロセッサで実行したときの実行時間と、主クラスタとは別のクラスタのプロセッサで実行したときのオーバヘッド時間とを予測する手段である。 Perform termination of the step S1 to S3, are means for predicting the respective tasks and execution time when executed by the processor of the primary cluster, the overhead time when the main cluster running on the processor of another cluster . この予測された各タスクの実行時間とオーバヘッド時間とを含む予測結果は生成部112を通じて目的プログラム12に予測結果120として埋め込まれる。 The predicted predicted results and an execution time and the overhead time of each task is embedded as a prediction result 120 to the object program 12 through the generator 112.

【0015】実行時間・オーバヘッド時間予測手段11 [0015] The execution time overhead time prediction means 11
10は、本実施例の場合、各タスクそれぞれに対して作成される命令の実行時間の総和(ループの場合には繰り返し回数も考慮にいれる)を求め、これを各タスクの実行時間とする(S1)。 10, in the present embodiment, the total sum of the execution time of the instruction to be created for each of task (in the case of the loop takes into consideration number of repetitions), which the execution time of each task ( S1).

【0016】また実行時間・オーバヘッド時間予測手段1110は、本実施例の場合、オーバヘッド時間の大部分がデータ転送時間で占められることに鑑み、各タスクを主クラスタとは別のクラスタのプロセッサに割り当てた場合に、主クラスタとそのクラスタとの間で転送が必要となるデータのサイズを算出し(S2)、この算出したデータサイズに単位サイズ当たりのデータ転送時間を乗じることによりデータ転送時間の総和を求め、これをそのタスクのオーバヘッド時間とする(S3)。 [0016] Run time overhead time predicting means 1110, in the present embodiment, the assignment to a processor of a different cluster view of the fact that most of the overhead time is occupied by the data transfer time, the respective tasks and the main cluster If the, to calculate the primary cluster and the size of data required is transferred between the cluster (S2), the sum of the data transfer time by multiplying the data transfer time per unit size of the calculated data size the calculated, which is the overhead time of the task (S3).

【0017】或るタスクを主クラスタと別のクラスタのプロセッサに割り当てた場合、主クラスタとそのクラスタとの間で転送が必要となるデータとしては、例えば次のようなものがある。 [0017] When assigning a certain task to the processor of the main cluster and another cluster, the primary cluster and data required are transferred between the cluster is, for example, as follows.

【0018】1つは、当該タスクの処理を行う前段階として、テキストと、処理を行うのに最小限必要な入力データがある。 [0018] One is a stage prior to performing the processing of the task, there is a text and the minimum required input data to perform the processing. これらのデータは、目的プログラムのこれまでの処理を行ってきた主クラスタのローカルメモリに存在しているため、そのローカルメモリから当該タスクが実行されるクラスタのローカルメモリへ転送しておく必要がある。 These data, since in the local memory of the primary cluster that has been processed so far in the object program, it is necessary to transfer from the local memory to the local memory of the cluster to which the task is executed .

【0019】他の1つは、当該タスクによって書き換えられるであろうと予測されるデータである。 [0019] the other one is data that is expected to will be rewritten by the task. このようなデータは当該タスクが実行されるクラスタのローカルメモリ上で書き換えられるため、目的プログラムの主クラスタでの後続処理のために、主クラスタのローカルメモリへ転送しておく必要がある。 Such data for rewritten on the local memory of the cluster to which the task is executed, for subsequent processing in the primary for the target program, it is necessary to transfer to the local memory of the main cluster.

【0020】以上のような種類のデータはソースプログラム10のコンパイル時点で判明する為、実行時間・オーバヘッド時間予測手段1110はそれらのデータのサイズの総和を求め、そして、データ転送時間は転送されるデータのサイズにほぼ比例するので、算出したサイズに単位サイズ当たりのデータ転送時間を乗ずることにより、当該タスクを他のクラスタに割り当てた際のオーバヘッド時間を求める。 [0020] To find the compile time type, such as the data source program 10 above, the execution time overhead time predicting means 1110 obtains the sum of the size of those data, and the data transfer time is transferred since roughly proportional to the size of the data, by multiplying the data transfer time per unit size calculated size, it obtains the overhead time during which allocated the task to the other cluster.

【0021】なお、クラスタ間で転送が必要となるデータとしては、上述したデータが最もサイズが大きくなるため、それだけでオーバヘッド時間を求めるようにしても良いが、例えば、処理の途中で他のタスクと同期処理が必要な場合、同期をとらなくてはならないデータを転送する必要があるため、この種のデータの転送時間も考慮するようにしても良い。 [0021] Note that the data that is required transfer between clusters, since the above data the best size increases, but in may be obtained overhead time it, for example, other tasks during the process when If synchronization is required, since it is necessary to transfer the data that must be synchronized, it may be taken into consideration also the transfer time of this type of data. 但し、この種のデータの転送は1度だけでなく複数回行われる場合があり、また双方向に転送されるので、それを考慮してデータ転送時間を求めることが必要である。 However, the transfer of such data may be performed a plurality of times not only once, also because they are transferred in both directions, it is necessary to determine the considering data transfer time it.

【0022】次に図1のスケジューラ13の動作について説明する。 [0022] Next, the operation of the scheduler 13 of FIG. 1 will be described. スケジューラ13は、目的プログラム12 Scheduler 13, object program 12
の実行に際して、複数のクラスタ2のうちから少なくとも1つの空きプロセッサが存在する1つのクラスタを、 Upon execution, the one cluster of at least one idle processors from the plurality of clusters 2 are present,
目的プログラム12を実行する主クラスタとして選択する。 It is selected as the primary cluster to run the target program 12. そして、基本的に主クラスタ内のプロセッサ群に目的プログラム12のタスクを割り当てる。 Then, assign tasks of the object program 12 to processors in essentially primary cluster. 但し、並列処理可能な複数のタスクを割り当てる際に空きプロセッサが不足する場合は、主クラスタでプロセッサが空き状態になるのを待った方が早いか、それとも他のクラスタの空きプロセッサにタスクを割り当てた方が早いかを目的プログラム12中の予測結果120を利用して、処理が早くなる方にタスクを割り当てる。 However, if insufficient idle processor when allocating a plurality of tasks that can be parallel processing, the processor whether the earlier waiting to become idle, or assign a task to a free processor of another cluster the primary cluster it is either by using the prediction result 120 in the object program 12 early, assign tasks to those who process faster. なお、並列処理可能な複数のタスクのうち最初に割り当てるタスクは必ず主クラスタのプロセッサに割り当てるため、若し、空きプロセッサが存在しなければ待ち状態となる。 Since allocating the processor initially assigned the task always the primary cluster of the plurality of tasks parallelizable, Wakashi, a wait state if the idle processor exists.

【0023】図3はスケジューラ13が並列処理可能な複数のタスクを順次に割り当てる際に2番目以降のタスクについて行う処理の一例を示している。 [0023] Figure 3 shows an example of processing performed for the second and subsequent tasks in allocating scheduler 13 has multiple possible parallel processing tasks sequentially. 同図に示すように、スケジューラ13は、並列処理可能な次のタスクを割り当てる際、先ず、主クラスタ中のプロセッサの使用状況を確認し、空きプロセッサが存在するか否かを調べる(S11)。 As shown in the drawing, the scheduler 13, when assigning the parallel processing can be the next task, first checks the processor usage during the primary cluster checks if idle processor exists (S11). 主クラスタ中に空きプロセッサが存在する場合には、そのプロセッサに当該タスクを割り当てる(S16)。 If the idle processor exists in the primary cluster, assigning the task to the processor (S16).

【0024】他方、主クラスタ中に空きプロセッサが存在しない場合、主クラスタに空きプロセッサが生じるを待ってその空きプロセッサに当該タスクを割り当てた方が処理が早いか、それとも他のクラスタの空きプロセッサに当該タスクを割り当てた方が処理が早いかを判定する。 [0024] On the other hand, mainly when the idle processor not present in the cluster, the one who was assigned the task to free the processor is faster processing waiting for the vacant processor occurs in the main cluster, or in an empty processor of other cluster It determines who assigned the task fast processing. このために、先ず、主クラスタに空きプロセッサができるまでの待ち時間Xを予測する(S12)。 For this, first of all, to predict the waiting time X until it is idle processor in the main cluster (S12). この待ち時間Xは、当該並列処理可能な複数のタスクであって主クラスタに既に割り当てられたタスクのうち、最も早く実行を終えるタスクの終了時刻までの時間とする。 The waiting time X, of the already assigned tasks to the main clusters a corresponding parallel processing possible plurality of tasks, the time to the end time of the task to terminate the earliest execution. タスクの実行終了時刻は、その割り付け時刻に予測結果1 Execution end time of the task, the results predicted in the allocation time 1
20中に記述されたそのタスクの実行時間を加算して求める。 Determined by adding the execution time of the task described in 20. 次に、今回割り当てようとするタスクのオーバヘッド時間(これも予測結果120中に記述されている) Next, the overhead time of the task to be assigned this time (which is also described in the prediction result 120)
が、上記待ち時間Xより小さいか否かを判定する(S1 Is equal to or above waiting time smaller than X (S1
3)。 3). オーバヘッド時間が待ち時間Xより小さい場合、 If the overhead time is less than the waiting time X,
他のクラスタの空きプロセッサに当該タスクを割り当てた方が処理が早まる可能性が高いので、他のクラスタに空きプロセッサが存在するか否かを調べ(S14)、存在すればその空きプロセッサに当該タスクを割り当てる(S15)。 Since those who assigned the task to idle processors in other clusters are likely to process is accelerated, examines whether the idle processor exists in another cluster (S14), the task in the free processor if present assign (S15). なお、他のクラスタに空きプロセッサが存在しなかった場合にはステップS11に戻って上述した処理を繰り返す。 In addition, when the idle processor was not present in the other cluster repeats the above-described processing returns to step S11. 一方、オーバヘッド時間が待ち時間X On the other hand, overhead time is the waiting time X
より小さくない場合は、主クラスタに空きプロセッサが生じるのを待っていた方が処理が早まる可能性が高いので、ステップS11に戻って上述した処理を繰り返す。 If not smaller, because who was waiting for the idle processor occurs in the main cluster are likely to process is accelerated, and repeats the processing described above returns to step S11.

【0025】例えば図4(A)に示すように処理A,処理B,処理Cから構成されるソースプログラム10をコンパイラ11が翻訳した結果、図4(B)に示すような処理Aを実行するタスクTA,処理Bを並列実行する3 [0025] For example, FIG. 4 (A) are shown as process A, process B, a result of a source program 10 consists of processing the C compiler 11 translates and executes the process A as shown in FIG. 4 (B) task TA, 3 to parallel execution of processing B
つのタスクTB0,TB1,TB2,処理Cを実行するタスクTCから構成される目的プログラム12が生成され、主クラスタの或るプロセッサでタスクTAが実行され、その終了を契機に3つのタスクTB0,TB1,T One task TB0, TB1, TB2, processing object program 12 consists task TC for C to run is generated, a task TA is executed at a certain processor primary cluster, its termination three in response task TB0, TB1 , T
B2を割り当てる場合、主クラスタに3つの空きプロセッサがあれば、図5(A)に示すようにタスクTB0, When assigning B2, if there are three idle processors in the primary cluster, as shown in FIG. 5 (A) task TB0,
TB1,TB2の全てが主クラスタ内のプロセッサに割り当てられる。 All of TB1, TB2 is assigned to the processor in the main cluster. しかし、例えば空きプロセッサが2つしかないと、図5(B)に示すようにタスクTB0,TB However, for example, idle processors only two tasks TB0 as shown in FIG. 5 (B), TB
1を主クラスタの空きプロセッサに割り当てた時点で、 1 at the time of assignment to a free processor of the main cluster,
空きプロセッサが無くなる。 Free processor is eliminated. そこで、スケジューラ13 Thus, the scheduler 13
は、タスクTB2の割り当てにかかる図3の処理において、主クラスタに空きプロセッサが存在しないことを判定すると(S11)、主クラスタに空きプロセッサができまるでの待ち時間Xを予測する(S12)。 , In the processing of FIG. 3 according to the allocation of tasks TB2, it is determined that no free processor present in the primary cluster (S11), to predict the like latency X can idle processor in the main cluster (S12). 現在の時刻をタスクTB2の割り当て直後の時刻とすると、その待ち時間Xは図5(B)に示す時間Xとなる。 When the current time to the time immediately after the allocation of tasks TB2, the waiting time X is the time X shown in FIG. 5 (B). そこで、 there,
スケジューラ13は、この待ち時間XとタスクTB2のオーバヘッド時間(図5(B)のa+bの時間)との大小関係を調べる(S13)。 The scheduler 13 examines the magnitude relation between the waiting time X and overhead time of the task TB2 (the time a + b in FIG. 5 (B)) (S13). そして、オーバヘッド時間が待ち時間Xより小さい場合には、図5(B)に示すように、他のクラスタに空きプロセッサがあればそのプロセッサにタスクTB2を割り当てる。 When overhead time is smaller than wait X, as shown in FIG. 5 (B), assign tasks TB2 to the processor if there is a space processor to another cluster. こうすると、主クラスタに空きが生じるのを待ってタスクTB2を割り当てる場合に比べて、図5(B)に示す時間Yだけ処理時間が短縮できることになる。 In this way, waiting for space to become available to the primary cluster than to assign tasks TB2, so that can be shortened by the processing time period Y shown in FIG. 5 (B). なお、他のクラスタに空きプロセッサが存在しない為に、ステップS11〜S14 It should be noted that, in order to not be idle processor exists in the other cluster, step S11~S14
のループを繰り返していると、待ち時間Xは徐々に短くなるのに対してオーバヘッド時間は固定なので、ついには待ち時間Xがオーバヘッド時間以下になる。 When are repeated in a loop, since latency X is overhead time fixed relative to the progressively shorter, finally latency X is less overhead hours. こうなると、タスクTB2はもはや他クラスタへは割り当てられず、主クラスタに空きプロセッサが生じるのを待つことになる。 When this happens, the task TB2 is no longer assigned to another cluster, so that the wait for the free processor occurs in the main cluster.

【0026】以上本発明の実施例について説明したが、 [0026] Having described embodiments of the above present invention,
本発明は以上の実施例にのみ限定されず、その他各種の付加変更が可能である。 The present invention is not limited to the above embodiment and can be various other additions and modifications. 例えば、上述した実施例では、 For example, in the embodiment described above,
並列可能な複数のタスクの各々についてオーバヘッド時間を予測したが、並列処理可能な複数のタスクの割り当て順序が定まっており、前述したように最初のタスクを必ず主クラスタに割り当てるようにしている場合にあっては、並列処理可能な複数のタスクのうちその先頭のタスクについてはオーバヘッド時間の予測を省略することができる。 Although predicted overhead time for each of the parallel possible plurality of tasks, and definite assignment order of a plurality of tasks that can be parallel processed, if you have allocated always main cluster first task as described above is a, it is possible to omit the prediction overhead time for the first task of the plurality of tasks that can be parallel processed.

【0027】 [0027]

【発明の効果】以上説明したように本発明によれば、ソースプログラムの翻訳時点で、並列処理可能な各タスクの実行時間と、タスクを主クラスタと異なるクラスタで実行した場合のオーバヘッド時間とを予測して目的プログラムに含めておき、スケジューラがタスクをプロセッサに割り当てる際に、並列処理可能な複数のタスクの全てを割り当てるだけの空きプロセッサが主クラスタに存在しない場合、目的プログラムに含められた予測結果を利用して、主クラスタに空きプロセッサが生じるのを待った方が早いか、それとも他のクラスタの空きプロセッサにタスクを割り当てた方が早いかを判断し、処理が早くなる側のクラスタにタスクを割り当てるようにしたので、より効率の良い並列処理が可能となる。 According to the present invention described above, according to the present invention, the translation time of the source program, the execution time for each possible parallel processing tasks, and overhead time of running the task in a different cluster primary cluster leave included in the object program to predict the prediction scheduler in assigning tasks to processors, if the idle processor only assign all of the plurality of tasks that can parallel processing is not present in the primary cluster, which is included in the object program the results using the, main cluster on whether faster to waiting for the free processor occurs, or to determine whether the earlier you assign a task to a free processor of other cluster, task of processing becomes faster side cluster since to assign, it is possible more efficient parallel processing.

【図面の簡単な説明】 BRIEF DESCRIPTION OF THE DRAWINGS

【図1】本発明の一実施例のシステム構成図である。 1 is a system configuration diagram of an embodiment of the present invention.

【図2】コンパイラの構成例と処理例とを示す図である。 2 is a diagram showing a processing example and structure example of a compiler.

【図3】スケジューラの処理例を示すフローチャートである。 3 is a flowchart showing a process example of the scheduler.

【図4】ソースプログラムと目的プログラムの例を示す図である。 4 is a diagram showing an example of a source program and an object program.

【図5】並列処理可能なタスクのクラスタへの割り当てと実行時間との関係を示す図である。 5 is a diagram showing a relationship between the execution time assignment to parallel processing possible tasks of the cluster.

【図6】階層構造型マルチプロセッサシステムの一例を示すブロック図である。 6 is a block diagram showing an example of a hierarchical structure multiprocessor system.

【符号の説明】 DESCRIPTION OF SYMBOLS

MPS…マルチプロセッサシステム 1…共通システムバス 2…クラスタ 3…ローカルメモリ 4…プロセッサ 10…ソースプログラム 11…コンパイラ 12…目的プログラム 120…予測結果 13…スケジューラ MPS ... multiprocessor system 1 ... common system bus 2 ... Cluster 3 ... local memory 4 ... Processor 10 ... source program 11 ... compiler 12 ... object program 120 ... prediction result 13 ... scheduler

Claims (3)

    【特許請求の範囲】 [The claims]
  1. 【請求項1】 メモリと該メモリを共有する複数のプロセッサとから構成されるクラスタを複数備え、これら複数のクラスタが共通システムバスを通じて相互にデータ転送可能に接続された階層構造型マルチプロセッサシステムにおけるタスク割り当て方法において、 ソースプログラムを翻訳して目的プログラムを生成するコンパイラにおいて、並列化の指示に従って並列処理可能な複数のタスクを生成した際に、各タスクの実行時間を予測すると共にタスクを前記目的プログラムを主として実行する主クラスタと異なるクラスタで実行した場合のオーバヘッド時間を予測して、これらの予測結果を目的プログラムに付加し、 目的プログラムのタスクをプロセッサに割り当てるスケジューラにおいて、並列処理可能なタスクは基本的に前記主 1. A comprising a plurality of clusters comprised of a plurality of processors sharing a memory and the memory, the plurality of clusters hierarchical multiprocessor system connected mutual data transfer can be through a common system bus in task allocation method, in a compiler for generating an object program by translating the source program, upon generating a plurality of tasks that can be parallel processed in accordance with instructions in parallel, the purpose of the task as well as predicting the execution time of each task to predict the overhead time of running on the primary cluster different from cluster mainly executing the program, these prediction results added to the object program, in a scheduler for allocating a task object program to the processor, parallel processing possible tasks basically, the main ラスタのプロセッサ群に割り当てるようにするが、全タスクを割り当てるだけの空きプロセッサが不足している場合には、主クラスタに空きプロセッサが生じるのを待った方が早いか、それとも他のクラスタの空きプロセッサにタスクを割り当てた方が早いかを、前記予測結果を利用して判断し、処理が早くなる側のクラスタにタスクを割り当てることを特徴とする階層構造型マルチプロセッサシステムにおけるタスク割り当て方法。 Although to be assigned to the processor group of raster, if the idle processor of only assign the whole task is insufficient, the primary cluster on whether faster to waiting for the free processor occurs, or idle processors of other cluster task assignment method or be faster to assign a task, determines by using the prediction result, in the hierarchical structure multi-processor system and allocates a task to the cluster of the processing is advanced side to.
  2. 【請求項2】 タスクを前記主クラスタと異なるクラスタで実行した場合のオーバヘッド時間を、当該タスクを他のクラスタのプロセッサで実行させるためにそのクラスタのローカルメモリへ前記主クラスタのローカルメモリから転送しておく必要のあるデータの転送時間と、当該タスクの処理によって書き換えられた前記他のクラスタのローカルメモリのデータを前記主クラスタのローカルメモリに転送する時間とを、少なくとも考慮して予測することを特徴とする請求項1記載の階層構造型マルチプロセッサシステムにおけるタスク割り当て方法。 2. A method overhead time when the task was performed in a different cluster with the main cluster, transferred to the local memory of the cluster in order to execute the tasks in the processor of the other clusters from the local memory of the main cluster It requires a transfer time of data that previously, the time and transferring the data in the local memory of the other cluster rewritten by the processing of the task in the local memory of said main cluster, to predict at least in consideration of task assignment method in the hierarchical structure multiprocessor system of claim 1, wherein.
  3. 【請求項3】 並列処理可能な複数のタスクのうち次に割り当てようとするタスクのオーバヘッド時間と、並列処理可能な複数のタスクのうち既に主クラスタに割り当てられているタスクの実行時間および割り当て時刻から判明する空きプロセッサが生じるまでの待ち時間とを比較して、主クラスタに空きプロセッサが生じるのを待った方が早いか、それとも他のクラスタの空きプロセッサにタスクを割り当てた方が早いかを判断することを特徴とする請求項1または2記載の階層構造型マルチプロセッサシステムにおけるタスク割り当て方法。 [Seikyu claim 3] Tsugini Wariateyo U between and Obaheddo Jikan of Tasuku that, Jikko Jikan and Wariate Jikoku of Tasuku that Sudeni are Wariate to Omo Kurasuta Uchi the plural Tasuku that possible Heiretsu processing Uchi the Heiretsu processing possible a multiple Tasuku by comparing the waiting time for idle processors is caused to be found from the main cluster of whether faster to waiting for the free processor occurs, or determine whether the earlier you assign a task to a free processor of other cluster task assignment method in the hierarchical structure multiprocessor system of claim 1, wherein that.
JP13112496A 1996-04-26 1996-04-26 Task allocation method in hierarchical structure type multiprocessor system Pending JPH09293057A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13112496A JPH09293057A (en) 1996-04-26 1996-04-26 Task allocation method in hierarchical structure type multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13112496A JPH09293057A (en) 1996-04-26 1996-04-26 Task allocation method in hierarchical structure type multiprocessor system

Publications (1)

Publication Number Publication Date
JPH09293057A true true JPH09293057A (en) 1997-11-11

Family

ID=15050552

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13112496A Pending JPH09293057A (en) 1996-04-26 1996-04-26 Task allocation method in hierarchical structure type multiprocessor system

Country Status (1)

Country Link
JP (1) JPH09293057A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007206987A (en) * 2006-02-01 2007-08-16 Nomura Research Institute Ltd Grid computer system and task allocating device
JP2008033932A (en) * 2006-07-28 2008-02-14 Hewlett-Packard Development Co Lp System and method for recompiling code based on locality domain and thread affinity in numa computer system
US7454754B2 (en) 2001-08-06 2008-11-18 International Business Machines Corporation System for providing resources based on licensing contract with user by correcting the error between estimated execution time from the history of job execution
US7487504B2 (en) 2002-02-06 2009-02-03 International Business Machines Corporation Thread dispatch for multiprocessor computer systems
JP2010231502A (en) * 2009-03-27 2010-10-14 Hitachi Ltd Job processing method, computer-readable recording medium having stored job processing program, and job processing system
JP2010237994A (en) * 2009-03-31 2010-10-21 Mizuho Information & Research Institute Inc Arithmetic processing system, arithmetic processing method, and arithmetic processing program
JP2011018131A (en) * 2009-07-07 2011-01-27 Fujitsu Ltd Job assigning apparatus, job assigning method, and job assigning program
JP2011249509A (en) * 2010-05-26 2011-12-08 Nuflare Technology Inc Charged particle beam lithography apparatus and control method thereof

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454754B2 (en) 2001-08-06 2008-11-18 International Business Machines Corporation System for providing resources based on licensing contract with user by correcting the error between estimated execution time from the history of job execution
US8689229B2 (en) 2001-08-06 2014-04-01 International Business Machines Corporation Providing computational resources to applications based on accuracy of estimated execution times provided with the request for application execution
US8245237B2 (en) 2001-08-06 2012-08-14 International Business Machines Corporation Providing resources to a job comparing estimated execution time on currently available nodes and estimated execution time on nodes available after completion of a currently executing job
US7487504B2 (en) 2002-02-06 2009-02-03 International Business Machines Corporation Thread dispatch for multiprocessor computer systems
JP2007206987A (en) * 2006-02-01 2007-08-16 Nomura Research Institute Ltd Grid computer system and task allocating device
JP2008033932A (en) * 2006-07-28 2008-02-14 Hewlett-Packard Development Co Lp System and method for recompiling code based on locality domain and thread affinity in numa computer system
JP2010231502A (en) * 2009-03-27 2010-10-14 Hitachi Ltd Job processing method, computer-readable recording medium having stored job processing program, and job processing system
JP2010237994A (en) * 2009-03-31 2010-10-21 Mizuho Information & Research Institute Inc Arithmetic processing system, arithmetic processing method, and arithmetic processing program
JP2011018131A (en) * 2009-07-07 2011-01-27 Fujitsu Ltd Job assigning apparatus, job assigning method, and job assigning program
JP2011249509A (en) * 2010-05-26 2011-12-08 Nuflare Technology Inc Charged particle beam lithography apparatus and control method thereof
US9188853B2 (en) 2010-05-26 2015-11-17 Nuflare Technology, Inc. Charged particle beam drawing apparatus and control method thereof

Similar Documents

Publication Publication Date Title
Cappello et al. MPI versus MPI+ OpenMP on the IBM SP for the NAS Benchmarks
US5884077A (en) Information processing system and method in which computer with high load borrows processor of computer with low load to execute process
US6286027B1 (en) Two step thread creation with register renaming
US6088511A (en) Nested parallel 2D Delaunay triangulation method
Zaki et al. Customized dynamic load balancing for a network of workstations
US6389446B1 (en) Multi-processor system executing a plurality of threads simultaneously and an execution method therefor
US20090064168A1 (en) System and Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks By Modifying Tasks
Sevcik Application scheduling and processor allocation in multiprogrammed parallel processing systems
US6353844B1 (en) Guaranteeing completion times for batch jobs without static partitioning
US20100153541A1 (en) Techniques for dynamically assigning jobs to processors in a cluster based on processor workload
Singh et al. Optimizing grid-based workflow execution
Gautier et al. Xkaapi: A runtime system for data-flow task programming on heterogeneous architectures
US20050097509A1 (en) Methods and products for processing loop nests
US6507809B1 (en) Method and system for simulating performance of a computer system
US20090063885A1 (en) System and Computer Program Product for Modifying an Operation of One or More Processors Executing Message Passing Interface Tasks
US5367696A (en) Register allocation technique in a program translating apparatus
JP2006259821A (en) Synchronizing method and program for parallel computer
Polo et al. Performance management of accelerated mapreduce workloads in heterogeneous clusters
JP2008090546A (en) Multiprocessor system
Agrawal et al. Adaptive scheduling with parallelism feedback
JP2004171234A (en) Task allocation method in multiprocessor system, task allocation program and multiprocessor system
US20090064166A1 (en) System and Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks
Shang et al. Distributed hardwired barrier synchronization for scalable multiprocessor clusters
Agrawal et al. Adaptive work-stealing with parallelism feedback
Agrawal et al. Adaptive work stealing with parallelism feedback