JP3364274B2 - Task assignment device - Google Patents

Task assignment device

Info

Publication number
JP3364274B2
JP3364274B2 JP12005093A JP12005093A JP3364274B2 JP 3364274 B2 JP3364274 B2 JP 3364274B2 JP 12005093 A JP12005093 A JP 12005093A JP 12005093 A JP12005093 A JP 12005093A JP 3364274 B2 JP3364274 B2 JP 3364274B2
Authority
JP
Japan
Prior art keywords
task
data
tasks
assignment data
evaluation value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP12005093A
Other languages
Japanese (ja)
Other versions
JPH06332726A (en
Inventor
島 晋 二 野
藤 隆 一 間
木 均 荒
藤 等 加
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP12005093A priority Critical patent/JP3364274B2/en
Publication of JPH06332726A publication Critical patent/JPH06332726A/en
Application granted granted Critical
Publication of JP3364274B2 publication Critical patent/JP3364274B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

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

【0001】[0001]

【産業上の利用分野】本発明は、並列処理計算機で重要
なタスクの割り当てに関するもので、特にタスクの割り
当てと並列性の取り出しを同時に行なうことにより、限
られたハードウエア資源のなかで、最適な並列性の取り
出しとタスクの割り当てが可能なタスクの割り当て装置
に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to assignment of important tasks in a parallel processing computer, and in particular, by assigning tasks and taking parallelism out at the same time, it is possible to achieve optimal optimization among limited hardware resources. The present invention relates to a task assigning device capable of taking out parallelism and assigning tasks.

【0002】[0002]

【従来の技術】近年、並列処理を用いた計算機が頻繁に
用いられている。その中で、演算器などのタスクを実行
する処理装置やタイムステップを決定するタスクの割り
当て装置が重要なものとなっている。ここでタスクと
は、プログラム中の一つの式や制御文、ループ文や関
数、オブジェクトなどの並列処理の基本単位を意味す
る。タスク割り当て装置としては、例えば、Srinivas D
evadas and A.Richard Newton,"Algorithms for Hardwa
re Allocation in Data Path Synthesis"(IEEE Transac
tions on Computer-Aided Design,Vol.8,No.7,July 198
9,pp.768-781)に記載された構成が知られている。
2. Description of the Related Art In recent years, computers using parallel processing have been frequently used. Among them, a processing device that executes a task such as an arithmetic unit and a task allocation device that determines a time step are important. Here, the task means a basic unit of parallel processing such as an expression, a control statement, a loop statement, a function and an object in a program. As a task allocation device, for example, Srinivas D
evadas and A. Richard Newton, "Algorithms for Hardwa
re Allocation in Data Path Synthesis "(IEEE Transac
tions on Computer-Aided Design, Vol.8, No.7, July 198
9, pp.768-781) is known.

【0003】以下、図11を参照して従来のタスク割り
当て装置について説明する。図11において、1はタス
クを二項演算に展開し、並列性の取り出しを行なう二項
演算展開手段、2は初期タスク割り当てデータを生成
し、その評価値を求める初期タスク割り当て手段、3は
タスクの一つまたは複数を違う演算器およびタイムステ
ップに移動させるタスク移動手段、4はタスクの移動に
伴い新しくなったタスク割り当てデータの評価値を求め
るタスク割り当てデータ評価手段、5は現在のタスク割
り当てデータと新しいタスク割り当てデータの評価値な
どから次のタスク割り当てデータを決定するタスク割り
当てデータ選択手段、6は処理の終了を判定する終了判
定手段である。
A conventional task allocation device will be described below with reference to FIG. In FIG. 11, reference numeral 1 denotes a binary operation expanding means for expanding a task into a binary operation to extract parallelism, 2 denotes initial task allocation data, initial task allocation means for obtaining an evaluation value thereof, and 3 a task Task moving means for moving one or more of the above to different arithmetic units and time steps, 4 is a task allocation data evaluating means for obtaining an evaluation value of task allocation data that has been updated with the movement of the task, and 5 is current task allocation data. And task allocation data selecting means for deciding the next task allocation data from the evaluation value of the new task allocation data, and 6 is an end judging means for judging the end of the processing.

【0004】以上のような構成において、まず二項演算
展開手段1は、与えられたプログラムを二項演算に展開
する。この二項演算への展開によって、どのタスクとど
のタスクが並列に実行できるかが決定される。二項演算
展開時の並列性の取り出し方法としては、超並列処理コ
ンパイラ(村岡洋一, コロナ社)に詳細に記載されてい
る。
In the above-mentioned structure, first, the binomial operation expanding means 1 expands a given program into a binary operation. The expansion to this binary operation determines which task and which task can be executed in parallel. The method of extracting the parallelism at the time of the binary operation expansion is described in detail in the massively parallel processing compiler (Yoichi Muraoka, Corona Co.).

【0005】次に、初期タスク割り当て手段2から終了
判定手段6までは、サイエンス(S.Jarkpatric,C.D.Gela
tt and M.P.Vecchi,''Optimization by Simulated Anne
aling'',Science,vol.220,No.4598,pp.671-680,1983)に
記載されたシミュレーティッド・アニーリング法を用い
た構成により、最適なタスク割り当てが求められる。以
下、その動作を説明する。
Next, from the initial task assignment means 2 to the end determination means 6, science (S. Jarkpatric, CDGela
tt and MPVecchi, '' Optimization by Simulated Anne
aling '', Science, vol. 220, No. 4598, pp. 671-680, 1983), the optimal task assignment is obtained by the configuration using the simulated annealing method. The operation will be described below.

【0006】初期タスク割り当て手段2は、二項演算に
展開されたタスクをどの演算器およびどのタイムステッ
プで実行するかを適当に割り当て、初期タスク割り当て
データとする。これは、ランダムに割り当ててもよい
し、入力データをそのまま用いても良い。タスク移動手
段3は、一つのタスクをランダムに選び、違う演算器お
よびタイムステップに移動させる。タスク割り当てデー
タ評価手段4は、タスクの移動に伴い、新しくなったタ
スク割り当てデータの評価値を求める。評価値は、必要
な演算器数およびタイムステップ数などから計算する。
タスク割り当てデータ選択手段5は、現在のタスク割り
当てデータの評価値と新しいタスク割り当てデータの評
価値および処理の進み具合を示す温度と呼ばれるパラメ
ータから、次のタスク割り当てデータとして現在のタス
ク割り当てデータを用いるか、新しいタスク割り当てデ
ータを用いるかを決定する。ここでは、評価値の差ΔC
(新タスク割り当てデータの評価値−現在のタスク割り
当てデータの評価値)がΔc<0のときは新タスク割り
当てデータを次のタスク割り当てデータとし、Δc>0
のときは、exp(−Δc/T)の確率で新タスク割り当て
データを次のタスク割り当てデータとする。それ以外の
ときは、現在のタスク割り当てデータを次のタスク割り
当てデータとする。ここでTは温度パラメータであり、
処理の進行に伴い値を減少させていく。評価値が悪化し
た時でも確率的に新タスク割り当てデータを採用するこ
とと、処理の進行とともに、評価値が悪化した時に新タ
スク割り当てデータを採用する確率を低くしていくこと
により、大域的に最適な評価値をもつタスク割り当てデ
ータを探索することができる。終了判定手段6では、処
理を繰り返しても評価値が良くならないかどうかを判定
し、評価値が下がらなければ処理を終了し、下がるよう
ならばタスク移動手段3からの処理を繰り返す。
The initial task allocating means 2 appropriately allocates which arithmetic unit and at which time step the task expanded into the binomial operation is executed, and sets it as initial task allocation data. This may be assigned randomly, or the input data may be used as it is. The task moving means 3 randomly selects one task and moves it to a different computing unit and time step. The task allocation data evaluation means 4 obtains an evaluation value of the new task allocation data as the task moves. The evaluation value is calculated from the required number of arithmetic units and the number of time steps.
The task allocation data selecting means 5 uses the current task allocation data as the next task allocation data from the evaluation value of the current task allocation data, the evaluation value of the new task allocation data, and a parameter called temperature indicating the progress of the process. Or whether to use new task assignment data. Here, the evaluation value difference ΔC
When (evaluation value of new task allocation data-evaluation value of current task allocation data) is Δc <0, the new task allocation data is set as the next task allocation data, and Δc> 0.
In the case of, the new task allocation data is used as the next task allocation data with a probability of exp (-Δc / T). In other cases, the current task assignment data is used as the next task assignment data. Where T is the temperature parameter,
The value decreases as the process progresses. By probabilistically adopting new task allocation data even when the evaluation value deteriorates, and by decreasing the probability of adopting new task allocation data when the evaluation value deteriorates as the processing progresses, It is possible to search task assignment data having an optimum evaluation value. The end judging means 6 judges whether or not the evaluation value is not improved even if the processing is repeated. If the evaluation value does not decrease, the processing is ended, and if it decreases, the processing from the task moving means 3 is repeated.

【0007】[0007]

【発明が解決しようとする課題】しかしながら、上記従
来の構成では、プログラムの二項演算への展開とタスク
の割り当てを別々に実行していたため、並列性を最大限
に取り出すと、記憶容量などのハードウエア資源を大量
に必要とし、どの部分の並列性をどの程度取り出せば、
限られたハードウエア資源のなかで最適な並列性を取り
出すことができるかを求めることができないという問題
があった。
However, in the above-mentioned conventional configuration, since the expansion of the program to the binary operation and the assignment of the task are executed separately, when the parallelism is maximized, the storage capacity and the like are reduced. It requires a large amount of hardware resources, and what part of parallelism can be extracted and
There is a problem that it is not possible to find out whether the optimum parallelism can be taken out from the limited hardware resources.

【0008】本発明は、このような従来の問題を解決す
るもので、タスクの変形とタスク割り当てを同時に行な
うことにより、限られたハードウエアの中で最適な並列
性を取り出し、実行速度を高速化することのできるタス
ク割り当て装置を提供することを目的とする。
The present invention solves such a conventional problem. By performing task transformation and task assignment at the same time, optimum parallelism can be taken out in limited hardware and the execution speed can be increased. It is an object of the present invention to provide a task assignment device that can be realized.

【0009】[0009]

【問題を解決するための手段】上記目的を達成するため
に、本発明は、タスク割り当て処理を実行するタスク割
り当て装置として、初期タスク割り当てデータを生成す
る初期タスク割り当て手段と、生成された初期タスク割
り当てデータをもとに複数の演算を含むタスクを中間変
数を求める単一の演算で構成される複数のタスクに変形
するタスク変形手段と、前記分解された複数のタスクを
複数の演算手段に移動するタスク移動手段と、タスクの
移動または変形により新しくなったタスク割り当てデー
タを、実行するタイムステップに基づいて評価値を与え
ることにより評価するタスク割り当てデータ評価手段
と、新しいタスク割り当てデータと現在のタスク割り当
てデータのうち、確率的にタスク割り当てデータを選択
するタスク割り当てデータ選択手段と、評価値が下がら
なくなったときに処理の終了を判定する終了判定手段と
を備え、前記タスク変形手段は、前記複数のタスクを式
の代入を用いて一つのタスクに融合するタスク融合手段
と、複数の演算を持つタスクをいくつかのタスクに分離
するタスク分離手段とからなることを要旨とする。
In order to achieve the above object, the present invention provides a task allocation for executing task allocation processing.
Generates initial task allocation data as a allocating device
Initial task allocation means and generated initial task allocation
Intermediate conversion of tasks that include multiple operations based on assigned data
Transformed into multiple tasks consisting of a single operation for finding numbers
The task transformation means to perform and the plurality of decomposed tasks
Task moving means to move to multiple computing means,
Task assignment data updated by movement or transformation
The evaluation value based on the time step to execute
Task assignment data evaluation means to be evaluated by
And new task assignment data and current task assignment
Out of the data, the task assignment data is selected stochastically.
Task allocation data selection means to be used and the evaluation value
End determination means for determining the end of the process when no more
And the task transforming means formulates the plurality of tasks.
Task fusion method that fuses to one task by using substitution of
And separate tasks with multiple operations into several tasks
It is composed of a task separation means for performing.

【0010】[0010]

【作用】本発明は、上記構成により、初期タスク割り当
て手段で与えられたタスク割り当てデータから割り当て
を開始し、タスクの移動と変形を繰り返すことにより、
限られたハードウエア資源のなかで、最適な並列性を取
り出し実行速度を高速化することができる。
According to the present invention, by the above configuration, the allocation is started from the task allocation data given by the initial task allocation means, and the movement and modification of the task are repeated,
Optimal parallelism can be taken out and the execution speed can be increased with limited hardware resources.

【0011】[0011]

【実施例】【Example】

(実施例1)以下、図面を参照しながら本発明の第1の
実施例について説明する。図1は本発明の第1の実施例
におけるタスク割り当て装置の構成を示すブロック図で
ある。図1において、11は初期タスク割り当てデータ
を生成する初期タスク割り当て手段、12は生成された
初期タスク割り当てデータをもとにタスクの変形を行な
うタスク変形手段、13はタスクの移動を行なうタスク
移動手段、14はタスクの移動または変形により新しく
なったタスク割り当てデータの評価を行なうタスク割り
当てデータ評価手段、15は新しいタスク割り当てデー
タと現在のタスク割り当てデータの評価値などから次の
タスク割り当てデータを決定するタスク割り当てデータ
選択手段、16は処理の終了を判定する終了判定手段で
ある。
(Embodiment 1) Hereinafter, a first embodiment of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing the configuration of a task assignment device according to the first exemplary embodiment of the present invention. In FIG. 1, 11 is an initial task allocation means for generating initial task allocation data, 12 is a task deforming means for deforming a task based on the generated initial task allocation data, and 13 is a task moving means for moving a task. , 14 is a task assignment data evaluation means for evaluating the task assignment data that has been updated by moving or transforming the task, and 15 is the next task assignment data determined from the evaluation values of the new task assignment data and the current task assignment data. Task assignment data selection means, 16 is an end determination means for determining the end of processing.

【0012】図2は本実施例におけるタスクを実行する
演算器と実行するタイムステップを示すスケジュール表
である。
FIG. 2 is a schedule table showing the arithmetic units that execute the tasks and the time steps to be executed in this embodiment.

【0013】以上のような構成を備えたタスク割り当て
装置について、以下その動作を説明する。タスク割り当
ての例としては、式の演算器への割り当てを考える。条
件として、同一の演算器およびタイムステップには一つ
の演算しか実行できないものとし、式の移動範囲は、そ
のプログラムの実行結果を変えない範囲に限定されるも
のとする。またここでは、制御文の記述はC言語の記述
方法に基づいたものを使用する。
The operation of the task allocating apparatus having the above configuration will be described below. As an example of task assignment, consider assigning an expression to a computing unit. As a condition, it is assumed that only one operation can be executed in the same arithmetic unit and time step, and the movement range of the expression is limited to the range that does not change the execution result of the program. Further, here, the description of the control statement is based on the description method of C language.

【0014】初期タスク割り当て手段11が入力プログ
ラムを読み込み、図2(a)に示すような初期タスク割
当データを生成すると、生成された初期タスク割り当て
データは、タスク割り当てデータ評価手段14に記憶さ
れているタスク割り当てデータに基づいて評価される。
ここでは、評価方式として、実行に要する実行時間すな
わち実行するタイムステップの総数が少なく、かつ必要
な変数が少ないほど評価値が優れているものとし、評価
が良いほど評価値が小さくなるものとする。ただし、同
一の演算器およびタイムステップに複数の演算が存在す
るときは、実行不可能として悪い評価値を与える。図2
(a)のタスクy=a+b+c+d+e+f には複数の演算が存在し
ているので、比較的評価値が悪くなり、ここではその評
価値を10とする。
When the initial task allocation means 11 reads the input program and generates the initial task allocation data as shown in FIG. 2A, the generated initial task allocation data is stored in the task allocation data evaluation means 14. It is evaluated based on the assigned task assignment data.
Here, as the evaluation method, it is assumed that the evaluation value is better as the execution time required for execution, that is, the total number of time steps to be executed is smaller, and the number of necessary variables is smaller, and the better the evaluation is, the smaller the evaluation value is. . However, when there are a plurality of operations in the same arithmetic unit and time step, it is determined as inexecutable and a bad evaluation value is given. Figure 2
Since the task y = a + b + c + d + e + f in (a) has a plurality of operations, the evaluation value is relatively poor. Here, the evaluation value is 10.

【0015】次に、タスク変形手段12またはタスク移
動手段13のどちらか、または両方が実行される。これ
らの選択はランダムに決定される。いま、ランダムな選
択の結果、タスク変形手段12とタスク移動手段13の
両方が実行されたとする。タスク変形手段12は、図2
(a)のタスクy=a+b+c+d+e+f をタスク#1=a+b, タスク
#2=c+d, タスク#1=#1+#2, タスク#2=e+f, タスクy=#1+#
2 に分解する。ここで#1,#2 は、タスク変形手段が生成
する中間変数である。本実施例では、中間変数を2つま
で生成できるものとする。
Next, either or both of the task transforming means 12 and the task moving means 13 are executed. These choices are randomly determined. Now, it is assumed that both the task transforming means 12 and the task moving means 13 are executed as a result of the random selection. The task transforming means 12 is shown in FIG.
The task y = a + b + c + d + e + f in (a) is assigned to task # 1 = a + b, task
# 2 = c + d, task # 1 = # 1 + # 2, task # 2 = e + f, task y = # 1 + #
Disassemble into 2. Here, # 1 and # 2 are intermediate variables generated by the task transforming means. In this embodiment, up to two intermediate variables can be generated.

【0016】次に、タスク移動手段13は、タスク変形
手段12によって分解されたタスクを図2(b)に示す
ように移動する。そしてタスク割り当てデータ評価手段
14では、タスク変形手段12、タスク移動手段13に
よって新しくされたタスク割り当てデータの評価を行な
う。ここでは、同一演算器およびタイムステップ上には
一つ以上の演算がなく、必要なタイムステップ数も4つ
と少ないので、評価値として4が与えられる。
Next, the task moving means 13 moves the tasks decomposed by the task transforming means 12 as shown in FIG. 2 (b). Then, the task allocation data evaluation means 14 evaluates the task allocation data renewed by the task transformation means 12 and the task movement means 13. Here, there is no more than one calculation on the same computing unit and time step, and the required number of time steps is as small as 4, so 4 is given as the evaluation value.

【0017】次に、タスク割り当てデータ選択手段15
では、新しいタスク割り当てデータの評価値4と現在の
タスク割り当てデータの評価値10とを比較し、どちら
のタスク割り当てデータを次のタスク割り当てデータと
して用いるかを決定する。ここでは、シュミレーティッ
ド・アニーリング法に基づいたタスク割り当てデータの
選択を行なう。つまり、評価値の差ΔC(新タスク割り
当てデータの評価値−現在のタスク割り当てデータの評
価値)がΔc<0のときは新タスク割り当てデータを次
のタスク割り当てデータとし、Δc>0のときは、exp
(−Δc/T)の確率で新タスク割り当てデータを次の
タスク割り当てデータとする。それ以外のときは、現在
のタスク割り当てデータを次のタスク割り当てデータと
する。なおTは温度パラメータであり、処理の進行にと
もない値を減少させていくものとする。ここでは、新し
いタスク割り当てデータの方が評価値が良いので、次の
タスク割り当てデータとして、この新しいタスク割り当
てデータを採用する。終了判定手段16では、処理の終
了を判定し、変換を数回繰り返しても評価値が良くなら
ない時に処理を終了し、それ以外は処理をタスク変形手
段12から繰り返す。ここでは、評価値が良くなってい
るのでタスク変形手段12に戻って処理を繰り返す。
Next, the task allocation data selecting means 15
Then, the evaluation value 4 of the new task allocation data and the evaluation value 10 of the current task allocation data are compared to determine which task allocation data is to be used as the next task allocation data. Here, task assignment data is selected based on the simulated annealing method. That is, when the difference ΔC (evaluation value of new task allocation data-evaluation value of current task allocation data) between evaluation values is Δc <0, the new task allocation data is set as the next task allocation data, and when Δc> 0. , Exp
The new task allocation data is used as the next task allocation data with a probability of (-Δc / T). In other cases, the current task assignment data is used as the next task assignment data. It should be noted that T is a temperature parameter, and its value is decreased as the processing progresses. Here, the new task assignment data has a better evaluation value, so this new task assignment data is adopted as the next task assignment data. The end determining unit 16 determines the end of the process, ends the process when the evaluation value does not improve even after repeating the conversion several times, and otherwise repeats the process from the task transforming unit 12. Here, since the evaluation value has improved, the process returns to the task transformation unit 12 and the processing is repeated.

【0018】再びタスク変形手段12とタスク移動手段
13が共に実行されると、タスク変形手段12は、図2
(b)のタスク#1=a+b, タスク#2=c+d, タスク#1=#1+#
2, タスク#2=e+f, タスクy=#1+#2 をタスク#1=a+b, タ
スク#1=#1+c,タスク#2=d+e, タスク#2=#2+f,タスクy=#1
+#2 に変形し、タスク移動手段13はこのように分解さ
れたタスクを図2(c)に示すようにそれぞれ移動す
る。
When both the task transforming means 12 and the task moving means 13 are executed again, the task transforming means 12 will be executed as shown in FIG.
Task # 1 = a + b, task # 2 = c + d, task # 1 = # 1 + # in (b)
2, task # 2 = e + f, task y = # 1 + # 2 to task # 1 = a + b, task # 1 = # 1 + c, task # 2 = d + e, task # 2 = # 2 + f, task y = # 1
It is transformed into + # 2, and the task moving means 13 moves the tasks decomposed in this way as shown in FIG. 2 (c).

【0019】タスク割り当てデータ評価手段14では、
新しくなったタスク割り当てデータの評価を行なう。新
しいタスク割り当てデータでは、必要なタイムステップ
数が3になったので、さらに評価値がよくなり、評価値
3が与えられ、タスク割り当てデータ選択手段15で
は、評価値が良くなったので再び新しいタスク割り当て
データを採用する。終了判定手段16は、タスク変形手
段12以降の処理を評価値が変化しなくなるまで繰り返
す。数回の繰り返しの後、最終的に図2(c)以上の評
価値が存在しないので、図2(c)のタスク割り当てデ
ータを最終結果として出力する。
In the task assignment data evaluation means 14,
Evaluate the new task assignment data. In the new task assignment data, the required number of time steps has become 3, so that the evaluation value is further improved and the evaluation value of 3 is given. In the task assignment data selecting means 15, the evaluation value is improved, so that the new task is again provided. Adopt allocation data. The end determination means 16 repeats the processing after the task transformation means 12 until the evaluation value does not change. After several iterations, there is finally no evaluation value higher than that of FIG. 2C, so the task assignment data of FIG. 2C is output as the final result.

【0020】このように、上記第1の実施例では、中間
変数が2つしか生成できないという制約のもとで、最適
な並列性を取り出すことにより、最も高速な実行時間の
タスク割り当てを得ることができる。
As described above, in the first embodiment, under the constraint that only two intermediate variables can be generated, optimum parallelism is extracted to obtain the task allocation with the fastest execution time. You can

【0021】(実施例2)次に、本発明の第2の実施例
について図を参照して説明する。本実施例のタスク割り
当て装置が図1に示す実施例1と異なるのは、タスク変
形手段12の構成である。図3において、21は複数の
タスクを式の代入を用いて一つのタスクに融合するタス
ク融合手段、22は複数の演算を持つタスクをいくつか
のタスクに分離するタスク分離手段である。
(Second Embodiment) Next, a second embodiment of the present invention will be described with reference to the drawings. The task assigning device of this embodiment differs from that of the first embodiment shown in FIG. In FIG. 3, reference numeral 21 is a task fusing means for fusing a plurality of tasks into one task by substituting expressions, and 22 is a task fusing means for separating a task having a plurality of operations into several tasks.

【0022】図4は本実施例におけるタスクを実行する
演算器と実行するタイムステップを示すスケジュール表
である。
FIG. 4 is a schedule table showing the arithmetic units that execute the tasks and the time steps to be executed in this embodiment.

【0023】以上のような構成を備えたタスク割り当て
装置について、以下その動作を説明する。まず、初期タ
スク割り当てデータとして初期タスク割り当て手段11
により、実施例1と同様に図2(a)のタスク割り当て
が得られ、その評価値は10であったとする。また、実
施例1と同様に中間変数は2つまでしか生成できないも
のとする。
The operation of the task assigning device having the above configuration will be described below. First, initial task allocation means 11 is used as initial task allocation data.
As a result, the task assignment shown in FIG. 2A is obtained as in the first embodiment, and the evaluation value thereof is 10. Further, as in the first embodiment, it is assumed that only two intermediate variables can be generated.

【0024】次に、タスク変形手段12内のタスク融合
手段21かまたはタスク分離手段22のどちらか、また
は両方が実行される。これらの選択はランダムに決定さ
れる。また、タスクをどのように分離するか、融合する
かもランダムに決定される。ここでは、ランダムな選択
の結果、タスク分離手段22のみが実行されるものとす
る。タスク分離手段22は、タスクy=a+b+c+d+e+f から
ランダムに分離する演算を取り出し、図4(a)のタス
ク#1=a+b, タスク#2=c+d, タスクy=#1+#2+e+fに分離
し、タスク移動手段13により移動する。
Next, either or both of the task fusion means 21 and the task separation means 22 in the task transformation means 12 are executed. These choices are randomly determined. Also, how tasks are separated and how they are merged is randomly determined. Here, it is assumed that only the task separation unit 22 is executed as a result of the random selection. The task separating means 22 takes out an operation for randomly separating from the task y = a + b + c + d + e + f, and the task # 1 = a + b, task # 2 = c + d in FIG. 4A. Then, the task is separated into y = # 1 + # 2 + e + f and moved by the task moving means 13.

【0025】次に、タスク割り当てデータ評価手段14
を実行した結果、図4(a)のタスク割り当てデータの
評価値は8が与えられる。次いで、タスク割り当てデー
タ選択手段15が実行され、この新しいタスク割り当て
データが次のタスク割り当てデータとして選択される。
次いで終了判定手段16から再びタスク変形装置12に
戻り、今度はタスク融合手段21が実行選択され、式の
代入により融合できるタスクとして図4(a)のタスク
#2=c+d, タスクy=#1+#2+e+f が選択される。タスクの融
合の結果、図4(b)のタスク#1=a+b, タスクy=#1+c+d
+e+fが得られる。このタスク割り当てデータの評価値は
9が与えられる。従って現在のタスク割り当てデータの
評価値8よりも悪い評価値であるが、タスク割り当てデ
ータ選択手段15による確率的な選択の結果、この新し
いタスク割り当てデータが次のタスク割り当てデータと
して採用される。これらの動作を評価値が下がらなくな
るまで繰り返すことにより、最も評価値が優れている図
2(c)のタスク割り当てを得ることができる。
Next, the task assignment data evaluation means 14
As a result of executing, the evaluation value of the task assignment data of FIG. Next, the task allocation data selection means 15 is executed, and this new task allocation data is selected as the next task allocation data.
Next, the end determination unit 16 returns to the task transformation device 12 again, and this time, the task fusion unit 21 is selected to be executed, and the task of FIG.
# 2 = c + d, task y = # 1 + # 2 + e + f is selected. As a result of the fusion of the tasks, task # 1 = a + b, task y = # 1 + c + d in FIG. 4B.
+ e + f is obtained. The evaluation value of this task allocation data is 9. Therefore, although the evaluation value is worse than the evaluation value 8 of the current task allocation data, as a result of the probabilistic selection by the task allocation data selecting means 15, this new task allocation data is adopted as the next task allocation data. By repeating these operations until the evaluation value does not decrease, it is possible to obtain the task assignment in FIG. 2C having the best evaluation value.

【0026】このように、上記第2の実施例では、中間
変数が2つしか生成できないという制約のもとで、最適
な並列性を取り出すことにより、最も高速な実行時間の
タスク割り当てを得ることができる。
As described above, in the second embodiment, under the constraint that only two intermediate variables can be generated, the optimum parallelism is extracted to obtain the task assignment with the fastest execution time. You can

【0027】(実施例3)次に、本発明の第3の実施例
について説明する。本実施例においても、図5に示すよ
うに、タスク割り当て装置の構成は図1に示す実施例1
と同じであるが、タスク変形手段12の構成が異なって
いる。図5において、31はループ文を展開することに
より、ループ文中のタスクを複数のタスクに展開するル
ープ文展開手段、32は複数のタスクを一つのタスクに
まとめてループを生成するループ生成手段である。な
お、ループ文を含む時の実行時間はループ中のタイムス
テップ数にループ数を掛けたものである。
(Embodiment 3) Next, a third embodiment of the present invention will be described. Also in this embodiment, as shown in FIG. 5, the configuration of the task allocation device is the same as that of the first embodiment shown in FIG.
But the configuration of the task transforming means 12 is different. In FIG. 5, 31 is a loop statement expanding means for expanding a task in the loop statement into a plurality of tasks by expanding the loop statement, and 32 is a loop generating means for collecting a plurality of tasks into one task to generate a loop. is there. The execution time when a loop statement is included is the number of time steps in the loop times the number of loops.

【0028】図6は本実施例におけるタスクを実行する
演算器と実行するタイムステップを示すスケジュール表
である。
FIG. 6 is a schedule table showing the arithmetic units that execute the tasks and the time steps to be executed in this embodiment.

【0029】以上のような構成を備えたタスク割り当て
装置について、以下その動作を説明する。まず、初期タ
スク割り当てデータとして、初期タスク割り当て手段1
1により、ループ文を含んだタスク、タスクfor(i=1,1
5,), タスクx(i)=a(i)+b(i),タスクfor(i=1,3,),y(i)=c
(i)+d(i)が図6(a)に示すように割り当てられたとす
る。また本実施例では、ループ文を含めたタスクの総数
は、記憶容量の制約から8個以下に限られているものと
する。初期タスク割り当てデータの実行に必要な実行時
間は、{二つのループ文のタイムステップ2}+{最初
のループ数15}*{そのループ中のタイムステップ数
1}+{次のループ数15}*{ループ中のタイムステ
ップ1}で合計32になる。ここでは、これを評価値3
2とする。
The operation of the task assigning device having the above configuration will be described below. First, as initial task allocation data, initial task allocation means 1
1, the task containing the loop statement, task for (i = 1,1
5,), task x (i) = a (i) + b (i), task for (i = 1,3,), y (i) = c
It is assumed that (i) + d (i) is assigned as shown in FIG. Further, in this embodiment, the total number of tasks including the loop statement is limited to 8 or less due to the storage capacity constraint. The execution time required to execute the initial task allocation data is {time step 2 of two loop statements} + {first loop number 15} * {time step number 1 in the loop} + {next loop number 15} * {Time step 1 in the loop} gives a total of 32. Here, this is evaluated value 3
Set to 2.

【0030】次に、タスク変形手段12内のループ文展
開手段31かまたはループ生成手段32のどちらか、ま
たは両方が実行される。これらの選択はランダムに決定
される。また、ループをどのくらい展開するか、どのく
らいループを生成するかもランダムに決定される。ここ
では、ランダムな選択の結果、ループ展開手段31が実
行されるものとする。ループ展開手段31は、図6
(b)のタスクfor(i=1,15,)を繰り返しのステップが5
になるように展開し、タスクfor(i=1,15,5) とする。次
に、削減したループを補間するために、タスクx(i+1)=a
(i+1)+b(i+1), タスクx(i+2)=a(i+2)+b(i+2), タスクx
(i+3)=a(i+3)+b(i+3), タスクx(i+4)=a(i+4)+b(i+4),
タスクx(i+5)=a(i+5)+b(i+5)を生成し、ループ中に付加
する。次に、タスク移動手段13が実行されて、図6
(b)に示すようにタスクが割り当てられる。次いでタ
スク割り当てデータ評価手段14が実行され、タスク割
り当てデータの評価値として、{ループ文の個数2}*
{最初のループ数3}*{そのループ中のタイムステッ
プ数2}+{次のループ数15}*{ループ中のタイム
ステップ1}で合計23になるので、評価値23が与え
られる。次いでタスク割り当てデータ選択手段15が実
行され、評価値がよくなったので、この新しいタスク割
り当てデータが次のタスク割り当てデータとして採用さ
れる。次いで終了判定手段16から再び変形手段12に
戻り、処理を繰り返す。
Next, either or both of the loop statement expansion means 31 and the loop generation means 32 in the task transformation means 12 are executed. These choices are randomly determined. Also, how many loops to unroll and how many loops to generate are randomly determined. Here, it is assumed that the loop unrolling means 31 is executed as a result of the random selection. The loop unrolling means 31 is shown in FIG.
There are 5 steps for repeating task for (i = 1,15,) in (b).
It is expanded so that and becomes task for (i = 1,15,5). Then task x (i + 1) = a to interpolate the reduced loop
(i + 1) + b (i + 1), task x (i + 2) = a (i + 2) + b (i + 2), task x
(i + 3) = a (i + 3) + b (i + 3), task x (i + 4) = a (i + 4) + b (i + 4),
Task x (i + 5) = a (i + 5) + b (i + 5) is created and added to the loop. Next, the task moving means 13 is executed to execute the processing shown in FIG.
Tasks are assigned as shown in (b). Next, the task allocation data evaluation means 14 is executed, and {the number of loop statements is 2} * as the evaluation value of the task allocation data.
An evaluation value of 23 is given because a total of 23 is obtained by {number of initial loops 3} * {number of time steps in the loop 2} + {number of next loops 15} * {time step 1 in the loop}. Next, the task allocation data selection means 15 is executed, and the evaluation value has improved, so this new task allocation data is adopted as the next task allocation data. Then, the end judging means 16 returns to the deforming means 12 again to repeat the processing.

【0031】今度は、ループ生成手段32が実行され、
図6(b)のタスクx(i+1)=a(i+1)+b(i+1), タスクx(i+
2)=a(i+2)+b(i+2), タスクx(i+3)=a(i+3)+b(i+3), タス
クx(i+4)=a(i+4)+b(i+4), タスクx(i+5)=a(i+5)+b(i+5)
をループにまとめ、タスクfor(i=1,15,5) をタスクfor
(i=1,15,)にすることにより、再び図6(a)のタスク
割り当てデータを生成する。今回はタスク移動手段13
は実行されずに、タスク割り当てデータ評価手段14、
タスク割り当てデータ選択手段15および終了判定手段
16を実行する。新しい配置割り当てデータの評価値は
再び32になり、現在の配置割り当てデータの評価値2
3よりも悪いが、確率的に新しい配置データが採用され
たものとして、この新しいタスク割り当てデータを採用
する。このようにしてこれらの処理を繰り返すことによ
り、最終的には、実行時間が最小になるようなループの
展開の仕方を見つけることができる。ここでは、図6
(c)示すタスク割り当てデータを最終的に見つけるこ
とができ、その実行時間は{ループ文の個数2}+{最
初のループ数5}*{ループ中のタイムステップ数1}
+{次のループ数5}*{ループ中のステップ数1}で
合計12になり、その評価値は12になる。
This time, the loop generating means 32 is executed,
6 (b), task x (i + 1) = a (i + 1) + b (i + 1), task x (i +
2) = a (i + 2) + b (i + 2), task x (i + 3) = a (i + 3) + b (i + 3), task x (i + 4) = a (i +4) + b (i + 4), task x (i + 5) = a (i + 5) + b (i + 5)
In a loop and task for (i = 1,15,5)
By setting (i = 1,15,), the task assignment data in FIG. 6A is generated again. This time, task moving means 13
Is not executed, the task assignment data evaluation means 14,
The task allocation data selecting means 15 and the end judging means 16 are executed. The evaluation value of the new allocation allocation data becomes 32 again, and the evaluation value of the current allocation allocation data is 2
Although it is worse than 3, the new task assignment data is adopted assuming that new placement data is stochastically adopted. By repeating these processes in this way, it is possible to finally find a way of unrolling the loop that minimizes the execution time. Here, FIG.
The task assignment data shown in (c) can be finally found, and its execution time is {number of loop statements 2} + {initial number of loops 5} * {number of time steps in loop 1}
+ {Next loop number 5} * {number of steps in the loop 1} gives a total of 12, and the evaluation value becomes 12.

【0032】このように、上記第3の実施例では、ルー
プ文が存在するタスク割り当てに対して、最適な並列性
を取り出すことにより、最も高速な実行時間のタスク割
り当てを得ることができる。
As described above, in the third embodiment, the optimum task parallelism can be obtained by taking out the optimum parallelism for the task assignment in which the loop statement exists.

【0033】(実施例4)次に、本発明の第4の実施例
について説明する。本実施例においても、図7の示すよ
うに、タスク割り当て装置の構成は図1に示す実施例1
と同じであるが、タスク変形手段12の構成我異なって
いる。図7において、41は条件文以下のタスクから条
件文が成り立つと仮定して実行するタスクの組と、条件
文が成り立たないと仮定して実行するタスクの組とを生
成する条件組生成手段、42は条件組生成手段で生成し
たタスクの組の一部または全てを解除する条件組解除手
段である。
(Fourth Embodiment) Next, a fourth embodiment of the present invention will be described. Also in this embodiment, as shown in FIG. 7, the configuration of the task allocation device is the same as that of the first embodiment shown in FIG.
However, the configuration of the task transformation unit 12 is different. In FIG. 7, reference numeral 41 denotes a condition set generation means for generating a set of tasks to be executed assuming that the condition statement is satisfied from the tasks below the condition statement and a set of tasks to be executed assuming that the condition statement is not satisfied. Reference numeral 42 is a condition set releasing means for releasing a part or all of the task sets generated by the condition set generating means.

【0034】図8は本実施例におけるタスクを実行する
演算器と実行するタイムステップを示すスケジュール表
である。
FIG. 8 is a schedule table showing the arithmetic units that execute the tasks and the time steps to be executed in this embodiment.

【0035】以上のような構成を備えたタスク割り当て
装置について、以下その動作を説明する。なお、条件文
の結果、排他的に動作するタスクは、同時に実行される
ことはあり得ないので、同一の演算器およびタイムステ
ップに存在することができるものとする(図8(a)参
照)。また、本実施例では中間変数の数はとくに限定し
ない。
The operation of the task assigning apparatus having the above configuration will be described below. As a result of the conditional statement, the tasks that operate exclusively cannot be executed at the same time, so it is assumed that they can exist in the same arithmetic unit and time step (see FIG. 8A). . In addition, the number of intermediate variables is not particularly limited in this embodiment.

【0036】まず、初期タスク割り当てデータとして、
初期タスク割り当て手段11により図8(a)に示すタ
スク割り当てデータが得られたものとし、この時の評価
値は4であったとする。
First, as initial task allocation data,
It is assumed that the initial task allocation means 11 has obtained the task allocation data shown in FIG. 8A, and the evaluation value at this time is 4.

【0037】次に、タスク変形手段12内の条件組生成
手段41かまたは条件組解除手段42のどちらか、また
は両方が実行される。これらの選択はランダムに決定さ
れる。また、条件文のあとのいくつのタスクを組にする
か、また条件組のいくつのタスクを解除するかもランダ
ムに決定される。ここでは、ランダムな選択の結果、条
件組生成手段41が実行されるものとする。条件組生成
手段41は、タスクif(x>0),タスク#1=c+d, タスク#1=e
+f, タスクz=#1*gから条件組{タスク#1=c+d,タスク#2=
#1*g }と条件組{タスク#3=e+f, タスク#4=#3*g }と
条件文タスクif(x>0),タスクz=#2, タスクz=#4を生成す
る。次に、タスク移動手段13により図8(b)のよう
にタスク割り当てが決定される。次いでタスク割り当て
データ評価手段14、タスク割り当てデータ選択手段1
5および終了判定手段16を実行する。この結果、評価
値は4になったとする。再びタスク変形手段12から処
理が繰り返され、今度は条件組解除手段42が実行され
る。条件組解除手段42は、条件組{タスク#1=c+d, タ
スク#2=#1*g }と条件組{タスク#3=e+f, タスク#4=#3*
g }それぞれの最後のタスクを条件組から解除し、条件
組を条件組{タスク#1=c+d}と条件組{タスク#3=e+f}
とする。解除した式は、条件文以降に実行され(図8
(c)参照)、今度は評価値3が与えられる。
Next, either or both of the condition set generation means 41 and the condition set release means 42 in the task transformation means 12 are executed. These choices are randomly determined. Also, how many tasks after the conditional statement are to be set, and how many tasks in the conditional set are to be released are also randomly determined. Here, it is assumed that the condition set generation means 41 is executed as a result of the random selection. The condition set generation means 41 uses task if (x> 0), task # 1 = c + d, task # 1 = e.
+ f, task z = # 1 * g to condition set {task # 1 = c + d, task # 2 =
# 1 * g} and condition set {task # 3 = e + f, task # 4 = # 3 * g} and conditional statement task if (x> 0), task z = # 2, task z = # 4 To do. Next, the task transfer means 13 determines the task assignment as shown in FIG. Next, the task allocation data evaluation means 14 and the task allocation data selection means 1
5 and the end determination means 16 are executed. As a result, it is assumed that the evaluation value becomes 4. The process is repeated from the task transforming means 12 again, and the condition pair releasing means 42 is executed this time. The condition set canceling means 42 uses the condition set {task # 1 = c + d, task # 2 = # 1 * g} and the condition set {task # 3 = e + f, task # 4 = # 3 *.
g} Release each last task from the condition set, and set the condition set to the condition set {task # 1 = c + d} and condition set {task # 3 = e + f}.
And The canceled expression is executed after the conditional statement (Fig. 8).
(See (c)), and the evaluation value 3 is given this time.

【0038】以上の処理を繰り返した結果、図8(c)
に示すタスク割り当てデータ以上の評価値が存在しない
ので、最終的に図8(c)に示すタスク割り当てデータ
が得られる。
As a result of repeating the above processing, FIG.
Since there is no evaluation value equal to or higher than the task allocation data shown in FIG. 8, the task allocation data shown in FIG. 8C is finally obtained.

【0039】このように、上記第4の実施例では、条件
文が存在するタスク割り当てに対して、最適な並列性を
取り出すことにより、最も高速な実行時間のタスク割り
当てを得ることができる。
As described above, in the fourth embodiment, the optimum task parallelism can be obtained by taking out the optimum parallelism for the task assignment in which the conditional statement exists.

【0040】(実施例5)次に、本発明の第5の実施例
について説明する。本実施例においても、図9に示すよ
うに、タスク割り当て装置の構成は図1に示す実施例1
と同じであるが、タスク変形手段12の構成が異なって
いる。図9において、51はタスク変形規則格納手段5
2に格納されているタスク変形規則から一つの変形規則
を選択し、実行するタスク変形規則実行手段、52はタ
スク変形規則を記憶しているタスク変形規則格納手段で
ある。
(Fifth Embodiment) Next, a fifth embodiment of the present invention will be described. Also in this embodiment, as shown in FIG. 9, the configuration of the task allocation device is the same as that of the first embodiment shown in FIG.
But the configuration of the task transforming means 12 is different. In FIG. 9, 51 is a task transformation rule storage means 5
Task transformation rule execution means for selecting and executing one transformation rule from the task transformation rules stored in No. 2, and task transformation rule storage means 52 for storing task transformation rules.

【0041】図10は本実施例におけるタスク変形規則
の一つである和差演算の並列性取り出し規則のアルゴリ
ズムである。
FIG. 10 shows an algorithm of the parallelism extraction rule of the sum difference calculation, which is one of the task modification rules in this embodiment.

【0042】以上のような構成を備えたタスク割り当て
装置について、以下その動作を説明する。なお、本実施
例におけるタスクを実行する演算器と実行するタイムス
テップを示すスケジュール表としては、実施例1に用い
た図2(a)および図2(c)を利用する。
The operation of the task assigning apparatus having the above configuration will be described below. Note that FIGS. 2A and 2C used in the first embodiment are used as the schedule table showing the arithmetic units that execute the tasks and the time steps to be executed in the present embodiment.

【0043】まず、初期タスク割り当てデータとして、
初期タスク割り当て手段11により図2(a)に示すタ
スク割り当てデータが得られたものとする。次に、タス
ク変形手段12内のタスク変形規則実行手段51は、タ
スク変形規則格納手段52に格納されているタスク変形
規則から一つのタスク変形規則をランダムに選択し、タ
スク変形規則実行手段51は、タスク変形規則として、
和差演算の並列性取り出し規則を選択し実行する。以
下、この処理を図10を用いて説明する。
First, as initial task allocation data,
It is assumed that the initial task allocation means 11 has obtained the task allocation data shown in FIG. Next, the task modification rule execution means 51 in the task modification means 12 randomly selects one task modification rule from the task modification rules stored in the task modification rule storage means 52, and the task modification rule execution means 51 , As a task transformation rule,
Select and execute the parallelism extraction rule of the sum difference operation. Hereinafter, this process will be described with reference to FIG.

【0044】まず、ステップ61では、複数の差と和の
演算のみからなるタスクの中から一つのタスクをランダ
ムに選択する。ここでは、タスクy=a+b+c+d+e+f を選択
することになる。次に、ステップ62では、使用できる
中間変数の個数を調べ、ステップ61で選択したタスク
を中間変数の個数に分離する。すなわち、タスクy=a+b+
c+d+e+f は、タスク#1=a+b+cとタスク#2=d+e+fに分離さ
れることになる。次に、ステップ63では、ステップ6
2で分離したタスクのそれぞれを一つの演算しか含ま
ず、一つの中間変数しか使わないように分離する。すな
わち、タスク#1=a+b+cは、タスク#1=a+b, およびタスク
#1=#1+c に、タスク#2=d+e+fはタスク#2=d+e, およびタ
スク#2=#2+f に分離するものとする。次に、ステップ6
4では、ステップ62で分離したタスクの中間変数を融
合するタスクy=#1+#2 を生成する。従って、タスク変形
規則実行手段51の実行結果として、タスク#1=a+b, タ
スク#1=#1+c,タスク#2=d+e, タスク#2=#2+f,タスクy=#1
+#2 が得られる。続いてタスク移動手段13、タスク割
り当てデータ評価手段14、タスク割り当てデータ選択
手段15および終了判定手段16を実行し、タスクの移
動を繰り返し、最終的には図2(c)に示す最適なタス
ク割り当てを得ることができる。
First, at step 61, one task is randomly selected from a plurality of tasks consisting of only difference and sum operations. Here, the task y = a + b + c + d + e + f will be selected. Next, in step 62, the number of usable intermediate variables is checked, and the task selected in step 61 is separated into the number of intermediate variables. That is, task y = a + b +
c + d + e + f will be separated into task # 1 = a + b + c and task # 2 = d + e + f. Next, in step 63, step 6
Each of the tasks separated in 2 contains only one operation and is separated so that only one intermediate variable is used. That is, task # 1 = a + b + c is the same as task # 1 = a + b,
Task # 2 = d + e + f is separated into # 1 = # 1 + c, task # 2 = d + e, and task # 2 = # 2 + f. Next, step 6
In 4, a task y = # 1 + # 2 is generated that fuses the intermediate variables of the tasks separated in step 62. Therefore, as the execution result of the task transformation rule executing means 51, task # 1 = a + b, task # 1 = # 1 + c, task # 2 = d + e, task # 2 = # 2 + f, task y = # 1
You get + # 2. Subsequently, the task moving means 13, the task allocation data evaluating means 14, the task allocation data selecting means 15 and the end judging means 16 are executed, the movement of the task is repeated, and finally the optimum task allocation shown in FIG. Can be obtained.

【0045】このように、上記第5の実施例では、知識
ベースを用いて最適な並列性を取り出すことにより、最
も高速な実行時間のタスク割り当てを得ることができ
る。
As described above, in the fifth embodiment, the task allocation with the fastest execution time can be obtained by extracting the optimum parallelism using the knowledge base.

【0046】[0046]

【発明の効果】以上のように、本発明は、並列処理を用
いた計算器で重要となるタスク割り当て装置として、
期タスク割り当てデータを生成する初期タスク割り当て
手段と、生成された初期タスク割り当てデータをもとに
複数の演算を含むタスクを中間変数を求める単一の演算
で構成される複数のタスクに変形するタスク変形手段
と、前記分解された複数のタスクを複数の演算手段に移
動するタスク移動手段と、タスクの移動または変形によ
り新しくなったタスク割り当てデータを、実行するタイ
ムステップに基づいて評価値を与えることにより評価す
るタスク割り当てデータ評価手段と、新しいタスク割り
当てデータと現在のタスク割り当てデータのうち、確率
的にタスク割り当てデータを選択するタスク割り当てデ
ータ選択手段と、前記タスク変形手段、タスク移動手段
およびタスク割り当てデータ評価手段による処理動作を
評価値が変化しなくなるまで繰り返し、評価値が下がら
なくなったときに処理の終了を判定する終了判定手段と
を備え、前記タスク変形手段は、前記複数のタスクを式
の代入を用いて一つのタスクに融合するタスク融合手段
と、複数の演算を持つタスクをいくつかのタスクに分離
するタスク分離手段とからなるようにしたため、初期タ
スク割り当て手段で与えられたタスク割り当てデータか
ら割り当てを開始し、タスクの移動と変形を繰り返すこ
とにより、限られたハードウエア資源のなかで、最適な
並列性を取り出し実行速度を高速化することができると
いう効果が得られる。
As described above, the present invention is the first task allocation device important in a computer using parallel processing.
Initial task assignments that generate period task assignment data
Based on means and generated initial task assignment data
A single operation that computes an intermediate variable for a task that contains multiple operations
Task transformation means that transforms into multiple tasks composed of
And move the decomposed multiple tasks to multiple computing means.
Depending on the task moving means that moves and the task moving or transforming
The new task assignment data
Evaluation by giving an evaluation value based on the mustep
Task allocation data evaluation method and new task allocation
Probability of hit data and current task assignment data
Task assignment data to select task assignment data
Data selecting means, task transforming means, task moving means
And the processing operation by the task assignment data evaluation means
Repeat until the evaluation value does not change and the evaluation value decreases.
End determination means for determining the end of the process when no more
And the task transforming means formulates the plurality of tasks.
Task fusion method that fuses to one task by using substitution of
And separate tasks with multiple operations into several tasks
Since it is configured to include the task separation means that performs the task allocation, the allocation is started from the task allocation data given by the initial task allocation means, and the movement and modification of the tasks are repeated, so that the optimum hardware resource can be obtained. The effect that the parallelism can be taken out and the execution speed can be increased can be obtained.

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

【図1】本発明の第1の実施例におけるタスク割り当て
装置の構成を示すブロック図
FIG. 1 is a block diagram showing a configuration of a task allocation device according to a first exemplary embodiment of the present invention.

【図2】(a)本発明の第1の実施例におけるタスク割
り当て初期状態を示す一覧図 (b)本発明の第1の実施例におけるタスク割り当て中
間状態を示す一覧図 (c)本発明の第1の実施例におけるタスク割り当て結
果状態を示す一覧図
FIG. 2A is a list diagram showing an initial state of task assignment in the first embodiment of the present invention. FIG. 2B is a list diagram showing an intermediate state of task assignment in the first embodiment of the present invention. List view showing the task allocation result state in the first embodiment

【図3】本発明の第2の実施例におけるタスク割り当て
装置の構成を示すブロック図
FIG. 3 is a block diagram showing a configuration of a task allocation device according to a second exemplary embodiment of the present invention.

【図4】(a)本発明の第2の実施例におけるタスク割
り当て初期状態を示す一覧図 (b)本発明の第2の実施例におけるタスク割り当て中
間状態を示す一覧図
FIG. 4A is a list diagram showing an initial state of task assignment in the second embodiment of the present invention. FIG. 4B is a list diagram showing an intermediate state of task assignment in the second embodiment of the present invention.

【図5】本発明の第3の実施例におけるタスク割り当て
装置の構成を示すブロック図
FIG. 5 is a block diagram showing a configuration of a task allocation device according to a third exemplary embodiment of the present invention.

【図6】(a)本発明の第3の実施例におけるループ文
を含むタスク割り当て初期状態を示す一覧図 (b)本発明の第3の実施例におけるループ文を含むタ
スク割り当て中間状態を示す一覧図 (c)本発明の第3の実施例におけるループ文を含むタ
スク割り当て結果状態を示す一覧図
FIG. 6A is a list diagram showing an initial state of task allocation including a loop statement in the third embodiment of the present invention; and FIG. 6B shows an intermediate state of task allocation including a loop statement in the third embodiment of the present invention. List diagram (c) List diagram showing a task assignment result state including a loop statement in the third embodiment of the present invention

【図7】本発明の第4の実施例におけるタスク割り当て
装置の構成を示すブロック図
FIG. 7 is a block diagram showing a configuration of a task allocation device according to a fourth exemplary embodiment of the present invention.

【図8】(a)本発明の第4の実施例における条件文を
含むタスク割り当て初期状態を示す一覧図 (b)本発明の第4の実施例における条件文を含むタス
ク割り当て中間状態を示す一覧図 (c)本発明の第4の実施例における条件文を含むタス
ク割り当て結果状態を示す一覧図
FIG. 8A is a list diagram showing an initial state of task allocation including a conditional statement in the fourth embodiment of the present invention. FIG. 8B shows an intermediate state of task allocation including a conditional statement in the fourth embodiment of the present invention. List diagram (c) List diagram showing a task assignment result state including a conditional statement in the fourth example of the present invention

【図9】本発明の第5の実施例におけるタスク割り当て
装置の構成を示すブロック図
FIG. 9 is a block diagram showing a configuration of a task allocation device according to a fifth exemplary embodiment of the present invention.

【図10】本発明の第5の実施例における和差並列性取
り出し規則のアルゴリズムを示すフローチャート
FIG. 10 is a flowchart showing the algorithm of the sum / difference parallelism extraction rule in the fifth embodiment of the present invention.

【図11】従来のタスク割り当て装置の構成を示すブロ
ック図
FIG. 11 is a block diagram showing the configuration of a conventional task allocation device.

【符合の説明】[Explanation of sign]

11 初期タスク割り当て手段 12 タスク変形手段 13 タスク移動手段 14 タスク割り当てデータ評価手段 15 タスク割り当てデータ選択手段 16 終了判定手段 21 タスク融合手段 22 タスク分離手段 31 ループ文展開手段 32 ループ生成手段 41 条件組生成手段 42 条件組解除手段 51 タスク変形規則実行手段 52 タスク変形規則格納手段 11 Initial task allocation means 12 task transformation means 13 task transfer means 14 Task assignment data evaluation means 15 Task allocation data selection means 16 Termination determination means 21 Task fusion means 22 means for separating tasks 31 Loop sentence expansion means 32 loop generation means 41 condition set generation means 42 Condition group releasing means 51 task transformation rule execution means 52 task transformation rule storage means

───────────────────────────────────────────────────── フロントページの続き (72)発明者 荒 木 均 大阪府門真市大字門真1006番地 松下電 器産業株式会社内 (72)発明者 加 藤 等 大阪府門真市大字門真1006番地 松下電 器産業株式会社内 (56)参考文献 特開 平3−260837(JP,A) 特開 平6−301742(JP,A) 特開 平4−70931(JP,A) 間藤ほか,並列コンパイル方式,情報 処理学会第44回(平成4年前期)全国大 会講演論文集,平成4年2月24日発行, 社団法人情報処理学会,第5分冊,p. 5−97〜98 間藤ほか,遺伝的ルールによる並列ル ールベースト・アニーリング,電子情報 通信学会技術研究報告,Vol.92,N o.185,平成4年8月21日発行,社団 法人電子情報通信学会,p.1−8 境ほか,ループ展開・ソフトウェアパ イプライングの新手法,情報処理学会第 44回(平成4年前期)全国大会講演論文 集,平成4年2月24日発行,社団法人情 報処理学会,第5分冊,p.5−101〜 102 竹内ほか,式評価の最適化による微視 的並列度向上,情報処理学会第44回(平 成4年前期)全国大会講演論文集,平成 4年2月24日,社団法人情報処理学会, 第5分冊,p.5−103〜104 (58)調査した分野(Int.Cl.7,DB名) G06F 17/50 G06F 9/45 ─────────────────────────────────────────────────── ─── Continuation of front page (72) Inventor Hitoshi Araki 1006 Kadoma, Kadoma City, Osaka Prefecture Matsushita Electric Industrial Co., Ltd. (72) Inventor, Kato 1006 Kadoma, Kadoma City, Osaka Matsushita Electric Industrial Incorporated (56) References JP-A-3-260837 (JP, A) JP-A-6-301742 (JP, A) JP-A-4-70931 (JP, A) Matou et al., Parallel compilation method, information processing Proceedings of the 44th Annual Meeting of the Japanese Society of the Society, published on February 24, 1992, Information Processing Society of Japan, Volume 5, p. 5-97-98 Mato et al., Based on genetic rules Parallel rule-based annealing, IEICE technical report, Vol. 92, No. 185, Published August 21, 1992, The Institute of Electronics, Information and Communication Engineers, p. 1-8 Boundaries et al., New methods of loop unrolling and software piping, Proceedings of the 44th IPSJ National Conference (published on February 24, 1992), Information Processing Society of Japan, Fifth volume, p. 5-101-102 Takeuchi et al., Improvement of microscopic parallelism by optimizing expression evaluation, Proc. Of the 44th national conference of Information Processing Society of Japan (first half of the 4th year), February 24, 1992, incorporated foundation. IPSJ, Volume 5, p. 5-103 to 104 (58) Fields surveyed (Int.Cl. 7 , DB name) G06F 17/50 G06F 9/45

Claims (2)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 初期タスク割り当てデータを生成する初
期タスク割り当て手段と、 生成された初期タスク割り当てデータをもとに複数の演
算を含むタスクを中間変数を求める単一の演算で構成さ
れる複数のタスクに変形するタスク変形手段と、 前記分解された複数のタスクを複数の演算手段に移動す
るタスク移動手段と、 タスクの移動または変形により新しくなったタスク割り
当てデータを、実行するタイムステップに基づいて評価
値を与えることにより評価するタスク割り当てデータ評
価手段と、 新しいタスク割り当てデータと現在のタスク割り当てデ
ータのうち、確率的にタスク割り当てデータを選択する
タスク割り当てデータ選択手段と、 前記タスク変形手段、タスク移動手段およびタスク割り
当てデータ評価手段による処理動作を評価値が変化しな
くなるまで繰り返し、評価値が下がらなくなったときに
処理の終了を判定する終了判定手段とを備え、 前記タスク変形手段は、前記複数のタスクを式の代入を
用いて一つのタスクに融合するタスク融合手段と、複数
の演算を持つタスクをいくつかのタスクに分離するタス
ク分離手段とからなることを特徴とするタスク割り当て
装置。
1. A plurality of initial task assignment means for generating initial task assignment data, and a plurality of tasks each including a plurality of operations based on the generated initial task assignment data Based on the time step for executing the task transforming means for transforming into a task, the task moving means for moving the decomposed plurality of tasks to the plurality of computing means, and the task assignment data updated by the movement or modification of the task. Task assignment data evaluating means for evaluating by giving an evaluation value; task assignment data selecting means for probabilistically selecting task assignment data from new task assignment data and current task assignment data; Processing operations by means of movement and task assignment data evaluation Repeatedly until the value does not change, and comprises an end determination means for determining the end of the process when the evaluation value does not decrease, the task transformation means, the plurality of tasks into one task using the substitution of the expression A task allocating device comprising: a task merging means for merging and a task separating means for separating a task having a plurality of operations into some tasks.
【請求項2】 タスク変形手段が、タスク変形規則を記
憶しているタスク変形規則格納手段と、このタスク変形
規則格納手段に格納されているタスク変形規則から変形
規則を選択して実行するタスク変形規則実行手段とから
なる請求項1記載のタスク割り当て装置。
2. The task modification means stores a task modification rule in a task modification rule storage means, and a task modification rule selected and executed from the task modification rules stored in the task modification rule storage means. The task assignment device according to claim 1, further comprising rule execution means.
JP12005093A 1993-05-21 1993-05-21 Task assignment device Expired - Fee Related JP3364274B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12005093A JP3364274B2 (en) 1993-05-21 1993-05-21 Task assignment device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12005093A JP3364274B2 (en) 1993-05-21 1993-05-21 Task assignment device

Publications (2)

Publication Number Publication Date
JPH06332726A JPH06332726A (en) 1994-12-02
JP3364274B2 true JP3364274B2 (en) 2003-01-08

Family

ID=14776656

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12005093A Expired - Fee Related JP3364274B2 (en) 1993-05-21 1993-05-21 Task assignment device

Country Status (1)

Country Link
JP (1) JP3364274B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5245727B2 (en) * 2008-11-04 2013-07-24 富士通株式会社 Design support program, design support apparatus, and design support method
US9384053B2 (en) 2010-10-28 2016-07-05 Nec Corporation Task allocation optimization system, task allocation optimization method, and non-transitory computer readable medium storing task allocation optimization program
KR101926464B1 (en) * 2012-10-11 2018-12-07 삼성전자 주식회사 Method for compiling program running on multi-core processor, task mapping method of multi-core processor and task scheduling method of reconfigurable processor
CN110083342B (en) * 2019-04-26 2023-04-18 重庆紫光华山智安科技有限公司 Program generation method and device and computer readable storage medium

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
境ほか,ループ展開・ソフトウェアパイプライングの新手法,情報処理学会第44回(平成4年前期)全国大会講演論文集,平成4年2月24日発行,社団法人情報処理学会,第5分冊,p.5−101〜102
竹内ほか,式評価の最適化による微視的並列度向上,情報処理学会第44回(平成4年前期)全国大会講演論文集,平成4年2月24日,社団法人情報処理学会,第5分冊,p.5−103〜104
間藤ほか,並列コンパイル方式,情報処理学会第44回(平成4年前期)全国大会講演論文集,平成4年2月24日発行,社団法人情報処理学会,第5分冊,p.5−97〜98
間藤ほか,遺伝的ルールによる並列ルールベースト・アニーリング,電子情報通信学会技術研究報告,Vol.92,No.185,平成4年8月21日発行,社団法人電子情報通信学会,p.1−8

Also Published As

Publication number Publication date
JPH06332726A (en) 1994-12-02

Similar Documents

Publication Publication Date Title
Munteanu et al. The EQ framework for learning equivalence classes of Bayesian networks
JP3299611B2 (en) Resource allocation device
JP2005107743A (en) Learning system
Kroese et al. Network reliability optimization via the cross-entropy method
Cooper et al. Biobjective simulation optimization on integer lattices using the epsilon-constraint method in a retrospective approximation framework
US7076777B2 (en) Run-time parallelization of loops in computer programs with static irregular memory access patterns
Thuijsman et al. Computational effort of BDD-based supervisor synthesis of extended finite automata
Orr et al. Integrating task duplication in optimal task scheduling with communication delays
JP3364274B2 (en) Task assignment device
Michel et al. Weak interaction and strong interaction in agent based simulations
Jin et al. HPC simulations of information propagation over social networks
DeLaVina Some history of the development of Graffiti
WO2011016281A2 (en) Information processing device and program for learning bayesian network structure
Hao et al. A moving block sequence-based evolutionary algorithm for resource-constrained project scheduling problems
Salii Order-theoretic characteristics and dynamic programming for Precedence Constrained Traveling Salesman Problem
CN110928253A (en) Dynamic weighting heuristic scheduling method of automatic manufacturing system
JP2009301557A (en) Training system
JP4543687B2 (en) Data analyzer
JP4334278B2 (en) Method and program for analyzing sequential system
Teo et al. Optimistic protocol analysis in a performance analyser and prediction tool
JPH10105539A (en) Method and system for scheduling optimum job allocation
Pagnozzi et al. Operations Research Perspectives
Joseph et al. Utility of data base management to analyze the output from complex simulations
JP2016212674A (en) Software hardware allocation device, software hardware allocation method, and software hardware allocation program
JP5348702B2 (en) Feature extraction method, feature extraction apparatus, and feature extraction program

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees