JP2009301453A - Distributed memory type multiprocessor system, masked reverse shift communication method and program - Google Patents

Distributed memory type multiprocessor system, masked reverse shift communication method and program Download PDF

Info

Publication number
JP2009301453A
JP2009301453A JP2008157488A JP2008157488A JP2009301453A JP 2009301453 A JP2009301453 A JP 2009301453A JP 2008157488 A JP2008157488 A JP 2008157488A JP 2008157488 A JP2008157488 A JP 2008157488A JP 2009301453 A JP2009301453 A JP 2009301453A
Authority
JP
Japan
Prior art keywords
reverse shift
shift communication
array
masked
communication
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
JP2008157488A
Other languages
Japanese (ja)
Other versions
JP5120778B2 (en
Inventor
Yasuharu Hayashi
康晴 林
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2008157488A priority Critical patent/JP5120778B2/en
Publication of JP2009301453A publication Critical patent/JP2009301453A/en
Application granted granted Critical
Publication of JP5120778B2 publication Critical patent/JP5120778B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a distributed memory type multiprocessor system capable of accelerating the execution speed of parallel loops and reducing a used memory amount. <P>SOLUTION: The distributed memory type multiprocessor system for dividing and arranging array data on the storage means of a calculation node and parallelly executing a loop in a program for using and defining the array data on a calculation means includes a masked reverse shift communication means for having the calculation node store a value for use and definition in a buffer for masked reverse shift communication secured in an area continued to the array data of its own calculation node during parallel loop execution, communicate the value in the buffer for the masked reverse shift communication for which the definition is performed through an inter-calculation-node communication means to another calculation node after the parallel loop execution and reflect it on a corresponding array element arranged on another calculation node, in the case that an array element defined by each calculation node is the array element divided and arranged on the storage means of another calculation node. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、計算手段と記憶手段を有する複数の計算ノードを備え、配列データを前記計算ノードの前記記憶手段上に分割配置し、当該配列データを使用・定義するプログラム中のループを前記計算手段上で並列実行する分散メモリ型マルチプロセッサシステム、分散メモリ型マルチプロセッサシステムのマスク付き逆シフト通信方法及びプログラムに関する。   The present invention comprises a plurality of calculation nodes each having calculation means and storage means, divides and arranges array data on the storage means of the calculation nodes, and uses a loop in a program for using / defining the array data as the calculation means. The present invention relates to a distributed memory type multiprocessor system to be executed in parallel, a masked reverse shift communication method and program for the distributed memory type multiprocessor system.

一般に、分散メモリ型マルチプロセッサシステムにおいては、配列データが、計算ノードに分割配置されており、そのような配列データを使用・定義するプログラム中のループが計算手段上で並列実行される場合、各計算ノードで定義する配列要素が、他の計算ノード上に分割配置されている配列要素である時には、計算ノード間通信手段を経由した通信が必要となる。   In general, in a distributed memory multiprocessor system, array data is divided and arranged in calculation nodes, and when a loop in a program that uses and defines such array data is executed in parallel on a calculation means, When the array element defined by the computation node is an array element that is divided and arranged on another computation node, communication via the computation node communication means is required.

上記のような計算ノード間の通信が必要となった場合、定義される配列全体を、並列ループ直前にテンポラリ配列にコピーし、並列ループ中では、テンポラリ配列に対して参照を行い、並列ループ実行後に、テンポラリ配列から元の定義される配列へコピーして値を書き戻す、という方式で並列実行が行われる。   When communication between computation nodes as described above becomes necessary, the entire array to be defined is copied to a temporary array immediately before the parallel loop, and in the parallel loop, the temporary array is referenced and the parallel loop is executed. Later, parallel execution is performed by copying the value from the temporary array to the original defined array and writing back the value.

上述した方式の並列実行においては、テンポラリ配列のために、定義される配列全体のメモリ容量が必要になると共に、並列ループ実行の前後において、それぞれ、定義される配列全体とテンポラリ配列との間で通信を伴うコピーが発生するため性能が低下する、という問題があった。   In the parallel execution of the above-described method, the memory capacity of the entire defined array is required for the temporary array, and between the entire defined array and the temporary array before and after the parallel loop execution, respectively. There was a problem that the performance deteriorated because a copy accompanied by communication occurred.

例えば、図4に示すようなHPF(High
Performance Fortran)言語によるプログラムの場合、関連技術による方法では、図7に示すように、定義される配列B全体を、並列ループ直前にテンポラリ配列BUFFにコピーし、並列ループ中では、テンポラリ配列BUFFに対して参照を行い、並列ループ実行後に、テンポラリ配列BUFFから元の定義される配列Bへコピーして値を書き戻す、という方式で並列実行が行われていた。
For example, as shown in FIG.
In the case of a program in the Performance Fortran) language, as shown in FIG. 7, in the related technology method, the entire array B to be defined is copied to the temporary array BUFF immediately before the parallel loop, and in the parallel loop, the temporary array BUFF is copied. The parallel execution is performed in such a manner that the reference is performed, and after the parallel loop is executed, the value is copied from the temporary array BUFF to the original defined array B and the value is written back.

この場合、テンポラリ配列BUFFのために、定義される配列B全体に相当するメモリ容量が必要になると共に、並列ループ実行の前後において、それぞれ、定義される配列B全体とテンポラリ配列BUFFとの間で通信を伴うコピーが発生するため性能が低下する。   In this case, the temporary array BUFF requires a memory capacity corresponding to the entire defined array B, and between the entire defined array B and the temporary array BUFF before and after execution of the parallel loop, respectively. Performance drops due to the occurrence of copying with communication.

(発明の目的)
本発明の目的は、上記の問題点に鑑みてなされたものであり、並列ループの実行速度を高速化できると共に、使用メモリ量を削減することができる分散メモリ型マルチプロセッサシステム、マスク付き逆シフト通信方法及びプログラムを提供することにある。
(Object of invention)
An object of the present invention has been made in view of the above problems, and is a distributed memory multiprocessor system capable of increasing the execution speed of a parallel loop and reducing the amount of memory used, and reverse shift with mask. It is to provide a communication method and a program.

本発明による分散メモリ型マルチプロ セッサシステムは、計算手段と記憶手段を有する複数の計算ノードを備え、配
列データを計算ノードの記憶手段上に分割配置し、当該配列データを使用・定 義するプログラム中のループを計算手段上で並列実行する分散メモリ型マルチ プロセッサシステムであって、各計算ノードで定義する配列要素が、他の計算ノードの記憶手段上に分割配置されている配列要素である場合に、並列ループ実行中は、自身の計算ノードの配列データと連続した領域に確保したマスク付き逆シフト通信用バッファに使用・定義する値を格納し、並列ループ実行後に、定義が行われたマスク付き逆シフト通信用バッファの値を、計算ノード間通信手段を経由して他の計算ノードに通信し、他の計算ノード上に配置されている対応する配列要素に反映させるマスク付き逆シフト通信手段を含む。
A distributed memory type multiprocessor system according to the present invention comprises a plurality of calculation nodes having calculation means and storage means, divides and arranges array data on the storage means of the calculation node, and uses / defines the array data. A distributed memory type multiprocessor system that executes the loops in parallel on the calculation means, and the array elements defined in each calculation node are array elements that are divided and arranged on the storage means of other calculation nodes During parallel loop execution, the value to be used / defined is stored in the reverse shift communication buffer with mask secured in the area contiguous with the array data of its own computation node, and the mask defined after execution of the parallel loop The value of the reverse shift communication buffer is communicated to the other calculation node via the communication means between the calculation nodes, and is placed on the other calculation node. An inverse shifting communication means with the mask to be reflected in the corresponding array element.

本発明によるマスク付き逆シフト通信方法は、計算手段と記憶手段を有する複数の計算ノードを備え、配列データを計算ノードの記憶手段上に分割配置し、当該配列データを使用・定義するプログラム中のループを計算手段上で並列実行する分散メモリ型マルチプロセッサシステムのマスク付き逆シフト通信方法であって、各計算ノードで使用・定義する配列要素が、他の計算ノードの記憶手段上に分割配置されている配列要素である場合に、並列ループ実行中は、自身の計算ノードの配列データと連続した領域に確保したマスク付き逆シフト通信用バッファに使用・定義する値を格納し、並列ループ実行後に、定義が行われたマスク付き逆シフト通信用バッファの値を、計算ノード間通信手段を経由して他の計算ノードに通信し、他の計算ノード上に配置されている対応する配列要素に反映させる。   A reverse shift communication method with a mask according to the present invention comprises a plurality of calculation nodes having calculation means and storage means, and arranges and arranges the array data on the storage means of the calculation node, and uses / defines the array data. A reverse shift communication method with a mask of a distributed memory type multiprocessor system that executes a loop in parallel on a calculation means, wherein array elements used and defined in each calculation node are divided and arranged on a storage means of another calculation node When the parallel loop is running, the value to be used / defined is stored in the masked reverse shift communication buffer secured in the area contiguous with the array data of its own computation node. Communicates the value of the defined reverse shift communication buffer with mask to the other calculation node via the communication node between calculation nodes, and performs the other calculation. Is reflected in the corresponding array elements are arranged on the over-de.

本発明によるプログラムは、計算手段と記憶手段を有する複数の計算ノードを備え、配列データを計算ノードの記憶手段上に分割配置し、当該配列データを使用・定義するプログラム中のループを計算手段上で並列実行する分散メモリ型マルチプロセッサシステムのマスク付き逆シフト通信を実行するプログラムであって、各計算ノードで使用・定義する配列要素が、他の計算ノードの記憶手段上に分割配置されている配列要素である場合に、並列ループ実行中は、自身の計算ノードの配列データと連続した領域に確保したマスク付き逆シフト通信用バッファに使用・定義する値を格納し、並列ループ実行後に、定義が行われたマスク付き逆シフト通信用バッファの値を、計算ノード間通信手段を経由して他の計算ノードに通信し、他の計算ノード上に配置されている対応する配列要素に反映させるマスク付き逆シフト通信処理を実行させる。   A program according to the present invention includes a plurality of calculation nodes each having calculation means and storage means, divides and arranges array data on the storage means of the calculation node, and uses a loop in the program that uses and defines the array data on the calculation means. Is a program that executes reverse shift communication with a mask of a distributed memory type multiprocessor system that is executed in parallel, and array elements that are used and defined in each computation node are divided and arranged on the storage means of other computation nodes If it is an array element, the value to be used / defined is stored in the reverse shift communication buffer with mask secured in the area contiguous with the array data of its own computation node during parallel loop execution, and defined after executing the parallel loop Communicating the value of the masked reverse shift communication buffer that has been performed to other computation nodes via the computation node communication means To execute the reverse shift communication processing with the mask to be reflected in the corresponding array elements are arranged on the over-de.

本発明によれば、並列ループの実行速度を高速化できると共に、使用メモリ量を削減することができる。   According to the present invention, the execution speed of the parallel loop can be increased, and the amount of memory used can be reduced.

次に、本発明の実施の形態について図面を参照して詳細に説明する。   Next, embodiments of the present invention will be described in detail with reference to the drawings.

(実施の形態の構成)
図1を参照すると、分散メモリ型マルチプロセッサシステム100上で実行されるプログラムのデータが、計算ノード101の記憶手段103(例えば、主記憶メモリ等)上に分割配置されており、ある計算ノード101の計算手段102(CPU)が実行する演算に必要なデータが、他の計算ノード101の記憶手段103上に分割配置されている場合、計算ノード間通信手段104を経由した通信が行われる。
(Configuration of the embodiment)
Referring to FIG. 1, data of a program executed on the distributed memory multiprocessor system 100 is divided and arranged on a storage unit 103 (for example, a main storage memory) of a calculation node 101, and a certain calculation node 101 When the data necessary for the calculation executed by the calculation unit 102 (CPU) is divided and arranged on the storage unit 103 of the other calculation node 101, communication via the inter-calculation node communication unit 104 is performed.

このマスク付き逆シフト通信手段200は、上記のように、計算ノード間通信手段104を経由した通信が必要となる場合に、並列ループ実行中は、配列データと連続した領域に確保したバッファ領域にいったん定義される値を格納しておき、並列ループ実行後に、定義が行われたバッファ領域の値を、対応する配列要素に反映させるために、計算ノード間通信手段104を経由した通信を行うことにより、並列ループの実行速度を高速化する。   As described above, the masked reverse shift communication means 200, when it is necessary to communicate via the inter-computation node communication means 104, in the buffer area secured in the area continuous with the array data during execution of the parallel loop. Once defined values are stored, and after execution of the parallel loop, communication via the computation node communication means 104 is performed in order to reflect the defined buffer area values in the corresponding array elements. As a result, the execution speed of the parallel loop is increased.

図2において、マスク付き逆シフト通信手段200は、並列化基準アクセスパタン解析手段201と、データマッピング解析手段202と、アクセスパタン解析手段203と、逆シフトベクトル解析手段204と、逆シフトインデックス解析手段205と、マスク付き逆シフト通信生成手段206を備えている。   In FIG. 2, the masked reverse shift communication means 200 includes a parallelized reference access pattern analysis means 201, a data mapping analysis means 202, an access pattern analysis means 203, a reverse shift vector analysis means 204, and a reverse shift index analysis means. 205 and reverse shift communication generation means 206 with a mask.

図2において、図1における分散メモリ型マルチプロセッサシステム100上で実行されるプログラム中に、並列化の基準配列の、基準アクセスパタンに基づいて並列化される並列化対象ループを含む並列ループネストがいくつか存在する場合に、まず、並列化基準アクセスパタン解析手段201は、各並列ループネストに対して、並列化の基準配列の各分散次元において、基準アクセスパタンの添字sが、図3における条件301を満たすかどうかを検査し、条件を満たす並列ループネストのみを、マスク付き逆シフト通信の対象並列ループネストとして選択する。   In FIG. 2, a parallel loop nest including a parallelization target loop that is parallelized based on the reference access pattern of the reference array of parallelization is included in the program executed on the distributed memory type multiprocessor system 100 in FIG. In the case where there are several, first, the parallelization reference access pattern analysis unit 201 sets the subscript s of the reference access pattern for each parallel loop nest in each distributed dimension of the reference array for parallelization as the condition in FIG. 301 is checked, and only the parallel loop nest satisfying the condition is selected as the target parallel loop nest of the masked reverse shift communication.

次に、データマッピング解析手段202は、並列化基準アクセスパタン解析手段201が選択したマスク付き逆シフト通信の対象並列ループネストのそれぞれに対して、並列ループネスト中に出現する各配列のデータマッピングを解析し、並列化の基準配列と同一のマッピングを持つ配列を抽出する。   Next, the data mapping analysis unit 202 performs the data mapping of each array appearing in the parallel loop nest for each of the target parallel loop nests of the masked reverse shift communication selected by the parallelization reference access pattern analysis unit 201. Analyze and extract a sequence having the same mapping as the reference sequence for parallelization.

次に、アクセスパタン解析手段203は、並列化基準アクセスパタン解析手段201が選択したマスク付き逆シフト通信の対象並列ループネストのそれぞれに対して、データマッピング解析手段202が抽出した、並列化の基準配列と同一のマッピングを持つ各配列の、並列ループネスト中における各出現について、並列化の基準配列の分散次元に対応する各次元の添字s´が、図3における条件302を満たすアクセスパタンを、マスク付き逆シフト通信の対象アクセスパタンとして選択する。   Next, the access pattern analysis unit 203 extracts the parallelization criterion extracted by the data mapping analysis unit 202 for each target parallel loop nest of the reverse shift communication with mask selected by the parallelization criterion access pattern analysis unit 201. For each occurrence of each array having the same mapping as the array in the parallel loop nest, an access pattern in which the subscript s ′ corresponding to the distributed dimension of the parallelized reference array satisfies the condition 302 in FIG. Select as target access pattern for reverse shift communication with mask.

このとき、図3における条件302を満たす次元を、マスク付き逆シフト通信の対象次元と呼ぶ。   At this time, the dimension satisfying the condition 302 in FIG. 3 is referred to as a target dimension of the masked reverse shift communication.

また、アクセスパタン解析手段203によってマスク付き逆シフト通信の対象アクセスパタンに選択された出現を持つ配列を、マスク付き逆シフト通信対象配列と呼ぶ。   Further, an array having an appearance selected as a target access pattern for masked reverse shift communication by the access pattern analyzing unit 203 is referred to as a masked reverse shift communication target array.

次に、逆シフトベクトル解析手段204は、並列化基準アクセスパタン解析手段201が選択したマスク付き逆シフト通信の対象並列ループネストのそれぞれに対し、並列化の基準配列の分散次元における基準アクセスパタンの添字と、アクセスパタン解析手段203が選択した各マスク付き逆シフト通信の対象アクセスパタンの、マスク付き逆シフト通信の対象次元の添字の各対応する組み合わせに対して、図3における条件303の式である「o´ - o」を逆シフトベクトルとして算出する。   Next, the inverse shift vector analysis unit 204 applies the reference access pattern in the distributed dimension of the parallelized reference array to each of the target parallel loop nests of the masked reverse shift communication selected by the parallelization reference access pattern analysis unit 201. For each corresponding combination of the subscript and the target access pattern of the reverse shift communication with mask selected by the access pattern analysis means 203, the subscript of the target dimension of the reverse shift communication with mask is represented by the condition 303 in FIG. A certain “o′−o” is calculated as an inverse shift vector.

逆シフトベクトルは、負値の時に下向き、正値の時に上向きと呼び、その絶対値を逆シフト幅と呼ぶ。   The reverse shift vector is called downward when it is a negative value, upward when it is a positive value, and its absolute value is called a reverse shift width.

さらに、逆シフトベクトル解析手段204は、アクセスパタン解析手段203が選択したマスク付き逆シフト通信対象配列に対応して、アクセスパタン解析手段203が選択したマスク付き逆シフト通信の対象アクセスパタンであるような全ての出現の、マスク付き逆シフト通信の対象次元の逆シフトベクトルの集合の中で、正値の最大値と負値の最小値を計算する。   Further, the reverse shift vector analysis unit 204 corresponds to the masked reverse shift communication target array selected by the access pattern analysis unit 203, and is the target access pattern of the masked reverse shift communication selected by the access pattern analysis unit 203. The maximum positive value and the minimum negative value are calculated from the set of inverse shift vectors of the target dimension of masked inverse shift communication for all occurrences.

それらの絶対値を、それぞれマスク付き逆シフト通信対象配列の当該次元の上方向逆シフト通信バッファ幅、下方向逆シフト通信バッファ幅と呼ぶ。   These absolute values are referred to as the upward reverse shift communication buffer width and the downward reverse shift communication buffer width in the dimension of the masked reverse shift communication target array, respectively.

なお、正値が存在しないとき、正値の最大値を「0」、負値が存在しないとき、負値の最小値を「0」とする。   When there is no positive value, the maximum positive value is “0”, and when there is no negative value, the minimum negative value is “0”.

次に、逆シフト対象インデックス解析手段205は、並列化基準アクセスパタン解析手段201が選択したマスク付き逆シフト通信の対象並列ループネストのそれぞれに対して、アクセスパタン解析手段203が選択した各マスク付き逆シフト通信の対象アクセスパタンの、マスク付き逆シフト通信の対象次元の添字のうち、図3における条件304を満たす値を、逆シフト対象インデックスとして算出する。   Next, the reverse shift target index analysis unit 205 adds each mask selected by the access pattern analysis unit 203 to each target parallel loop nest of the reverse shift communication with mask selected by the parallelized reference access pattern analysis unit 201. A value satisfying the condition 304 in FIG. 3 among subscripts of the target dimension of masked reverse shift communication of the target access pattern of reverse shift communication is calculated as a reverse shift target index.

次に、マスク付き逆シフト通信生成手段206は、並列化基準アクセスパタン解析手段201が選択したマスク付き逆シフト通信の対象並列ループネストのそれぞれに対して、アクセスパタン解析手段203によって選択されたマスク付き逆シフト通信対象配列が、図1における計算ノード101の記憶手段103上に分割配置される際の、各計算ノードにおける分散次元の割付けインデックス範囲を(lb:ub)とするとき、上方向、下方向に、それぞれ、逆シフトベクトル解析手段204が算出した上方向逆シフト通信バッファ幅hs、下方向逆シフト通信バッファ幅lsだけマスク付き逆シフト通信用バッファを割付けるために、割付けインデックス範囲を拡張し、(lb−ls:ub+hs)とする。   Next, the masked reverse shift communication generation unit 206 selects the mask selected by the access pattern analysis unit 203 for each target parallel loop nest of the masked reverse shift communication selected by the parallelization reference access pattern analysis unit 201. When the allocated reverse shift communication target array is dividedly arranged on the storage means 103 of the calculation node 101 in FIG. 1, when the distribution index allocation index range in each calculation node is (lb: ub), the upward direction, In order to allocate the reverse shift communication buffer with mask by the upward reverse shift communication buffer width hs and the downward reverse shift communication buffer width ls calculated by the reverse shift vector analysis unit 204 in the downward direction, Extend to (lb−ls: ub + hs).

さらに、マスク付き逆シフト通信生成手段206は、マスク付き逆シフト通信対象配列のマスク付き逆シフト通信用バッファに対して、対応する配列要素からの通信、すなわち、図1において、マスク付き逆シフト通信用バッファに対応する配列要素が配置されている計算ノード101から、対応するマスク付き逆シフト通信用バッファが配置されている計算ノード101への、計算ノード間通信手段104を経由した通信(シフト通信)を、並列ループネスト実行前に行う命令を生成する。   Further, the masked reverse shift communication generation means 206 communicates from the corresponding array element to the masked reverse shift communication buffer of the masked reverse shift communication target array, that is, in FIG. Communication via the inter-computation node communication means 104 (shift communication) from the computation node 101 in which the array element corresponding to the buffer is arranged to the computation node 101 in which the corresponding masked reverse shift communication buffer is arranged ) Is generated before executing the parallel loop nest.

また、マスク付き逆シフト通信生成手段206は、各マスク付き逆シフト通信対象アクセスパタンについて、逆シフト対象インデックス解析手段205によって決定された逆シフト対象インデックスに対応する逆シフト通信バッファから、対応する配列要素への通信、すなわち、図1において、逆シフト対象インデックスに対応する逆シフト通信バッファが配置されている計算ノード101から、対応する配列要素が配置されている計算ノード101への、計算ノード間通信手段104を経由した通信(逆シフト通信)を、並列ループネストの実行後に行う命令を生成する。   In addition, the masked reverse shift communication generating unit 206 has a corresponding array from the reverse shift communication buffer corresponding to the reverse shift target index determined by the reverse shift target index analyzing unit 205 for each masked reverse shift communication target access pattern. Communication between elements, that is, between calculation nodes in FIG. 1, from the calculation node 101 in which the reverse shift communication buffer corresponding to the reverse shift target index is arranged to the calculation node 101 in which the corresponding array element is arranged A command for performing communication (reverse shift communication) via the communication unit 104 after executing the parallel loop nest is generated.

以上の方法により、並列ループ実行中に、各計算ノード101で定義する配列要素が、他の(リモートの)計算ノード101の記憶手段103上に分割配置されている配列要素であるために、計算ノード間通信手段104を経由した通信が必要となる場合に、並列ループ実行中は、他の(リモートの)計算ノードではなく、演算を行う(ローカルな)計算ノードに確保されているマスク付き逆シフト通信用バッファに対して値の使用・定義を行い、並列ループ実行後に、定義が行われたマスク付き逆シフト通信用バッファの値を、他の(リモートの)計算ノード上に配置されている対応する配列要素に反映するため、計算ノード間通信手段104を経由した通信を行うことにより、高速に並列実行を行うことができる。   By the above method, since the array element defined in each computation node 101 is an array element that is divided and arranged on the storage means 103 of another (remote) computation node 101 during parallel loop execution, When communication via the node-to-node communication means 104 is required, the reverse with a mask reserved for the (local) computation node that performs the operation, not the other (remote) computation node, during execution of the parallel loop The value is used / defined for the shift communication buffer, and after execution of the parallel loop, the value of the masked reverse shift communication buffer that has been defined is placed on another (remote) computation node. In order to reflect in corresponding array elements, parallel execution can be performed at high speed by performing communication via the inter-computation node communication means 104.

(実施の形態の動作)
次に、本実施例の全体の動作について、詳細に説明する。ここでは、図4に示すHPF言語によるプログラム例によって、本実施例の全体の動作について詳細に説明する。
(Operation of the embodiment)
Next, the overall operation of this embodiment will be described in detail. Here, the overall operation of this embodiment will be described in detail with reference to a program example in the HPF language shown in FIG.

図1を参照すると、分散メモリ型マルチプロセッサシステム100上で実行される図4のHPF言語によるプログラムのデータA、B、Cが、計算ノード101の記憶手段103上に分割配置されており、ある計算ノード101の計算手段102が実行する演算に必要なデータが、他の計算ノード101の記憶手段103上に分割配置されている場合、計算ノード間通信手段104を経由した通信が行われる。   Referring to FIG. 1, the data A, B, and C of the program in the HPF language shown in FIG. 4 executed on the distributed memory multiprocessor system 100 are divided and arranged on the storage means 103 of the computation node 101. When the data necessary for the calculation executed by the calculation means 102 of the calculation node 101 is divided and arranged on the storage means 103 of the other calculation node 101, communication via the inter-calculation node communication means 104 is performed.

図2に示すマスク付き逆シフト通信手段200は、図1における、分散メモリ型マルチプロセッサシステム100上で実行される図4のHPF言語によるプログラムが、並列化の基準配列Aの、基準アクセスパタンA(:,J)に基づいて並列化される並列化対象ループ「DO J」を含む、「DO J」と「DO I」の並列ループネストが存在する場合に、以下のように動作する。   The reverse shift communication means 200 with a mask shown in FIG. 2 is configured such that the program in the HPF language in FIG. 4 executed on the distributed memory multiprocessor system 100 in FIG. When there is a parallel loop nest of “DO J” and “DO I” including a parallelization target loop “DO J” that is parallelized based on (:, J), the operation is as follows.

なお、図4のHPF言語によるプログラムでは、並列化の基準配列と基準アクセスパタンは、ON指示文により明示的に指定されているが、これはユーザによるオプション指定によって指定されていても良いし、コンパイラが自動的に決定しても良い。   In the program in the HPF language of FIG. 4, the parallel reference array and reference access pattern are explicitly specified by the ON directive, but this may be specified by an option specification by the user, The compiler may decide automatically.

この場合、図5に示すように、各配列は6台のプロセッサP上に分割配置され、各プロセッサP(k)(k=1,2,・・・,6)は、図1における計算手段101に対応しており、並列化対象ループDO Jは、各プロセッサが、並列化の基準配列Aの基準アクセスパタンA(:,J)の要素が配置されているループの繰り返しのみを実行するように、並列化される。   In this case, as shown in FIG. 5, each array is divided and arranged on six processors P, and each processor P (k) (k = 1, 2,..., 6) 101, and the parallelization target loop DO J causes each processor to execute only the iteration of the loop in which the elements of the reference access pattern A (:, J) of the reference array A for parallelization are arranged. To be parallelized.

まず、並列化基準アクセスパタン解析手段201は、「DO J」と「DO I」からなる並列ループネストに対して、並列化の基準配列Aの分散次元である2次元目において、基準アクセスパタンA(:,J)の添字が、図3における条件301に対応する以下の条件を満たすことを認識し、「DO
J」と「DO I」からなる並列ループネストを、マスク付き逆シフト通信の対象並列ループネストとして選択する。
First, the parallelization reference access pattern analysis unit 201 applies a reference access pattern A to the parallel loop nest composed of “DO J” and “DO I” in the second dimension which is the distribution dimension of the reference array A for parallelization. Recognizing that the subscript of (:, J) satisfies the following condition corresponding to the condition 301 in FIG.
The parallel loop nest consisting of “J” and “DO I” is selected as the target parallel loop nest of masked reverse shift communication.

条件301:
「並列化の基準配列Aの分散次元である2次元目における、基準アクセスパタンA(:,J)の添字Jに関して、「DO J」と「DO I」からなる並列ループネスト中に、制御変数がJである並列化対象ループDO Jが存在して、以下の条件を満たす。」
「Jが、Jの一次式J = 1 * J + 0と表現でき、かつ一次式の係数1と、0次の項0は、並列ループネスト中の各ループに対して不変な式である。」
Condition 301:
“With respect to the subscript J of the reference access pattern A (:, J) in the second dimension, which is the distributed dimension of the reference array A for parallelization, a control variable is included in the parallel loop nest consisting of“ DO J ”and“ DO I ”. There exists a parallelization target loop DO J whose J is J and satisfies the following condition. "
“J can be expressed as J's linear expression J = 1 * J + 0, and the coefficient 1 of the linear expression and the 0th-order term 0 are invariant expressions for each loop in the parallel loop nest. "

次に、データマッピング解析手段202は、ループ中に出現する配列A、B、Cのデータマッピングを解析して、配列AとBが2次元目で均等に分散されており、配列Cは分散されていないことを確認し、さらに、並列化の基準配列Aと同一のマッピングを持つ配列A、Bを抽出する。   Next, the data mapping analysis unit 202 analyzes the data mapping of the arrays A, B, and C appearing in the loop, and the arrays A and B are evenly distributed in the second dimension, and the array C is distributed. In addition, the sequences A and B having the same mapping as the parallel reference sequence A are extracted.

次に、アクセスパタン解析手段203は、並列化基準アクセスパタン解析手段201が選択したマスク付き逆シフト通信の対象並列ループネストである「DO J」と「DO I」からなる並列ループネストに対して、並列化の基準配列Aの分散次元である2次元目における、基準アクセスパタンA(:,J)の添字を、並列ループネスト中の並列化対象ループの制御変数Jの一次式として、J
= 1 * J + 0と表現したとき、データマッピング解析手段202が抽出した、並列化の基準配列Aと同一のマッピングを持つ各配列A、Bの、並列ループネスト中における各出現A(I,J)、B(I,J)、B(I,J-1)について、並列化の基準配列の分散次元に対応する各次元の添字s´が、図3における条件302を満たすアクセスパタンを、マスク付き逆シフト通信の対象アクセスパタンとして選択する。
Next, the access pattern analysis unit 203 applies to the parallel loop nest composed of “DO J” and “DO I” which are the target parallel loop nests of the masked reverse shift communication selected by the parallelization reference access pattern analysis unit 201. The subscript of the reference access pattern A (:, J) in the second dimension, which is the distribution dimension of the reference array A for parallelization, is used as a primary expression for the control variable J of the parallelization target loop in the parallel loop nest.
= 1 * J + 0, each occurrence A (I, I, I) of the arrays A and B having the same mapping as the reference array A for parallelization extracted by the data mapping analysis unit 202 is expressed in the parallel loop nest. For J), B (I, J), and B (I, J-1), the subscript s ′ corresponding to the distributed dimension of the parallel reference array is an access pattern that satisfies the condition 302 in FIG. Select as target access pattern for reverse shift communication with mask.

ここで、アクセスパタン解析手段203は、並列ループネスト中における各出現A(I,J)、B(I,J)、B(I,J-1)について、以下のように、図3における条件302を満たすアクセスパタンが存在するかどうかを解析する。   Here, the access pattern analysis means 203 performs the conditions in FIG. 3 for each occurrence A (I, J), B (I, J), B (I, J-1) in the parallel loop nest as follows. Whether there is an access pattern that satisfies 302 is analyzed.

並列化の基準配列の分散次元である2次元目に対応する各次元の添字が、A(I,J)の場合
1. J = 1 * J + 0と表現でき、0は、並列ループネスト中の各ループに対して不変な式である。
2. 同一の配列の同一のアクセスパタン中、代入文左辺のA(I,J)は定義される。
3. 0 − 0は、定数0である。(非零定数でない)
4. 同一の配列の他のアクセスパタンは存在しない
1. When the subscript of each dimension corresponding to the second dimension, which is the distributed dimension of the parallel reference array, is A (I, J) J = 1 * J + 0, where 0 is an invariant expression for each loop in the parallel loop nest.
2. A (I, J) on the left side of the assignment statement is defined in the same access pattern of the same array.
3. 0-0 is the constant 0. (Not non-zero constant)
4). There is no other access pattern in the same sequence

B(I,J)の場合
1. J = 1 * J + 0と表現でき、0は、並列ループネスト中の各ループに対して不変な式である。
2. 同一の配列の同一のアクセスパタン中、代入文左辺のB(I,J)は定義される。
3. 0 − 0は、定数0である。(非零定数でない)
4. 同一の配列の他のアクセスパタンB(I,J−1)も上記の条件1、2を満たし、かつ(−1) − 0は、定数である。
In the case of B (I, J) J = 1 * J + 0, where 0 is an invariant expression for each loop in the parallel loop nest.
2. B (I, J) on the left side of the assignment statement is defined in the same access pattern of the same array.
3. 0-0 is the constant 0. (Not non-zero constant)
4). Other access patterns B (I, J-1) in the same array also satisfy the above conditions 1 and 2, and (-1) -0 is a constant.

B(I,J−1)の場合
1. J = 1 * J + (−1)と表現でき、−1は、並列ループネスト中の各ループに対して不変な式である。
2. 同一の配列の同一のアクセスパタン中、代入文左辺のB(I,J−1)は定義される。
3. (−1) − 0 は、非零定数−1である。
4. 同一の配列の他のアクセスパタンB(I,J)も上記の条件1、2を満たし、かつ0 − 0は、定数である。
In the case of B (I, J-1) J = 1 * J + (−1), where −1 is an invariant expression for each loop in the parallel loop nest.
2. B (I, J-1) on the left side of the assignment statement is defined in the same access pattern of the same array.
3. (-1) -0 is a non-zero constant -1.
4). Other access patterns B (I, J) in the same array also satisfy the above conditions 1 and 2, and 0-0 is a constant.

以上の解析結果から、B(I,J−1)のみが図3における条件302を満たすマスク付き逆シフト通信の対象アクセスパタンであることを認識する。   From the above analysis results, it is recognized that only B (I, J-1) is a target access pattern for masked reverse shift communication that satisfies the condition 302 in FIG.

このとき、B(I,J−1)のマスク付き逆シフト通信の対象次元は、2次元目である。また、配列Bは、マスク付き逆シフト通信対象配列である。   At this time, the target dimension of B (I, J-1) masked reverse shift communication is the second dimension. Array B is a masked reverse shift communication target array.

次に、逆シフトベクトル解析手段204は、並列化基準アクセスパタン解析手段201が選択したマスク付き逆シフト通信の対象並列ループネストであるDO JとDO Iからなる並列ループネストに対して、並列化の基準配列Aの分散次元である2次元目における、基準アクセスパタンA(:,J)の添字を、並列ループネスト中の並列化対象ループの制御変数Jの一次式として、J=1*J+0と表現したとき、アクセスパタン解析手段203が選択したマスク付き逆シフト通信の対象アクセスパタンであるB(I,J−1)の、マスク付き逆シフト通信の対象次元である2次元目の添字J−1=1*J+(−1)、に対して、図3の条件303により、(−1)−0=−1を逆シフトベクトルとして算出する。   Next, the inverse shift vector analysis unit 204 performs parallelization on the parallel loop nest composed of DO J and DO I, which are target parallel loop nests of the masked inverse shift communication, selected by the parallelization reference access pattern analysis unit 201. The subscript of the reference access pattern A (:, J) in the second dimension, which is the distribution dimension of the reference array A, is J = 1 * J + 0 as a primary expression of the control variable J of the parallelization target loop in the parallel loop nest. The second-dimensional subscript J, which is the target dimension of masked reverse shift communication, of B (I, J−1), which is the target access pattern of masked reverse shift communication, selected by the access pattern analysis unit 203 For −1 = 1 * J + (− 1), (−1) −0 = −1 is calculated as an inverse shift vector according to the condition 303 in FIG.

ここで、逆シフトベクトルは、負値であるから下向きであり、その絶対値1が逆シフト幅となる。   Here, since the reverse shift vector is a negative value, it is downward, and its absolute value 1 is the reverse shift width.

さらに、逆シフトベクトル解析手段204は、アクセスパタン解析手段203が選択したマスク付き逆シフト通信対象配列Bについて、アクセスパタン解析手段203が選択したマスク付き逆シフト通信の対象アクセスパタンであるB(I,J−1)に関して、マスク付き逆シフト通信の対象次元である2次元目の逆シフトベクトルの正値の最大値0と負値の最小値−1を算出する。   Further, the reverse shift vector analysis means 204 is the target access pattern B (I) of the masked reverse shift communication selected by the access pattern analysis means 203 for the masked reverse shift communication target array B selected by the access pattern analysis means 203. , J−1), the maximum positive value 0 and the negative minimum value −1 of the second-order reverse shift vector, which is the target dimension of the masked reverse shift communication, are calculated.

また、それらの絶対値0、1を、それぞれマスク付き逆シフト通信対象配列の当該次元である2次元目の上方向逆シフト通信バッファ幅、下方向逆シフト通信バッファ幅と呼ぶ。   The absolute values 0 and 1 are referred to as the second-direction upward reverse shift communication buffer width and the downward reverse shift communication buffer width of the second dimension, which are the dimensions of the masked reverse shift communication target array, respectively.

次に、逆シフト対象インデックス解析手段205は、並列化基準アクセスパタン解析手段201が選択したマスク付き逆シフト通信の対象並列ループネストであるDO JとDO Iからなる並列ループネストに対して、逆シフト対象インデックスを以下のように算出する。   Next, the reverse shift target index analyzing unit 205 performs inverse processing on the parallel loop nest composed of DO J and DO I which are the target parallel loop nests of the masked reverse shift communication selected by the parallelization reference access pattern analyzing unit 201. The shift target index is calculated as follows.

並列化の基準配列Aの分散次元である2次元目における、基準アクセスパタンA(:,J)の添字を、並列ループネスト中の並列化対象ループの制御変数Jの一次式として、J = 1 * J + 0、と表現し、
アクセスパタン解析手段203が選択した各マスク付き逆シフト通信の対象アクセスパタンであるB(I,J−1)の、マスク付き逆シフト通信の対象次元である2次元目の添字を、J −1 = 1 * J + (−1)、と表現したとき、
図3の条件304に従って、Jを制御変数とする並列化対象ループの増分値である2と一次式の係数1との積(2 * 1)を法として、1 * 2 + (−1)と合同な値、すなわち奇数値を、逆シフト対象インデックスとして算出する。
The subscript of the reference access pattern A (:, J) in the second dimension, which is the distribution dimension of the reference array A for parallelization, is defined as J = 1 as a primary expression of the control variable J of the parallelization target loop in the parallel loop nest. * Expressed as J + 0,
The subscript of the second dimension, which is the target dimension of the masked reverse shift communication, of B (I, J-1) that is the target access pattern of the masked reverse shift communication selected by the access pattern analysis unit 203 is J −1. = 1 * J + (-1)
According to the condition 304 in FIG. 3, the product (2 * 1) of 2 which is the increment value of the parallelized loop having J as a control variable and the coefficient 1 of the linear expression is modulo 1 * 2 + (−1) and A congruent value, that is, an odd value is calculated as a reverse shift target index.

次に、マスク付き逆シフト通信生成手段206は、並列化基準アクセスパタン解析手段201が選択したマスク付き逆シフト通信の対象並列ループネストであるDO JとDO Iからなる並列ループネストに対して、アクセスパタン解析手段203によって選択されたマスク付き逆シフト通信対象配列Bに対し、図1における計算ノード101の記憶手段103上に分割配置される際の、各計算ノード101に対応するプロセッサP(k)における分散次元2次元目の割付けインデックス範囲(5*(k−1)+1:5*(k−1)+5)に対して、上方向、下方向に、それぞれ、逆シフトベクトル解析手段204が算出した上方向逆シフト通信バッファ幅0、下方向逆シフト通信バッファ幅1だけマスク付き逆シフト通信用バッファを割付けるために、割付けインデックス範囲を拡張し、(5*(k−1):5*(k−1)+5)とする。   Next, the masked reverse shift communication generation unit 206 performs the parallel loop nest composed of DO J and DO I which are the target parallel loop nests of the masked reverse shift communication selected by the parallelization reference access pattern analysis unit 201. The processor P (k) corresponding to each calculation node 101 when the masked reverse shift communication target array B selected by the access pattern analysis means 203 is divided and arranged on the storage means 103 of the calculation node 101 in FIG. ) With respect to the allocation index range (5 * (k−1) +1: 5 * (k−1) +5) of the second dimension of the dispersion dimension, the reverse shift vector analysis means 204 is respectively upward and downward. The reverse shift communication buffer with mask is allocated only for the calculated upward reverse shift communication buffer width 0 and downward reverse shift communication buffer width 1. Therefore, the allocation index range is expanded to (5 * (k−1): 5 * (k−1) +5).

図6においては、配列Bの各プロセッサにおける割付け範囲が図示されており、斜線で塗られている要素がマスク付き逆シフト通信用バッファである。   In FIG. 6, the allocation range in each processor of the array B is illustrated, and the hatched elements are masked reverse shift communication buffers.

さらに、マスク付き逆シフト通信生成手段206は、マスク付き逆シフト通信対象配列Bのマスク付き逆シフト通信用バッファに対して、対応する配列要素からの通信、すなわち、図1において、マスク付き逆シフト通信用バッファに対応する配列要素が配置されている計算ノード101から、対応するマスク付き逆シフト通信用バッファが配置されている計算ノード101への、計算ノード間通信手段104を経由した通信(シフト通信)を、図6の601に示すように、並列ループネスト実行前に行う命令を生成する。   Further, the masked reverse shift communication generation means 206 communicates from the corresponding array element to the masked reverse shift communication buffer of the masked reverse shift communication target array B, that is, in FIG. Communication via the inter-computation node communication means 104 (shift) from the computation node 101 in which the array element corresponding to the communication buffer is arranged to the computation node 101 in which the corresponding masked reverse shift communication buffer is arranged As shown by reference numeral 601 in FIG. 6, an instruction for performing communication) before parallel loop nest execution is generated.

