JP2006285588A - 分散メモリ型マルチプロセッサシステムのシフト通信方法および分散メモリ型マルチプロセッサシステム - Google Patents

分散メモリ型マルチプロセッサシステムのシフト通信方法および分散メモリ型マルチプロセッサシステム Download PDF

Info

Publication number
JP2006285588A
JP2006285588A JP2005104016A JP2005104016A JP2006285588A JP 2006285588 A JP2006285588 A JP 2006285588A JP 2005104016 A JP2005104016 A JP 2005104016A JP 2005104016 A JP2005104016 A JP 2005104016A JP 2006285588 A JP2006285588 A JP 2006285588A
Authority
JP
Japan
Prior art keywords
shift communication
shift
communication schedule
schedule table
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
JP2005104016A
Other languages
English (en)
Other versions
JP4304379B2 (ja
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 JP2005104016A priority Critical patent/JP4304379B2/ja
Publication of JP2006285588A publication Critical patent/JP2006285588A/ja
Application granted granted Critical
Publication of JP4304379B2 publication Critical patent/JP4304379B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

【課題】シフト通信を、対象配列・次元や方向が変化したり異なる手続きにまたがっていても、高速に行うことができる技術を提供する。
【解決手段】シフト通信を行う配列の分割配置方法を解析するステップと、その解析結果に基づいて、同一の分割配置に対するシフト通信スケジュールテーブル(7)が存在するかどうかを検索するステップと、前記同一の分割配置に対するシフト通信スケジュールテーブル(7)が存在する場合、必要な次元の必要な方向に対するシフト通信スケジュール(7〜7)が既に生成されているかどうかを検索するステップと、生成されていないシフト通信スケジュール(7〜7)が存在する場合、必要な分割配置方法、次元、方向に対応したシフト通信スケジュール(7〜7)を新たに生成し、前記新たなシフト通信スケジュール(7〜7)を含む新たなシフト通信スケジュールテーブル(7)を生成して、シフト通信を実行する。
【選択図】図3

Description

本発明は、分散メモリ型マルチプロセッサシステムのシフト通信方法およびそのシフト通信方法を実行可能な分散メモリ型マルチプロセッサシステムに関する。
分散メモリ型マルチプロセッサシステムの性能向上のために重要なことは、プロセッサ間でデータを送受信する際に、どのような通信手順で通信を実行するかということである。プロセッサ間の通信速度は、プロセッサの演算速度と比べてかなり遅いため、非効率的な通信を行っていては、システムのパフォーマンスの向上は望めない。分散マルチプロセッサシステムを構成するプロセッサ間でデータの送受信を行う場合において、最適な通信スケジュールを生成する技術が知られている(例えば、特許文献1参照。)。
一般的な並列計算機において、プログラムを実行する際に発生する複数のプロセッサ間の通信は、非同期通信の通信ライブラリに基づいて実行される。例えば、MPIやEUIといった通信ライブラリは、送信(send)や受信(receive)といった通常の命令以外にも、頻繁に利用される比較的単純な通信パターンを複数用意している。
この複数の通信パターンの中に、シフト通信という通信パターンがある。シフト通信とは、各プロセッサが隣接するプロセッサに対して、一定の方向にデータを送信するような通信形態をいう。
特開平9−330304号公報
分散メモリ型マルチプロセッサシステムにおいて、同一のシフト通信が行われる場合、そのときの通信スケジュールを保存し、保存された通信スケジュールを再利用することで、通信を高速化する技術がある。しかしながら、シフト通信が行われる次元や方向が変化する場合には、通信スケジュールの再利用が行えず、保存してあった通信スケジュールを破棄して、新たに再生成しなければならなかった。
本発明が解決しようとする課題は、シフト通信の対象配列、対象次元や方向が変化したり、異なる手続きにまたがっていても、高速にシフト通信を行うことができる技術を提供することにある。
以下に、[発明を実施するための最良の形態]で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
上記課題を解決するために、以下の方法で分散メモリ型マルチプロセッサシステムのシフト通信方法を実行する。その方法は、[a]シフト通信を行う配列の分割配置方法を解析するステップと、 [b]その解析によって得られた解析結果に基づいて、同一の分割配置に対するシフト通信スケジュールテーブル(7)が存在するかどうかを検索するステップと、[c]前記シフト通信スケジュールテーブル(7)の検索の結果、前記同一の分割配置に対するシフト通信スケジュールテーブル(7)が存在する場合、必要な次元の必要な方向に対するシフト通信スケジュール(7〜7)が既に生成されているかどうかを検索するステップと、[d]前記シフト通信スケジュール(7〜7)の検索の結果、生成されていないシフト通信スケジュール(7〜7)が存在する場合、必要な分割配置方法、次元、方向に対応したシフト通信スケジュール(7〜7)を新たに生成し、前記新たなシフト通信スケジュール(7〜7)を含む新たなシフト通信スケジュールテーブル(7)を生成するステップと、[e]前記新たなシフト通信スケジュールテーブル(7)を参照して、シフト通信を実行するステップを具備するシフト通信方法である。
その、シフト通信方法において、前記[c]ステップは、さらに、前記シフト通信スケジュール(7〜7)が存在しない場合に、新規のシフト通信スケジュールテーブル(7)を生成するステップを具備することが好ましい。
また、そのシフト通信方法において、前記[e]ステップは、さらに、必要なシフト通信スケジュール(7〜7)が全て生成済の場合、前記シフト通信スケジュールテーブル(7)または前記新規のシフト通信スケジュールテーブル(7)を参照して、シフト通信を実行するようなシフト通信方法であってもよい。
また、上記課題を解決するために、下記のような分散メモリ型マルチプロセッサシステムを構築する。そのシステムは、シフト通信を行う配列の分割配置方法を解析するマッピング解析手段(6−1)と、その解析によって得られた解析結果に基づいて、同一の分割配置に対するシフト通信スケジュールテーブル(7)が存在するかどうかを検索し、存在しない場合、シフト通信スケジュールテーブル(7)を生成する通信スケジュール再利用手段(6−2)とを含んで構成されることが好ましい。ここで、前記通信スケジュール再利用手段(6−2)は、同一の分割配置に対するシフト通信スケジュールテーブル(7)が存在する場合、必要な次元の必要な方向に対するシフト通信スケジュール(7〜7)が既に生成されているかどうかを検索し、生成されていないシフト通信スケジュール(7〜7)が存在する場合、新たな通信スケジュールの生成を要求するものである。そしてさらに、上記の分散メモリ型マルチプロセッサシステムを、前記新たな通信スケジュールの生成の要求に応答して、必要な分割配置方法、次元、方向に対応したシフト通信スケジュール(7〜7)を生成し、前記シフト通信スケジュールテーブル(7)を更新して新たなシフト通信スケジュールテーブル(7)を生成するシフト通信スケジュール生成手段(6−3)と、前記新たなシフト通信スケジュールテーブル(7)を参照して、実際のシフト通信を行うシフト通信実行手段(6−4)とを含んで構成する。
その分散メモリ型マルチプロセッサシステムにおいて、前記シフト通信スケジュール生成手段(6−3)は、前記同一の分割配置に対するシフト通信スケジュールテーブル(7)が存在しない場合には、新規のシフト通信スケジュールテーブル(7)を生成する構成であることが好ましい。
さらにその分散メモリ型マルチプロセッサシステムにおいて、前記シフト通信スケジュール生成手段(6−3)は、前記シフト通信実行手段(6−4)に、現在のシフト通信スケジュールテーブル(7)を用いてシフト通信を実行するように指示し、前記シフト通信実行手段(6−4)は、前記指示に応答して前記シフト通信スケジュールテーブル(7)または、前記新規のシフト通信スケジュールテーブル(7)を参照して実際のシフト通信を実行するような分散メモリ型マルチプロセッサシステムを構成する。
また、下記プログラムをコンピュータに実行させることで上記課題を解決することが可能である。そのプログラムは、分散メモリ型マルチプロセッサシステムのシフト通信を実行可能なプログラムであって、
コンピュータを、
シフト通信を行う配列の分割配置方法を解析するマッピング解析手段(6−1)と、その解析によって得られた解析結果に基づいて、同一の分割配置に対するシフト通信スケジュールテーブル(7)が存在するかどうかを検索し、存在しない場合、シフト通信スケジュールテーブル(7)を生成する通信スケジュール再利用手段(6−2)と、前記新たな通信スケジュールの生成の要求に応答して、必要な分割配置方法、次元、方向に対応したシフト通信スケジュール(7〜7)を生成し、前記シフト通信スケジュールテーブル(7)を更新して新たなシフト通信スケジュールテーブル(7)を生成するシフト通信スケジュール生成手段(6−3)と、前記新たなシフト通信スケジュールテーブル(7)を参照して、実際のシフト通信を行うシフト通信実行手段(6−4)として機能させるためのプログラムである。
ここで、前記通信スケジュール再利用手段(6−2)は、同一の分割配置に対するシフト通信スケジュールテーブル(7)が存在する場合、必要な次元の必要な方向に対するシフト通信スケジュール(7〜7)が既に生成されているかどうかを検索し、生成されていないシフト通信スケジュール(7〜7)が存在する場合、新たな通信スケジュールの生成を要求することが好ましい。
そのプログラムにおいて、さらに、前記シフト通信スケジュール生成手段(6−3)を、前記同一の分割配置に対するシフト通信スケジュールテーブル(7)が存在しない場合には、新規のシフト通信スケジュールテーブル(7)を生成する手段として機能させるためのプログラムであってもよい。
また、そのプログラムにおいて、前記シフト通信スケジュール生成手段(6−3)を、前記シフト通信実行手段(6−4)に、現在のシフト通信スケジュールテーブル(7)を用いてシフト通信を実行するように指示する手段として機能させ、前記シフト通信実行手段(6−4)を、前記指示に応答して前記シフト通信スケジュールテーブル(7)または、前記新規のシフト通信スケジュールテーブル(7)を参照して実際のシフト通信を実行する手段として機能させるためのプログラムであってもよい。
上記解決手段を実行することによって、配列の分割配置方法に一対一に対応する通信スケジュールテーブル中に、通信スケジュールを各次元、各方向独立に生成、保存することにより、通信スケジュールが部分的に独立に再利用可能となる。
本発明によると、シフト通信の対象配列、対象次元や方向が変化する場合や、異なる手続きにまたがっていても、分割配置方法が同じであれば、シフト通信を高速化することが可能になる。特に、シフト通信の対象配列、対象次元や方向が毎回変化する場合であってもシフト通信を高速化することが可能となる。
また、本発明によると、配列の分割配置方法に一対一に対応する通信スケジュールテーブル中に、通信スケジュールを各次元、各方向独立に生成、保存することにより、通信スケジュールが部分的に独立に再利用可能となり、通信スケジュール生成のコストを削減できる。
本発明の実施の形態の概要を説明する。本実施の形態の分散メモリ型マルチプロセッサシステム1において、配列データは、並列演算処理ノード2の記憶装置群4上に分割配置されており、そのような配列データを利用・定義するプログラムが計算装置群3上で実行される。その際に、分散メモリ型マルチプロセッサシステム1は、配列の隣接する要素が分割配置されている複数の演算処理ノード(2-n:nは任意の自然数)間で、演算処理ノード間通信部5を経由したシフト通信が繰り返し行われるような場合、シフト通信に必要な情報を、シフト通信スケジュールテーブル7に、各次元、方向毎に独立に保存し、後に再利用する。これにより、本発明の分散メモリ型マルチプロセッサシステム1は、毎回シフト通信次元やシフト通信方向、シフト通信対象の配列が変化したり、シフト通信が異なる手続中で発生したりする場合でも、高速な通信を行うものである。以下の実施の形態において、演算処理ノードがパーソナルコンピュータやサーバ装置に代表される情報処理装置であることが好ましい。また、計算装置(3−1〜3−n)は、そのパーソナルコンピュータに備えられたCPUであることが好ましい。さらに、記憶装置(4−1〜4−n)は、そのパーソナルコンピュータに備えられたRAMであることが好ましい。
[実施の形態の構成]
以下に、図面を参照して本発明の実施の形態の構成について詳細な説明を行う。図1は、本実施の形態の分散メモリ型マルチプロセッサシステム1の構成を例示するブロック図である。図1に示されているように、分散メモリ型マルチプロセッサシステム1上で、配列データが、並列演算処理ノード2の記憶装置群4上に分割配置されており、そのような配列データを利用・定義するプログラムが計算装置群3上で実行される際に、配列の隣接する要素が分割配置されている並列演算処理ノード2間で、演算処理ノード間通信部5を経由したシフト通信が行われる。
換言すると、本実施の形態の分散メモリ型マルチプロセッサシステム1は、並列演算処理ノード2を備えて構成されている。図1に示されているように、並列演算処理ノード2は、複数の演算処理ノード(2−1〜2−n:nは任意の自然数)で構成されている。それぞれの演算処理ノード(2−1〜2−n)は、計算装置(3−1〜3−n)と記憶装置(4−1〜4−n)を含んで構成されている。また、図1に示されているように、複数の演算処理ノード(2−1〜2−n)は、演算処理ノード間通信部5を介して互いに通信可能に接続されている。本実施の形態の分散メモリ型マルチプロセッサシステム1は、互いに接続される複数の演算処理ノード(2−1〜2−n)によって並列演算処理ノード2を構成し、また、その並列演算処理ノード2は、計算装置群3と記憶装置群4とによって、連携して情報処理を実行している。
以下に、本実施の形態におけるシフト通信を実行するための構成について説明を行う。図2は、本実施の形態におけるシフト通信実行部6の構成を例示するブロック図である。本実施の形態において、演算処理ノード(2−1〜2−n)間で実行されるシフト通信は、各演算処理ノード(2−1〜2−n)のそれぞれに備えられた通信インターフェース(図示されず)を介して実行されることが好ましい。その演算処理ノード(2−1〜2−n)間での通信スケジュールは、シフト通信実行部6によって決定される。この通信スケジュール決定の動作は、実行時に呼び出される通信ライブラリが行うことが好ましい。
図2を参照すると、シフト通信部6は、マッピング解析部6−1と、通信スケジュール再利用部6−2と、通信スケジュール生成部6−3と、シフト通信実行部6−4とを含んで構成されている。マッピング解析部6−1は、シフト通信を行う配列の分割配置方法を解析する情報処理機能ブロックである。通信スケジュール再利用部6−2は、同一の分割配置に対するシフト通信スケジュールテーブル7が存在するかどうかを検索する情報検索機能ブロックである。また通信スケジュール再利用部6−2は、その検索の結果、所定のシフト通信スケジュールテーブル7が存在しない場合、新規にシフト通信スケジュールテーブル7を生成する。さらに、同一の分割配置に対するシフト通信スケジュールテーブル7が存在する場合、必要な次元の必要な方向に対するシフト通信スケジュールが既に生成されているかどうかを検索する。その検索の結果、生成されるべきシフト通信スケジュールが生成されていない場合、通信スケジュール生成部6−3に生成指示をする。また、必要なシフト通信スケジュールが全て生成済の場合、シフト通信実行部6−4にシフト通信の実行を指示する。
通信スケジュール生成部6−3は、新たに生成が必要なシフト通信スケジュールがある場合に、そのシフト通信スケジュールを生成する情報処理機能ブロックである。通信スケジュール生成部6−3は、必要な分割配置方法、次元、方向に対応したシフト通信スケジュールを生成し、シフト通信スケジュールテーブル7の該当する次元、方向のシフト通信スケジュールとして保存する。
シフト通信実行部6−4は、シフト通信スケジュールテーブル7を参照して、実際のシフト通信を行う通信処理部である。
図3は、シフト通信実行部6によって生成されるシフト通信スケジュールテーブル7の構成を例示するテーブルである。図3を参照すると、シフト通信スケジュールテーブル7は、第1通信スケジュール7〜第m通信スケジュール7を含んで構成されている。
第1通信スケジュール7は、シフト通信における1次元目下方向のシフト通信スケジュールを保持している。第2通信スケジュール7は、シフト通信における1次元目上方向のシフト通信スケジュールを保持している。第3通信スケジュール7は、シフト通信における2次元目下方向のシフト通信スケジュールを保持している。第4通信スケジュール7は、シフト通信における2次元目上方向のシフト通信スケジュールを保持している。このように、シフト通信スケジュールテーブル7を構成する各テーブルには、各次元と方向とが関連付けられたスケジュールが保持されている。そして、第m−1通信スケジュール7n−1は、シフト通信におけるn次元目下方向のシフト通信スケジュールを保持し、最終的にテーブルを構成する第m通信スケジュール7は、シフト通信におけるn次元目上方向のシフト通信スケジュールを保持する(mは任意の自然数に対応する)。
[実施の形態の動作]
以下に、本実施の形態の動作の概要を説明する。例えば、図4のHPF言語によるプログラム例を参照すると、4要素のプロセッサ構成P(2,2)の各要素が、それぞれ1つの演算処理ノード(例えば、演算処理ノード2−1)に対応しているとすると、配列A、B、Cは、図5のように、並列演算処理ノード2の記憶装置群4上に分割配置されている。
時間発展ループ中で起動されるサブルーチンSUB1中のループを並列演算処理ノード2上で配列Aに対するオーナーコンピュートルール(配列Aの要素が配置されている演算処理ノード上で演算を行う)により並列計算する場合、配列Aに対して、配列Bの2次元目の添字が下方向に1要素、上方向に2要素分ずれているため、配列Bの隣接する要素が分割配置されている並列演算処理ノード2間で、配列Bの2次元目の下方向に1要素、上方向に2要素の通信が必要となる。なお、このような配列データの隣接要素間の通信をシフト通信という。
同様に、時間発展ループ中で起動されるサブルーチンSUB2中のループを並列演算処理ノード2上で配列Aに対するオーナーコンピュートルール(配列Aの要素が配置されている演算処理ノード上で演算を行う)により並列計算する場合、配列Aに対して、配列Cの1次元目の添字が下方向に1要素、上方向に1要素、2次元目の添字が下方向に1要素分ずれているため、配列Cの隣接する要素が分割配置されている並列演算処理ノード2間で、配列Cの1次元目の下方向に1要素、上方向に1要素、2次元目の下方向に1要素の通信が必要となる。
このように、必要なシフト通信の対象配列、対象次元や方向が毎回変化したり、異なる手続にまたがっていたりしても、配列の分割配置方法が同じであれば、分割配置方法と一対一に対応するシフト通信スケジュールテーブル7中に、通信スケジュールを各次元、各方向独立に生成し、後に再利用する。これにより通信スケジュール生成のコストを削減し、高速化を行う。
以下に本実施の形態の動作について詳細に説明する。以下の動作の説明において、上述の分散メモリ型マルチプロセッサシステム1に対応して動作の説明を行う。分散メモリ型マルチプロセッサシステム1において、配列データは、並列演算処理ノード2の記憶装置群4上に分割配置されており、そのような配列データを利用・定義するプログラムは、計算装置群3上で実行される場合を例示し、その配列の隣接する要素が分割配置されている並列演算処理ノード2間で、演算処理ノード間通信部5を経由したシフト通信が行われる場合に対応して動作を説明する。また、以下の述べる動作は、図4に例示されているHPF言語によるプログラムに対応して実行されるものとする。
図4のプログラム例を参照すると、時間発展ループ中で、シフト通信を含むサブルーチンSUB1、SUB2が繰り返し呼び出されている。ここで、図4に出現する配列A、B、Cは、4要素のプロセッサ構成P(2,2)の各要素が、それぞれ1つの演算処理ノードに対応しているものとし、図5のように、並列演算処理ノード2の記憶装置群4上に分割配置されているものとする。
図4のサブルーチンSUB1中のループを計算手段上で、配列Aに対するオーナーコンピュートルール(配列Aの要素が配置されている演算処理ノード上で演算を行う)により並列計算する場合、配列Aに対して、配列Bの2次元目の添字が下方向に1要素、上方向に2要素分ずれている。そのため、配列Bの隣接する要素が分割配置されている各演算処理ノード(2−1〜2−n)間で、配列Bの2次元目の下方向に1要素、上方向に2要素の通信が必要となる。
同様に、時間発展ループ中で起動されるサブルーチンSUB2中のループを計算手段上で、配列Aに対するオーナーコンピュートルール(配列Aの要素が配置されている演算処理ノード上で演算を行う)により並列計算する場合、配列Aに対して、配列Cの1次元目の添字が下方向に1要素、上方向に1要素、2次元目の添字が下方向に1要素分ずれている。そのため、配列Cの隣接する要素が分割配置されている並列演算処理ノード2間で、配列Cの1次元目の下方向に1要素、上方向に1要素、2次元目の下方向に1要素の通信が必要となる。
図4のサブルーチンSUB1が初めて起動された時、シフト通信部6のマッピング解析部6−1は、その中のループが並列実行される直前に起動される。このとき、マッピング解析部6−1は、シフト対象の配列データBの分割配置方法を解析する。
通信スケジュール再利用部6−2は、マッピング解析部6−1の解析により、特定された配列データBの分割配置に対応するシフト通信スケジュールテーブル7が生成されていないことを認識する。従って、通信スケジュール再利用部6−2は、配列データBに対して必要な、2次元目の下方向1要素分、2次元目の上方向2要素分のシフト通信スケジュールも生成されていないことを認識する。通信スケジュール再利用部6−2は、この認識に基づいて、配列データBの分割配置方法と同一の分割配置方法を持つ配列に対応するシフト通信スケジュールテーブル7の生成を行う。換言すると、通信スケジュール再利用部6−2は、第3通信スケジュール7、第4通信スケジュール7を格納可能な新たなシフト通信スケジュールテーブル7を生成する。
通信スケジュール生成部6−3は、配列データBに対して必要な、2次元目の下方向1要素分のシフト通信スケジュール、2次元目の上方向2要素分のシフト通信スケジュールをそれぞれ生成し、配列データBの分割配置方法と同一の分割配置方法を持つ配列に対するシフト通信スケジュールテーブル7(上述の新たなシフト通信スケジュールテーブル7)の、第3通信スケジュール7、第4通信スケジュール7に登録する。
次に、シフト通信実行部6−4は、生成されたシフト通信スケジュールテーブル7中の、第3通信スケジュール7、第4通信スケジュール7に基づいて、配列データBに対するシフト通信を実行する。
図4のサブルーチンSUB2が初めて起動された時、ループが並列実行される直前にシフト通信部6のマッピング解析部6−1が起動される。このとき、マッピング解析部6−1は、シフト対象の配列データCの分割配置方法を解析する。
通信スケジュール再利用部6−2は、マッピング解析部6−1により特定された配列データCの分割配置方法と同一の分割配置方法に対するシフト通信スケジュールテーブル7を検索する。通信スケジュール再利用部6−2は、この検索によって、図4のサブルーチンSUB1が初めて起動された時に生成されたシフト通信スケジュールテーブル7(新たなシフト通信スケジュールテーブル7)が、Cと同一の分割配置方法に対応するシフト通信スケジュールであることを検出する。さらに、通信スケジュール再利用部6−2は、サブルーチンSUB2のループで必要となる1次元目の下方向、1次元目の上方向のシフト通信スケジュールが未生成であることを検出し、2次元目の下方向の第3通信スケジュール7が生成済であることを検出する。
通信スケジュール生成部6−3は、サブルーチンSUB2のループで必要となる1次元目の下方向1要素分、1次元目の上方向1要素分のシフト通信スケジュールを生成し、シフト通信スケジュールテーブル7中の、1元目下方向第1通信スケジュール7、1元目上方向第2通信スケジュール7に登録する。
シフト通信実行部6−4は、シフト通信スケジュールテーブル7中の、1元目下方向第1通信スケジュール7、1元目上方向第2通信スケジュール7、2元目下方向第3通信スケジュール7、に基づいて、配列データBに対するシフト通信を実行する。
図4のサブルーチンSUB1が2回目以降起動され、ループが並列実行される際には、ループ直前に起動されるシフト通信部6のマッピング解析部6−1がシフト対象の配列データBの分割配置方法を解析する。通信スケジュール再利用部6−2は、マッピング解析部6−1により特定された配列データBの分割配置方法と同一の分割配置方法に対するシフト通信スケジュールテーブル7を検索し、対応するシフト通信スケジュールテーブル7には、必要となる2次元目の下方向1要素分の第3通信スケジュール7、2次元目の上方向2要素分の第4通信スケジュール7のシフト通信スケジュールが既に登録されていることを検出する。
シフト通信実行部6−4は、シフト通信スケジュールテーブル7の2次元目の下方向の第3通信スケジュール7、2次元目の上方向の第4通信スケジュール7を参照して、必要なシフト通信を行う。
さらに、図4のサブルーチンSUB2が2回目以降起動され、ループが並列実行される際には、ループ直前に起動されるシフト通信部6のマッピング解析部6−1がシフト対象の配列データCの分割配置方法を解析する。通信スケジュール再利用部6−2は、マッピング解析部6−1により特定された配列データCの分割配置方法と同一の分割配置方法に対するシフト通信スケジュールテーブル7を検索し、対応するシフト通信スケジュールテーブル7には、1次元目下方向1要素分の第1通信スケジュール7、1次元目上方向1要素分の第2通信スケジュール7、2次元目下方向1要素分の第3通信スケジュール7が既に登録されていることを検出する。
シフト通信実行部6−4は、1次元目の下方向の第1通信スケジュール7、1次元目の上方向の第2通信スケジュール7、2次元目の下方向の第3通信スケジュール7を参照して、必要なシフト通信を行う。
以後、図4のサブルーチンSUB1、サブルーチンSUB2が繰り返し起動された際、必要なシフト通信のスケジュールは既に生成されており、シフト通信スケジュールテーブル7に登録されている。そのため、同様に、スケジュール生成を行わずに、シフト通信を実行することができる。
このように、必要なシフト通信の対象配列、対象次元や方向が毎回変化したり、異なる手続にまたがっていても、分割配置方法が同じであれば、1つのシフト通信スケジュールテーブル7中に、通信スケジュールを各次元、各方向独立に生成することにより通信スケジュール生成のコストを削減し、高速にシフト通信を行うことができる。
図1は、本実施の形態の分散メモリ型マルチプロセッサシステムの構成を例示するブロック図である。 図2は、本実施の形態におけるシフト通信実行部の構成を例示するブロック図である。 図3は、シフト通信スケジュールテーブルの構成を例示するテーブルである。 図4は、HPF言語によるプログラム例である。 図5は、並列演算処理ノードの記憶装置に分割配置される配列の構成を例示している。
符号の説明
1…分散メモリ型マルチプロセッサシステム
2…並列演算処理ノード
2−1〜2−n…演算処理ノード
3…計算装置群
3−1〜3−n…計算装置
4…記憶装置群
4−1〜4−n…記憶装置
5…演算処理ノード間通信部
6…シフト通信部
6−1…マッピング解析部
6−2…通信スケジュール再利用部
6−3…通信スケジュール生成部
6−4…シフト通信実行部
7…シフト通信スケジュールテーブル
〜7…第1〜第m通信スケジュール

Claims (9)

  1. 分散メモリ型マルチプロセッサシステムのシフト通信方法であって、
    (a)シフト通信を行う配列の分割配置方法を解析するステップと、
    (b)その解析によって得られた解析結果に基づいて、同一の分割配置に対するシフト通信スケジュールテーブルが存在するかどうかを検索するステップと、
    (c)前記シフト通信スケジュールテーブルの検索の結果、前記同一の分割配置に対するシフト通信スケジュールテーブルが存在する場合、必要な次元の必要な方向に対するシフト通信スケジュールが既に生成されているかどうかを検索するステップと、
    (d)前記シフト通信スケジュールの検索の結果、生成されていないシフト通信スケジュールが存在する場合、必要な分割配置方法、次元、方向に対応したシフト通信スケジュールを新たに生成し、前記新たなシフト通信スケジュールを含む新たなシフト通信スケジュールテーブルを生成するステップと、
    (e)前記新たなシフト通信スケジュールテーブルを参照して、シフト通信を実行するステップ
    を具備するシフト通信方法。
  2. 請求項1に記載のシフト通信方法において、
    前記(c)ステップは、さらに
    前記シフト通信スケジュールが存在しない場合に、新規のシフト通信スケジュールテーブルを生成するステップ
    を具備するシフト通信方法。
  3. 請求項2に記載のシフト通信方法において、
    前記(e)ステップは、さらに、
    必要なシフト通信スケジュールが全て生成済の場合、前記シフト通信スケジュールテーブルまたは前記新規のシフト通信スケジュールテーブルを参照して、シフト通信を実行する
    シフト通信方法。
  4. シフト通信を行う配列の分割配置方法を解析するマッピング解析手段と、
    その解析によって得られた解析結果に基づいて、同一の分割配置に対するシフト通信スケジュールテーブルが存在するかどうかを検索し、存在しない場合、シフト通信スケジュールテーブルを生成する通信スケジュール再利用手段と、前記通信スケジュール再利用手段は、同一の分割配置に対するシフト通信スケジュールテーブルが存在する場合、必要な次元の必要な方向に対するシフト通信スケジュールが既に生成されているかどうかを検索し、生成されていないシフト通信スケジュールが存在する場合、新たな通信スケジュールの生成を要求し、
    前記新たな通信スケジュールの生成の要求に応答して、必要な分割配置方法、次元、方向に対応したシフト通信スケジュールを生成し、前記シフト通信スケジュールテーブルを更新して新たなシフト通信スケジュールテーブルを生成するシフト通信スケジュール生成手段と、
    前記新たなシフト通信スケジュールテーブルを参照して、実際のシフト通信を行うシフト通信実行手段を具備する
    分散メモリ型マルチプロセッサシステム。
  5. 請求項4に記載の分散メモリ型マルチプロセッサシステムにおいて、
    前記シフト通信スケジュール生成手段は、
    前記同一の分割配置に対するシフト通信スケジュールテーブルが存在しない場合には、新規のシフト通信スケジュールテーブルを生成する
    分散メモリ型マルチプロセッサシステム。
  6. 請求項4または5に記載の分散メモリ型マルチプロセッサシステムにおいて、
    前記シフト通信スケジュール生成手段は、前記シフト通信実行手段に、現在のシフト通信スケジュールテーブルを用いてシフト通信を実行するように指示し、
    前記シフト通信実行手段は、前記指示に応答して前記シフト通信スケジュールテーブルまたは、前記新規のシフト通信スケジュールテーブルを参照して実際のシフト通信を実行する
    分散メモリ型マルチプロセッサシステム。
  7. 分散メモリ型マルチプロセッサシステムのシフト通信を実行可能なプログラムであって、
    コンピュータを、
    シフト通信を行う配列の分割配置方法を解析するマッピング解析手段と、
    その解析によって得られた解析結果に基づいて、同一の分割配置に対するシフト通信スケジュールテーブルが存在するかどうかを検索し、存在しない場合、シフト通信スケジュールテーブルを生成する通信スケジュール再利用手段と、前記通信スケジュール再利用手段は、同一の分割配置に対するシフト通信スケジュールテーブルが存在する場合、必要な次元の必要な方向に対するシフト通信スケジュールが既に生成されているかどうかを検索し、生成されていないシフト通信スケジュールが存在する場合、新たな通信スケジュールの生成を要求し、
    前記新たな通信スケジュールの生成の要求に応答して、必要な分割配置方法、次元、方向に対応したシフト通信スケジュールを生成し、前記シフト通信スケジュールテーブルを更新して新たなシフト通信スケジュールテーブルを生成するシフト通信スケジュール生成手段と、
    前記新たなシフト通信スケジュールテーブルを参照して、実際のシフト通信を行うシフト通信実行手段
    として機能させるためのプログラム。
  8. 請求項7に記載のプログラムにおいて、
    前記シフト通信スケジュール生成手段を、
    前記同一の分割配置に対するシフト通信スケジュールテーブルが存在しない場合には、新規のシフト通信スケジュールテーブルを生成する手段
    として機能させるためのプログラム。
  9. 請求項8に記載のプログラムにおいて、
    前記シフト通信スケジュール生成手段を、前記シフト通信実行手段に、現在のシフト通信スケジュールテーブルを用いてシフト通信を実行するように指示する手段として機能させ、
    前記シフト通信実行手段を、前記指示に応答して前記シフト通信スケジュールテーブルまたは、前記新規のシフト通信スケジュールテーブルを参照して実際のシフト通信を実行する手段
    として機能させるためのプログラム。
JP2005104016A 2005-03-31 2005-03-31 分散メモリ型マルチプロセッサシステムのシフト通信方法および分散メモリ型マルチプロセッサシステム Expired - Fee Related JP4304379B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005104016A JP4304379B2 (ja) 2005-03-31 2005-03-31 分散メモリ型マルチプロセッサシステムのシフト通信方法および分散メモリ型マルチプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005104016A JP4304379B2 (ja) 2005-03-31 2005-03-31 分散メモリ型マルチプロセッサシステムのシフト通信方法および分散メモリ型マルチプロセッサシステム

Publications (2)

Publication Number Publication Date
JP2006285588A true JP2006285588A (ja) 2006-10-19
JP4304379B2 JP4304379B2 (ja) 2009-07-29

Family

ID=37407460

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005104016A Expired - Fee Related JP4304379B2 (ja) 2005-03-31 2005-03-31 分散メモリ型マルチプロセッサシステムのシフト通信方法および分散メモリ型マルチプロセッサシステム

Country Status (1)

Country Link
JP (1) JP4304379B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008181388A (ja) * 2007-01-25 2008-08-07 Nec Corp 分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置、その方法及びそのプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008181388A (ja) * 2007-01-25 2008-08-07 Nec Corp 分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置、その方法及びそのプログラム
JP4529188B2 (ja) * 2007-01-25 2010-08-25 日本電気株式会社 分散メモリ型マルチプロセッサシステムの多次元シフト通信高速化装置、その方法及びそのプログラム

Also Published As

Publication number Publication date
JP4304379B2 (ja) 2009-07-29

Similar Documents

Publication Publication Date Title
US10467232B2 (en) Searching documentation across interconnected nodes in a distributed network
US9898313B2 (en) Parallel processing of data for an untrusted application
JP5481570B2 (ja) 検索クエリ処理
Klein et al. From instance-level constraints to space-level constraints: Making the most of prior knowledge in data clustering
US11433536B2 (en) Process understanding for robotic process automation (RPA) using sequence extraction
US9383982B2 (en) Data-parallel computation management
US10338963B2 (en) System and method of schedule validation and optimization of machine learning flows for cloud computing
Choudhary et al. Crawling rich internet applications: the state of the art
CN106227671A (zh) 程序运行性能分析方法及装置
JP7047625B2 (ja) プロキシコンピュータを選択するためのシステムおよび方法
JP5239739B2 (ja) プリント基板配線処理装置、プリント基板配線処理プログラム、プリント基板配線処理方法
Yamato Study and evaluation of automatic GPU offloading method from various language applications
JP7108039B2 (ja) システム全体の制御とデータ探索の自動化を可能にするための視覚的および実行テンプレートの推奨
JP5552449B2 (ja) データ分析及び機械学習処理装置及び方法及びプログラム
JP6673355B2 (ja) 配備装置、配備方法、及び、プログラム
KR102013582B1 (ko) 혼합 모드 프로그램의 소스 코드 오류 위치 검출 장치 및 방법
CN102081544B (zh) 应用程序生成系统和方法
CN105074652B (zh) 用于向打印机远程提供应用功能的方法和计算机系统
RU2598988C2 (ru) Способы и системы для поиска прикладных программ
CN114328470A (zh) 针对单个源表的数据迁移方法及装置
JP4304379B2 (ja) 分散メモリ型マルチプロセッサシステムのシフト通信方法および分散メモリ型マルチプロセッサシステム
AbdulRazzaq et al. Parallel implementation of maximum-shift algorithm using OpenMp
JP2019114043A (ja) ソフトウェア評価システム
US9811283B2 (en) System, control device, and method
Yi et al. Optimizing DNN compilation for distributed training with joint OP and tensor fusion

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071115

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080911

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20080911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080911

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20081016

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4304379

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140515

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees