JP4529188B2 - 分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置、その方法及びそのプログラム - Google Patents

分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置、その方法及びそのプログラム Download PDF

Info

Publication number
JP4529188B2
JP4529188B2 JP2007014965A JP2007014965A JP4529188B2 JP 4529188 B2 JP4529188 B2 JP 4529188B2 JP 2007014965 A JP2007014965 A JP 2007014965A JP 2007014965 A JP2007014965 A JP 2007014965A JP 4529188 B2 JP4529188 B2 JP 4529188B2
Authority
JP
Japan
Prior art keywords
shift
communication
dimensional
multidimensional
shift 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.)
Expired - Fee Related
Application number
JP2007014965A
Other languages
English (en)
Other versions
JP2008181388A (ja
Inventor
康晴 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2007014965A priority Critical patent/JP4529188B2/ja
Publication of JP2008181388A publication Critical patent/JP2008181388A/ja
Application granted granted Critical
Publication of JP4529188B2 publication Critical patent/JP4529188B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Description

本発明は、多次元シフト通信を行う分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置、その方法及びそのプログラムに関し、特に通信スケジュールの再利用を行う分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置、その方法及びそのプログラムに関する。
図1のような構成を有する分散メモリ型マルチプロセッサシステムにおいて、同一の多次元シフト通信が繰り返される場合、通信スケジュールを保存し、これを再利用することにより、通信を高速化する手法は従来から行われていた。(例えば、特許文献1参照)。
ここで、シフト通信とは各プロセッサが隣接するプロセッサに対し、一定方向にデータを送信する通信形態のことをいう。また、多次元シフト通信とは配列データの複数次元に沿った隣接要素間の通信をいう。
この点、多次元方向にシフト通信が行われる場合、次元や方向が毎回変化することがある。図5のHPF言語によるプログラム例を参照し説明する。
図5では、大きさ64のプロセッサ構成P(4,4,4)の各要素がそれぞれ1つの計算ノードに対応するとする。
プロセッサP(i,j,k)(1<=i,j,k<=4)に対応する計算ノード101の記憶部103上には、
Figure 0004529188
がそれぞれ分割配置されている。時間発展ループ中で起動されるサブルーチンSUB1中のループを計算ノード101上で配列Aに対するオーナーコンピュートルール(配列Aの要素が配置されている計算ノード上で演算を行う)により並列計算する場合、
配列Aに対して、配列Bの参照B(I+1,J+1,K)において、1次元目の添字が上方向に1要素、2次元目の添字が上方向に1要素、ずれており、
また配列Bの参照B(I+1,J−1,K)において、1次元目の添字が上方向に1要素、2次元目の添字が下方向に1要素、ずれているため、
配列Bの隣接する要素が分割配置されている計算ノード101間で、
配列Bの1次元目の上方向に幅1、
2次元目の下方向に幅1、上方向に幅1、
1次元目の上方向および2次元目の上方向(斜め方向)へ幅1、
1次元目の上方向および2次元目の下方向(斜め方向)へ幅1、
分の通信が必要となる。このような配列データの複数次元に沿った隣接要素間の通信を多次元シフト通信という。
同様に、時間発展ループ中で起動されるサブルーチンSUB2中のループを計算ノード101上で配列Aに対するオーナーコンピュートルール(配列Aの要素が配置されている計算ノード上で演算を行う)により並列計算する場合、
配列Aに対して、配列Cの参照C(i−1,j,k+1)において、1次元目の添字が下方向に1要素、3次元目の添字が上方向に1要素、ずれているため、
配列Cの1次元目の上方向に幅1、下方向に幅1、
3次元目の下方向に幅1、上方向に幅1、
1次元目の上方向および3次元目の下方向(斜め方向)へ幅1、
1次元目の下方向および3次元目の上方向(斜め方向)へ幅1、
分の通信が必要となる。
上記の例のように、多次元方向にシフト通信が行われる場合、次元や方向が毎回変化することがある。
特開平09−330304号公報
多次元方向にシフト通信が行われる場合であって上記で図5を用いて説明したように次元や方向が毎回変化するような場合には、前記の通信スケジュールを保存し、これを再利用する従来技術には問題点があった。すなわち、多次元方向にシフト通信が行われる場合、次元や方向が毎回変化すると、通信スケジュールの再利用が行えず、前回の通信スケジュールを破棄して、新たに再生成する必要がある点である。
これにより、通信スケジュールの生成というコストが発生することとなり、シフト通信の高速化を阻害するという問題を生じていた。
そこで、本発明は、毎回シフト通信次元やシフト通信方向、シフト通信対象の配列が変化するような場合、またはシフト通信が異なる手続中で発生する場合でも、通信の高速化を図る装置、その方法、そのプログラムを提供することを目的とする。
本発明によれば、分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化方式であって、多次元シフト通信を行う配列データの分割配置方法解析することにより当該配列データの分散メモリ型マルチプロセッサ上での分割配置を特定する手段と、前記解析により特定した前記分割配置と同一の分割配置に対応する多次元シフト通信スケジュールを多次元シフト通信スケジュールテーブルより検索する手段と、前記検索を行い、同一の分割配置に対する多次元シフト通信スケジュールが存在する場合には、前記多次元シフト通信に必要な多次元シフト通信スケジュールのシフトパターンが格納されているテーブルである多次元シフトパターンテーブルを検索しシフトパターンの一致を判定する手段と、シフトパターンの一致する多次元シフト通信スケジュールが存在する場合には、該一致する多次元シフト通信スケジュールを再利用する手段と、
前記多次元シフト通信に必要な多次元シフト通信スケジュールを、多次元シフト通信スケジュールテーブルに格納する手段と、前記多次元シフト通信に必要な多次元シフト通信スケジュールのシフトパターンを多次元シフトパターンテーブルに格納する手段と、前記再利用される通信スケジュールを参照して、多次元シフト通信を行う手段を備え、前記シフトパターンの一致を判定する手段及び多次元シフト通信スケジュールを再利用する手段は、各次元、方向を単位とし、単位毎に独立して前記多次元シフト通信スケジュールの再利用を行うことを特徴とする分散メモリ型マルチプロセッサシステムの多次元シフト通信
高速化方式が提供される。
本発明によれば、配列の分割配置方法に1対1に対応する多次元シフトテーブル中に、通信スケジュールを各次元、方向を単位とし、単位毎に独立に生成、保存することにより、多次元シフト通信時の通信スケジュールが部分的に独立に再利用可能となり、毎回シフト通信次元やシフト通信方向、シフト通信対象の配列が変化するような場合、またはシフト通信が異なる手続中で発生する場合でも分割配置方法が同じであれば、通信スケジュール生成コストの削減を行うことが可能となる。
次に、本発明の最良の形態について図面を用いて説明する。
まず、図1および図2を用い、構成を説明する。
図1において、分散メモリ型マルチプロセッサシステム100上で、配列データが、計算ノード101の記憶部103上に分割配置されている。該配列データを利用・定義するプログラムが計算部102上で実行される際に、配列の隣接する要素が分割配置されている計算ノード101間で、計算ノード間通信手段を経由した多次元方向へのシフト通信が行われる。
次に、図2において、多次元シフト通信手段200は、マッピング解析手段201、通信スケジュール再利用手段202、多次元シフトパターンマッチング手段203、通信スケジュール生成手段204、多次元シフト通信実行手段205を備える。
図2において、多次元シフト通信手段200は、上記マッピング解析手段201によって検出された分割配置と同一の分割配置に対する通信スケジュールが多次元シフト通信スケジュールテーブル300に存在するか否かを検索する。
同一の分割配置に対する多次元シフト通信スケジュールテーブル300が存在しない場合、通信スケジュール再利用手段202は、多次元シフト通信スケジュールテーブル300および多次元シフト通信パターンテーブル400を生成する。
次に、多次元シフトパターンマッチング手段203が、今回シフト通信が必要である各次元、各方向のための多次元シフトパターンを、多次元シフトパターンテーブル400の、対応する方向、次元の多次元シフト通信パターンテーブルに保存し、通信スケジュール生成手段204の処理にすすむ。
同一の分割配置に対する多次元シフト通信スケジュールテーブル300が存在する場合、多次元シフトパターンマッチング手段203が、多次元シフト通信パターンテーブル400の、今回シフト通信が必要である各次元、各方向のための多次元シフト通信パターンテーブルを検索し、今回必要な多次元シフト通信の、各次元、各方向の多次元シフト通信パターンが、前回行った多次元シフト通信の対応する次元、方向の多次元シフトパターンと一致するかどうかを判定する。
一致する場合は当該一致する次元、当該一致する方向用の多次元シフト通信スケジュールは当該一致する次元、方向毎に再利用される。
一致しない場合は多次元シフトパターンマッチング手段203が、多次元シフト通信パターンテーブル400の、当該次元、当該方向用の多次元シフト通信パターンテーブに、
今回の当該次元、当該方向のための多次元シフト通信パターンを保存し、
通信スケジュール生成手段204の処理に進む。
通信スケジュール生成手段204は、新たに通信スケジュールの生成が必要となった多次元シフト通信の次元、方向についてのみ、通信スケジュールを生成し、多次元シフト通信スケジュールテーブル300の当該次元、当該方向のシフト通信スケジュールテーブルに登録する。
最後に、シフト通信実行手段205が、生成された通信スケジュール、または再利用される通信スケジュールを参照して、必要なシフト通信を行う。
次に、本実施例の全体の動作について、詳細に説明する。
基本的構成は、前記、図1を用いて説明した構成と同様であり、分散メモリ型マルチプロセッサシステム100上で、配列データが、計算ノード101の記憶部103上に分割配置されている。該配列データを利用・定義するプログラムが計算部102上で実行される際に、配列の隣接する要素が分割配置されている計算ノード101間で、計算ノード間通信手段を経由した多次元方向へのシフト通信が行われるとする。
図5のHPF言語によるプログラム例を参照すると、 時間発展ループ中で、シフト通信を含むサブルーチンSUB1、SUB2が繰り返し呼び出されている。
ここで、図5に出現する配列A、B、Cは、大きさ64のプロセッサ構成P(4,4,4,)の各要素が、それぞれ1つの計算ノードに対応すると考えると、 プロセッサP(i,j,k) (1<=i,j,k<=4)に対応する計算ノード101の記憶部103上には、
Figure 0004529188
が、それぞれ分割配置されている。
ここで、図5のサブルーチンSUB1中のループを計算手段上で配列Aに対するオーナーコンピュートルール(配列Aの要素が配置されている計算ノード上で演算を行う)により並列計算する場合について説明する。
配列Aに対して、配列Bの参照B(I+1,J+1,K)において、1次元目の添字が上方向に1要素、2次元目の添字が上方向に1要素、ずれており、
また配列Bの参照B(I+1,J−1,K)において、1次元目の添字が上方向に1要素、2次元目の添字が下方向に1要素、ずれている。
よって、配列Bの隣接する要素が分割配置されている計算ノード101間で、配列Bの
1次元目の上方向に幅1、
2次元目の下方向に幅1、上方向に幅1、
1次元目の上方向および2次元目の上方向(斜め方向)へ幅1、
1次元目の上方向および2次元目の下方向(斜め方向)へ幅1、分の通信が必要となる。
同様に、時間発展ループ中で起動されるサブルーチンSUB2中のループを計算ノード101上で配列Aに対するオーナーコンピュートルール(配列Aの要素が配置されている計算ノード上で演算を行う)により並列計算する場合、
配列Aに対して、配列Cの参照C(i−1,j,k+1)において、1次元目の添字が下方向に1要素、3次元目の添字が上方向に1要素、ずれている。
よって配列Cの1次元目の上方向に幅1、下方向に幅1、3次元目の下方向に幅1、上方向に幅1、1次元目の上方向および3次元目の下方向(斜め方向)へ幅1、1次元目の下方向および3次元目の上方向(斜め方向)へ幅1、分の通信が必要となる。
図5のサブルーチンSUB1が初めて起動された時、その中のループが並列実行される直前に起動される図2のシフト通信手段200のマッピング解析手段201は、シフト対象の配列データBの分割配置方法を解析する。
次に、通信スケジュール再利用手段202は、 マッピング解析手段201により特定された配列データBの分割配置に対応する多次元シフト通信スケジュールテーブル300が生成されておらず、従って、配列データBに対して必要な、シフト通信スケジュールも生成されていないことを認識し、多次元シフト通信スケジュールテーブル300および多次元シフト通信パターンテーブル400を生成して、多次元シフトパターンマッチング手段203を起動する。
該多次元シフトパターンマッチング手段203は、上方向多次元シフト通信パターンテーブル401の、1次元目多次元シフト通信パターンテーブル403に、1次元目の上方向シフト幅1を保存し、2次元目多次元シフト通信パターンテーブル404に、2次元目の上方向シフト幅1、および1次元目の上下方向のシフト幅1、0をそれぞれ保存する。
また、下方向多次元シフト通信パターンテーブル402の、2次元目多次元シフト通信パターンテーブル411に、2次元目の下方向シフト幅1、および1次元目の上下方向のシフト幅1、0をそれぞれ保存する。
次に、通信スケジュール生成手段204は、配列データBに対して必要な、1次元目の上方向に幅1、2次元目の下方向に幅1、上方向に幅1、分のシフト通信スケジュールをそれぞれ生成する。
その際、1次元目の上方向および2次元目の上方向(斜め方向)へ幅1のシフト通信は、まず、1次元目シフト通信を行った後、1次元目の上方向シフト通信時に受信側となったプロセッサが、2次元目の上方向のシフト通信時に併せて送信するため、2次元目の上方向用の通信スケジュールに組込まれる。
また、1次元目の上方向および2次元目の下方向(斜め方向)へ幅1のシフト通信は、まず、1次元目シフト通信を行った後、1次元目の上方向シフト通信時に受信側となったプロセッサが、2次元目の下方向のシフト通信時に併せて送信するため、2次元目の下方向用の通信スケジュールに組込まれる。
更に、生成した通信スケジュールを、配列データBの分割配置方法と同一の分割配置方法を持つ配列に対する多次元シフト通信スケジュールテーブル300の、1次元目の上方向シフト通信スケジュールテーブル301、2次元目の上方向シフト通信スケジュールテーブル303、2次元目の下方向シフト通信スケジュールテーブル304、に登録する。
加えて、シフト通信実行手段205は、生成された多次元通信スケジュールテーブル300中の、1次元目上方向シフト通信スケジュール303、に基づいて、1次元目方向のシフト通信を行った後、2次元目上方向シフト通信スケジュール303および2次元目下方向シフト通信スケジュール304、に基づいて、2次元目方向のシフト通信、および1次元目の上方向および2次元目の上方向(斜め方向)へ幅1、1次元目の上方向および2次元目の下方向(斜め方向)へ幅1のための通信を併せて行うことにより、配列データBに対する多次元シフト通信を完了する。
次に、図5のサブルーチンSUB2が初めて起動された時、ループが並列実行される直前に図2のシフト通信手段200のマッピング解析手段201が起動される、そしてマッピング解析手段201は、シフト対象の配列データCの分割配置方法を解析する。
次に、通信スケジュール再利用手段202は、マッピング解析手段201により特定された配列データCの分割配置方法と同一の分割配置方法に対する多次元シフト通信スケジュールテーブル300を検索し、図5のサブルーチンSUB1が初めて起動された時に生成された多次元シフト通信スケジュールテーブル300と多次元シフト通信パターンテーブル400が、Cと同一の分割配置方法に対応するものであることを検出する。
一方、多次元シフト通信パターンマッチング手段203は、上記多次元シフト通信パターンテーブル400の、上方向多次元シフト通信パターンテーブル401の、1次元目多次元シフト通信パターンテーブル403に保存されている1次元目上方向のシフトパターンは幅1である。
よって、今回必要な1次元目上方向のシフトパターンと一致する。
このため、多次元シフト通信スケジュールテーブル300の1次元目上方向シフト通信スケジュールテーブル301に保存されている1次元目上方向の通信スケジュールが再利用可能であることを検出する。
また、3次元目多次元シフト通信パターンテーブル405には、前回のシフトパターンは登録されていないため、今回必要な多次元シフト通信パターンである3次元目の上方向シフト幅1、2次元目の上下方向のシフト幅0、0、および1次元目の上下方向のシフト幅0、1をそれぞれ保存する。
加えて、下方向多次元シフト通信パターンテーブル402の、1次元目多次元シフト通信パターンテーブル411には、前回のシフトパターンは登録されていないため、今回必要な多次元シフト通信パターンである1次元目下方向のシフトパターン1を保存する。
更に、3次元目多次元シフト通信パターン記憶手段413に、前回のシフトパターンは登録されていないため、今回必要な多次元シフト通信パターンである3次元目の下方向シフト幅1、2次元目の上下方向のシフト幅0、0、および1次元目の上下方向のシフト幅1、0をそれぞれ保存する。
次に、通信スケジュール生成手段204は、再利用可能な通信スケジュールが存在しない1次元目の下方向に幅1、3次元目の下方向に幅1、上方向に幅1のシフト通信スケジュールをそれぞれ生成する。
その際、1次元目の上方向および3次元目の下方向(斜め方向)へ幅1のシフト通信は、まず、1次元目方向のシフト通信を行った後、1次元目の上方向のシフト通信時に受信側となったプロセッサが、3次元目の下方向のシフト通信時に併せて送信するため、3次元目の下方向用の通信スケジュールに組込まれる。
また、1次元目の下方向および3次元目の上方向(斜め方向)へ幅1のシフト通信は、まず、1次元目方向のシフト通信を行った後、1次元目の下方向のシフト通信時に受信側となったプロセッサが、3次元目の上方向のシフト通信時に併せて送信するため、3次元目の上方向用の通信スケジュールに組込まれる。
一方、今回新たに生成した通信スケジュールを、配列データCの分割配置方法と同一の分割配置方法を持つ配列に対する多次元シフト通信スケジュールテーブル300の、1次元目の下方向シフト通信スケジュールテーブル302、3次元目の上方向シフト通信スケジュールテーブル305、3次元目の下方向シフト通信スケジュールテーブル306に登録する。
次に、シフト通信実行手段205は、多次元シフト通信スケジュールテーブル300中の、1元目上方向シフト通信スケジュールテーブル301、1元目下方向シフト通信スケジュールテーブル302に基づいて、1次元目の上下方向のシフト通信を行った後、3元目上方向シフト通信スケジュールテーブル305、3元目下方向シフト通信スケジュールテーブル306に基づいて、3次元目の上下方向のシフト通信、および1次元目の上下方向および3次元目の上方向(斜め方向)へ幅1、1次元目の上下方向および3次元目の下方向(斜め方向)へ幅1のための通信を併せて行うことにより、配列データCに対するシフト通信を実行する。
図5のサブルーチンSUB1が2回目以降起動され、ループが並列実行される際には、ループ直前に起動されるシフト通信手段200のマッピング解析手段201がシフト対象の配列データBの分割配置方法を解析することにより、通信スケジュール再利用手段202は、マッピング解析手段201により特定された配列データBの分割配置方法と同一の分割配置方法に対する多次元シフト通信スケジュールテーブル300と多次元シフト通信パターンテーブル400が存在することを検出する。
多次元シフトパターンマッチング手段203は、上記多次元シフト通信パターンテーブル400に登録されている1次元目上方向用の多次元シフト通信パターン、2次元目上方向用の多次元シフト通信パターン、2次元目下方向用の多次元シフト通信パターンが、今回必要な多次元シフト通信パターンと一致することを検出する。すなわち、上方向多次元シフト通信パターンテーブル401の、1次元目シフト通信パターンテーブル403に、1次元目上方向のシフト幅1が設定されている。
更に、2次元目多次元シフト通信パターンテーブル404に、2次元目上方向のシフト幅1、1次元目上方向のシフト幅1、1次元目下方向のシフト幅0が設定されている。
加えて、下方向多次元シフト通信パターンテーブル402の、2次元目多次元シフト通信パターンテーブル411に2次元目下方向のシフト幅1、1次元目上方向のシフト幅1、1次元目下方向のシフト幅0が設定されている。
以上より、多次元シフト通信スケジュールテーブル300に保存されている通信スケジュールが、各次元、方向を単位とし単位毎に1対1に対応する、今回必要なシフト通信と同一のシフトパターンであることが検出される。
次に、シフト通信実行手段205は、多次元シフト通信スケジュールテーブル300に保存されている1次元目上方向シフト通信スケジュールテーブル301に基づいて、1次元目方向のシフト通信を行った後、2次元目上方向シフト通信スケジュールテーブル303および2次元目下方向シフト通信スケジュールテーブル304に基づいて、2次元目方向のシフト通信、および1次元目の上方向および2次元目の上方向(斜め方向)へ幅1、1次元目の上方向および2次元目の下方向(斜め方向)へ幅1のための通信を併せて行うことにより、配列データBに対して必要な多次元シフト通信を行う。
その後、図5のサブルーチンSUB2が2回目以降起動され、ループが並列実行される際には、ループ直前に起動されるシフト通信手段200のマッピング解析手段201がシフト対象の配列データCの分割配置方法を解析することにより、通信スケジュール再利用手段202は、マッピング解析手段201により特定された配列データCの分割配置方法と同一の分割配置方法に対するシフト通信スケジュールテーブル300と多次元シフト通信パターンテーブル400が存在することを検出する。
次に、多次元シフト通信パターンマッチング手段203は、上記多次元シフト通信パターンテーブル400を検索する。
そして、1次元目上方向用の多次元シフト通信パターン、1次元目下方向用の多次元シフト通信パターン、3次元目上方向用の多次元シフト通信パターン、3次元目下方向用の多次元シフト通信パターンが、今回必要な多次元シフト通信パターンと一致することを検出する。
すなわち、上記多次元シフト通信パターンテーブル400の、上方向多次元シフト通信パターンテーブル401の、1次元目多次元シフト通信パターンテーブル403に保存されている前回の1次元目上方向のシフトパターンが、シフト幅1であるため、今回の多次元シフトパターンと一致することを検出する。
更に、3次元目多次元シフト通信パターンテーブル405に保存されている前回の3次元目上方向のシフトパターンが、3次元目上方向のシフト幅1,2次元目上方向のシフト幅0、2次元目下方向のシフト幅0、1次元目上方向のシフト幅0、1次元目下方向のシフト幅1、であるため、今回の多次元シフトパターンと一致することを検出する。
また、下方向多次元シフト通信パターンテーブル402の、1次元目多次元シフト通信パターンテーブル410に保存されている前回のシフト通信パターンが、1次元目下方向のシフト幅が1であるため、今回の多次元シフトパターンと一致することを検出する。
そして、3次元目多次元シフト通信パターンテーブル412に保存されている、前回の3次元目の下方向のシフトパターンが、3次元目下方向のシフト幅1、2次元目上方向のシフト幅0、2次元目下方向のシフト幅01次元目上方向のシフト幅1、1次元目下方向のシフト幅0であるため、今回の多次元シフトパターンと一致することを検出する。
したがって、今回の多次元シフト通信において、全ての次元、方向において、必要な多次元シフト通信スケジュールが既に生成されていることを検出することとなる。
次に、シフト通信実行手段205は、多次元通信スケジュールテーブル300中の、1元目上方向シフト通信スケジュール301、1元目下方向シフト通信スケジュール302に基づいて、1次元目方向のシフト通信を行った後に、3元目上方向シフト通信スケジュール305、3元目下方向シフト通信スケジュール306に基づいて、配列データCに対する3次元目方向のシフト通信、および1次元目の上下方向および3次元目の上方向(斜め方向)へ幅1、1次元目の上下方向および3次元目の下方向(斜め方向)へ幅1のための通信を併せて実行する。
以後、図5のサブルーチンSUB1、サブルーチンSUB2が繰り返し起動された際は、多次元シフト通信パターンテーブル400に保存されている前回の多次元シフト通信パターンが、今回必要な多次元シフト通信パターンと常に一致することとなる。
そのため、多次元シフト通信スケジュールテーブル300に保存されているシフト通信のスケジュールは常に再利用可能であることがわかり、スケジュール生成を改めて行うことなくシフト通信を実行することができる。
このように、必要なシフト通信の対象配列、対象次元や方向が毎回変化したり、異なる手続にまたがっていても、分割配置方法が同じであれば、通信スケジュールを各次元、方向を単位とし、単位毎に独立して生成し、多次元シフト通信スケジュールテーブル300中に、通信スケジュールを各次元、各方向独立に単位毎に保存すると共に、多次元シフト通信パターンテーブル400に、各次元、各方向独立に前回の多次元シフト通信パターンを保存しておくことにより、各次元、各方向毎に、通信スケジュールの再利用を行うことが可能になる。これにより、通信スケジュール生成のコストを削減し、高速にシフト通信を行うことができる。
以上より得られる本発明の効果は、多次元方向へのシフト通信の対象配列、対象次元や方向が毎回変化する場合や、異なる手続にまたがっている場合でも、分割配置方法が同じであれば、シフト通信を高速化できることである。
その理由は上述のように、配列の分割配置方法に1対1に対応する多次元シフト通信スケジュールテーブル中に、通信スケジュールを各次元、各方向独立に生成、保存するとともに、多次元シフト通信パターンテーブルに、当該次元、当該方向のシフト幅、および当該次元より小さな次元の上下方向のシフト幅を保存しておくことにより、多次元シフト通信時の通信スケジュールが部分的に独立に再利用可能となり、該再利用により通信スケジュール生成のコストを削減できるためである。
本発明の構成例を示す図である。 多次元シフト通信手段の構成例を示す図である。 多次元シフト通信スケジュールテーブルを示す概念図である。 多次元シフト通信パターンテーブルを示す概念図である。 HPF言語によるプログラム例を示す図である。
符号の説明
100 分散メモリ型マルチプロセッサシステム
101 計算ノード
102 計算部
103 記憶部
200 多次元シフト通信手段
201 マッピング解析手段
202 通信スケジュール再利用手段
203 多次元シフトパターンマッチング手段
204 通信スケジュール生成手段
205 多次元シフト通信実行手段
300 多次元シフト通信スケジュールテーブル
301 1次元目上方向シフト通信スケジュールテーブル
302 1次元目下方向シフト通信スケジュールテーブル
303 2次元目上方向シフト通信スケジュールテーブル
304 2次元目下方向シフト通信スケジュールテーブル
305 3次元目上方向シフト通信スケジュールテーブル
306 3次元目下方向シフト通信スケジュールテーブル
307 4次元目上方向シフト通信スケジュールテーブル
308 4次元目下方向シフト通信スケジュールテーブル
309 5次元目上方向シフト通信スケジュールテーブル
310 5次元目下方向シフト通信スケジュールテーブル
311 6次元目上方向シフト通信スケジュールテーブル
312 6次元目下方向シフト通信スケジュールテーブル
313 7次元目上方向シフト通信スケジュールテーブル
314 7次元目下方向シフト通信スケジュールテーブル
400 多次元シフト通信パターンテーブル
401 上方向多次元シフト通信パターンテーブル
402 下方向多次元シフト通信パターンテーブル
403 1次元目多次元シフト通信パターンテーブル
404 2次元目多次元シフト通信パターンテーブル
405 3次元目多次元シフト通信パターンテーブル
406 4次元目多次元シフト通信パターンテーブル
407 5次元目多次元シフト通信パターンテーブル
408 6次元目多次元シフト通信パターンテーブル
409 7次元目多次元シフト通信パターンテーブル
410 1次元目多次元シフト通信パターンテーブル
411 2次元目多次元シフト通信パターンテーブル
412 3次元目多次元シフト通信パターンテーブル
413 4次元目多次元シフト通信パターンテーブル
414 5次元目多次元シフト通信パターンテーブル
415 6次元目多次元シフト通信パターンテーブル
416 7次元目多次元シフト通信パターンテーブル

Claims (9)

  1. 分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置であって、
    多次元シフト通信を行う配列データの分割配置方法解析することにより当該配列データの分散メモリ型マルチプロセッサ上での分割配置を特定する手段と、
    前記解析により特定した前記分割配置と同一の分割配置に対応する多次元シフト通信スケジュールを多次元シフト通信スケジュールテーブルより検索する手段と、
    前記検索を行い、同一の分割配置に対する多次元シフト通信スケジュールが存在する場合には、前記多次元シフト通信に必要な多次元シフト通信スケジュールのシフトパターンが格納されているテーブルである多次元シフトパターンテーブルを検索しシフトパターンの一致を判定する手段と、
    シフトパターンの一致する多次元シフト通信スケジュールが存在する場合には、該一致する多次元シフト通信スケジュールを再利用する手段と、
    前記多次元シフト通信に必要な多次元シフト通信スケジュールを、多次元シフト通信スケジュールテーブルに格納する手段と、
    前記多次元シフト通信に必要な多次元シフト通信スケジュールのシフトパターンを多次元シフトパターンテーブルに格納する手段と、
    前記再利用される通信スケジュールを参照して、多次元シフト通信を行う手段を備え、
    前記シフトパターンの一致を判定する手段及び多次元シフト通信スケジュールを再利用する手段は、各次元、方向を単位とし、単位毎に独立して前記多次元シフト通信スケジュールの再利用を行うことを特徴とする分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置。
  2. 請求項1記載の分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置であって、
    前記多次元シフト通信スケジュールテーブルに格納する手段及び前記多次元シフトパターンテーブルに格納する手段は、各次元、方向を単位とし、単位毎に独立して前記多次元通信スケジュールおよび多次元通信スケジュールのシフトパターンを格納することを特徴とする分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置。
  3. 請求項1又は2に記載の分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置であって、
    前記シフト通信時に、前記多次元シフトスケジュールテーブルに一致する多次元シフト通信スケジュールが存在しない場合には、新たに通信スケジュールの生成が必要となった部分についてのみ、新規に多次元シフト通信スケジュールを生成する手段を更に備えることを特徴とする分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置。
  4. 請求項3に記載の分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置であって、
    前記多次元シフト通信に必要な多次元通信スケジュールを、多次元シフト通信スケジュールテーブルに格納する手段と、
    前記多次元シフト通信に必要な多次元通信スケジュールのシフトパターンを多次元シフトパターンテーブルに格納する手段は、
    新たに通信スケジュールの生成がされた部分についてのみを対象として実行することを特徴とする分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置。
  5. 分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化方法であって、
    多次元シフト通信を行う配列データの分割配置方法解析することにより当該配列データの分散メモリ型マルチプロセッサ上での分割配置を特定するステップと、
    前記解析により特定した前記分割配置と同一の分割配置に対する多次元シフト通信スケジュールを多次元シフト通信スケジュールテーブルより検索するステップと、
    前記検索を行い、同一の分割配置に対する多次元シフト通信スケジュールが存在する場合には、前記多次元シフト通信に必要な多次元シフト通信スケジュールのシフトパターンが格納されているテーブルである多次元シフトパターンテーブルを検索しシフトパターンの一致を判定するステップと、
    シフトパターンの一致する多次元シフト通信スケジュールが存在する場合には、該一致する多次元シフト通信スケジュールを再利用するステップと、
    前記多次元シフト通信に必要な多次元シフト通信スケジュールを、多次元シフト通信スケジュールテーブルに格納するステップと、
    前記多次元シフト通信に必要な多次元シフト通信スケジュールのシフトパターンを多次元シフトパターンテーブルに格納するステップと、
    前記再利用される通信スケジュールを参照して、多次元シフト通信を行うステップを備え、
    前記シフトパターンの一致を判定するステップ及び多次元シフト通信スケジュールを再利用するステップでは、各次元、方向を単位とし、単位毎に独立して前記多次元シフト通信スケジュールの再利用を行うことを特徴とする分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化方法。
  6. 請求項5記載の分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化方法であって、
    前記多次元シフト通信スケジュールテーブルに格納するステップ及び前記多次元シフトパターンテーブルに格納するステップは、各次元、方向を単位とし、単位毎に独立して前記多次元通信スケジュールおよび多次元通信スケジュールのシフトパターンを格納することを特徴とする分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化方法。
  7. 請求項5又は6に記載の分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化方法であって、
    前記シフト通信時に、前記多次元シフトスケジュールテーブルに一致する多次元シフト通信スケジュールが存在しない場合には、新たに通信スケジュールの生成が必要となった部分についてのみ、新規に多次元シフト通信スケジュールを生成するステップを更に備えることを特徴とする分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化方法。
  8. 請求項7に記載の分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化方法であって、
    前記多次元シフト通信に必要な多次元通信スケジュールを、多次元シフト通信スケジュールテーブルに格納するステップと、
    前記多次元シフト通信に必要な多次元通信スケジュールのシフトパターンを多次元シフトパターンテーブルに格納するステップは、
    新たに通信スケジュールの生成がされた部分についてのみを対象として実行することを特徴とする分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化方法。
  9. 分散メモリ型マルチプロセッサシステムに請求項5乃至8の何れか1項に記載の方法を行わせるためのプログラム。
JP2007014965A 2007-01-25 2007-01-25 分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置、その方法及びそのプログラム Expired - Fee Related JP4529188B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007014965A JP4529188B2 (ja) 2007-01-25 2007-01-25 分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置、その方法及びそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007014965A JP4529188B2 (ja) 2007-01-25 2007-01-25 分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置、その方法及びそのプログラム

Publications (2)

Publication Number Publication Date
JP2008181388A JP2008181388A (ja) 2008-08-07
JP4529188B2 true JP4529188B2 (ja) 2010-08-25

Family

ID=39725238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007014965A Expired - Fee Related JP4529188B2 (ja) 2007-01-25 2007-01-25 分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置、その方法及びそのプログラム

Country Status (1)

Country Link
JP (1) JP4529188B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962639A (ja) * 1995-08-24 1997-03-07 Ibm Japan Ltd 並列計算機のプロセッサ間通信方法
JP2001092679A (ja) * 1999-09-24 2001-04-06 Fujitsu Ltd 並列実行制御装置
JP2006285588A (ja) * 2005-03-31 2006-10-19 Nec Corp 分散メモリ型マルチプロセッサシステムのシフト通信方法および分散メモリ型マルチプロセッサシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962639A (ja) * 1995-08-24 1997-03-07 Ibm Japan Ltd 並列計算機のプロセッサ間通信方法
JP2001092679A (ja) * 1999-09-24 2001-04-06 Fujitsu Ltd 並列実行制御装置
JP2006285588A (ja) * 2005-03-31 2006-10-19 Nec Corp 分散メモリ型マルチプロセッサシステムのシフト通信方法および分散メモリ型マルチプロセッサシステム

Also Published As

Publication number Publication date
JP2008181388A (ja) 2008-08-07

Similar Documents

Publication Publication Date Title
US10817514B2 (en) Splitting of a join operation to allow parallelization
US9983984B2 (en) Automated modularization of graphical user interface test cases
US5499331A (en) Method of document layout process and system
EP3107009A1 (en) Self-learning based crawling and rule-based data mining for automatic information extraction
US9836505B2 (en) Star and snowflake join query performance
CN111597243A (zh) 基于数据仓库抽象数据加载的方法及系统
KR20140033616A (ko) 혼합 모드 프로그램의 소스 코드 오류 위치 검출 장치 및 방법
CN112631925B (zh) 一种单变量原子违背缺陷的检测方法
CN110020456B (zh) 利用基于图的相似性搜索逐步生成fpga实现的方法
JP4529188B2 (ja) 分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置、その方法及びそのプログラム
JP2009168525A (ja) リンクマッチングシステム、方法、およびプログラム
JP5440287B2 (ja) シンボリック実行支援プログラム、方法及び装置
Dureja et al. Boosting verification scalability via structural grouping and semantic partitioning of properties
CN105630680A (zh) 一种随机测试程序生成方法
US10789203B2 (en) Data processing apparatus, data processing method, and program recording medium
CN115858648A (zh) 数据库生成方法、数据流切分方法、装置、设备及介质
AbdulRazzaq et al. Parallel implementation of maximum-shift algorithm using OpenMp
JP4304379B2 (ja) 分散メモリ型マルチプロセッサシステムのシフト通信方法および分散メモリ型マルチプロセッサシステム
KR101714985B1 (ko) 분산 병렬 데이터베이스의 중첩 질의 병렬성 검사 방법 및 장치
US7877743B2 (en) Program translation method and notifying instruction inserting method
JP6330490B2 (ja) テストケース生成プログラム、テストケース生成装置、及びテストケース生成方法
WO2019150399A1 (en) Implementation of dynamic programming in multiple sequence alignment
CN110688542B (zh) 一种基础设施查找方法及装置
KR101837236B1 (ko) 코드 커버리지 향상을 위한 베이직 블록 크기 감응 실행 경로 탐색 방법 및 시스템
Jánosi-Rancz et al. Semantic data extraction

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080618

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090518

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091104

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20091111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100415

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100426

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: 20100517

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100530

R150 Certificate of patent or registration of utility model

Ref document number: 4529188

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130618

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees