JPH04286031A - Parallel execution processing method for loop of program - Google Patents

Parallel execution processing method for loop of program

Info

Publication number
JPH04286031A
JPH04286031A JP5156191A JP5156191A JPH04286031A JP H04286031 A JPH04286031 A JP H04286031A JP 5156191 A JP5156191 A JP 5156191A JP 5156191 A JP5156191 A JP 5156191A JP H04286031 A JPH04286031 A JP H04286031A
Authority
JP
Japan
Prior art keywords
loop
variable
program
computer
rotation
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.)
Granted
Application number
JP5156191A
Other languages
Japanese (ja)
Other versions
JP3269639B2 (en
Inventor
Koichiro Hotta
耕一郎 堀田
Hiroshi Nagakura
長倉 浩士
Eiji Yamanaka
栄次 山中
Hideki Nozaki
英樹 野崎
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP05156191A priority Critical patent/JP3269639B2/en
Publication of JPH04286031A publication Critical patent/JPH04286031A/en
Application granted granted Critical
Publication of JP3269639B2 publication Critical patent/JP3269639B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE:To realize parallelling and to improve execution performance even when there is possibility that the value of a variable substituted within a loop is used beyond the loop on the loop parallel execution processing method of a program, in which the rotation of the loop in the program is executed in parallel in plural computers. CONSTITUTION:In the computers except for a computer 14-N controlling the final rotation of the loop for the variable A whose value is substituted within the loop, the copy areas A1, A2,... of the variable are used for respective computers. The computer 14-N controlling the final rotation of the loop uses the original variable A as it is. Thus, the value of the variable A is guaranteed beyond the loop.

Description

【発明の詳細な説明】[Detailed description of the invention]

【0001】0001

【産業上の利用分野】本発明は,例えばFORTRAN
プログラムなどにおける一つのループを,複数の計算機
で並列実行させるために,ループの各回転をそれぞれの
計算機で実行させるプログラムのループ並列実行処理方
法に関する。
[Industrial Application Field] The present invention is applicable to, for example, FORTRAN
This invention relates to a loop parallel execution processing method for a program in which each rotation of the loop is executed on each computer in order to execute one loop in a program in parallel on multiple computers.

【0002】FORTRANによる科学技術計算などで
は,配列を処理するときなど,DOループを使用するケ
ースが非常に多い。したがって,このDOループの回転
を,複数の計算機に分担させて並列に実行させると,処
理時間を短縮することができる。このような並列処理を
ループスライシング方式という。このループスライシン
グ方式に伴う技術をさらに改善することができれば,も
っと効率的にプログラムを実行することが可能になる。
[0002] In scientific and technical calculations using FORTRAN, DO loops are often used when processing arrays. Therefore, if multiple computers share the rotation of this DO loop and execute it in parallel, the processing time can be shortened. This kind of parallel processing is called a loop slicing method. If the technology associated with this loop slicing method can be further improved, it will be possible to execute programs more efficiently.

【0003】0003

【従来の技術】図4は,従来技術の説明図である。並列
に実行可能な計算機が2台あるとすると,ループスライ
シング方式では,例えば図4の(a) に示すようなF
ORTRANで記述されたプログラム40のループを並
列化して,図4の(b) に示すような手続き41−1
,41−2に分割しし,2つの計算機上で実行させる。
2. Description of the Related Art FIG. 4 is an explanatory diagram of the prior art. Assuming that there are two computers that can execute in parallel, the loop slicing method uses F as shown in Figure 4 (a), for example.
The loop of the program 40 written in ORTRAN is parallelized to create a procedure 41-1 as shown in FIG. 4(b).
, 41-2 and executed on two computers.

【0004】図4に示す例では,奇数番目の回転を第1
の計算機で実行させ,偶数番目の回転を第2の計算機で
並列に実行させている。ここで,(a) のループの中
で使用されている変数Aは,ループの各回転ごとに一時
的データとして使用されている。これを並列実行する際
には,(b) に示すA1,A2のように,Aの領域を
各計算機ごとに用意し,領域の競合が起こらないようす
る必要がある。第1の計算機による処理中のデータを,
第2の計算機が使用すると,矛盾が生じるからである。 逆の場合も同様である。
In the example shown in FIG. 4, odd-numbered rotations are
The rotations are executed by one computer, and the even-numbered rotations are executed in parallel by a second computer. Here, the variable A used in the loop in (a) is used as temporary data for each rotation of the loop. When executing this in parallel, it is necessary to prepare areas for A for each computer, such as A1 and A2 shown in (b), to prevent area contention. The data being processed by the first computer is
This is because if the second computer uses it, a contradiction will occur. The same applies to the opposite case.

【0005】[0005]

【発明が解決しようとする課題】一般のプログラムでは
,図4に示すAのような変数は,このループだけで使用
されることは稀であり,通常の場合,プログラム内の様
々な部分で同一の変数が(別々の意味で)使用される。
[Problem to be solved by the invention] In a general program, variables such as A shown in Figure 4 are rarely used only in this loop, and are usually the same in various parts of the program. variables are used (with different meanings).

【0006】このとき,コンパイラの最適化機能による
データフロー解析によって,変数Aの使用がループ内に
閉じている,すなわち他のAの使用とは別個の変数とし
て扱っても構わないことがわかれば,図4に示す例のよ
うに,オリジナル変数Aに値を代入しなくても正しい結
果が得られることがわかるので,並列化が容易に可能で
ある。
[0006] At this time, if it is found through data flow analysis using the compiler's optimization function that the use of variable A is closed within a loop, that is, it can be treated as a separate variable from other uses of A. , as in the example shown in FIG. 4, it can be seen that correct results can be obtained without assigning a value to the original variable A, so parallelization is easily possible.

【0007】しかし,このループで使用した変数Aの値
を,ループ外で使用する可能性があるときには(たとえ
実際には参照されないとしても),オリジナル変数Aに
値を代入する必要があるため,図4の(b) に示すよ
うな並列化は不可能であり,Aの値を保証するために複
雑な処理を行わなければならない。
However, when there is a possibility that the value of variable A used in this loop will be used outside the loop (even if it is not actually referenced), it is necessary to assign the value to the original variable A. Parallelization as shown in FIG. 4(b) is impossible, and complicated processing must be performed to guarantee the value of A.

【0008】実際に,図4に示す例で,変数Aの値をル
ープ終了後に使用するとすれば,第1の計算機による処
理結果のA1の値と,第2の処理結果のA2の値のどち
らが最終結果であるかを調べ,その値をループ終了時に
オリジナル変数Aに代入する複雑な処理が必要となる。
In fact, in the example shown in FIG. 4, if the value of variable A is to be used after the loop ends, which is the value A1 of the processing result by the first computer or the value A2 of the second processing result? Complex processing is required to check whether the result is the final result and to assign that value to the original variable A at the end of the loop.

【0009】本発明は上記問題点の解決を図り,ループ
内で代入した変数の値を,ループ外で使用する可能性が
ある場合でも,並列化を実行でき,かつ無駄な処理を行
わないでも実行できるようにすることを目的としている
[0009] The present invention aims to solve the above problems, and even when there is a possibility that the value of a variable assigned within a loop may be used outside the loop, parallelization can be executed and unnecessary processing is not performed. The purpose is to make it executable.

【0010】0010

【課題を解決するための手段】図1は,本発明の原理説
明図である。図1に示すプログラム10のように,DO
ループの中で変数Aに値を代入し,そのループの終了後
に同じ変数Aを参照しているとする。
[Means for Solving the Problems] FIG. 1 is a diagram illustrating the principle of the present invention. As in the program 10 shown in FIG.
Assume that a value is assigned to variable A in a loop, and the same variable A is referenced after the loop ends.

【0011】コンパイラ11は,並列処理のために,D
Oループの回転を分割したオブジェクトプログラムを出
力する。そのオブジェクトプログラムの実行イメージは
,以下のとおりである。マルチプロセッサ12を構成す
る並列処理可能な計算機がN台あったとする。計算機1
3−1には,DOループの回転を分割した1つのDOル
ープ実行イメージ14−1を割り当て,計算機13−2
には,DOループの回転を分割した他のDOループ実行
イメージ14−2を割り当て,……,計算機13−Nに
は,DOループの回転を分割した他のDOループ実行イ
メージ14−Nを割り当てて,それぞれの計算機で並列
に実行させる。
[0011] The compiler 11 uses D for parallel processing.
Outputs an object program in which the rotation of the O-loop is divided. The execution image of the object program is as follows. Assume that there are N computers capable of parallel processing that constitute the multiprocessor 12. calculator 1
One DO loop execution image 14-1 obtained by dividing the rotation of the DO loop is assigned to 3-1, and the computer 13-2
, assigns another DO loop execution image 14-2 in which the rotation of the DO loop is divided, ..., assigns another DO loop execution image 14-N in which the rotation of the DO loop is divided to the computer 13-N. and execute them in parallel on each computer.

【0012】ここで,ループの最終回転部分を,計算機
13−Nが担当するようになっていたとすると,計算機
13−NのDOループ実行イメージ14−Nでは,変数
Aの値を格納する場所としてオリジナル変数Aの領域を
そのまま使用する。他の計算機13−1,13−2,…
では,各計算機ごとに用意した変数Aの複製領域A1,
A2,…を使用する。これによって,ループ外での変数
Aの値を保証する。
[0012] Here, if the computer 13-N is in charge of the final rotation part of the loop, in the DO loop execution image 14-N of the computer 13-N, the location where the value of variable A is stored is The area of original variable A is used as is. Other computers 13-1, 13-2,...
Now, copy area A1 of variable A prepared for each computer,
Use A2,... This guarantees the value of variable A outside the loop.

【0013】[0013]

【作用】例えば,従来技術として説明したループスライ
シング方式を採る場合,各計算機での実行順序が元のル
ープでの回転関係を崩していないならば,どれか一つの
計算機での実行終了時のオリジナル変数に対応する変数
(図4の(b)に示すA1またはA2)の値が,オリジ
ナル変数Aの取るべき値に等しい。
[Operation] For example, when using the loop slicing method described as the prior art, if the execution order on each computer does not break the rotational relationship in the original loop, the original loop at the end of execution on any one computer The value of the variable (A1 or A2 shown in FIG. 4B) corresponding to the variable is equal to the value that the original variable A should take.

【0014】これを利用して,オリジナル変数Aの取る
べき値に等しい方のAの複製(A1またはA2)の代わ
りに,オリジナル変数Aの領域を直接使用する。すなわ
ち,図1に示すように,N台の計算機13−1〜13−
Nがあった場合には,その中の最終回転を司る計算機の
変数を,複製領域ANではなく,オリジナル変数Aとし
てそのまま使用する。これにより全回転の終了時には,
最終結果がそのまま保証され,並列処理を高速に行うこ
とが可能になる。
Utilizing this, the area of the original variable A is directly used instead of the copy of A (A1 or A2) that is equal to the value that the original variable A should take. That is, as shown in FIG. 1, N computers 13-1 to 13-
If there is N, the computer variable that governs the final rotation is used as it is as the original variable A instead of the duplicate area AN. As a result, at the end of a full rotation,
The final result is guaranteed as is, and parallel processing can be performed at high speed.

【0015】[0015]

【実施例】図2は本発明を実施するための言語処理シス
テムの例,図3は本発明の実施例を示す。図2において
,20は例えばFORTRANで記述されたソースプロ
グラム,21はCPUおよびメモリなどからなる計算機
,22はFORTRANのコンパイラ11におけるソー
スプログラム解析部,23はプログラムの最適化を行う
最適化部,24はDOループを検出するループ検出部,
24はプログラムにおけるデータの流れを解析するデー
タフロー解析部,25はマルチプロセッサ用のオブジェ
クトプログラムを出力する場合にプログラムのある部分
を並列に実行できるかどうかを解析する並列性解析部,
27は並列に実行できる場合に各計算機用の中間コード
を生成する並列中間コード生成部,28はレジスタの割
り当てや領域の割り当てを行い,オブジェクトプログラ
ムのコードを生成するコード生成部,29はコンパイラ
11の出力結果であるオブジェクトプログラムを表す。
Embodiment FIG. 2 shows an example of a language processing system for implementing the present invention, and FIG. 3 shows an embodiment of the present invention. In FIG. 2, 20 is a source program written, for example, in FORTRAN, 21 is a computer consisting of a CPU and memory, 22 is a source program analysis section in the FORTRAN compiler 11, 23 is an optimization section that performs program optimization, 24 is a loop detection unit that detects a DO loop,
24 is a data flow analysis unit that analyzes the flow of data in a program; 25 is a parallelism analysis unit that analyzes whether a certain part of the program can be executed in parallel when outputting an object program for a multiprocessor;
27 is a parallel intermediate code generator that generates intermediate code for each computer when it can be executed in parallel; 28 is a code generator that allocates registers and areas and generates object program code; 29 is a compiler 11 represents the object program that is the output result of .

【0016】コンパイラ11が,例えば図3に示すソー
スプログラム20を入力し,それをコンパイルする例に
ついて説明する。コンパイラ11へのパラメタとして,
三重の並列化を行うことが指定されたとする。ソースプ
ログラム解析部22は,ソースプログラム20を解析し
,解析結果を中間テキストの形で最適化部23に渡す。 最適化部23では,まずループ検出部24によって,D
Oループを検出する。この例では,次のような内容のD
Oループである。
An example will be described in which the compiler 11 inputs, for example, the source program 20 shown in FIG. 3 and compiles it. As a parameter to compiler 11,
Suppose that triple parallelization is specified. The source program analysis unit 22 analyzes the source program 20 and passes the analysis result to the optimization unit 23 in the form of intermediate text. In the optimization section 23, the loop detection section 24 first detects D.
Detect O-loop. In this example, D with the following content:
It is an O-loop.

【0017】   データフロー解析部25は,ループ内外における各
変数等の関係を調べる。その結果により,並列性解析部
26は,このDOループについての並列実行が可能であ
るかどうかを決定する。並列実行が可能であれば,並列
中間コード生成部27により,DOループの回転を3個
に分割したオブジェクトプログラムを生成するための中
間コードを生成する。
The data flow analysis unit 25 examines the relationships between variables inside and outside the loop. Based on the result, the parallelism analysis unit 26 determines whether parallel execution of this DO loop is possible. If parallel execution is possible, the parallel intermediate code generation unit 27 generates intermediate code for generating an object program in which the rotation of the DO loop is divided into three parts.

【0018】このプログラムでは,変数Tには,DOル
ープの中で無条件に値の代入が行われている。この場合
には,変数Tの取るべき値は,ループの最終回転時に代
入される値であることは明らかである。そこで,各計算
機に割り当てる並列実行部分をあらかじめ固定的に分割
しておき,ループの最終回転を受け持つ計算機では,オ
リジナル変数Tの領域を使用する。これにより,容易に
変数Tの最終値を保証することが可能になる。
In this program, a value is unconditionally assigned to the variable T in the DO loop. In this case, it is clear that the value that the variable T should take is the value that is assigned at the final rotation of the loop. Therefore, the parallel execution portion assigned to each computer is fixedly divided in advance, and the computer responsible for the final rotation of the loop uses the area of the original variable T. This makes it possible to easily guarantee the final value of variable T.

【0019】このことから,並列中間コード生成部27
では,図3の(ロ)に示すように, (a) DOループの回転の最初の1/3,(b) D
Oループの回転の中間の1/3,(c) DOループの
回転の最後の1/3,というように分割する。
From this, the parallel intermediate code generator 27
Now, as shown in Figure 3 (b), (a) the first 1/3 of the rotation of the DO loop, (b) D
Divide into the middle 1/3 of the rotation of the O loop, (c) the last 1/3 of the rotation of the DO loop, and so on.

【0020】そして,最終回転を含まない(a) およ
び(b) では,それぞれ変数Tの複製領域T1,T2
を使用し,最終回転を含む(c) では,オリジナル変
数Tの領域をそのまま使用する。なお,図3の(ロ)で
は,説明の簡単化のため,実行イメージをソースプログ
ラムの形式で表しているが,プログラムの実行時には,
計算機の扱う機械語コードに展開された内容になってい
る。
In (a) and (b), which do not include the final rotation, the replication regions T1 and T2 of variable T are respectively
In (c), which includes the final rotation, the area of the original variable T is used as is. Note that in (b) of Figure 3, the execution image is shown in the form of a source program to simplify the explanation, but when the program is executed,
The content is expanded into machine language code that is used by computers.

【0021】このコードを複数の計算機に分配して実行
させる場合,例えば周知のUNIXシステム(米国AT
&T社ベル研究所が開発したオペレーティング・システ
ム)における“fork”などのプロセス制御機能を利
用すればよい。他にも分配の方法は種々あるが,本発明
の要旨には関係しないため,説明を省略する。
[0021] When distributing this code to multiple computers for execution, for example, the well-known UNIX system (US AT
A process control function such as "fork" in the operating system developed by Bell Laboratories, Inc., may be used. There are various other distribution methods, but their explanations are omitted because they are not related to the gist of the present invention.

【0022】図3の(ロ)に示す(a) 〜(c) の
実行イメージを実行した後,それの処理結果を“joi
n”などの制御機能によってまとめれば,それ以降に変
数Tの参照があっても,ループの最終回転で代入された
正しい変数値を使用することができることになる。
After executing the execution images (a) to (c) shown in (b) of FIG. 3, the processing results are “joi”
By using a control function such as "n", even if the variable T is referenced thereafter, the correct variable value assigned at the final rotation of the loop can be used.

【0023】特に,FORTRANのDOループでは,
ループ回転数が実行直前に計算されるので,並列実行の
際の回転順序の組み合わせを固定的にすることが可能で
あり,この方法が有効である。ループの最初部分・中間
部分・最終部分というように3分割する代わりに,ルー
プ変数iの値を3で割ったときに1余る場合,ループ変
数iの値を3で割ったときに2余る場合,ループ変数i
の値が3で割り切れる場合というように,ループの回転
を分割し,それぞれの計算機に受け持たせるようにして
もよい。ただし,このように分割する場合には,最終回
転を受け持つ計算機の判定処理が複雑になることがある
In particular, in the FORTRAN DO loop,
Since the loop rotation number is calculated immediately before execution, it is possible to fix the combination of rotation orders during parallel execution, and this method is effective. Instead of dividing the loop into three parts such as the first part, middle part, and last part, if the value of the loop variable i is divided by 3 and there is a remainder of 1, or if the value of the loop variable i is divided by 3 and the remainder is 2 , loop variable i
For example, when the value of is divisible by 3, the rotation of the loop may be divided and assigned to each computer. However, when dividing in this way, the determination process of the computer responsible for the final rotation may become complicated.

【0024】図3に示す例では,ループの回転を3分割
しているが,もちろん並列に実行できる計算機数に応じ
た分割が可能であり,他の分割数でも同様に本発明を実
施することができる。
In the example shown in FIG. 3, the rotation of the loop is divided into three parts, but it is of course possible to divide the rotation according to the number of computers that can execute the process in parallel, and the present invention can be similarly implemented with other numbers of divisions. Can be done.

【0025】[0025]

【発明の効果】汎用プログラムを並列実行する場合に,
最も容易に並列化できるのは,ループの各回転の並列実
行である。ループ内で使用されている変数がループ外で
も参照されているように見えるプログラムは数多くあり
,その場合,従来技術では,自動並列化が抑止されるか
,無駄な同期処理などを行う必要があり,実行性能が低
下していた。本発明によれば,ループ内に閉じて変数が
使用されている場合と全く同等の実行時間で並列実行が
可能になるため,実行性能が向上する。
[Effect of the invention] When executing general-purpose programs in parallel,
The easiest way to parallelize is to execute each rotation of a loop in parallel. There are many programs in which variables used within a loop appear to be referenced outside the loop, and in such cases, with conventional technology, automatic parallelization is either suppressed or unnecessary synchronization processing is required. , execution performance was decreasing. According to the present invention, execution performance is improved because parallel execution can be performed in exactly the same execution time as when variables are used closed in a loop.

【図面の簡単な説明】[Brief explanation of the drawing]

【図1】本発明の原理説明図である。FIG. 1 is a diagram explaining the principle of the present invention.

【図2】本発明を実施するための言語処理システムの例
を示す図である。
FIG. 2 is a diagram showing an example of a language processing system for implementing the present invention.

【図3】本発明の実施例を示す図である。FIG. 3 is a diagram showing an embodiment of the present invention.

【図4】従来技術の説明図である。FIG. 4 is an explanatory diagram of a prior art.

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

10        プログラム 11        コンパイラ 12        マルチプロセッサ13−1〜13
−N    計算機
10 Program 11 Compiler 12 Multiprocessor 13-1 to 13
-N calculator

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】  複数の計算機(13−1 〜13−N
) により,プログラム(10)中のループをある回転
単位で分割して並列に実行するプログラムのループ並列
実行処理方法において,ループ内で値が代入される変数
(A) に対して,ループの最終回転を司る計算機以外
の計算機では,各計算機ごとにその変数の複製領域(A
1,A2, …) を使用し,ループの最終回転を司る
計算機では,オリジナルの変数(A) をそのまま使用
することにより,ループ外での変数の値を保証すること
を特徴とするプログラムのループ並列実行処理方法。
[Claim 1] A plurality of computers (13-1 to 13-N
), in a loop parallel execution processing method for a program in which the loop in program (10) is divided into certain rotation units and executed in parallel, the final value of the loop is For computers other than the computer that controls rotation, each computer has its own variable replication area (A
1, A2, ...), and in the computer that controls the final rotation of the loop, the original variable (A) is used as is, thereby guaranteeing the value of the variable outside the loop. Parallel execution processing method.
JP05156191A 1991-03-15 1991-03-15 Method of parallel execution of program loop Expired - Fee Related JP3269639B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05156191A JP3269639B2 (en) 1991-03-15 1991-03-15 Method of parallel execution of program loop

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05156191A JP3269639B2 (en) 1991-03-15 1991-03-15 Method of parallel execution of program loop

Publications (2)

Publication Number Publication Date
JPH04286031A true JPH04286031A (en) 1992-10-12
JP3269639B2 JP3269639B2 (en) 2002-03-25

Family

ID=12890398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05156191A Expired - Fee Related JP3269639B2 (en) 1991-03-15 1991-03-15 Method of parallel execution of program loop

Country Status (1)

Country Link
JP (1) JP3269639B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07325806A (en) * 1994-06-01 1995-12-12 Nec Corp Process assignment method for multiprocessor system
WO2011158460A1 (en) * 2010-06-14 2011-12-22 パナソニック株式会社 Multi-threaded parallel execution device, broadcast stream playback device, broadcast stream storage device, stored stream playback device, stored stream re-encoding device, integrated circuit, multi-threaded parallel execution method, and multi-threaded compiler

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07325806A (en) * 1994-06-01 1995-12-12 Nec Corp Process assignment method for multiprocessor system
WO2011158460A1 (en) * 2010-06-14 2011-12-22 パナソニック株式会社 Multi-threaded parallel execution device, broadcast stream playback device, broadcast stream storage device, stored stream playback device, stored stream re-encoding device, integrated circuit, multi-threaded parallel execution method, and multi-threaded compiler
US8850171B2 (en) 2010-06-14 2014-09-30 Panasonic Corporation Multithreaded parallel execution device, broadcast stream playback device, broadcast stream storage device, stored stream playback device, stored stream re-encoding device, integrated circuit, multithreaded parallel execution method, and multithreaded compiler
JP5945779B2 (en) * 2010-06-14 2016-07-05 パナソニックIpマネジメント株式会社 Multi-thread parallel execution device, broadcast stream playback device, broadcast stream storage device, stored stream playback device, stored stream re-encoding device, integrated circuit, multi-thread parallel execution method, multi-thread compiler

Also Published As

Publication number Publication date
JP3269639B2 (en) 2002-03-25

Similar Documents

Publication Publication Date Title
US5867711A (en) Method and apparatus for time-reversed instruction scheduling with modulo constraints in an optimizing compiler
JP2921190B2 (en) Parallel execution method
JPH0475139A (en) Loop parallelizing system
Kessler Scheduling expression DAGs for minimal register need
JPH04286031A (en) Parallel execution processing method for loop of program
JPH04293150A (en) Compiling method
Wang et al. An efficient algorithm for irregular redistributions in parallelizing compilers
Singh et al. A path coverage-based reduction of test cases and execution time using parallel execution
JP2841403B2 (en) Loop optimization processing method
JP3006505B2 (en) Apparatus and method for modifying a program including a parallel process, and a storage medium for storing the modified program
JP2564904B2 (en) Program optimization processing method
JPH0573607A (en) Vector instruction generation processing method
JPH0512033A (en) Parallel compiling system
JPH08221276A (en) Compiler
JP2870218B2 (en) Parallel execution instruction sequence generation method
JPS62169272A (en) Unrolling processing system for vector arithmetic string loop
Koseki et al. A global code scheduling technique using guarded PDG
JPH0644270B2 (en) Vector processor control processing method
JPH02236732A (en) Source program generating system
Breshears et al. MIMD versus SIMD computation: Experience with non-numeric parallel algorithms
JPH03172958A (en) Synchronous processing method, system and method for parallel processing, and parallel program generator
JPH0399329A (en) Objective program generating system
JPH0291766A (en) Control dependence analyzing system
Arató et al. Optimizing algorithms for system level synthesis
JPH0713962A (en) Compiler device

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20011225

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

Free format text: PAYMENT UNTIL: 20080118

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090118

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100118

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees