JP2002358293A - System, method and program for load distribution at run- time - Google Patents
System, method and program for load distribution at run- timeInfo
- Publication number
- JP2002358293A JP2002358293A JP2001165177A JP2001165177A JP2002358293A JP 2002358293 A JP2002358293 A JP 2002358293A JP 2001165177 A JP2001165177 A JP 2001165177A JP 2001165177 A JP2001165177 A JP 2001165177A JP 2002358293 A JP2002358293 A JP 2002358293A
- Authority
- JP
- Japan
- Prior art keywords
- data
- program
- load distribution
- load
- runtime
- 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
Links
Landscapes
- Multi Processors (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、分散メモリ型計算
機システムに関し、特に、データ並列プログラムの実行
時に、分散メモリ型計算機システムを構成する各プロセ
ッサ・エレメント(PE)に配置するデータのデータ幅を動
的に変更する実行時負荷分散システムに関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a distributed memory type computer system, and more particularly, to a data width of data arranged in each processor element (PE) constituting a distributed memory type computer system when a data parallel program is executed. The present invention relates to a dynamically changing runtime load balancing system.
【0002】[0002]
【従来の技術】分散メモリ型計算機システムとは、各々
がローカルメモリを持つ複数のPEが、相互結合網(ネッ
トワーク)で結合された構造の計算機システムである。
通常、データは各PEのローカルメモリに分散して配置さ
れる。2. Description of the Related Art A distributed memory type computer system is a computer system having a structure in which a plurality of PEs each having a local memory are connected by an interconnection network.
Normally, data is distributed and located in the local memory of each PE.
【0003】逐次ソースプログラムから分散メモリ型計
算機システム向けの並列プログラムを生成するコンパイ
ラは、ソースプログラムに現れるデータ(配列)を、各
PEのローカルメモリ上に分割・配置する。A compiler for generating a parallel program for a distributed memory type computer system from a sequential source program converts data (array) appearing in the source program into each program.
Divide and place on PE local memory.
【0004】複数のPEへのデータの分割・配置に基づく
並列処理をデータ並列処理と呼ぶ。データの分割・配置
によって並列化されるプログラムをデータ並列プログラ
ムと呼び、データの分割・配置によってプログラムを並
列化するプログラミング言語をデータ並列言語と呼ぶ。[0004] Parallel processing based on the division and arrangement of data into a plurality of PEs is called data parallel processing. A program that is parallelized by dividing and arranging data is called a data parallel program, and a programming language that parallelizes the program by dividing and arranging data is called a data parallel language.
【0005】データの分割にはさまざまな手法がある
が、代表的な手法の一つとしてブロック(BLOCK) 分割が
知られている。BLOCK 分割は、データの分割対象となる
次元方向をPE数に等しい個数の断片に分割する。そし
て、各PEにできるだけ等分に、連続した要素を配置す
る。There are various methods for dividing data. One of the typical methods is block division. The BLOCK division divides the dimension direction to be divided into pieces equal in number to the number of PEs. Then, continuous elements are arranged in each PE as evenly as possible.
【0006】BLOCK 分割の例を図9に示す。図9(1)
のような要素数1000の1次元配列Aを考える。A(m:n)
という表記は、配列Aの第m番目から第n番目までの要
素を表す。例えばA(1:1000)は、配列Aの第1番目から
第1000番目までの要素である。一方、図9(2)は、こ
の配列AをPE1 からPE4 までの4個のPEにBLOCK 分割し
た状態である。1000個の要素を持つ配列Aを4分割し
て、250 個の要素を持つ4個の断片とする。そしてA(1:
250)をPE1 に、A(251:500)をPE2 に、A(501:750)をPE3
に、A(751:1000) をPE4 に配置する。FIG. 9 shows an example of BLOCK division. FIG. 9 (1)
Consider a one-dimensional array A having 1000 elements as shown in FIG. A (m: n)
Represents the m-th to n-th elements of the array A. For example, A (1: 1000) is the first to 1000th elements of array A. On the other hand, FIG. 9 (2) shows a state in which this array A is divided into four PEs from PE1 to PE4 by BLOCK. Array A having 1000 elements is divided into four parts to obtain four fragments having 250 elements. And A (1:
250) to PE1, A (251: 500) to PE2, A (501: 750) to PE3
Then, place A (751: 1000) in PE4.
【0007】BLOCK 分割ではデータをほぼ均等な幅で分
割するが、データを不均等な幅で分割する手法もある。
データ並列言語High Performance Fortran(HPF) の公認
拡張仕様(High Performance Fortran 2.0公式マニュア
ル, High Performance Fortran Forum, シュプリンガー
・フェアラーク東京(1999)) では、このような分割をGE
N_BLOCK 分割と呼ぶ。[0007] In the BLOCK division, data is divided into substantially equal widths, but there is a method of dividing data into unequal widths.
The officially extended specification of the High Performance Fortran (HPF) data parallel language (High Performance Fortran 2.0 Official Manual, High Performance Fortran Forum, Springer Verlag Tokyo (1999)) describes such partitioning as GE
N_BLOCK This is called division.
【0008】GEN_BLOCK 分割では、BLOCK 分割と同様
に、データの分割対象となる次元方向をPE数に等しい個
数の断片に分割し、各PEに連続した要素を配置する。こ
のときGEN_BLOCK 分割では、BLOCK 分割とは異なり、断
片の幅を任意に変えることができる。従ってGEN_BLOCK
分割では、データを不均等な幅で分割することも、ある
いはBLOCK 分割と同様に均等な幅で分割することも可能
である。In the GEN_BLOCK division, similarly to the BLOCK division, the dimension direction to be divided is divided into pieces equal in number to the number of PEs, and continuous elements are arranged in each PE. At this time, the width of the fragment can be arbitrarily changed in the GEN_BLOCK division, unlike the BLOCK division. Therefore GEN_BLOCK
In the division, it is possible to divide the data into unequal widths, or to divide the data into equal widths like the BLOCK division.
【0009】GEN_BLOCK 分割の例を図10に示す。図1
0(1)のような要素数1000の1次元配列Aを考える。
一方、図10(2)は、この配列AをPE1 からPE4 まで
の4個のPEにGEN_BLOCK 分割した状態である。1000個の
要素を持つ配列Aを4分割して、300 個(A(1:300))をPE
1 に、200 個(A(301:500))をPE2 に、400 個(A(501:90
0))をPE3 に、100 個(A(901:1000)) をPE4 に配置す
る。FIG. 10 shows an example of GEN_BLOCK division. FIG.
Consider a one-dimensional array A such as 0 (1) having 1000 elements.
On the other hand, FIG. 10 (2) shows a state in which the array A is divided into GEN_BLOCKs by four PEs from PE1 to PE4. Array A having 1000 elements is divided into four parts, and 300 (A (1: 300)) are PE
1, 200 pieces (A (301: 500)) to PE2, 400 pieces (A (501: 90)
0)) is allocated to PE3 and 100 (A (901: 1000)) are allocated to PE4.
【0010】HPF プログラムにおいてGEN_BLOCK 分割の
分割幅を指定する例を図11に示す。図11は図10の
ようなGEN_BLOCK 分割を行うHPF プログラムである。GE
N_BLOCK 分割を行うには、PE数に等しい要素数を持つ整
数型の配列を用意する。図11では配列MAP がこれに該
当する。次にFortran 言語のDATA文などを用いて、各々
のPEに対応する分割幅を配列MAP に設定する。図11で
は配列MAP の第1番目の要素(MAP(1))がPE1 に、MAP(2)
がPE2 に、MAP(3)がPE3 に、MAP(4)がPE4 に対応した分
割幅を表す。最後にHPF のDISTRIBUTE指示文を用いて、
配列AをGEN_BLOCK 分割する。「GEN_BLOCK(MAP)」とい
う記述は「分割幅として配列MAP を用いたGEN_BLOCK 分
割」を意味する。FIG. 11 shows an example of specifying the division width of the GEN_BLOCK division in the HPF program. FIG. 11 shows an HPF program for performing GEN_BLOCK division as shown in FIG. GE
To perform N_BLOCK division, prepare an integer type array with the number of elements equal to the number of PEs. In FIG. 11, the array MAP corresponds to this. Next, the division width corresponding to each PE is set in the array MAP using a Fortran language DATA statement or the like. In FIG. 11, the first element (MAP (1)) of the array MAP is assigned to PE1, and MAP (2)
Indicates the division width corresponding to PE2, MAP (3) corresponds to PE3, and MAP (4) corresponds to PE4. Finally, using the HPF DISTRIBUTE directive,
Array A is divided into GEN_BLOCK. The description “GEN_BLOCK (MAP)” means “GEN_BLOCK division using array MAP as division width”.
【0011】分割されたデータに対して、各PEが自PEに
対応するローカルメモリ上に配置されたデータの断片に
関する処理を担当し、全PEが並列に処理を進めることに
よって、全体の処理時間を短縮することができる。なぜ
なら、巨大なデータを用いる多くの科学技術計算プログ
ラムの処理時間はデータの大きさに比例するからであ
る。データを断片に分割することによって、各々の断片
に要する処理時間は元のデータの処理時間よりも短縮さ
れる。従って、断片に対する処理を並列化することによ
り、全体の処理時間を短縮することが可能となる。Each PE is in charge of processing of a fragment of data arranged on the local memory corresponding to the own PE with respect to the divided data, and all PEs perform processing in parallel. Can be shortened. This is because the processing time of many scientific and technical calculation programs using huge data is proportional to the size of the data. By dividing the data into fragments, the processing time required for each fragment is shorter than the processing time of the original data. Therefore, by parallelizing the processing for the fragments, it is possible to reduce the entire processing time.
【0012】データ並列処理において処理時間の短縮を
達成するためには、データの断片を並列に処理する各PE
の処理時間をできるだけ均等にしなければならない。こ
のように並列に動作する複数のPE間で処理を適切に配分
することを負荷分散という。In order to achieve a reduction in processing time in data parallel processing, each PE for processing data fragments in parallel is required.
Processing time must be as uniform as possible. Such proper distribution of processing among a plurality of PEs operating in parallel is called load distribution.
【0013】あるプログラムに関するPE間の計算速度比
が、プログラムを実行する以前に判明している場合、手
作業ではあるが、GEN_BLOCK 分割を用いて負荷分散を行
うことができる。すなわち、各PEの計算速度に比例した
分割幅でデータをGEN_BLOCK分割し、各々のPEに配置す
れば良い。If the calculation speed ratio between PEs for a certain program is known before executing the program, the load can be distributed by using GEN_BLOCK partitioning, though it is manual. That is, the data may be divided into GEN_BLOCKs with a division width proportional to the calculation speed of each PE, and may be arranged in each PE.
【0014】プログラムを実行する以前にPE間の計算速
度比が判明していない場合や、プログラムの実行時にPE
間の計算速度比が変化する場合、GEN_BLOCK 分割を用い
て適切な負荷分散を行うためには、プログラムの実行時
に収集した情報を用いてPE間の計算速度比を算出し、計
算速度比に基づいてデータの分割幅を調整することによ
って負荷分散を行う必要がある。このような負荷分散を
自動的に行う従来の技術は存在せず、また手作業で実現
するのは困難である。If the calculation speed ratio between PEs is not known before executing the program,
If the calculation speed ratio changes between the PEs, the appropriate calculation of the calculation speed ratio between the PEs is performed based on the information collected during program execution in order to perform appropriate load distribution using the GEN_BLOCK partition. It is necessary to perform load distribution by adjusting the data division width. There is no conventional technique for automatically performing such load distribution, and it is difficult to implement it manually.
【0015】負荷分散に関してはさまざまな従来の技術
が存在するが、データ並列プログラムにおいて、PE間の
計算速度比に基づいて自動的にデータの分割幅を調整す
ることによって負荷分散を行う従来の技術は存在しな
い。There are various conventional techniques for load distribution, but in a data parallel program, a conventional technique for automatically adjusting the data division width based on the calculation speed ratio between PEs to perform load distribution. Does not exist.
【0016】例えば「分散メモリ計算機における負荷分
散方式」(特開平5−73515号公報)は、並列実行
単位の生成、その単位間の通信、同期を行う動作体と、
この動作体が動作する仮想共有空間とを有する並列プロ
グラミングシステムを用いて記述された並列プログラム
を分散メモリ並列計算機上で実行し、その履歴をとり、
この履歴に基づき、並列に動作するプロセスを各プロセ
ッサに分配する技術である。この技術は並列に動作する
プロセスに関する負荷分散を実現するものであり、デー
タ並列プログラムにおいてデータの分割幅を調整する負
荷分散とは異なる。For example, the "load distribution method in a distributed memory computer" (Japanese Patent Laid-Open No. Hei 5-73515) discloses an operation unit for generating a parallel execution unit, communicating between the units, and synchronizing the units.
A parallel program described using a parallel programming system having a virtual shared space in which this operating body operates is executed on a distributed memory parallel computer, and the history is taken.
This is a technique for distributing processes operating in parallel to each processor based on this history. This technique realizes load distribution for processes operating in parallel, and is different from load distribution for adjusting the data division width in a data parallel program.
【0017】別の例で、例えば「分散計算機環境におけ
るオブジェクトの最適分散配置方法」(特願平11−7
3108号公報)は、分散オブジェクトに関して、分散
計算機間の接続関係、オブジェクト間の依存関係、各計
算機の計算負荷の情報を基に、オブジェクトを最適な計
算機に配置する技術である。この技術は分散オブジェク
ト処理に関する負荷分散を実現するものであり、データ
並列プログラムにおいてデータの分割幅を調整する負荷
分散とは異なる。In another example, for example, "Optimal distributed arrangement method of objects in distributed computer environment" (Japanese Patent Application No. 11-7)
Japanese Patent Application Laid-Open No. 3108) is a technique for allocating an object to an optimal computer based on information on a connection relationship between distributed computers, a dependency relationship between objects, and a calculation load of each computer. This technique realizes load distribution related to distributed object processing, and is different from load distribution that adjusts a data division width in a data parallel program.
【0018】[0018]
【発明が解決しようとする課題】GEN_BLOCK 分割を用い
た従来の負荷分散方法には次のような問題がある。The conventional load distribution method using GEN_BLOCK division has the following problems.
【0019】第1の問題点は、種類や性能が異なる複数
のPEを結合した分散メモリ型計算機システムに対して、
有効な負荷分散ができないことである。その理由は、種
類や性能が異なるPEの計算速度比は、PEの種類や性能と
プログラムの性質との相性に依存するため、プログラム
の実行以前には判らないからである。計算速度比がプロ
グラムの実行以前に判明していない場合、従来の方法で
は適切な負荷分散ができない。The first problem is that a distributed memory type computer system in which a plurality of PEs having different types and different performances are combined is
The inability to effectively distribute the load. The reason is that the calculation speed ratio of PEs having different types and performances is not known before the execution of the program because it depends on the compatibility between the types and performances of the PEs and the properties of the program. If the calculation speed ratio is not known before the execution of the program, the conventional method cannot perform an appropriate load distribution.
【0020】第2の問題点は、プログラムの実行中に負
荷状況が変化する計算機システムに対して有効な負荷分
散ができないことである。その理由は、あるプログラム
に関するPE間の計算速度比は、他のプログラムやオペレ
ーティングシステムなどの負荷状態に応じて随時変化す
るからである。計算速度比がプログラムの実行中に変化
する場合、従来の方法では適切な負荷分散ができない。The second problem is that effective load distribution cannot be performed on a computer system whose load status changes during execution of a program. The reason is that the calculation speed ratio between PEs regarding a certain program changes at any time according to the load state of another program or operating system. If the calculation speed ratio changes during the execution of the program, the conventional method cannot properly distribute the load.
【0021】[0021]
【発明の目的】そこで、本発明の目的は、種類や性能が
異なる複数のPEを結合した分散メモリ型計算機システム
に対して、適切な負荷分散が可能な実行時負荷分散シス
テムを提供することにある。SUMMARY OF THE INVENTION Accordingly, an object of the present invention is to provide a runtime load distribution system capable of appropriately distributing a load to a distributed memory type computer system in which a plurality of PEs having different types and performances are connected. is there.
【0022】また本発明の他の目的は、プログラムの実
行中に負荷状況が変化する分散メモリ型計算機システム
に対して、適切な負荷分散が可能な実行時負荷分散シス
テムを提供することにある。It is another object of the present invention to provide a runtime load distribution system capable of appropriately distributing a load to a distributed memory type computer system in which the load situation changes during execution of a program.
【0023】[0023]
【課題を解決するための手段】本発明の実行時負荷分散
システムは、データ並列プログラムを変形してモニタリ
ング情報の収集を可能とするためのモニタリング用プロ
グラム変換部(図1の103)と、モニタリング情報
(図1の112)を利用してプログラムの実行時に最適
なデータ分割幅を算出する最適負荷分散決定部(図1の
113)と、算出したデータ分割幅に基づいて負荷の再
分散を行う負荷再分散実行部(図1の114)を有す
る。A runtime load distribution system according to the present invention comprises a monitoring program conversion unit (103 in FIG. 1) for transforming a data parallel program to enable collection of monitoring information; An optimum load distribution determining unit (113 in FIG. 1) that calculates an optimal data division width at the time of executing a program using information (112 in FIG. 1), and performs load distribution based on the calculated data division width. It has a load redistribution execution unit (114 in FIG. 1).
【0024】この構成によれば、各PEの処理時間が均等
になり、本発明の第1の目的を達成することができる。According to this configuration, the processing time of each PE becomes equal, and the first object of the present invention can be achieved.
【0025】また、本発明の実行時負荷分散システム
は、最適負荷分散決定部(図1の113)が実行時間の
変化を監視し必要に応じて最適なデータ分割幅の算出を
複数回に渡って行い、負荷再分散実行部(図1の11
4)が、最適負荷分散決定部(図1の113)でデータ
分割幅が算出される毎に、上記データ分割幅に従ってデ
ータの再配置を行う。Further, in the runtime load distribution system of the present invention, the optimum load distribution determination unit (113 in FIG. 1) monitors the change in the execution time and calculates the optimum data division width a plurality of times as necessary. The load redistribution execution unit (11 in FIG. 1)
4), every time the data division width is calculated by the optimum load distribution determination unit (113 in FIG. 1), the data is rearranged according to the data division width.
【0026】この構成によれば、負荷状況の変化したPE
が発生した場合、各PEの処理時間が均等になるように、
データの再配置が行われるので、本発明の第2の目的を
達成することができる。According to this configuration, the PE whose load condition has changed is
Occurs, so that the processing time of each PE is equal,
Since the data is rearranged, the second object of the present invention can be achieved.
【0027】[0027]
【発明の実施の形態】次に本発明の実施の形態について
図面を参照して詳細に説明する。Embodiments of the present invention will now be described in detail with reference to the drawings.
【0028】図1を用いて、本発明の第1の実施の形態
について詳細に説明する。本発明の第1の実施の形態に
係る実行時負荷分散システム102は、モニタリング用
プログラム変換部103と、実行時負荷分散制御部11
1とを含む。更に、実行時負荷分散システム102に
は、記録媒体Kが接続されている。この記録媒体Kは、
フロッピィディスク,ハードディスク,CD-ROM,半導体
メモリ,その他の記録媒体であり、コンピュータを実行
時負荷分散システム102として機能させるためのプロ
グラムが記録されている。このプログラムは、コンピュ
ータからなる実行時負荷分散システム102によって読
み取られ、その動作を制御することで実行時負荷分散シ
ステム102上に、モニタリング用プログラム変換部1
03、実行時負荷分散制御部111を実現する。なお、
本実施の形態では、実行時負荷分散システム102を計
算機システム109とは別のコンピュータを用いて実現
したが,計算機システム109を用いて実現しても良
い。A first embodiment of the present invention will be described in detail with reference to FIG. The runtime load distribution system 102 according to the first embodiment of the present invention includes a monitoring program conversion unit 103 and a runtime load distribution control unit 11.
1 is included. Further, a recording medium K is connected to the runtime load distribution system 102. This recording medium K is
It is a floppy disk, a hard disk, a CD-ROM, a semiconductor memory, or another recording medium in which a program for causing a computer to function as the runtime load distribution system 102 is recorded. This program is read by the runtime load distribution system 102 composed of a computer, and by controlling its operation, the monitoring program conversion unit 1 is placed on the runtime load distribution system 102.
03, implement the runtime load distribution control unit 111. In addition,
In the present embodiment, the runtime load distribution system 102 is realized using a computer different from the computer system 109, but may be realized using the computer system 109.
【0029】モニタリング用プログラム変換部103
は、プログラム解析部104と、プログラム変換部10
5とを含む。Monitoring program converter 103
Are the program analysis unit 104 and the program conversion unit 10
5 is included.
【0030】プログラム解析部104は、ソースプログ
ラム101を入力とし、それに含まれている配列宣言、
HPF 指示文、負荷分散制御指示文などを解析し、解析情
報をプログラム変換部105に出力する。ソースプログ
ラム101は、負荷分散の対象となるソースレベルのデ
ータ並列プログラムである。ソースプログラム101
は、負荷分散を制御するための指示文を含む。負荷分散
を制御するための指示文を負荷分散制御指示文と呼ぶ。The program analysis unit 104 receives the source program 101 as an input, and executes an array declaration,
It analyzes HPF directives, load distribution control directives, and the like, and outputs analysis information to the program conversion unit 105. The source program 101 is a source-level data parallel program to be load-balanced. Source program 101
Includes a directive for controlling load distribution. A directive for controlling load distribution is referred to as a load distribution control directive.
【0031】プログラム変換部105は、プログラム解
析部104からの解析情報に基づいてソースプログラム
101を変形し、実行時負荷分散制御部111に接続可
能な変換済みプログラム106を生成する。The program conversion unit 105 transforms the source program 101 based on the analysis information from the program analysis unit 104 to generate a converted program 106 connectable to the runtime load distribution control unit 111.
【0032】並列化処理部107は、変換済みプログラ
ム106を入力とし、変換済みプログラム106におけ
るデータ分割情報や通信情報を解析して、変換済みプロ
グラム106を並列化する。The parallelization processing unit 107 receives the converted program 106 as input, analyzes data division information and communication information in the converted program 106, and parallelizes the converted program 106.
【0033】実行可能プログラム生成部108は、並列
化処理部107が並列化した変換済みプログラム106
を入力とし、プログラムの実行環境となる計算機システ
ム109における実行可能プログラム110を生成す
る。The executable program generator 108 converts the converted program 106 parallelized by the parallel processor 107.
To generate an executable program 110 in the computer system 109 which is an execution environment of the program.
【0034】計算機システム109は、各々がローカル
メモリを持つ複数のPEが相互結合網で結合された構造の
計算機システムである。The computer system 109 is a computer system having a structure in which a plurality of PEs each having a local memory are connected by an interconnection network.
【0035】実行時負荷分散制御部111は、モニタリ
ング情報112と、最適負荷分散決定部113と、負荷
再分散実行部114と、負荷分散情報115と、計算時
間測定部116とを含む。The runtime load distribution control unit 111 includes monitoring information 112, an optimal load distribution determination unit 113, a load redistribution execution unit 114, load distribution information 115, and a calculation time measurement unit 116.
【0036】モニタリング情報112は、実行可能プロ
グラム110の実行時に収集する情報である。モニタリ
ング情報112は、実行可能プログラム110に関する
各PEの計算時間等をなどを含む。The monitoring information 112 is information collected when the executable program 110 is executed. The monitoring information 112 includes the calculation time of each PE regarding the executable program 110 and the like.
【0037】計算時間測定部116は、計算機システム
109を構成する各PEの計算時間を測定し、それをモニ
タリング情報112として記録する。The calculation time measuring section 116 measures the calculation time of each PE constituting the computer system 109 and records it as monitoring information 112.
【0038】最適負荷分散決定部113は、モニタリン
グ情報112と負荷分散情報115を入力として、最適
なデータ分割幅を算出し、負荷再分散(データの再配
置)に必要なデータの移動量から通信時間を見積もっ
て、負荷の再分散を実行するか否かを決定する。The optimum load distribution determining unit 113 receives the monitoring information 112 and the load distribution information 115 as inputs, calculates an optimum data division width, and determines a communication width based on a data movement amount necessary for load rebalancing (data rearrangement). Estimate the time and determine whether to perform load redistribution.
【0039】負荷再分散実行部114は、最適負荷分散
決定部113の決定に基づいてデータの再配置を実行
し、負荷分散情報115を更新する。負荷分散情報11
5は、実行可能プログラム110の実行時における負荷
分散の状態を表す情報である。負荷分散情報115は、
実行可能プログラム110における各PE毎のデータ分割
幅情報などを含む。The load rebalancing execution unit 114 executes data relocation based on the determination of the optimum load distribution determining unit 113, and updates the load balancing information 115. Load balancing information 11
Reference numeral 5 denotes information indicating a state of load distribution when the executable program 110 is executed. The load balancing information 115 is
The information includes data division width information for each PE in the executable program 110.
【0040】次に図2を用いて、計算機システム109
の構成に関して説明する。Next, referring to FIG.
Will be described.
【0041】計算機システム109は、プロセッサとロ
ーカルメモリを組み合わせたプロセッサ・エレメント(P
E1〜PEn)21−1〜21−nを、相互結合網(ネットワ
ーク)22で接続した構造である。データは、各PEのロ
ーカルメモリに分散して配置される。The computer system 109 includes a processor element (P) combining a processor and a local memory.
E1 to PEn) 21-1 to 21-n are connected by an interconnection network (network) 22. Data is distributed and placed in the local memory of each PE.
【0042】[0042]
【動作の説明】次に、本実施の形態の動作について詳細
に説明する。[Description of Operation] Next, the operation of this embodiment will be described in detail.
【0043】先ず、プログラム解析部104が、ソース
プログラム101の配列宣言、HPF指示文、負荷分散制
御指示文などを解析し、解析情報をプログラム変換部1
05に渡す。プログラム変換部105は、解析情報に基
づいてソースプログラム101を変形し、実行時負荷分
散制御部111に接続可能な変換済みプログラム106
を生成する。First, the program analysis unit 104 analyzes an array declaration, an HPF directive, a load distribution control directive, and the like of the source program 101, and converts the analysis information to the program conversion unit 1.
Hand over to 05. The program conversion unit 105 transforms the source program 101 based on the analysis information, and converts the converted program 106 connectable to the runtime load distribution control unit 111.
Generate
【0044】その後、並列化処理部107が、変換済み
プログラム106を並列化し、更に、実行可能プログラ
ム生成部108が実行可能プログラム110を生成す
る。After that, the parallel processing unit 107 parallelizes the converted program 106, and the executable program generation unit 108 generates an executable program 110.
【0045】実行可能プログラム110が計算機システ
ム109上で起動されると、実行時負荷分散制御部11
1内の計算時間測定部116は、計算機システム109
を構成する各PEの計算時間を測定し、それをモニタリン
グ情報112として記録する。計算時間とは、プログラ
ム中の処理Rに関して、各PEが計算のために要した時間
である。計算時間の測定対象となる処理Rは、ソースプ
ログラム101中の負荷分散制御指示文によって指定さ
れる。When the executable program 110 is started on the computer system 109, the runtime load distribution control unit 11
1 is a computer system 109
Is calculated and recorded as monitoring information 112. The calculation time is the time required by each PE for calculation for the processing R in the program. The processing R for which the calculation time is to be measured is specified by a load distribution control directive in the source program 101.
【0046】一方、最適負荷分散決定部113,負荷再
分散実行部114は、図3の流れ図に示す処理を行う。
尚、ステップ31〜35は、最適負荷分散決定部113
の処理を示し、ステップ36,37は、負荷再分散実行
部114の処理を示している。On the other hand, the optimum load distribution determining unit 113 and the load redistribution executing unit 114 perform the processing shown in the flowchart of FIG.
Steps 31 to 35 are performed by the optimum load distribution determination unit 113.
Steps 36 and 37 show the processing of the load redistribution execution unit 114.
【0047】ステップ31では、モニタリング情報11
2中の各PEの計算時間を基に、計算機システム109を
構成する各PE間の計算速度比を予測する。In step 31, the monitoring information 11
Based on the calculation time of each PE in 2, the calculation speed ratio between the PEs configuring the computer system 109 is predicted.
【0048】最適負荷分散決定部113は、処理Rに関
するモニタリング情報112を基に、次回処理Rを再び
実行するときに計算時間を最短にするための負荷分散を
決定することを目的とする。また、全てのPEは処理Rを
1回実行するたびに、同期処理を行うとする。The purpose of the optimum load distribution determining unit 113 is to determine the load distribution for minimizing the calculation time when the next process R is executed again, based on the monitoring information 112 on the process R. Also, it is assumed that every PE performs the synchronization process every time the process R is performed once.
【0049】PE数をn個、PE番号をk=1,2,...,n とし、
各々のPEをPEk と表す。そして、PEk の計算時間をTkと
し、計算速度をSkとする。Let the number of PEs be n and the PE number be k = 1,2, ..., n,
Each PE is designated PEk. Then, the calculation time of PEk is Tk, and the calculation speed is Sk.
【0050】PEk の計算速度Skは計算時間Tkに反比例す
ると考えられる。従ってPE間の計算速度比は次式(1)
に示すものとなる。The calculation speed Sk of PEk is considered to be inversely proportional to the calculation time Tk. Therefore, the calculation speed ratio between PEs is given by the following equation (1).
It becomes what is shown in.
【0051】 S1 : S2 : … : Sk : … : Sn =1/T1 : 1/T2 : … : 1/Tk : … : 1/Tn …(1)S1: S2:…: Sk:…: Sn = 1 / T1: 1 / T2:…: 1 / Tk:…: 1 / Tn (1)
【0052】ステップ32では、ステップ31で求めた
PE間の計算速度比を基に、最適なデータ分割幅を求め
る。最適なデータ分割幅とは、PE間の計算速度比に比例
した分割幅である。PE間の計算速度比に比例した分割幅
でデータを分割し、各々のPEに分散配置することによっ
て、各々のPEの処理時間を均等にすることが可能とな
り、全体の処理時間を短縮できる。In step 32, the value obtained in step 31 is obtained.
The optimum data division width is determined based on the calculation speed ratio between PEs. The optimum data division width is a division width proportional to the calculation speed ratio between PEs. By dividing the data with a division width proportional to the calculation speed ratio between the PEs and distributing the data to the respective PEs, the processing time of each PE can be equalized, and the overall processing time can be reduced.
【0053】計算速度比Skのk=1,2,…,nに関する総和S1
+S2+…+Sn をSsumと表す。また、分割前のデータの幅を
Wとする。分割前のデータの幅とは、分割の対象となる
データ(配列) の、分割の対象となる次元の要素数であ
る。The sum S1 of the calculation speed ratio Sk with respect to k = 1, 2,..., N
+ S2 + ... + Sn is represented as Ssum. Further, the width of the data before division is represented by W. The width of the data before division is the number of elements of the dimension to be divided of the data (array) to be divided.
【0054】Sk、Ssum、Wを用いると、PEk に対する最
適なデータ分割幅Mkは、次式(2)で表すことができ
る。Using Sk, Ssum, and W, the optimum data division width Mk for PEk can be expressed by the following equation (2).
【0055】Mk=W×Sk÷Ssum …(2)Mk = W × Sk ÷ Ssum (2)
【0056】ステップ33では、式(2)で求めた最適
なデータ分割幅と、負荷分散情報115と、モニタリン
グ情報112とを基に、負荷再分散によって現在のデー
タ分割幅を最適なデータ分割幅に変更したときに達成で
きる、計算時間の短縮量を予測する。In step 33, based on the optimum data division width obtained by the equation (2), the load distribution information 115 and the monitoring information 112, the current data division width is changed to the optimum data division width by load redistribution. Predict the amount of calculation time reduction that can be achieved when changing to
【0057】PEk に現在(負荷再分散以前)配置されて
いるデータの分割幅をLkとする。また、負荷再分散後の
PEk の計算時間の予測値をFkとする。Tk、Mk、Lkを用い
ると、Fkは次式(3)に示すものとなる。Let Lk be the division width of the data currently placed in PEk (before load rebalancing). Also, after load rebalancing
Let Fk be the predicted value of PEk calculation time. Using Tk, Mk, and Lk, Fk is given by the following equation (3).
【0058】Fk=Tk×Mk÷Lk …(3)Fk = Tk × Mk ÷ Lk (3)
【0059】k=1,2,...,n に関するTkの最大値をMax(T
k) 、Fkの最大値をMax(Fk) と表すと、負荷再分散によ
って達成できる処理Rの計算時間の短縮量Tcalc は、次
式(4)で求めることができる。The maximum value of Tk for k = 1, 2,..., N is defined as Max (T
If the maximum values of k) and Fk are expressed as Max (Fk), the amount of reduction Tcalc in the calculation time of the processing R that can be achieved by the load redistribution can be obtained by the following equation (4).
【0060】 Tcalc=Max(Tk) −Max(Fk) …(4)Tcalc = Max (Tk) −Max (Fk) (4)
【0061】ステップ34では、負荷分散情報115
と、ステップ32で求めた最適なデータ分割幅と、モニ
タリング情報112とを基に、負荷再分散のためのデー
タ通信に要する時間を予測する。In step 34, load balancing information 115
And the optimum data division width obtained in step 32 and the monitoring information 112, the time required for data communication for load rebalancing is predicted.
【0062】負荷再分散によってPEk に配置するデータ
分割幅はLkからMkに変更される。データ分割幅がLkのと
き、PEk に配置するのは分割対象となる次元において第
LLk+1 番目から第LHk 番目までのデータとする。同様
に、データ分割幅がMkのとき、PEk に配置するのは分割
対象となる次元において第MLk+1 番目から第MHk 番目ま
でのデータとする。LLk 、LHk 、MLk 、MHk は次式(5
−1)〜(5−4)で表すことができる。なお、式(5
−1)〜(5−4)においてsum(範囲:式) は指定した
範囲における式の値の和を表すものとする。例えばsum
(x=1,k : Ln) はL1からLkまでの和を表す。The data division width allocated to PEk is changed from Lk to Mk by load redistribution. When the data division width is Lk, the data is placed in PEk in the dimension to be divided.
The data is from LLk + 1 to LHkth data. Similarly, when the data division width is Mk, what is arranged in PEk is the MLk + 1-th to MHk-th data in the dimension to be divided. LLk, LHk, MLk, and MHk are expressed by the following equation (5
-1) to (5-4). The expression (5)
In (-1) to (5-4), sum (range: expression) represents the sum of the values of the expression in the specified range. For example, sum
(x = 1, k: Ln) represents the sum from L1 to Lk.
【0063】 LLk=sum(x=1,k-1 : Lk) …(5−1) LHk=sum(x=1,k : Lk) …(5−2) MLk=sum(x=1,k-1 : Mk) …(5−3) MHk=sum(x=1,k : Mk) …(5−4) 但し、式(5−1),(5−3)において、k=1 の時に
は、LLk=0 、MLk=0 とする。LLk = sum (x = 1, k−1: Lk) (5-1) LHk = sum (x = 1, k: Lk) (5-2) MLk = sum (x = 1, k) -1: Mk) (5-3) MHk = sum (x = 1, k: Mk) (5-4) However, in the equations (5-1) and (5-3), when k = 1, , LLk = 0 and MLk = 0.
【0064】LLk 、LHk 、MLk 、MHk を用いると、負荷
再分散に伴ってPEi からPEj に転送されるデータの分割
次元における幅Dij は、次式(6−1),(6−2)で
表すことができる。なお、式(6−1),(6−2)に
おいて、Min(LHi,MHj)は、LHi とMHj のうち値が小さい
ものを、Max(LLi,MLj)は、LLi とMLj のうち値が大きい
ものを表す。また、i,jは、PEの台数がn台である場
合、1≦i≦n,1≦j≦nとなり、最適負荷分散決定
部113は、i,jの全ての組み合わせについて式(6
−1),(6−2)に示す演算を行う。When LLk, LHk, MLk, and MHk are used, the width Dij in the division dimension of the data transferred from PEi to PEj with the load redistribution is given by the following equations (6-1) and (6-2). Can be represented. In Equations (6-1) and (6-2), Min (LHi, MHj) represents the smaller value of LHi and MHj, and Max (LLi, MLj) represents the smaller value of LLi and MLj. Represent a large one. Further, i and j are 1 ≦ i ≦ n and 1 ≦ j ≦ n when the number of PEs is n, and the optimum load distribution determination unit 113 determines the formula (6) for all combinations of i and j.
-1) and (6-2).
【0065】 ・ i≠j かつ LLi< MHjかつ MLj< LHiのとき Dij=Min(LHi,MHj)−Max(LLi,MLj) …(6−1) ・ i=j または LLi≧ MHjまたは MLj≧ LHiのとき Dij=0 …(6−2)When i ≠ j and LLi <MHj and MLj <LHi, Dij = Min (LHi, MHj) −Max (LLi, MLj) (6-1) i = j or LLi ≧ MHj or MLj ≧ LHi When Dij = 0 (6-2)
【0066】PEi からPEj に対して分割次元における幅
がDij のデータを転送するために要する時間をUij とす
る。Uij の決定には幾つかの方法が考えられる。例え
ば、プログラムを実行する以前にPE間の通信速度を計測
しておき、この通信速度とデータ幅Dij とに基づいて時
間Uij を決定する方法がある。The time required to transfer data having a width of Dij in the divided dimension from PEi to PEj is defined as Uij. There are several ways to determine Uij. For example, there is a method in which the communication speed between PEs is measured before executing the program, and the time Uij is determined based on the communication speed and the data width Dij.
【0067】負荷再分散に伴ってn個のPE間でデータを
通信するために要する時間をTcommとする。PE間の相互
結合網の性質や通信の方式によって、Tcomm の決定には
幾つかの方法が考えられる。次式(7)では各々のPE間
の通信を全て逐次に行う場合のTcomm の予測値を示す
が、幾つかの独立したPEの組の通信を並行に進められる
場合、Tcomm は式(7)よりも小さい値になる。式
(7)は予測される最長の通信時間である。The time required for data communication between n PEs with the load redistribution is defined as Tcomm. There are several ways to determine Tcomm, depending on the nature of the interconnection network between PEs and the type of communication. The following equation (7) shows the predicted value of Tcomm when all the communications between the PEs are performed sequentially, but if the communications of several independent sets of PEs can proceed in parallel, Tcomm becomes the equation (7) Will be smaller than Equation (7) is the predicted longest communication time.
【0068】 Tcomm =sum(j=1,n : sum(i=1,n : Uij)) …(7)Tcomm = sum (j = 1, n: sum (i = 1, n: Uij)) (7)
【0069】ステップ35では、ステップ33で予測し
た計算時間の短縮量と、ステップ34で予測した負荷再
分散に要する通信時間とを比較して、計算時間の短縮量
が負荷再分散に要する通信時間を上回るならばステップ
36に進む。計算時間の短縮量が負荷再分散に要する通
信時間を下回るならば最適負荷分散決定部113の処理
を終了し、負荷再分散実行部114の処理は行わない。In step 35, the amount of reduction in calculation time predicted in step 33 is compared with the communication time required for load redistribution predicted in step 34, and the amount of reduction in calculation time is determined as the communication time required for load redistribution. If so, the process proceeds to step 36. If the amount of reduction in the calculation time is shorter than the communication time required for load redistribution, the processing of the optimal load distribution determining unit 113 ends, and the processing of the load redistribution executing unit 114 is not performed.
【0070】ステップ33で予測した計算時間の短縮量
は式(4)のTcalc である。ステップ34で予測した負
荷再分散に要する通信時間は式(7)のTcomm である。
ステップ35では、Tcalc >Tcomm ならばステップ36
に進む。The amount of reduction in calculation time predicted in step 33 is Tcalc in equation (4). The communication time required for load redistribution predicted in step 34 is Tcomm in equation (7).
In step 35, if Tcalc> Tcomm, step 36
Proceed to.
【0071】ステップ36、37は、負荷再分散実行部
114の処理である。Steps 36 and 37 are the processing of the load redistribution execution unit 114.
【0072】ステップ36では、負荷分散情報115
と、ステップ32で求めた最適なデータ分割幅を基に、
負荷再分散において転送の必要があるデータの範囲と、
通信スケジュールを決定する。In step 36, the load balancing information 115
And the optimal data division width obtained in step 32,
The range of data that needs to be transferred for load rebalancing,
Determine the communication schedule.
【0073】負荷再分散において転送の必要があるデー
タの範囲は、ステップ34の式(6−1),(6−2)
を利用して決定できる。通信スケジュールに関しては、
PE間の相互結合網の性質や通信の方式に応じて、最短時
間でデータ転送を完了できる方法を選択する。The range of data that needs to be transferred in the load redistribution is determined by equations (6-1) and (6-2) in step 34.
Can be determined using Regarding the communication schedule,
Select a method that can complete data transfer in the shortest time according to the nature of the interconnection network between PEs and the communication method.
【0074】ステップ37では、ステップ36で決定し
た転送すべきデータの範囲と通信スケジュールとを基
に、PE間通信を用いてデータ転送を実行する。In step 37, data transfer is executed using PE communication based on the range of data to be transferred determined in step 36 and the communication schedule.
【0075】次に、具体的な実施例を挙げて本実施の形
態の動作を説明する。Next, the operation of this embodiment will be described with reference to specific examples.
【0076】配列Aが現れる図4のようなHPF プログラ
ムを考える。Consider an HPF program as shown in FIG.
【0077】図4の(1)は、要素数1000個の配列Aの
宣言文である。FIG. 4A is a declaration statement of an array A having 1000 elements.
【0078】図4の(2)は、要素数4個のプロセッサ
配列Pの宣言を行うHPF 指示文である。FIG. 4B shows an HPF directive for declaring a processor array P having four elements.
【0079】図4の(3)は、配列Aをプロセッサ配列
Pに対してMAP が表す分割幅で割り付けるための負荷分
散制御指示文の例である。FIG. 4C shows an example of a load distribution control instruction for allocating the array A to the processor array P at the division width indicated by MAP.
【0080】図4の(4)の「DO T=1,5000 」から「EN
D DO」までの外側ループでは、繰り返し毎に全PEの同期
処理を行う。In FIG. 4 (4), “DO T = 1,5000” to “EN
In the outer loop up to “D DO”, the synchronization processing of all PEs is performed at each iteration.
【0081】図4の(5)の「!DYN$ BALANCE MAP 」
と、図4の(6)の「!DYN$ END BALANCE 」は、実行時
負荷分散を適用する範囲(負荷分散の対象となる処理)
を定めるための負荷分散制御指示文の例である。[! DYN $ BALANCE MAP] in (5) of FIG.
And “! DYN $ END BALANCE” in (6) of FIG. 4 indicates the range to which runtime load balancing is applied (processing subject to load balancing).
5 is an example of a load distribution control instruction statement for determining the value.
【0082】図4の(7)の「DO I=1,1000 」から「EN
D DO」までの内側ループは、PE間で並列に処理される。
各PEにはMAP で表す分割幅に基づいて配列Aが配置され
る。各PEは各々のローカルメモリに配置された配列Aの
断片に関する処理を行う。In FIG. 4 (7), “DO I = 1,1000” to “EN”
The inner loop up to “D DO” is processed in parallel between PEs.
An array A is arranged in each PE based on the division width represented by MAP. Each PE performs a process related to the fragment of the array A arranged in each local memory.
【0083】図1と図3を用いて、図4のプログラムに
対する動作を説明する。The operation of the program shown in FIG. 4 will be described with reference to FIGS. 1 and 3.
【0084】プログラム解析部104は、図4のプログ
ラムにおける配列宣言、HPF 指示文、負荷分散制御指示
文などを解析し、解析情報をプログラム変換部105に
渡す。プログラム変換部105は、解析情報に基づい
て、図4のプログラムを変形し、実行時負荷分散制御部
111に接続可能な変換済みプログラム106を生成す
る。図4のプログラムに対する変形済みプログラム10
6の一例を図5に示す。The program analysis unit 104 analyzes the array declaration, the HPF instruction, the load distribution control instruction, and the like in the program of FIG. 4, and passes the analysis information to the program conversion unit 105. The program conversion unit 105 transforms the program in FIG. 4 based on the analysis information, and generates a converted program 106 connectable to the runtime load distribution control unit 111. Modified program 10 for the program of FIG.
An example of No. 6 is shown in FIG.
【0085】図5に示した変換済みプログラム106
は、呼び出し文(4)’,(5)’によって実行時負荷
分散制御部111に接続可能にされている。プログラム
変換部105は、負荷分散の対象となる処理の開始位
置,終了位置を示す負荷分散制御指示文をそれぞれ図5
に示す呼び出し文(4)’,(5)’に変換する機能を
有しており、この機能により、図4に示した負荷分散制
御指示文(5),(6)がそれぞれ図5の呼び出し文
(4)’,(5)’に変換される。つまり、プログラム
解析部104の解析情報に基づいて、図4の文(5),
(6)が、負荷分散の対象となる処理の開始位置,終了
位置を示す負荷分散制御指示文であることを認識するこ
とにより、プログラム変換部105は、図4の負荷分散
制御指示文(5),(6)をそれぞれ図5の呼び出し文
(4)’,(5)’に変換する。The converted program 106 shown in FIG.
Can be connected to the runtime load distribution control unit 111 by calling statements (4) ′ and (5) ′. The program conversion unit 105 sends a load distribution control instruction statement indicating a start position and an end position of the process to be load-balanced, respectively, as shown in FIG.
5 is converted into the call statements (4) ′ and (5) ′ shown in FIG. 5, and the load balancing control instruction statements (5) and (6) shown in FIG. It is converted into sentences (4) 'and (5)'. That is, based on the analysis information of the program analysis unit 104, the sentence (5) of FIG.
By recognizing that (6) is a load distribution control instruction indicating the start position and the end position of the processing to be load distributed, the program conversion unit 105 executes the load distribution control instruction (5 ) And (6) are converted into call statements (4) ′ and (5) ′ in FIG. 5, respectively.
【0086】更に、プログラム変換部105は、プログ
ラム変換部104の解析情報に基づいて、データ分割幅
を保持する配列MAP の宣言、配列MAP の初期値の設定処
理、およびデータの初期分割処理を挿入する機能を有し
ている。この機能により、プログラム変換部105は、
プログラム解析部104から渡される、配列宣言文
(1)、HPF 指示文(2)及び負荷分散制御指示文
(3)の解析情報に基づいて、図5に示すように、配列
MAP の宣言文(1)’や、初期値の設定処理(2)’
や、データの初期分割処理(3)’を変換済みプログラ
ム106に挿入する。Further, the program conversion unit 105 inserts a declaration of the array MAP holding the data division width, a process of setting an initial value of the array MAP, and a process of initial data division based on the analysis information of the program conversion unit 104. It has the function to do. With this function, the program conversion unit 105
Based on the analysis information of the array declaration statement (1), the HPF directive statement (2), and the load distribution control directive statement (3) passed from the program analysis unit 104, as shown in FIG.
MAP declaration (1) 'and initial value setting (2)'
Alternatively, the data division process (3) ′ is inserted into the converted program 106.
【0087】図5における配列MAP のk番目の要素が、
PEk に配置する配列Aの分割幅となる。また、配列MAP
の4個の要素の初期値は、配列Aの分割次元の要素数10
00をプロセッサ配列の要素数4で等分した250 とする。
従って、配列MAP の要素の値は、順に250,250,250,250
となる。The k-th element of the array MAP in FIG.
This is the division width of the array A arranged in PEk. Also, the array MAP
The initial values of the four elements are 10 elements in the array A
00 is 250 equally divided by the number of elements 4 in the processor array.
Therefore, the values of the elements of the array MAP are 250, 250, 250, 250
Becomes
【0088】上述のように生成された変換済みプログラ
ム106は、並列化処理部107及び実行可能プログラ
ム生成部108によって実行可能プログラム110に変
換される。HPF プログラムの場合、並列化処理部107
としてHPF コンパイラを、実行可能プログラム生成部1
08としてFortran コンパイラを利用すれば、実行可能
プログラム110を得ることができる。The converted program 106 generated as described above is converted into an executable program 110 by the parallel processing unit 107 and the executable program generation unit 108. In the case of an HPF program, the parallel processing unit 107
HPF compiler as executable program generator 1
If a Fortran compiler is used as 08, the executable program 110 can be obtained.
【0089】図4の外側ループ(4)の初回の繰り返し
において、配列AのPEk に配置する分割幅Lkは、図6に
示すように「250,250,250,250 」である。各PEは、配列
Aの250 個の要素に関して並列に処理を行う。In the first iteration of the outer loop (4) in FIG. 4, the division width Lk arranged in the PEk of the array A is “250, 250, 250, 250” as shown in FIG. Each PE performs parallel processing on the 250 elements of array A.
【0090】また、各PEは、内側ループ(7)の実行開
始時および実行終了時に、呼び出し文(4)’,
(5)’に従って実行時負荷分散制御部111を呼び出
す。その際、各PEは、実行開始時の呼び出し(実行開始
時呼び出し)なのか、実行終了時の呼び出し(実行終了
時呼び出し)なのかを区別する情報と、自PEのPE番号を
実行時負荷分散制御部111に送る。At the start and end of the execution of the inner loop (7), each PE calls the call statements (4) ′,
The runtime load distribution control unit 111 is called according to (5) ′. At this time, each PE uses information for distinguishing whether it is a call at the start of execution (call at the start of execution) or a call at the end of execution (call at the end of execution), and the PE number of its own PE at the time of load balancing at the time of execution. Send to control unit 111.
【0091】実行時負荷分散制御部111内の計算時間
測定部116は、各PEからの最初の実行開始時呼び出
し,実行終了時呼び出しに基づいて、各PEに於ける内側
ループ(7)の計算時間を測定し、モニタリング情報1
12に記録する。具体的には、或るPEk から最初の実行
開始時呼び出しが行われた時、その時刻を記録してお
き、その後、上記PEk から最初の実行終了時呼び出しが
行われたとき、現在時刻から上記記録しておいた時刻を
差し引くことにより、上記PEk における内側ループ
(7)の計算時間を測定する。尚、この例では、最初の
実行開始時呼び出し,実行終了時呼び出しに基づいて、
計算時間を測定するようにしたが、2回目以降の呼び出
しに基づいて計算時間を測定してもよい。計算時間測定
部116は、計算機システム109を構成する全てのPE
の計算時刻をモニタリング情報112に記録すると、最
適負荷分散決定部113を起動する。The calculation time measuring unit 116 in the runtime load distribution control unit 111 calculates the inner loop (7) in each PE based on the first execution start call and the execution end call from each PE. Measure time and monitor information 1
Record at 12. More specifically, when the first execution start call is made from a certain PEk, the time is recorded, and then, when the first execution end call is made from the PEk, the time is recorded from the current time. The calculation time of the inner loop (7) in PEk is measured by subtracting the recorded time. In this example, based on the first execution start call and the first execution end call,
Although the calculation time is measured, the calculation time may be measured based on the second and subsequent calls. The calculation time measuring unit 116 is provided for all the PEs constituting the computer system 109.
When the calculation time of is calculated in the monitoring information 112, the optimum load distribution determination unit 113 is activated.
【0092】これにより、最適負荷分散決定部113
は、モニタリング情報112に記録された各PEの計算時
間に基づいて、PE間の計算速度比を求める(図3のステ
ップ31)。ここで、各PE1,PE2,PE3,PE4 における内側
ループ(7)の計算時間Tkが、図6のように「100,150,
75,300」であったとすると、速度比Skは「3:2:4:1 」と
なる。Thus, the optimum load distribution determining unit 113
Calculates the calculation speed ratio between PEs based on the calculation time of each PE recorded in the monitoring information 112 (step 31 in FIG. 3). Here, the calculation time Tk of the inner loop (7) in each of PE1, PE2, PE3, and PE4 is “100, 150,
If the speed ratio is 75,300, the speed ratio Sk becomes "3: 2: 4: 1".
【0093】その後、最適負荷分散決定部113は、ス
テップ32において最適なデータ分割幅を求める。前出
の式(2)によれば各PE1,PE2,PE3,PE4 に対する最適な
分割幅Mkは、図6のように「300,200,400,100 」とな
る。Thereafter, the optimum load distribution determining unit 113 calculates the optimum data division width in step 32. According to the above equation (2), the optimum division width Mk for each of PE1, PE2, PE3, and PE4 is "300, 200, 400, 100" as shown in FIG.
【0094】次のステップ33では計算時間の短縮量Tc
alc を予測する。前出の式(3)により、データの再配
置後の各PE1,PE2,PE3,PE4 における計算時間の予測値Fk
は、図6のように「120,120,120,120 」となる。更に、
前出の式(4)により短縮量Tcalc は、Tcalc =Max(T
k) − Max(Fk)=300 −120 =180 となる。In the next step 33, the shortening amount Tc of the calculation time is calculated.
Predict alc. According to the above equation (3), the predicted value Fk of the calculation time in each of the PE1, PE2, PE3, and PE4 after the data rearrangement.
Is "120,120,120,120" as shown in FIG. Furthermore,
According to the above equation (4), the shortening amount Tcalc is calculated as Tcalc = Max (T
k)-Max (Fk) = 300-120 = 180.
【0095】ステップ34では負荷再分散(データの再
配置)に要する通信時間を予測する。まず、前出の式
(5−1)〜(5−4)によりPEk に配置されるデータ
の範囲LLk 、LHk 、MLk 、MHk が図6のように求まる。In step 34, the communication time required for load rebalancing (data relocation) is predicted. First, the ranges LLk, LHk, MLk, and MHk of the data arranged in PEk are obtained as shown in FIG. 6 by the above-described equations (5-1) to (5-4).
【0096】次に、前出の式(6−1),(6−2)に
よりPEi からPEj に転送するデータの幅Dij が、図7の
ように求まる。図7は、PE2 からPE1 に幅50のデータ、
PE4からPE3 に幅150 のデータを転送することを表す。
データ転送を図示したのが図8である。Next, the width Dij of the data to be transferred from PEi to PEj is determined by the above equations (6-1) and (6-2) as shown in FIG. Figure 7 shows the data of width 50 from PE2 to PE1,
Indicates that data with a width of 150 is transferred from PE4 to PE3.
FIG. 8 illustrates the data transfer.
【0097】PEi からPEj に幅Dij のデータを転送する
ために要する時間Uij が、iとjの値に関わらず一定の
値「Dij ×0.5 」であるとすると、前出の式(7)によ
り負荷再分散に要する通信時間Tcomm は、Tcomm =sum
(j=1,n : sum(i=1,n : Uij))=50×0.5 +150 ×0.5 =
100 となる。Assuming that the time Uij required to transfer data of width Dij from PEi to PEj is a constant value “Dij × 0.5” regardless of the values of i and j, the above equation (7) is used. The communication time Tcomm required for load rebalancing is Tcomm = sum
(j = 1, n: sum (i = 1, n: Uij)) = 50 × 0.5 + 150 × 0.5 =
It will be 100.
【0098】ステップ35では計算時間の短縮量Tcalc
が負荷再分散に要する時間Tcomm を上回るかどうかを判
定する。この例の場合、Tcalc=180 、Tcomm=100 である
から、Tcalc >Tcomm である。従って、負荷再分散実行
部114によりステップ36、ステップ37が実行さ
れ、データの再配置が行われる。In step 35, the calculation time reduction amount Tcalc
Is longer than the time Tcomm required for load rebalancing. In this example, since Tcalc = 180 and Tcomm = 100, Tcalc> Tcomm. Therefore, steps 36 and 37 are executed by the load rebalancing execution unit 114, and data relocation is performed.
【0099】[0099]
【発明の他の実施の形態】次に、本発明の第2の実施の
形態について説明する。Next, a second embodiment of the present invention will be described.
【0100】上述した第1の実施の形態においては、実
行時負荷分散の対象となるデータ(配列)の初期分割
を、各PEにできるだけ均等な幅の断片を配置するBLOCK
分割とした。これに対し第2の実施の形態では、PE間の
計算速度比の概算値が予め判明している場合に、計算速
度比に基づいた比率でデータを初期分割するようにす
る。データの初期分割の決定は、プログラム変換部10
5が行う。例えば、ソースプログラム101が図4に示
すものであり、且つ4台のPEの計算速度比の概算値が
「3:2:4:1」である場合、各PEに初期分割するデ
ータ幅を「300,200,400,100 」と決定する。そして、図
5の(2)’に示した「DATA MAP/250,250,250,250/ 」
の代わりに「DATA MAP/300,200,400,100/ 」を挿入した
変換済みプログラム106を生成する。なお、PE間の計
算速度比の概算値は、例えば、図示を省略したキーボー
ド等の入力装置或いは磁気ディスクやCD-ROM等の記録媒
体からプログラム変換部105に入力される。In the first embodiment described above, the initial division of data (array) to be subjected to runtime load distribution is performed by using a BLOCK in which fragments having a width as uniform as possible are allocated to each PE.
It was divided. On the other hand, in the second embodiment, when an approximate value of the calculation speed ratio between PEs is known in advance, data is initially divided at a ratio based on the calculation speed ratio. The determination of the initial data division is performed by the program conversion unit 10.
5 does. For example, when the source program 101 is as shown in FIG. 4 and the approximate value of the calculation speed ratio of four PEs is “3: 2: 4: 1”, the data width to be initially divided into each PE is “ 300,200,400,100 ". Then, "DATA MAP / 250,250,250,250 /" shown in (2) 'of FIG.
, A converted program 106 in which “DATA MAP / 300, 200, 400, 100 /” is inserted. The approximate value of the calculation speed ratio between PEs is input to the program conversion unit 105 from an input device such as a keyboard (not shown) or a recording medium such as a magnetic disk or a CD-ROM.
【0101】一般に、計算速度比に基づいて決定したデ
ータの初期分割は、単純なBLOCK 分割に比べて、実行時
に測定した計算時間に基づいて決定した最適な分割に近
いと考えられる。従って第2の実施の形態では、第1の
実施の形態に比べて、負荷再分散に伴うデータ通信の量
を軽減できる。In general, it is considered that the initial division of data determined based on the calculation speed ratio is closer to the optimal division determined based on the calculation time measured at the time of execution than the simple BLOCK division. Therefore, in the second embodiment, the amount of data communication associated with the load redistribution can be reduced as compared with the first embodiment.
【0102】次に、本発明の第3の実施の形態について
説明する。Next, a third embodiment of the present invention will be described.
【0103】第1の実施の形態では、最適負荷分散決定
部113が、負荷再分散の対象となる処理Rに関して、
負荷再分散による処理Rの1回の実行に要する計算時間
の短縮量が、負荷再分散に伴うデータ通信に要する時間
を上回る場合に、負荷再分散を実行するようにしてい
る。第1の実施の形態の動作の説明に用いた図4のプロ
グラムの場合、処理Rに該当するのは内側ループ(7)
である。すなわち、負荷再分散による内側ループ(7)
の1回の実行に要する計算時間の短縮量が、負荷再分散
に伴うデータ通信に要する時間を上回る場合に、負荷再
分散を実行するようにしている。In the first embodiment, the optimum load distribution determining unit 113 determines that the processing R to be subjected to load redistribution
When the amount of reduction in the calculation time required for one execution of the processing R by the load redistribution exceeds the time required for data communication accompanying the load redistribution, the load redistribution is executed. In the case of the program of FIG. 4 used for describing the operation of the first embodiment, the processing R corresponds to the inner loop (7).
It is. That is, inner loop (7) due to load redistribution
When the amount of reduction in the calculation time required for one execution of is longer than the time required for data communication accompanying the load redistribution, the load redistribution is executed.
【0104】これに対し、第3の実施の形態では、最適
負荷分散決定部113が、負荷分散の対象となる処理R
がプログラムの全実行過程において複数回実行される場
合に、処理Rの複数回の実行に関する計算時間の短縮量
と、負荷再分散に伴うデータ通信に要する時間とを比較
する。On the other hand, in the third embodiment, the optimum load distribution determining unit 113 executes processing R to be subjected to load distribution.
Is executed a plurality of times in the entire execution process of the program, the amount of reduction in calculation time for the plurality of executions of the processing R is compared with the time required for data communication accompanying load rebalancing.
【0105】図4のプログラムにおいて、外側ループ
(4)の内側にある内側ループ(7)は、プログラムの
全実行過程においては5000回実行される。内側ループ
(7)に関するPE間の計算速度比がプログラムの全実行
過程を通じてほぼ一定である場合、負荷再分散を行う
と、以後の内側ループ(7)の全ての実行の計算時間が
短縮される。すなわち、内側ループ(7)を1回実行し
た後に負荷再分散を行った場合、初期分割による実行と
比べた計算時間の短縮量をTcalc とすると、内側ループ
(7)の第1回目の実行を除いた残り4999回の実行に関
する短縮量の合計は理想的にはTcalc ×4999となる。In the program shown in FIG. 4, the inner loop (7) inside the outer loop (4) is executed 5000 times in the entire execution process of the program. When the calculation speed ratio between PEs regarding the inner loop (7) is substantially constant throughout the entire execution process of the program, performing the load redistribution shortens the calculation time of all subsequent executions of the inner loop (7). . That is, in the case where the load redistribution is performed after executing the inner loop (7) once, if the amount of reduction in the calculation time as compared with the execution by the initial division is Tcalc, the first execution of the inner loop (7) is The total amount of shortening for the remaining 4999 executions is ideally Tcalc x 4999.
【0106】なお、短縮量の合計を求めるためには、内
側ループ(7)の繰り返し回数を最適負荷分散決定部1
13で認識することが必要になる。本実施の形態では、
次のようにして最適負荷分散決定部113が内側ループ
(7)の繰り返し回数を認識できるようにしている。即
ち、プログラム変換部105が変換済みプログラム10
6を生成する際に、内側ループ(7)の繰り返し回数を
モニタリング情報112に記録するための記録処理を変
換済みプログラム106に挿入しておき、プログラムの
実行時に上記記録処理によってモニタリング情報112
に内側ループ(7)の繰り返し回数を記録するようにす
る。最適負荷分散決定部113は、モニタリング情報1
12に基づいて、内側ループ(7)の繰り返し回数を認
識する。In order to obtain the total amount of shortening, the number of repetitions of the inner loop (7) is determined by the optimum load distribution determining unit 1.
It is necessary to recognize at 13. In the present embodiment,
The optimum load distribution determining unit 113 can recognize the number of repetitions of the inner loop (7) as follows. That is, the program conversion unit 105 converts the converted program 10
6 is generated, a recording process for recording the number of repetitions of the inner loop (7) in the monitoring information 112 is inserted into the converted program 106. When the program is executed, the monitoring information 112 is recorded by the recording process.
, The number of repetitions of the inner loop (7) is recorded. The optimum load distribution determining unit 113 checks the monitoring information 1
12, the number of repetitions of the inner loop (7) is recognized.
【0107】一方、負荷再分散に伴うデータ通信に要す
る時間をTcomm とすると、プログラムの全実行過程にお
いて初期分割による実行と比べた計算と通信を含めた処
理時間の短縮量Tallは次式(8)のように求まる。On the other hand, assuming that the time required for the data communication accompanying the load redistribution is Tcomm, the reduction amount Tall of the processing time including the calculation and the communication compared with the execution by the initial division in the entire execution process of the program is expressed by the following equation (8) ).
【0108】 Tall= Tcalc× 4999 − Tcomm …(8)Tall = Tcalc × 4999−Tcomm (8)
【0109】第3の実施の形態では、Tall>0 の場合に
負荷再分散を実行する。一般的には、負荷再分散の対象
となる処理Rをc回繰り返すプログラムで、d回の処理
Rの実行後に負荷再分散を行う場合、次式(9)で示す
Tallが0より大きければ負荷再分散を実行する。In the third embodiment, load rebalancing is executed when Tall> 0. Generally, in a program that repeats the process R to be subjected to load rebalancing c times, and performs the load rebalancing after executing the process R d times, the following formula (9) is used.
If Tall is greater than 0, load rebalancing is performed.
【0110】 Tall= Tcalc× (c-d)−Tcomm …(9)Tall = Tcalc × (c−d) −Tcomm (9)
【0111】第1の実施の形態では、負荷再分散の対象
となる処理Rの1回の実行に関して、計算時間の短縮量
がデータ通信に要する時間を上回る場合に負荷再分散を
実行する。一方、第3の実施の形態では、プログラムの
全実行過程において、処理Rの計算時間の短縮量の合計
がデータ通信に要する時間を上回る場合に負荷再分散を
実行する。処理Rを複数回実行する場合、第3の実施の
形態は第1の実施の形態に比べて、プログラムの全実行
過程における計算および通信を合わせた処理時間を短縮
することができる。In the first embodiment, with respect to one execution of the processing R to be subjected to the load redistribution, the load redistribution is executed when the reduction amount of the calculation time exceeds the time required for data communication. On the other hand, in the third embodiment, load rebalancing is performed when the total amount of reduction in the calculation time of the processing R exceeds the time required for data communication in the entire execution process of the program. When the process R is executed a plurality of times, the third embodiment can reduce the processing time including the calculation and the communication in the entire execution process of the program as compared with the first embodiment.
【0112】次に、本発明の第4の実施の形態について
説明する。Next, a fourth embodiment of the present invention will be described.
【0113】第1の実施の形態では、負荷分散の対象と
なる処理Rが最初に実行された時などに1回だけ、最適
負荷分散決定部113及び負荷再分散実行部114が、
図3の流れ図に示す処理を行う。In the first embodiment, the optimal load distribution determining unit 113 and the load redistribution executing unit 114 execute the process R once, for example, when the process R targeted for load distribution is first executed.
The processing shown in the flowchart of FIG. 3 is performed.
【0114】これに対して、第4の実施の形態では、計
算機システム109に状態変動が発生し、PE間の計算速
度比が変化する毎に、最適負荷分散決定部113及び負
荷再分散実行部114が図3の流れ図に示す処理を行
う。尚、PE間の計算速度比を変化させる計算機システム
109の状態変動としては、例えば、計算機システム1
09上で動作する他の実行可能プログラムの終了や、新
たな他の実行可能プログラムの起動などがある。On the other hand, in the fourth embodiment, each time a state change occurs in the computer system 109 and the calculation speed ratio between PEs changes, the optimum load distribution determining unit 113 and the load rebalancing execution unit 114 performs the processing shown in the flowchart of FIG. The state change of the computer system 109 for changing the calculation speed ratio between PEs includes, for example, the computer system 1
For example, there is an end of another executable program that runs on the server 09 or a start of another new executable program.
【0115】第4の実施の形態では、計算時間測定部1
16は、各PEが処理Rを所定回数(1回或いは複数回)
実行する毎に、各PEが処理Rの実行に要した計算時間を
測定し、それをモニタリング情報112に記録する。最
適負荷分散決定部113は、モニタリング情報112を
常時監視し、各PEの計算時間がモニタリング情報112
に新たに記録されると、各PE毎に前回記録された計算時
間と今回記録された計算時間との差分を求める。そし
て、差分が予め定められている閾値よりも大きいPEが1
つでも存在する場合は、図3の流れ図に示す処理を開始
する。尚、図3のステップ34では、PEi からPEj に対
して分割次元に於ける幅がDij のデータを転送するため
に要する時間Uij を使用するが、本実施の形態では、モ
ニタリング情報112に記録されているPE間の通信時間
情報およびPE間の通信量情報を用いてPE間の通信速度を
予測し、この予測した通信速度と転送するデータの幅Di
j とに基づいて時間Uij を予測する。尚、PE間の通信時
間及び通信量は、例えば、負荷再分散実行部114が、
負荷の再分散を実行する際に測定し、モニタリング情報
112に記録しておく。但し、第1回目の再分散を行う
前は、第1の実施の形態と同様にする。In the fourth embodiment, the calculation time measuring unit 1
16 is a predetermined number (one or more times) of processing R by each PE
Each time the processing is executed, the calculation time required for each PE to execute the processing R is measured and recorded in the monitoring information 112. The optimum load distribution determining unit 113 constantly monitors the monitoring information 112 and calculates the calculation time of each PE.
Then, a difference between the previously recorded calculation time and the currently recorded calculation time is obtained for each PE. Then, the PE whose difference is larger than a predetermined threshold is 1
If there is at least one, the process shown in the flowchart of FIG. 3 is started. Note that in step 34 of FIG. 3, the time Uij required to transfer data having a width of Dij in the divided dimension from PEi to PEj is used. In the present embodiment, the time Uij is recorded in the monitoring information 112. The communication speed between PEs is predicted using the communication time information between PEs and the communication amount information between PEs, and the predicted communication speed and the data width Di to be transferred are estimated.
Predict the time Uij based on j. The communication time and the communication amount between the PEs are, for example, the load redistribution execution unit 114,
It is measured when the load is redistributed and recorded in the monitoring information 112. However, before the first redistribution is performed, it is the same as in the first embodiment.
【0116】第4の実施の形態では、プログラムの実行
中に計算機システムの状態が変動し、PE間の計算速度比
が変化した場合でも、そのつど負荷再分散を実行するこ
とによって、適切な負荷分散状態を維持することができ
る。In the fourth embodiment, even when the state of the computer system fluctuates during the execution of the program and the calculation speed ratio between the PEs changes, the load re-distribution is executed each time, so that an appropriate load can be obtained. A dispersed state can be maintained.
【0117】[0117]
【発明の効果】第1の効果は、プログラムの実行時に計
測したモニタリング情報を基に、最適負荷分散決定部に
おいてPEの計算速度比に基づいたデータ分割幅を算出
し、算出したデータ分割幅に従って負荷再分散実行部が
負荷を再分散(データを再配置)することにより、プロ
グラムの実行以前にPEの計算速度比を知ることが難しい
計算機システム、特に種類や性能が異なる複数のPEを結
合した分散メモリ型計算機システムに対して、適切な負
荷分散ができることである。The first effect is that the optimum load distribution determining unit calculates a data division width based on the PE calculation speed ratio based on the monitoring information measured at the time of executing the program, and according to the calculated data division width. The load redistribution execution unit redistributes the load (relocates data), so that it is difficult to know the calculation speed ratio of PEs before executing the program, especially computer systems with different types and performances are combined. An appropriate load distribution can be performed on a distributed memory type computer system.
【0118】第2の効果は、プログラムの実行時に負荷
分散の対象となる処理の実行時間の変化を最適負荷分散
決定部が監視し、必要に応じて、最適負荷分散決定部に
よる最適データ分割幅の決定と、負荷再分散実行部によ
る負荷再分散を、複数回に渡って行うことにより、プロ
グラムの実行中に負荷状況が変化する計算機システムに
対して、適切な負荷分散ができることである。The second effect is that the optimum load distribution determining unit monitors a change in the execution time of the processing to be load distributed during the execution of the program, and, if necessary, the optimum data division width by the optimum load distribution determining unit. Is determined and the load redistribution by the load redistribution execution unit is performed a plurality of times, so that appropriate load distribution can be performed on a computer system whose load status changes during execution of the program.
【図1】本発明の第1、第2、第3および第4の実施の
形態の構成を示すブロック図である。FIG. 1 is a block diagram showing a configuration of first, second, third and fourth embodiments of the present invention.
【図2】本発明が実行される分散メモリ型計算機システ
ムの一構成例を示すブロック図である。FIG. 2 is a block diagram showing a configuration example of a distributed memory computer system on which the present invention is executed.
【図3】本発明の最適負荷分散決定部113および負荷
再分散実行部114の処理例を示す流れ図である。FIG. 3 is a flowchart showing a processing example of an optimum load distribution determining unit 113 and a load redistribution executing unit 114 according to the present invention.
【図4】第1の実施の形態の動作を説明するためのソー
スプログラム101の例を示す図である。FIG. 4 is a diagram showing an example of a source program 101 for explaining an operation of the first embodiment.
【図5】図4のソースプログラム101に基づいて生成
された変換済みプログラム106の例を示す図である。FIG. 5 is a diagram showing an example of a converted program 106 generated based on the source program 101 of FIG.
【図6】第1の実施の形態の動作の説明において、最適
負荷分散決定部113が計算に用いるパラメータを示す
図である。FIG. 6 is a diagram illustrating parameters used for calculation by the optimum load distribution determining unit 113 in the description of the operation of the first embodiment.
【図7】第1の実施の形態の動作の説明において、最適
負荷分散決定部113が算出したPE間のデータ通信の幅
を示す図である。FIG. 7 is a diagram illustrating the width of data communication between PEs calculated by the optimum load distribution determining unit 113 in the description of the operation of the first embodiment.
【図8】第1の実施の形態の動作の説明において、最適
負荷分散決定部が算出したPE間のデータ通信を図示した
概念図である。FIG. 8 is a conceptual diagram illustrating data communication between PEs calculated by the optimum load distribution determining unit in the description of the operation of the first embodiment.
【図9】BLOCK 分割の概念を説明するための例である。FIG. 9 is an example for explaining the concept of BLOCK division.
【図10】GEN_BLOCK 分割の概念を説明するための例で
ある。FIG. 10 is an example for explaining the concept of GEN_BLOCK division.
【図11】GEN_BLOCK 分割を用いたHPF プログラムの例
である。FIG. 11 is an example of an HPF program using GEN_BLOCK division.
101…ソースプログラム 102…実行時負荷分散システム 103…モニタリング用プログラム変換部 104…プログラム解析部 105…プログラム変換部 106…変換済みプログラム 107…並列化処理部 108…実行可能プログラム生成部 109…計算機システム 110…実行可能プログラム 111…実行時負荷分散制御部 112…モニタリング情報 113…最適負荷分散決定部 114…負荷再分散実行部 115…負荷分散情報 116…計算時間測定部 21−1〜21−n…プロセッサ・エレメント(PE) 22…相互結合網(ネットワーク) K…記録媒体 DESCRIPTION OF SYMBOLS 101 ... Source program 102 ... Runtime load distribution system 103 ... Monitoring program conversion part 104 ... Program analysis part 105 ... Program conversion part 106 ... Converted program 107 ... Parallel processing part 108 ... Executable program generation part 109 ... Computer system 110 executable program 111 runtime load distribution control unit 112 monitoring information 113 optimal load distribution determination unit 114 load rebalancing execution unit 115 load distribution information 116 computation time measurement units 21-1 to 21-n Processor element (PE) 22 ... Interconnection network (network) K ... Recording medium
Claims (22)
ータ並列プログラムを実行する複数のプロセッサ・エレ
メントそれぞれのモニタリング情報に基づいて、データ
を前記複数のプロセッサ・エレメントに分割・配置する
際の最適なデータ分割幅を求め、該求めたデータ分割幅
に基づいてデータの再配置を行うことを特徴とする実行
時負荷分配システム。An optimal data for dividing and arranging data in a plurality of processor elements based on monitoring information of each of a plurality of processor elements executing the data parallel program when executing the data parallel program. A runtime load distribution system, wherein a division width is obtained, and data is rearranged based on the obtained data division width.
リング情報の収集を可能にするモニタリング用プログラ
ム変換部と、 変形されたデータ並列プログラムの実行時に、前記変形
されたデータ並列プログラムを実行する複数のプロセッ
サ・エレメントそれぞれのモニタリング情報に基づい
て、データを前記複数のプロセッサ・エレメントに分割
・配置する際の最適なデータ分割幅を算出する最適負荷
分散決定部と、 該最適負荷分散決定部で算出されたデータ分割幅に基づ
いてデータの再配置を行う負荷再分散実行部とを備えた
ことを特徴とする実行時負荷分散システム。2. A monitoring program conversion unit that enables collection of monitoring information by modifying a data parallel program, and a plurality of processors that execute the modified data parallel program when the modified data parallel program is executed. An optimum load distribution determining unit that calculates an optimum data division width when dividing and arranging data into the plurality of processor elements based on the monitoring information of each element; A runtime load distribution system, comprising: a load redistribution execution unit that relocates data based on a data division width.
において、 前記各プロセッサ・エレメントのモニタリング情報は、
前記各プロセッサ・エレメントが、前記データ並列プロ
グラム中の負荷分散制御指示文によって指定された処理
の実行に要した計算時間であり、 データの再配置を行うことにより達成される前記負荷分
散制御指示文によって指定された処理に対する計算時間
の短縮量と、データの再配置を行うために必要になる通
信時間とに基づいて、データの再配置を行うか否かを決
定することを特徴とする実行時負荷分散システム。3. The runtime load balancing system according to claim 1, wherein the monitoring information of each processor element is:
The load balancing control instruction, which is a calculation time required for each processor element to execute a process specified by the load balancing control instruction in the data parallel program, and is achieved by relocating data. Determining whether or not to perform data relocation based on the amount of reduction in calculation time for the process specified by (i) and the communication time required to perform data relocation. Load balancing system.
において、 前記変形されたデータ並列プログラムの実行中に、前記
各プロセッサ・エレメントが前記データ並列プログラム
中の負荷分散制御指示文によって指定された処理の実行
に要した計算時間を前記各プロセッサ・エレメントのモ
ニタリング情報として収集する計算時間測定部を備え、
且つ、 前記最適負荷分散決定部が、データの再配置を行うこと
により達成される前記負荷分散制御指示文によって指定
された処理に対する計算時間の短縮量と、データの再配
置を行うために必要になる通信時間とに基づいて、デー
タの再配置を行うか否かを決定する構成を有することを
特徴とする実行時負荷分散システム。4. The runtime load distribution system according to claim 2, wherein during execution of the modified data parallel program, each of the processor elements is specified by a load distribution control instruction statement in the data parallel program. A calculation time measuring unit that collects calculation time required for execution of processing as monitoring information of each processor element,
In addition, the optimum load distribution determining unit is required to reduce the calculation time for the process specified by the load distribution control instruction statement achieved by performing the data relocation, and to perform the data relocation. A runtime load distribution system characterized by having a configuration for determining whether or not to relocate data based on a communication time.
システムにおいて、 前記各プロセッサ・エレメントに初期分割するデータの
データ幅を、予め判明している前記各プロセッサ・エレ
メント間の計算速度比の概算値に応じたデータ幅とする
ことを特徴とする実行時負荷分散システム。5. The runtime load distribution system according to claim 1, wherein a data width of data to be initially divided into each of said processor elements is calculated based on a calculation speed ratio between each of said processor elements which is known in advance. A runtime load distribution system, wherein the data width is set according to an approximate value.
システムにおいて、 前記モニタリング用プログラム変換部が、前記各プロセ
ッサ・エレメントに初期分割するデータのデータ幅を、
予め判明している前記各プロセッサ・エレメント間の計
算速度比の概算値に応じて決定する構成を有することを
特徴とする実行時負荷分散システム。6. The runtime load distribution system according to claim 2, wherein the monitoring program conversion unit sets a data width of data to be initially divided into each of the processor elements.
A runtime load distribution system, characterized in that the runtime load distribution system has a configuration that is determined according to an estimated value of a calculation speed ratio between the respective processor elements that is known in advance.
において、 負荷分散の対象となる処理を複数回実行する場合、デー
タの再配置を行うことにより達成されるデータ並列プロ
グラムの全実行過程における前記処理に対する計算時間
の短縮量を予測し、該予測した短縮量とデータの再配置
を行うために必要になる通信時間とに基づいてデータの
再配置を行うか否かを決定することを特徴とする実行時
負荷分散システム。7. The run-time load distribution system according to claim 1, wherein when the processing to be load-balanced is executed a plurality of times, the data parallel program is executed by executing the data rearrangement. Predicting the amount of reduction in calculation time for the processing, and determining whether to perform data rearrangement based on the predicted amount of reduction and the communication time required to perform data rearrangement. And a runtime load balancing system.
において、 前記最適負荷分散決定部が、負荷分散の対象となる処理
を複数回実行する場合、データの再配置を行うことによ
り達成されるデータ並列プログラムの全実行過程におけ
る前記処理に対する計算時間の短縮量を予測し、該予測
した短縮量とデータの再配置を行うために必要になる通
信時間とに基づいてデータの再配置を行うか否かを決定
する構成を有することを特徴とする実行時負荷分散シス
テム。8. The runtime load distribution system according to claim 2, wherein the optimal load distribution determining unit performs the data distribution when the processing to be subjected to load distribution is executed a plurality of times. Predict the amount of reduction in the calculation time for the processing in the entire execution process of the data parallel program, and perform data relocation based on the predicted amount of reduction and the communication time required to relocate the data? A runtime load distribution system, characterized in that the runtime load distribution system has a configuration for determining whether or not to perform the determination.
システムにおいて、 前記負荷分散の対象となる処理が、前記データ並列プロ
グラム中の負荷分散制御指示文によって指定された処理
であり、 前記各プロセッサ・エレメントのモニタリング情報は、
前記各プロセッサ・エレメントが、前記データ並列プロ
グラム中の負荷分散制御指示文によって指定された処理
の実行に要した計算時間であることを特徴とする実行時
負荷分散システム。9. The runtime load balancing system according to claim 7, wherein the processing to be load-balanced is processing specified by a load-balancing control directive in the data parallel program. The monitoring information of the processor element is
A runtime load distribution system, wherein each processor element is a calculation time required for executing a process specified by a load distribution control instruction statement in the data parallel program.
ムにおいて、 実行時間の変化を監視し、必要に応じてデータ分割幅の
決定とデータの再配置とを複数回に渡って行うことを特
徴とする実行時負荷分散システム。10. The runtime load distribution system according to claim 1, wherein a change in execution time is monitored, and a data division width is determined and data relocation is performed a plurality of times as necessary. And a runtime load balancing system.
ムにおいて、 前記最適負荷分散決定部が、実行時間の変化を監視し、
必要に応じてデータ分割幅の決定を複数回に渡って行う
構成を有し、 前記負荷再分散実行部が、前記最適負荷分散決定部でデ
ータ分割幅が決定される毎に決定されたデータ分割幅に
従ってデータの再配置を行う構成を有することを特徴と
する実行時負荷分散システム。11. The runtime load distribution system according to claim 2, wherein the optimal load distribution determination unit monitors a change in execution time,
A data division width determination unit that determines a data division width a plurality of times as necessary, wherein the load rebalancing execution unit determines the data division width each time the data division width is determined by the optimal load distribution determination unit; A runtime load distribution system having a configuration for rearranging data according to a width.
タリング情報の収集を可能にし、 変形されたデータ並列プログラムの実行時に、前記変形
されたデータ並列プログラムを実行する複数のプロセッ
サ・エレメントそれぞれのモニタリング情報に基づい
て、データを前記複数のプロセッサ・エレメントに分割
・配置する際の最適なデータ分割幅を算出し、 該算出されたデータ分割幅に基づいてデータの再配置を
行うことを特徴とする実行時負荷分散方法。12. The data parallel program is modified to enable collection of monitoring information, and when the modified data parallel program is executed, the monitoring information of each of a plurality of processor elements executing the modified data parallel program is added to the monitoring information. Calculating an optimum data division width when dividing and arranging data into the plurality of processor elements based on the calculated data division width, and rearranging the data based on the calculated data division width. Load balancing method.
において、 前記各プロセッサ・エレメントのモニタリング情報は、
前記各プロセッサ・エレメントが、前記データ並列プロ
グラム中の負荷分散制御指示文によって指定された処理
の実行に要した計算時間であり、 データの再配置を行うことにより達成される前記負荷分
散制御指示文によって指定された処理に対する計算時間
の短縮量と、データの再配置を行うために必要になる通
信時間とに基づいて、データの再配置を行うか否かを決
定することを特徴とする実行時負荷分散方法。13. The runtime load distribution method according to claim 12, wherein the monitoring information of each processor element is:
The load balancing control instruction, which is a calculation time required for each processor element to execute a process specified by the load balancing control instruction in the data parallel program, and is achieved by relocating data. Determining whether to perform data relocation based on the amount of reduction in calculation time for the process specified by, and the communication time required to perform data relocation. Load balancing method.
荷分散方法において、 前記各プロセッサ・エレメントに初期分割するデータの
データ幅を、予め判明している前記各プロセッサ・エレ
メント間の計算速度比の概算値に応じたデータ幅とする
ことを特徴とする実行時負荷分散方法。14. The run-time load distribution method according to claim 12, wherein a data width of data to be initially divided into the processor elements is calculated based on a calculation speed ratio between the processor elements which is known in advance. A runtime load distribution method, wherein a data width is set according to an approximate value.
において、 負荷分散の対象となる処理を複数回実行する場合、デー
タの再配置を行うことにより達成されるデータ並列プロ
グラムの全実行過程における前記処理に対する計算時間
の短縮量を予測し、該予測した短縮量とデータの再配置
を行うために必要になる通信時間とに基づいてデータの
再配置を行うか否かを決定することを特徴とする実行時
負荷分散方法。15. The run-time load balancing method according to claim 12, wherein when the processing to be load-balanced is executed a plurality of times, the data parallel program is executed in all of the execution steps of the data parallel program. Predicting the amount of reduction in calculation time for the processing, and determining whether to perform data rearrangement based on the predicted amount of reduction and the communication time required to perform data rearrangement. Run-time load balancing method.
において、 前記負荷分散の対象となる処理が、前記データ並列プロ
グラム中の負荷分散制御指示文によって指定された処理
であり、 前記各プロセッサ・エレメントのモニタリング情報は、
前記各プロセッサ・エレメントが、前記データ並列プロ
グラム中の負荷分散制御指示文によって指定された処理
の実行に要した計算時間であることを特徴とする実行時
負荷分散方法。16. The runtime load balancing method according to claim 15, wherein the processing to be load-balanced is processing specified by a load-balancing control instruction statement in the data parallel program. The monitoring information of the element
A runtime load balancing method, wherein each processor element is a calculation time required for executing a process specified by a load balancing control instruction statement in the data parallel program.
において、 実行時間の変化を監視し、必要に応じてデータ分割幅の
決定を複数回に渡って行い、 データ分割幅が決定される毎に決定されたデータ分割幅
に従ってデータの再配置を行うことを特徴とする実行時
負荷分散方法。17. The runtime load distribution method according to claim 12, wherein a change in execution time is monitored, and a data division width is determined a plurality of times as necessary. A runtime load balancing method, wherein data is rearranged in accordance with the data division width determined in (1).
集を可能にするモニタリング用プログラム変換処理と、 変形されたデータ並列プログラムの実行時に、前記変形
されたデータ並列プログラムを実行する複数のプロセッ
サ・エレメントそれぞれのモニタリング情報に基づい
て、データを前記複数のプロセッサ・エレメントに分割
・配置する際の最適なデータ分割幅を算出する最適負荷
分散決定処理と、 該最適負荷分散決定処理で算出されたデータ分割幅に基
づいてデータの再配置を行う負荷再分散実行処理とを実
行させることを特徴とするプログラム。18. A monitoring program conversion process for enabling a computer to collect a monitoring information by transforming a data parallel program, and executing the transformed data parallel program when the transformed data parallel program is executed. An optimal load distribution determining process for calculating an optimal data division width when dividing and arranging data into the plurality of processor elements based on monitoring information of each of the plurality of processor elements; A program for executing a load rebalancing execution process of relocating data based on a calculated data division width.
て、 前記各プロセッサ・エレメントのモニタリング情報は、
前記各プロセッサ・エレメントが、前記データ並列プロ
グラム中の負荷分散制御指示文によって指定された処理
の実行に要した計算時間であり、 前記最適負荷分散決定処理が、データの再配置を行うこ
とにより達成される前記負荷分散制御指示文によって指
定された処理に対する計算時間の短縮量と、データの再
配置を行うために必要になる通信時間とに基づいて、デ
ータの再配置を行うか否かを決定することを特徴とする
プログラム。19. The program according to claim 18, wherein the monitoring information of each processor element is:
The calculation time required for each processor element to execute a process specified by a load balancing control instruction statement in the data parallel program, and the optimal load balancing determining process is achieved by relocating data. Determining whether to perform data relocation based on the amount of reduction in calculation time for the process specified by the load balancing control instruction statement to be performed and the communication time required to perform data relocation. A program characterized by the following.
ムにおいて、 前記モニタリング用プログラム変換処理が、前記各プロ
セッサ・エレメントに初期分割するデータのデータ幅
を、予め判明している前記各プロセッサ・エレメント間
の計算速度比の概算値に応じて決定することを特徴とす
るプログラム。20. The program according to claim 18 or 19, wherein the monitoring program conversion processing is performed between the respective processor elements for which the data width of data to be initially divided into the respective processor elements is known in advance. A program which is determined according to an approximate value of a calculation speed ratio.
て、 前記最適負荷分散決定処理が、負荷分散の対象となる処
理を複数回実行する場合、データの再配置を行うことに
より達成されるデータ並列プログラムの全実行過程にお
ける前記処理に対する計算時間の短縮量を予測し、該予
測した短縮量とデータの再配置を行うために必要になる
通信時間とに基づいてデータの再配置を行うか否かを決
定することを特徴とするプログラム。21. The program according to claim 18, wherein the optimum load balancing determination process is performed by relocating data when executing a process to be load balanced a plurality of times. Predict the amount of reduction in calculation time for the processing in the entire execution process, and determine whether to perform data relocation based on the predicted amount of reduction and the communication time required to perform data relocation. A program characterized by the following.
て、 前記最適負荷分散決定処理が、実行時間の変化を監視
し、必要に応じてデータ分割幅の決定を複数回に渡って
行い、 前記負荷再分散実行処理が、前記最適負荷分散決定処理
でデータ分割幅が決定される毎に決定されたデータ分割
幅に従ってデータの再配置を行うことを特徴とするプロ
グラム。22. The program according to claim 18, wherein the optimum load distribution determining process monitors a change in execution time, and determines a data division width a plurality of times as necessary. A program wherein the execution process rearranges data in accordance with the data division width determined each time the data division width is determined in the optimum load distribution determination processing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001165177A JP2002358293A (en) | 2001-05-31 | 2001-05-31 | System, method and program for load distribution at run- time |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001165177A JP2002358293A (en) | 2001-05-31 | 2001-05-31 | System, method and program for load distribution at run- time |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002358293A true JP2002358293A (en) | 2002-12-13 |
Family
ID=19007882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001165177A Pending JP2002358293A (en) | 2001-05-31 | 2001-05-31 | System, method and program for load distribution at run- time |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002358293A (en) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006079341A (en) * | 2004-09-09 | 2006-03-23 | Mitsubishi Electric Corp | Distribution simulation system and program |
JP2007219913A (en) * | 2006-02-17 | 2007-08-30 | Hitachi Ltd | Polymer joint prediction system |
JP2007299406A (en) * | 2006-05-04 | 2007-11-15 | Internatl Business Mach Corp <Ibm> | System and method for scalably processing multi-route data stream correlation |
WO2007145238A1 (en) * | 2006-06-16 | 2007-12-21 | Nec Corporation | Information processing system, and load dispersing method |
JP2009075689A (en) * | 2007-09-19 | 2009-04-09 | Nec Corp | Data conversion system |
JP2011048757A (en) * | 2009-08-28 | 2011-03-10 | Fujitsu Ltd | Distributed processing type simulator |
WO2011058657A1 (en) * | 2009-11-16 | 2011-05-19 | 富士通株式会社 | Parallel computation device, parallel computation method, and parallel computation program |
WO2011070910A1 (en) * | 2009-12-07 | 2011-06-16 | 日本電気株式会社 | Data arrangement/calculation system, data arrangement/calculation method, master device, and data arrangement method |
US8438282B2 (en) | 2006-06-16 | 2013-05-07 | Nec Corporation | Information processing system and load sharing method |
US8612981B2 (en) | 2006-11-07 | 2013-12-17 | Sony Corporation | Task distribution method |
JP2014235734A (en) * | 2013-06-04 | 2014-12-15 | 富士通株式会社 | Process migration method, computer system operating to execute process migration, intermediate calculation resources in such system, and method of selecting calculation resources before partitioning for process migration method |
WO2015063885A1 (en) * | 2013-10-30 | 2015-05-07 | 株式会社日立製作所 | Parallel distributed processing system and data processing method |
WO2019082982A1 (en) * | 2017-10-26 | 2019-05-02 | 日本電気株式会社 | Distributed processing management device, distributed processing method, and computer-readable storage medium |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09218858A (en) * | 1996-02-14 | 1997-08-19 | Hitachi Ltd | Distributed type data base control system |
JPH09265403A (en) * | 1996-03-28 | 1997-10-07 | Hitachi Ltd | Data re-division evaluation method |
JPH10207853A (en) * | 1997-01-16 | 1998-08-07 | Hitachi Ltd | Parallel execution method for program |
-
2001
- 2001-05-31 JP JP2001165177A patent/JP2002358293A/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09218858A (en) * | 1996-02-14 | 1997-08-19 | Hitachi Ltd | Distributed type data base control system |
JPH09265403A (en) * | 1996-03-28 | 1997-10-07 | Hitachi Ltd | Data re-division evaluation method |
JPH10207853A (en) * | 1997-01-16 | 1998-08-07 | Hitachi Ltd | Parallel execution method for program |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006079341A (en) * | 2004-09-09 | 2006-03-23 | Mitsubishi Electric Corp | Distribution simulation system and program |
JP4679856B2 (en) * | 2004-09-09 | 2011-05-11 | 三菱電機株式会社 | Distributed simulation system and program |
JP4589248B2 (en) * | 2006-02-17 | 2010-12-01 | 株式会社日立製作所 | Polymer bond prediction system |
JP2007219913A (en) * | 2006-02-17 | 2007-08-30 | Hitachi Ltd | Polymer joint prediction system |
JP2007299406A (en) * | 2006-05-04 | 2007-11-15 | Internatl Business Mach Corp <Ibm> | System and method for scalably processing multi-route data stream correlation |
WO2007145238A1 (en) * | 2006-06-16 | 2007-12-21 | Nec Corporation | Information processing system, and load dispersing method |
US8438282B2 (en) | 2006-06-16 | 2013-05-07 | Nec Corporation | Information processing system and load sharing method |
US8612981B2 (en) | 2006-11-07 | 2013-12-17 | Sony Corporation | Task distribution method |
JP4569614B2 (en) * | 2007-09-19 | 2010-10-27 | 日本電気株式会社 | Data conversion system |
JP2009075689A (en) * | 2007-09-19 | 2009-04-09 | Nec Corp | Data conversion system |
JP2011048757A (en) * | 2009-08-28 | 2011-03-10 | Fujitsu Ltd | Distributed processing type simulator |
WO2011058657A1 (en) * | 2009-11-16 | 2011-05-19 | 富士通株式会社 | Parallel computation device, parallel computation method, and parallel computation program |
US8549261B2 (en) | 2009-11-16 | 2013-10-01 | Fujitsu Limited | Parallel computing apparatus and parallel computing method |
JP5321691B2 (en) * | 2009-11-16 | 2013-10-23 | 富士通株式会社 | Parallel computing device, parallel computing method, and parallel computing program |
WO2011070910A1 (en) * | 2009-12-07 | 2011-06-16 | 日本電気株式会社 | Data arrangement/calculation system, data arrangement/calculation method, master device, and data arrangement method |
US8898677B2 (en) | 2009-12-07 | 2014-11-25 | Nec Corporation | Data arrangement calculating system, data arrangement calculating method, master unit and data arranging method |
JP2014235734A (en) * | 2013-06-04 | 2014-12-15 | 富士通株式会社 | Process migration method, computer system operating to execute process migration, intermediate calculation resources in such system, and method of selecting calculation resources before partitioning for process migration method |
WO2015063885A1 (en) * | 2013-10-30 | 2015-05-07 | 株式会社日立製作所 | Parallel distributed processing system and data processing method |
WO2019082982A1 (en) * | 2017-10-26 | 2019-05-02 | 日本電気株式会社 | Distributed processing management device, distributed processing method, and computer-readable storage medium |
JPWO2019082982A1 (en) * | 2017-10-26 | 2020-11-12 | 日本電気株式会社 | Distributed processing management device, distributed processing method, and program |
US11656917B2 (en) | 2017-10-26 | 2023-05-23 | Nec Corporation | Distributed processing management apparatus, distributed processing method, and computer-readable recording medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101738641B1 (en) | Apparatus and method for compilation of program on multi core system | |
US8707314B2 (en) | Scheduling compute kernel workgroups to heterogeneous processors based on historical processor execution times and utilizations | |
US8250548B2 (en) | Method for controlling heterogeneous multiprocessor and multigrain parallelizing compiler | |
Fidanova | Simulated annealing for grid scheduling problem | |
US20230418997A1 (en) | Comprehensive contention-based thread allocation and placement | |
Bleuse et al. | Scheduling independent tasks on multi‐cores with GPU accelerators | |
JP2002358293A (en) | System, method and program for load distribution at run- time | |
JP2004078824A (en) | Instruction scheduling method, instruction scheduling device, and program | |
JP2001167060A (en) | Task paralleling method | |
WO2009085118A2 (en) | System and method for architecture-adaptable automatic parallelization of computing code | |
Wu et al. | Optimizing the performance of big data workflows in multi-cloud environments under budget constraint | |
EP3908920B1 (en) | Optimizing hardware fifo instructions | |
JP2019049843A (en) | Execution node selection program and execution node selection method and information processor | |
US20090328049A1 (en) | Information processing apparatus, granularity adjustment method and program | |
He et al. | Scheduling functionally heterogeneous systems with utilization balancing | |
Pathania et al. | Optimal greedy algorithm for many-core scheduling | |
Karnagel et al. | Local vs. Global Optimization: Operator Placement Strategies in Heterogeneous Environments. | |
Yue et al. | An effective processor allocation strategy for multiprogrammed shared-memory multiprocessors | |
KR100935361B1 (en) | Weight-based multi-queue load balancing system for parallel computing and method of the same | |
Bakshi et al. | A scheduling and pipelining algorithm for hardware/software systems | |
Kwok | Parallel program execution on a heterogeneous PC cluster using task duplication | |
US10628223B2 (en) | Optimized allocation of tasks in heterogeneous computing systems | |
Lina et al. | Scheduling of elastic message passing applications on hpc systems | |
Uddin et al. | Cache-based high-level simulation of microthreaded many-core architectures | |
JP2910676B2 (en) | Load equalizer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080414 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20090717 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20090717 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100611 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100622 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100819 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110510 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110705 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110823 |