また、マスク付き逆シフト通信生成手段206は、マスク付き逆シフト通信対象アクセスパタンB(I,J−1)について、逆シフト対象インデックス解析手段205によって決定された逆シフト対象インデックスに対応する逆シフト通信バッファから、対応する配列要素への通信、すなわち、図1における、計算ノード101のうち、逆シフト対象インデックスである奇数の添字値に対応する逆シフト通信バッファが配置されている計算ノード101から、対応する配列要素が配置されている計算ノード101への、計算ノード間通信手段104を経由した通信を、図6の602のように、並列ループネストの実行後に行う命令を生成する。   Further, the masked reverse shift communication generation unit 206 performs reverse shift corresponding to the reverse shift target index determined by the reverse shift target index analysis unit 205 for the masked reverse shift communication target access pattern B (I, J−1). Communication from the communication buffer to the corresponding array element, that is, from the calculation node 101 in FIG. 1 in which the reverse shift communication buffer corresponding to the odd index value that is the reverse shift target index is arranged. Then, an instruction for performing communication via the inter-computation node communication means 104 to the computation node 101 in which the corresponding array element is arranged after execution of the parallel loop nest is generated as indicated by 602 in FIG.

以上の方法により、並列ループ実行中に、各計算ノード101で定義する配列要素が、他の(リモートの)計算ノード101の記憶手段103上に分割配置されている配列要素であるために、計算ノード間通信手段104を経由した通信が必要となる場合に、並列ループ実行中は、他の(リモートの)計算ノードではなく、演算を行う(ローカルな)計算ノードに確保されているマスク付き逆シフト通信用バッファ対して値の使用・定義を行い、並列ループ実行後に、定義が行われたマスク付き逆シフト通信用バッファの値を、他の(リモートの)計算ノード上に配置されている対応する配列要素に反映するため、計算ノード間通信手段104を経由した通信を行うことにより、高速に並列実行を行うことができる。   By the above method, since the array element defined in each computation node 101 is an array element that is divided and arranged on the storage means 103 of another (remote) computation node 101 during parallel loop execution, When communication via the node-to-node communication means 104 is required, the reverse with a mask reserved for the (local) computation node that performs the operation, not the other (remote) computation node, during execution of the parallel loop Correspondence that the value of the masked reverse shift communication buffer is defined on another (remote) computation node after the parallel loop is executed and the value is used / defined for the shift communication buffer. In order to reflect in the array elements to be performed, by performing communication via the inter-computation node communication means 104, parallel execution can be performed at high speed.

(第1の実施の形態による効果)
本実施の形態による効果について説明する。
第1の効果は、定義される配列要素に対するリモートアクセスがある場合でも、並列ループの実行速度を高速化できることである。その理由は、使用・定義される配列要素が、他の計算ノード上に配置されている場合に、並列ループ実行中は、配列データと隣接する領域に確保したバッファ領域に一時的に値を格納・使用し、並列ループ終了後に、バッファ領域のうち、定義された要素に対応する値を、他の計算ノードの対応する配列要素に通信して、値を反映することで、リモートアクセスが必要となる配列とテンポラリ配列間のコピーのオーバヘッドを削減できるからである。
(Effects of the first embodiment)
The effect by this Embodiment is demonstrated.
The first effect is that the execution speed of the parallel loop can be increased even when there is remote access to the defined array element. The reason is that when array elements to be used / defined are placed on other computation nodes, values are temporarily stored in the buffer area reserved in the area adjacent to the array data during parallel loop execution.・ Use and remote access is required by communicating the value corresponding to the defined element in the buffer area to the corresponding array element of the other computation node after reflecting the value after the parallel loop is used. This is because the overhead of copying between the array and the temporary array can be reduced.

第2の効果は、使用メモリ量を削減できることである。その理由は、定義される配列要素が、他の計算ノード上に配置されている場合に、配列全体と同じ形状のテンポラリ配列を割付けるのではなく、配列データと隣接する領域に、定義されるリモート要素分だけバッファ領域を割付けるからである。   The second effect is that the amount of used memory can be reduced. The reason is that, when the array element to be defined is placed on another computation node, it is defined in an area adjacent to the array data, rather than assigning a temporary array having the same shape as the entire array. This is because the buffer area is allocated for the remote elements.

すなわち、バッファ領域として、他の計算ノードの記憶手段上に分割配置されている配列要素のうち、自分の計算ノードがアクセスする分だけを割付ければ良いため、メモリ容量が節約できると共に、バッファ領域の内、定義される要素だけを並列ループ実行後に通信すれば良いため、定義される配列全体とテンポラリ配列との間のコピーのオーバヘッドを削減することができる。   That is, as the buffer area, it is only necessary to allocate an array element that is divided and arranged on the storage means of another calculation node, so that the memory area can be saved and the buffer area can be saved. Of these, only the defined elements need to be communicated after execution of the parallel loop, so that the overhead of copying between the entire defined array and the temporary array can be reduced.

以上好ましい実施の形態と実施例をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態及び実施例に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。   Although the present invention has been described with reference to the preferred embodiments and examples, the present invention is not necessarily limited to the above-described embodiments and examples, and various modifications can be made within the scope of the technical idea. Can be implemented.

本発明の実施の形態による分散メモリ型マルチプロセッサシステムの構成を示すブロック図である。1 is a block diagram showing a configuration of a distributed memory multiprocessor system according to an embodiment of the present invention. 本発明の実施の形態による分散メモリ型マルチプロセッサシステムにおけるマスク付き逆シフト通信手段の構成を示すブロック図である。It is a block diagram which shows the structure of the reverse shift communication means with a mask in the distributed memory type | mold multiprocessor system by embodiment of this invention. 本発明の実施の形態によるマスク付き逆シフト通信手段において使用する条件の内容を示す図である。It is a figure which shows the content of the conditions used in the reverse shift communication means with a mask by embodiment of this invention. 分散メモリ型マルチプロセッサシステム上で実行されるHPF言語によるプログラムの例を示す図である。It is a figure which shows the example of the program by the HPF language performed on a distributed memory type | mold multiprocessor system. 本発明の実施の形態による分散メモリ型マルチプロセッサシステムの動作を説明する図である。It is a figure explaining operation | movement of the distributed memory type | mold multiprocessor system by embodiment of this invention. 本発明の実施の形態による分散メモリ型マルチプロセッサシステムの動作を説明する図である。It is a figure explaining operation | movement of the distributed memory type | mold multiprocessor system by embodiment of this invention. 関連技術による並列実行の方式を説明するための図である。It is a figure for demonstrating the system of the parallel execution by related technology.

符号の説明Explanation of symbols

100:分散メモリ型マルチプロセッサシステム
101:計算ノード
102:計算手段
103:記憶手段
200:マスク付き逆シフト通信手段
201:並列化基準アクセスパタン解析手段
202:データマッピング解析手段
203:アクセスパタン解析手段
204:逆シフトベクトル解析手段
205:逆シフトインデックス解析手段
206:マスク付き逆シフト通信生成手段
DESCRIPTION OF SYMBOLS 100: Distributed memory type multiprocessor system 101: Computation node 102: Computation means 103: Storage means 200: Reverse shift communication means with mask 201: Parallelization reference access pattern analysis means 202: Data mapping analysis means 203: Access pattern analysis means 204 : Inverse shift vector analysis means 205: Inverse shift index analysis means 206: Inverse shift communication generation means with mask

Claims (21)

計算手段と記憶手段を有する複数の計算ノードを備え、配列データを前記計算ノードの前記記憶手段上に分割配置し、当該配列データを使用・定義するプログラム中のループを前記計算手段上で並列実行する分散メモリ型マルチプロセッサシステムであって、
前記計算ノードが、
各計算ノードで定義する配列要素が、他の計算ノードの記憶手段上に分割配置されている配列要素である場合に、並列ループ実行中は、自身の計算ノードの配列データと連続した領域に確保したマスク付き逆シフト通信用バッファに使用・定義する値を格納し、並列ループ実行後に、定義が行われたマスク付き逆シフト通信用バッファの値を、前記計算ノード間通信手段を経由して他の計算ノードに通信し、他の計算ノード上に配置されている対応する配列要素に反映させるマスク付き逆シフト通信手段を備えることを特徴とする分散メモリ型マルチプロセッサシステム。
A plurality of calculation nodes having a calculation means and a storage means are provided, array data is divided and arranged on the storage means of the calculation node, and a loop in a program for using / defining the array data is executed in parallel on the calculation means A distributed memory multiprocessor system,
The compute node is
When the array element defined in each calculation node is an array element that is divided and arranged on the storage means of another calculation node, during execution of the parallel loop, the area is contiguous with the array data of its own calculation node. The value to be used / defined is stored in the masked reverse shift communication buffer, and after execution of the parallel loop, the value of the masked reverse shift communication buffer that has been defined is transferred to the other via the inter-computation node communication means. A distributed memory type multiprocessor system, comprising: a masked reverse shift communication means for communicating with a corresponding computation node and reflecting the result to a corresponding array element arranged on another computation node.
前記マスク付き逆シフト通信手段が、
マスク付き逆シフト通信の対象となる並列化の基準配列の基準アクセスパタンに基づいて並列化される並列ループネストを認識する並列化基準アクセスパタン解析手段と、
マスク付き逆シフト通信対象の並列ループネストのそれぞれに対して、前記並列ループネスト中に出現する各配列のデータマッピングを解析し、並列化の基準配列と同一のマッピングを持つ配列を抽出するデータマッピング解析手段と、
前記並列ループネスト中における配列の各出現について、マスク付き逆シフト通信対象の配列、アクセスパタンと対象次元を選択するアクセスパタン解析手段と、
マスク付き逆シフト通信対象のアクセスパタンに対して必要となる逆シフト通信の方向と幅、及び逆シフト通信用バッファ幅を算出する逆シフトベクトル解析手段と、
マスク付き逆シフト通信対象のインデックスを算出する逆シフト対象インデックス解析手段と、
マスク付き逆シフト通信対象の配列の割付け範囲を逆シフト通信バッファ幅分だけ拡張すると共に、マスク付き逆シフト通信対象の並列ループネストの直前に、前記逆シフト通信バッファに対応する配列要素から、前記逆シフト通信バッファへのシフト通信命令を生成し、マスク付き逆シフト通信対象の並列ループネストの直後に、前記逆シフト通信バッファのうち、マスク付き逆シフト通信対象のインデックスに対応する要素から、対応する配列要素への逆シフト通信命令を生成するマスク付き逆シフト通信生成手段とを備えることを特徴とする請求項1に記載の分散メモリ型マルチプロセッサシステム。
The masked reverse shift communication means comprises:
A parallelization reference access pattern analysis means for recognizing a parallel loop nest that is parallelized based on a reference access pattern of a parallel reference array to be subjected to masked reverse shift communication;
Data mapping that analyzes the data mapping of each array appearing in the parallel loop nest for each parallel loop nest of the reverse shift communication target with mask, and extracts the array having the same mapping as the reference array for parallelization Analysis means;
For each occurrence of the array in the parallel loop nest, an access pattern analyzing means for selecting the masked reverse shift communication target array, access pattern and target dimension;
Reverse shift vector analysis means for calculating the reverse shift communication direction and width required for the masked reverse shift communication target access pattern, and the reverse shift communication buffer width;
Reverse shift target index analysis means for calculating an index for reverse shift communication target with mask;
Extending the allocation range of the masked reverse shift communication target array by the reverse shift communication buffer width, and immediately before the parallel loop nest of the masked reverse shift communication target, from the array element corresponding to the reverse shift communication buffer, Generate a shift communication command to the reverse shift communication buffer, and immediately after the parallel loop nest of the masked reverse shift communication target, from the element corresponding to the masked reverse shift communication target index of the reverse shift communication buffer, 2. The distributed memory type multiprocessor system according to claim 1, further comprising: a reverse shift communication generation unit with a mask for generating a reverse shift communication command to an array element to be processed.
前記並列化基準アクセスパタン解析手段が、
各並列ループネストに対して、並列化の基準配列の各分散次元において、基準アクセスパタンの添字が、所定の条件を満たすかどうかを検査し、所定の条件を満たす並列ループネストのみを、マスク付き逆シフト通信対象の並列ループネストとして選択することを特徴とする請求項2に記載の分散メモリ型マルチプロセッサシステム。
The parallel reference access pattern analysis means is
For each parallel loop nest, in each distributed dimension of the parallel reference array, check whether the subscript of the reference access pattern satisfies the predetermined condition, and mask only the parallel loop nest satisfying the predetermined condition 3. The distributed memory type multiprocessor system according to claim 2, wherein a parallel loop nest for reverse shift communication is selected.
前記アクセスパタン解析手段が、
前記データマッピング解析手段が抽出した、並列化の基準配列と同一のマッピングを持つ各配列の、並列ループネスト中における各出現について、並列化の基準配列の分散次元に対応する各次元の添字が、所定の条件を満たすアクセスパタンを、マスク付き逆シフト通信対象のアクセスパタンとして選択することを特徴とする請求項2又は請求項3に記載の分散メモリ型マルチプロセッサシステム。
The access pattern analysis means is
For each occurrence in the parallel loop nest of each array having the same mapping as the parallel reference array extracted by the data mapping analysis means, a subscript of each dimension corresponding to the distributed dimension of the parallel reference array is: 4. The distributed memory multiprocessor system according to claim 2, wherein an access pattern satisfying a predetermined condition is selected as an access pattern for masked reverse shift communication.
前記逆シフトベクトル解析手段が、
前記並列化基準アクセスパタン解析手段が選択したマスク付き逆シフト通信対象の並列ループネストのそれぞれに対し、並列化の基準配列の分散次元における基準アクセスパタンの添字と、前記アクセスパタン解析手段が選択した各マスク付き逆シフト通信対象のアクセスパタンの、マスク付き逆シフト通信の対象次元の添字の各対応する組み合わせに対して、逆シフトベクトルを算出し、
前記アクセスパタン解析手段が選択したマスク付き逆シフト通信対象配列に対応して、前記アクセスパタン解析手段が選択したマスク付き逆シフト通信の対象アクセスパタンであるような全ての出現の、マスク付き逆シフト通信の対象次元の逆シフトベクトルの集合の中で、正値の最大値と負値の最小値を計算し、前記正値の最大値と負値の最小値の絶対値を、それぞれマスク付き逆シフト通信対象配列の当該次元の上方向逆シフト通信バッファ幅、下方向逆シフト通信バッファ幅とすることを特徴とする請求項2から請求項4の何れかに記載の分散メモリ型マルチプロセッサシステム。
The inverse shift vector analysis means includes
For each parallel loop nest of the reverse shift communication target with mask selected by the parallelization reference access pattern analysis means, the subscript of the reference access pattern in the distributed dimension of the parallelization reference array and the access pattern analysis means selected A reverse shift vector is calculated for each corresponding combination of subscripts in the target dimension of masked reverse shift communication for each masked reverse shift communication target access pattern,
Corresponding to the masked reverse shift communication target array selected by the access pattern analyzing means, the masked reverse shift of all occurrences that are the target access patterns of the masked reverse shift communication selected by the access pattern analyzing means Calculates the maximum positive value and the minimum negative value in the set of reverse shift vectors of the communication target dimension, and reverses the absolute value of the maximum positive value and the minimum negative value with a mask. The distributed memory multiprocessor system according to any one of claims 2 to 4, wherein an upper reverse shift communication buffer width and a lower reverse shift communication buffer width of the dimension of the shift communication target array are used.
前記逆シフト対象インデックス解析手段が、
前記並列化基準アクセスパタン解析手段が選択したマスク付き逆シフト通信の対象並列ループネストのそれぞれに対して、前記アクセスパタン解析手段が選択した各マスク付き逆シフト通信の対象アクセスパタンの、マスク付き逆シフト通信の対象次元の添字のうち、所定の条件を満たす値を、逆シフト対象インデックスとして算出することを特徴とする請求項2から請求項5の何れかに記載の分散メモリ型マルチプロセッサシステム。
The reverse shift target index analysis means comprises:
For each of the target parallel loop nests of the masked reverse shift communication selected by the parallelization reference access pattern analysis means, the masked inverse of the target access pattern of each masked reverse shift communication selected by the access pattern analysis means 6. The distributed memory multiprocessor system according to claim 2, wherein a value satisfying a predetermined condition among subscripts of a target dimension of shift communication is calculated as an index for reverse shift.
前記マスク付き逆シフト通信生成手段が、
マスク付き逆シフト通信の対象配列の前記マスク付き逆シフト通信用バッファに対して、マスク付き逆シフト通信用バッファに対応する配列要素が配置されている計算ノードから、対応するマスク付き逆シフト通信用バッファが配置されている他の計算ノードへの前記計算ノード間通信手段を経由したシフト通信を、並列ループネスト実行前に行う命令を生成し、
各マスク付き逆シフト通信対象のアクセスパタンについて、前記逆シフト対象インデックス解析手段によって決定した逆シフト対象インデックスに対応する前記逆シフト通信バッファが配置されている計算ノードから、対応する配列要素が配置されている計算ノードへの計算ノード間通信手段を経由した逆シフト通信を、並列ループネストの実行後に行う命令を生成することを特徴とする請求項2から請求項6の何れかに記載の分散メモリ型マルチプロセッサシステム。
The masked reverse shift communication generating means comprises:
For the reverse shift communication with mask from the computation node in which the array element corresponding to the buffer for reverse shift communication with mask is arranged for the buffer for reverse shift communication with mask of the target array for reverse shift communication with mask Generate an instruction to perform shift communication via the inter-computation node communication means to another computation node in which the buffer is arranged before executing the parallel loop nest,
For each masked reverse shift communication target access pattern, the corresponding array element is arranged from the calculation node in which the reverse shift communication buffer corresponding to the reverse shift target index determined by the reverse shift target index analyzing means is arranged. The distributed memory according to any one of claims 2 to 6, wherein an instruction to perform reverse shift communication via the inter-computing node communication means to a computing node after execution of the parallel loop nest is generated. Type multiprocessor system.
計算手段と記憶手段を有する複数の計算ノードを備え、配列データを前記計算ノードの前記記憶手段上に分割配置し、当該配列データを使用・定義するプログラム中のループを前記計算手段上で並列実行する分散メモリ型マルチプロセッサシステムのマスク付き逆シフト通信方法であって、
各計算ノードで定義する配列要素が、他の計算ノードの記憶手段上に分割配置されている配列要素である場合に、並列ループ実行中は、自身の計算ノードの配列データと連続した領域に確保したマスク付き逆シフト通信用バッファに使用・定義する値を格納し、並列ループ実行後に、定義が行われたマスク付き逆シフト通信用バッファの値を、前記計算ノード間通信手段を経由して他の計算ノードに通信し、他の計算ノード上に配置されている対応する配列要素に反映させるマスク付き逆シフト通信ステップを実行することを特徴とするマスク付き逆シフト通信方法。
A plurality of calculation nodes having a calculation means and a storage means are provided, array data is divided and arranged on the storage means of the calculation node, and a loop in a program for using / defining the array data is executed in parallel on the calculation means A masked reverse shift communication method for a distributed memory multiprocessor system, comprising:
When the array element defined in each calculation node is an array element that is divided and arranged on the storage means of another calculation node, during execution of the parallel loop, the area is contiguous with the array data of its own calculation node. The value to be used / defined is stored in the masked reverse shift communication buffer, and after execution of the parallel loop, the value of the masked reverse shift communication buffer that has been defined is transferred to the other via the inter-computation node communication means. A masked reverse shift communication method comprising: executing a masked reverse shift communication step of communicating with a corresponding calculation node and reflecting the result on a corresponding array element arranged on another calculation node.
前記マスク付き逆シフト通信ステップが、
マスク付き逆シフト通信の対象となる並列化の基準配列の基準アクセスパタンに基づいて並列化される並列ループネストを認識する並列化基準アクセスパタン解析ステップと、
マスク付き逆シフト通信対象の並列ループネストのそれぞれに対して、前記並列ループネスト中に出現する各配列のデータマッピングを解析し、並列化の基準配列と同一のマッピングを持つ配列を抽出するデータマッピング解析ステップと、
前記並列ループネスト中における配列の各出現について、マスク付き逆シフト通信対象の配列、アクセスパタンと対象次元を選択するアクセスパタン解析ステップと、
マスク付き逆シフト通信対象のアクセスパタンに対して必要となる逆シフト通信の方向と幅、及び逆シフト通信用バッファ幅を算出する逆シフトベクトル解析ステップと、
マスク付き逆シフト通信対象のインデックスを算出する逆シフト対象インデックス解析ステップと、
マスク付き逆シフト通信対象の配列の割付け範囲を逆シフト通信バッファ幅分だけ拡張すると共に、マスク付き逆シフト通信対象の並列ループネストの直前に、前記逆シフト通信バッファに対応する配列要素から、前記逆シフト通信バッファへのシフト通信命令を生成し、マスク付き逆シフト通信対象の並列ループネストの直後に、前記逆シフト通信バッファのうち、マスク付き逆シフト通信対象のインデックスに対応する要素から、対応する配列要素への逆シフト通信命令を生成するマスク付き逆シフト通信生成ステップを含むことを特徴とする請求項8に記載のマスク付き逆シフト通信方法。
The masked reverse shift communication step comprises:
A parallelization reference access pattern analysis step for recognizing a parallel loop nest that is parallelized based on a reference access pattern of a reference array for parallelization to be subjected to masked reverse shift communication;
Data mapping that analyzes the data mapping of each array appearing in the parallel loop nest for each parallel loop nest of the reverse shift communication target with mask, and extracts the array having the same mapping as the reference array for parallelization An analysis step;
For each occurrence of the array in the parallel loop nest, an access pattern analysis step for selecting the masked reverse shift communication target array, access pattern and target dimension;
A reverse shift vector analysis step for calculating a reverse shift communication direction and width required for the masked reverse shift communication target access pattern, and a reverse shift communication buffer width;
Inverse shift target index analysis step for calculating an index for reverse shift communication target with mask;
Extending the allocation range of the masked reverse shift communication target array by the reverse shift communication buffer width, and immediately before the parallel loop nest of the masked reverse shift communication target, from the array element corresponding to the reverse shift communication buffer, Generate a shift communication command to the reverse shift communication buffer, and immediately after the parallel loop nest of the masked reverse shift communication target, from the element corresponding to the masked reverse shift communication target index of the reverse shift communication buffer, 9. The masked reverse shift communication method according to claim 8, further comprising a masked reverse shift communication generation step for generating a reverse shift communication command to an array element to be masked.
前記並列化基準アクセスパタン解析ステップにおいて、
各並列ループネストに対して、並列化の基準配列の各分散次元において、基準アクセスパタンの添字が、所定の条件を満たすかどうかを検査し、所定の条件を満たす並列ループネストのみを、マスク付き逆シフト通信対象の並列ループネストとして選択することを特徴とする請求項9に記載のマスク付き逆シフト通信方法。
In the parallelization reference access pattern analysis step,
For each parallel loop nest, in each distributed dimension of the parallel reference array, check whether the subscript of the reference access pattern satisfies the predetermined condition, and mask only the parallel loop nest satisfying the predetermined condition 10. The reverse shift communication method with a mask according to claim 9, wherein the reverse shift communication target parallel loop nest is selected.
前記アクセスパタン解析ステップにおいて、
前記データマッピング解析ステップで抽出した、並列化の基準配列と同一のマッピングを持つ各配列の、並列ループネスト中における各出現について、並列化の基準配列の分散次元に対応する各次元の添字が、所定の条件を満たすアクセスパタンを、マスク付き逆シフト通信対象のアクセスパタンとして選択することを特徴とする請求項9又は請求項10に記載のマスク付き逆シフト通信方法。
In the access pattern analysis step,
For each occurrence in the parallel loop nest of each array having the same mapping as the parallel reference array extracted in the data mapping analysis step, a subscript of each dimension corresponding to the distributed dimension of the parallel reference array is 11. The masked reverse shift communication method according to claim 9, wherein an access pattern that satisfies a predetermined condition is selected as an access pattern for masked reverse shift communication.
前記逆シフトベクトル解析ステップにおいて、
前記並列化基準アクセスパタン解析ステップで選択したマスク付き逆シフト通信対象の並列ループネストのそれぞれに対し、並列化の基準配列の分散次元における基準アクセスパタンの添字と、前記アクセスパタン解析ステップで選択した各マスク付き逆シフト通信対象のアクセスパタンの、マスク付き逆シフト通信の対象次元の添字の各対応する組み合わせに対して、逆シフトベクトルを算出し、
前記アクセスパタン解析ステップで選択したマスク付き逆シフト通信対象配列に対応して、前記アクセスパタン解析ステップで選択したマスク付き逆シフト通信の対象アクセスパタンであるような全ての出現の、マスク付き逆シフト通信の対象次元の逆シフトベクトルの集合の中で、正値の最大値と負値の最小値を計算し、前記正値の最大値と負値の最小値の絶対値を、それぞれマスク付き逆シフト通信対象配列の当該次元の上方向逆シフト通信バッファ幅、下方向逆シフト通信バッファ幅とすることを特徴とする請求項9から請求項11の何れかに記載のマスク付き逆シフト通信方法。
In the inverse shift vector analysis step,
For each parallel loop nest of the reverse shift communication target with mask selected in the parallelization reference access pattern analysis step, the subscript of the reference access pattern in the distributed dimension of the parallelization reference array and the selection in the access pattern analysis step A reverse shift vector is calculated for each corresponding combination of subscripts in the target dimension of masked reverse shift communication for each masked reverse shift communication target access pattern,
Corresponding to the masked reverse shift communication target array selected in the access pattern analyzing step, the masked reverse shift of all occurrences that are the target access patterns of the masked reverse shift communication selected in the access pattern analyzing step Calculates the maximum positive value and the minimum negative value in the set of reverse shift vectors of the communication target dimension, and reverses the absolute value of the maximum positive value and the minimum negative value with a mask. The masked reverse shift communication method according to any one of claims 9 to 11, wherein an upper reverse shift communication buffer width and a lower reverse shift communication buffer width in the dimension of the shift communication target array are used.
前記逆シフト対象インデックス解析ステップにおいて、
前記並列化基準アクセスパタン解析ステップで選択したマスク付き逆シフト通信の対象並列ループネストのそれぞれに対して、前記アクセスパタン解析ステップで選択した各マスク付き逆シフト通信の対象アクセスパタンの、マスク付き逆シフト通信の対象次元の添字のうち、所定の条件を満たす値を、逆シフト対象インデックスとして算出することを特徴とする請求項9から請求項12の何れかに記載のマスク付き逆シフト通信方法。
In the reverse shift target index analysis step,
For each target parallel loop nest of masked reverse shift communication selected in the parallelization reference access pattern analysis step, the masked inverse of the target access pattern of each masked reverse shift communication selected in the access pattern analysis step The masked reverse shift communication method according to any one of claims 9 to 12, wherein a value satisfying a predetermined condition among subscripts of a target dimension of shift communication is calculated as a reverse shift target index.
前記マスク付き逆シフト通信生成ステップにおいて、
マスク付き逆シフト通信の対象配列の前記マスク付き逆シフト通信用バッファに対して、マスク付き逆シフト通信用バッファに対応する配列要素が配置されている計算ノードから、対応するマスク付き逆シフト通信用バッファが配置されている他の計算ノードへの前記計算ノード間通信手段を経由したシフト通信を、並列ループネスト実行前に行う命令を生成し、
各マスク付き逆シフト通信対象のアクセスパタンについて、前記逆シフト対象インデックス解析ステップで決定した逆シフト対象インデックスに対応する前記逆シフト通信バッファが配置されている計算ノードから、対応する配列要素が配置されている計算ノードへの計算ノード間通信手段を経由した逆シフト通信を、並列ループネストの実行後に行う命令を生成することを特徴とする請求項9から請求項13の何れかに記載のマスク付き逆シフト通信方法。
In the masked reverse shift communication generation step,
For the reverse shift communication with mask from the computation node in which the array element corresponding to the buffer for reverse shift communication with mask is arranged for the buffer for reverse shift communication with mask of the target array for reverse shift communication with mask Generate an instruction to perform shift communication via the inter-computation node communication means to another computation node in which the buffer is arranged before executing the parallel loop nest,
For each masked reverse shift communication target access pattern, the corresponding array element is arranged from the calculation node in which the reverse shift communication buffer corresponding to the reverse shift target index determined in the reverse shift target index analyzing step is arranged. 14. A command with a mask according to claim 9, wherein an instruction for performing reverse shift communication via a communication means between calculation nodes to a calculation node after execution of parallel loop nest is generated. Reverse shift communication method.
計算手段と記憶手段を有する複数の計算ノードを備え、配列データを前記計算ノードの前記記憶手段上に分割配置し、当該配列データを使用・定義するプログラム中のループを前記計算手段上で並列実行する分散メモリ型マルチプロセッサシステムのマスク付き逆シフト通信を実行するプログラムであって、
前記計算ノードに、
各計算ノードで定義する配列要素が、他の計算ノードの記憶手段上に分割配置されている配列要素である場合に、並列ループ実行中は、自身の計算ノードの配列データと連続した領域に確保したマスク付き逆シフト通信用バッファに使用・定義する値を格納し、並列ループ実行後に、定義が行われたマスク付き逆シフト通信用バッファの値を、前記計算ノード間通信手段を経由して他の計算ノードに通信し、他の計算ノード上に配置されている対応する配列要素に反映させるマスク付き逆シフト通信処理を実行させることを特徴とするプログラム。
A plurality of calculation nodes having a calculation means and a storage means are provided, array data is divided and arranged on the storage means of the calculation node, and a loop in a program for using / defining the array data is executed in parallel on the calculation means A program for executing masked reverse shift communication of a distributed memory multiprocessor system,
In the compute node,
When the array element defined in each calculation node is an array element that is divided and arranged on the storage means of another calculation node, during execution of the parallel loop, the area is contiguous with the array data of its own calculation node. The value to be used / defined is stored in the masked reverse shift communication buffer, and after execution of the parallel loop, the value of the masked reverse shift communication buffer that has been defined is transferred to the other via the inter-computation node communication means. A program characterized by causing a reverse shift communication process with a mask to be executed, which is communicated to a corresponding computation node and reflected in a corresponding array element arranged on another computation node.
前記マスク付き逆シフト通信処理が、
マスク付き逆シフト通信の対象となる並列化の基準配列の基準アクセスパタンに基づいて並列化される並列ループネストを認識する並列化基準アクセスパタン解析処理と、
マスク付き逆シフト通信対象の並列ループネストのそれぞれに対して、前記並列ループネスト中に出現する各配列のデータマッピングを解析し、並列化の基準配列と同一のマッピングを持つ配列を抽出するデータマッピング解析処理と、
前記並列ループネスト中における配列の各出現について、マスク付き逆シフト通信対象の配列、アクセスパタンと対象次元を選択するアクセスパタン解析処理と、
マスク付き逆シフト通信対象のアクセスパタンに対して必要となる逆シフト通信の方向と幅、及び逆シフト通信用バッファ幅を算出する逆シフトベクトル解析処理と、
マスク付き逆シフト通信対象のインデックスを算出する逆シフト対象インデックス解析処理と、
マスク付き逆シフト通信対象の配列の割付け範囲を逆シフト通信バッファ幅分だけ拡張すると共に、マスク付き逆シフト通信対象の並列ループネストの直前に、前記逆シフト通信バッファに対応する配列要素から、前記逆シフト通信バッファへのシフト通信命令を生成し、マスク付き逆シフト通信対象の並列ループネストの直後に、前記逆シフト通信バッファのうち、マスク付き逆シフト通信対象のインデックスに対応する要素から、対応する配列要素への逆シフト通信命令を生成するマスク付き逆シフト通信生成処理を含むことを特徴とする請求項15に記載のプログラム。
The masked reverse shift communication process is:
A parallelization reference access pattern analysis process for recognizing a parallel loop nest that is parallelized based on a reference access pattern of a parallel reference array that is a target of reverse shift communication with a mask;
Data mapping that analyzes the data mapping of each array appearing in the parallel loop nest for each parallel loop nest of the reverse shift communication target with mask, and extracts the array having the same mapping as the reference array for parallelization Analysis process,
For each occurrence of the array in the parallel loop nest, an access pattern analysis process for selecting the masked reverse shift communication target array, access pattern and target dimension;
Reverse shift vector analysis processing for calculating the reverse shift communication direction and width required for the masked reverse shift communication target access pattern, and the reverse shift communication buffer width;
Inverse shift target index analysis processing for calculating an index for reverse shift communication target with mask,
Extending the allocation range of the masked reverse shift communication target array by the reverse shift communication buffer width, and immediately before the parallel loop nest of the masked reverse shift communication target, from the array element corresponding to the reverse shift communication buffer, Generate a shift communication command to the reverse shift communication buffer, and immediately after the parallel loop nest of the masked reverse shift communication target, from the element corresponding to the masked reverse shift communication target index of the reverse shift communication buffer, The program according to claim 15, further comprising a masked reverse shift communication generation process for generating a reverse shift communication command to an array element to be processed.
前記並列化基準アクセスパタン解析処理において、
各並列ループネストに対して、並列化の基準配列の各分散次元において、基準アクセスパタンの添字が、所定の条件を満たすかどうかを検査し、所定の条件を満たす並列ループネストのみを、マスク付き逆シフト通信対象の並列ループネストとして選択することを特徴とする請求項16に記載のプログラム。
In the parallel reference access pattern analysis process,
For each parallel loop nest, in each distributed dimension of the parallel reference array, check whether the subscript of the reference access pattern satisfies the predetermined condition, and mask only the parallel loop nest satisfying the predetermined condition The program according to claim 16, wherein the program is selected as a parallel loop nest for reverse shift communication.
前記アクセスパタン解析処理において、
前記データマッピング解析処理で抽出した、並列化の基準配列と同一のマッピングを持つ各配列の、並列ループネスト中における各出現について、並列化の基準配列の分散次元に対応する各次元の添字が、所定の条件を満たすアクセスパタンを、マスク付き逆シフト通信対象のアクセスパタンとして選択することを特徴とする請求項16又は請求項17に記載のプログラム。
In the access pattern analysis process,
For each occurrence in the parallel loop nest of each array having the same mapping as the parallel reference array extracted in the data mapping analysis process, a subscript of each dimension corresponding to the distributed dimension of the parallel reference array is The program according to claim 16 or 17, wherein an access pattern that satisfies a predetermined condition is selected as an access pattern for masked reverse shift communication.
前記逆シフトベクトル解析処理において、
前記並列化基準アクセスパタン解析処理で選択したマスク付き逆シフト通信対象の並列ループネストのそれぞれに対し、並列化の基準配列の分散次元における基準アクセスパタンの添字と、前記アクセスパタン解析処理で選択した各マスク付き逆シフト通信対象のアクセスパタンの、マスク付き逆シフト通信の対象次元の添字の各対応する組み合わせに対して、逆シフトベクトルを算出し、
前記アクセスパタン解析処理で選択したマスク付き逆シフト通信対象配列に対応して、前記アクセスパタン解析処理で選択したマスク付き逆シフト通信の対象アクセスパタンであるような全ての出現の、マスク付き逆シフト通信の対象次元の逆シフトベクトルの集合の中で、正値の最大値と負値の最小値を計算し、前記正値の最大値と負値の最小値の絶対値を、それぞれマスク付き逆シフト通信対象配列の当該次元の上方向逆シフト通信バッファ幅、下方向逆シフト通信バッファ幅とすることを特徴とする請求項16から請求項18の何れかに記載のプログラム。
In the inverse shift vector analysis process,
For each parallel loop nest of the reverse shift communication target with mask selected in the parallelization reference access pattern analysis process, the subscript of the reference access pattern in the distributed dimension of the reference array for parallelization and the access pattern analysis process selected A reverse shift vector is calculated for each corresponding combination of subscripts in the target dimension of masked reverse shift communication for each masked reverse shift communication target access pattern,
Corresponding to the masked reverse shift communication target array selected in the access pattern analysis process, the masked reverse shift of all occurrences that are the target access patterns of the masked reverse shift communication selected in the access pattern analysis process Calculates the maximum positive value and the minimum negative value in the set of reverse shift vectors of the communication target dimension, and reverses the absolute value of the maximum positive value and the minimum negative value with a mask. The program according to any one of claims 16 to 18, wherein an upper reverse shift communication buffer width and a lower reverse shift communication buffer width of the dimension of the shift communication target array are set.
前記逆シフト対象インデックス解析処理において、
前記並列化基準アクセスパタン解析処理で選択したマスク付き逆シフト通信の対象並列ループネストのそれぞれに対して、前記アクセスパタン解析処理で選択した各マスク付き逆シフト通信の対象アクセスパタンの、マスク付き逆シフト通信の対象次元の添字のうち、所定の条件を満たす値を、逆シフト対象インデックスとして算出することを特徴とする請求項16から請求項19の何れかに記載のプログラム。
In the reverse shift target index analysis process,
For each target parallel loop nest of masked reverse shift communication selected in the parallelization reference access pattern analysis process, the masked inverse of the target access pattern of each masked reverse shift communication selected in the access pattern analysis process The program according to any one of claims 16 to 19, wherein a value satisfying a predetermined condition among subscripts of a target dimension of shift communication is calculated as a reverse shift target index.
前記マスク付き逆シフト通信生成処理において、
マスク付き逆シフト通信の対象配列の前記マスク付き逆シフト通信用バッファに対して、マスク付き逆シフト通信用バッファに対応する配列要素が配置されている計算ノードから、対応するマスク付き逆シフト通信用バッファが配置されている他の計算ノードへの前記計算ノード間通信手段を経由したシフト通信を、並列ループネスト実行前に行う命令を生成し、
各マスク付き逆シフト通信対象のアクセスパタンについて、前記逆シフト対象インデックス解析処理で決定した逆シフト対象インデックスに対応する前記逆シフト通信バッファが配置されている計算ノードから、対応する配列要素が配置されている計算ノードへの計算ノード間通信手段を経由した逆シフト通信を、並列ループネストの実行後に行う命令を生成することを特徴とする請求項16から請求項20の何れかに記載のプログラム。
In the masked reverse shift communication generation process,
For the reverse shift communication with mask from the computation node in which the array element corresponding to the buffer for reverse shift communication with mask is arranged for the buffer for reverse shift communication with mask of the target array for reverse shift communication with mask Generate an instruction to perform shift communication via the inter-computation node communication means to another computation node in which the buffer is arranged before executing the parallel loop nest,
For each masked reverse shift communication target access pattern, a corresponding array element is arranged from a calculation node in which the reverse shift communication buffer corresponding to the reverse shift target index determined in the reverse shift target index analysis processing is arranged. The program according to any one of claims 16 to 20, wherein an instruction for performing reverse shift communication via a communication means between calculation nodes to a calculation node after execution of parallel loop nest is generated.
JP2008157488A 2008-06-17 2008-06-17 Distributed memory multiprocessor system, masked reverse shift communication method and program Active JP5120778B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008157488A JP5120778B2 (en) 2008-06-17 2008-06-17 Distributed memory multiprocessor system, masked reverse shift communication method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008157488A JP5120778B2 (en) 2008-06-17 2008-06-17 Distributed memory multiprocessor system, masked reverse shift communication method and program

Publications (2)

Publication Number Publication Date
JP2009301453A true JP2009301453A (en) 2009-12-24
JP5120778B2 JP5120778B2 (en) 2013-01-16

Family

ID=41548257

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008157488A Active JP5120778B2 (en) 2008-06-17 2008-06-17 Distributed memory multiprocessor system, masked reverse shift communication method and program

Country Status (1)

Country Link
JP (1) JP5120778B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011232966A (en) * 2010-04-28 2011-11-17 Nec Corp Distributed-memory multiprocessor system and communication suppression method thereof
JP2012221135A (en) * 2011-04-07 2012-11-12 Hitachi Ltd Generation method of parallelization program for numa architecture
JP2014191682A (en) * 2013-03-28 2014-10-06 Nec Corp Program conversion device, program conversion method, and program conversion program

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JPN7012002770; 林 康晴: '「HPF応用編」' [online] , 20071129, 1頁〜62頁, HPF推進協議会 *
JPN7012002771; 坂上仁志: '「HPFの概要」' [online] , 20071129, 1頁〜40頁, HPF推進協議会 *
JPN7012002772; 坂上仁志: '「6.見てみよう実用プログラム」' [online] , 200701, 94頁〜100頁, プラズマ核融合学会 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011232966A (en) * 2010-04-28 2011-11-17 Nec Corp Distributed-memory multiprocessor system and communication suppression method thereof
JP2012221135A (en) * 2011-04-07 2012-11-12 Hitachi Ltd Generation method of parallelization program for numa architecture
JP2014191682A (en) * 2013-03-28 2014-10-06 Nec Corp Program conversion device, program conversion method, and program conversion program

Also Published As

Publication number Publication date
JP5120778B2 (en) 2013-01-16

Similar Documents

Publication Publication Date Title
Qi et al. Paleo: A performance model for deep neural networks
US10963787B2 (en) Systems and methods for generation of sparse code for convolutional neural networks
US20200249998A1 (en) Scheduling computation graph heterogeneous computer system
Zhang et al. On-the-fly elimination of dynamic irregularities for GPU computing
Lu et al. Optimizing depthwise separable convolution operations on gpus
JPH0830561A (en) Method and compiler for parallel execution of program
US11385931B2 (en) Method, electronic device, and computer program product for processing computing job
Malyshkin et al. Optimization methods of parallel execution of numerical programs in the LuNA fragmented programming system
Koza et al. Compressed multirow storage format for sparse matrices on graphics processing units
US11630986B2 (en) Graph conversion method
Fell et al. Force-directed scheduling for data flow graph mapping on coarse-grained reconfigurable architectures
Sato et al. Evaluating reconfigurable dataflow computing using the himeno benchmark
JP5120778B2 (en) Distributed memory multiprocessor system, masked reverse shift communication method and program
Chen et al. {Locality-Aware} Software Throttling for Sparse Matrix Operation on {GPUs}
Xue et al. Multi-CPU/GPU parallelization, optimization and machine learning based autotuning of structured grid CFD codes
Nguyen et al. Communication-aware mapping of stream graphs for multi-GPU platforms
Dutta et al. Hierarchical partitioning for piecewise linear algorithms
CN113326137B (en) Deep learning calculation method, device, chip and medium
JPH04293150A (en) Compiling method
Ishizaki et al. A loop transformation algorithm for communication overlapping
Zhu et al. Advancing supercomputer performance through interconnection topology synthesis
Basthikodi et al. HPC Based Algorithmic Species Extraction Tool for Automatic Parallelization of Program Code
US11960982B1 (en) System and method of determining and executing deep tensor columns in neural networks
JP5549861B2 (en) Distributed memory multiprocessor system and communication suppression method for distributed memory multiprocessor system
EP4202774A1 (en) Runtime predictors for neural network computation reduction

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120713

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120911

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121001

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

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

Free format text: PAYMENT UNTIL: 20151102

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5120778

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121014