JP6402598B2 - 情報処理装置、通信方法、通信プログラム、及び、情報処理システム - Google Patents
情報処理装置、通信方法、通信プログラム、及び、情報処理システム Download PDFInfo
- Publication number
- JP6402598B2 JP6402598B2 JP2014230227A JP2014230227A JP6402598B2 JP 6402598 B2 JP6402598 B2 JP 6402598B2 JP 2014230227 A JP2014230227 A JP 2014230227A JP 2014230227 A JP2014230227 A JP 2014230227A JP 6402598 B2 JP6402598 B2 JP 6402598B2
- Authority
- JP
- Japan
- Prior art keywords
- information processing
- data
- communication
- local data
- unit
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/453—Data distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
B( k’[1], ..., k’[V] ) = A( k[1], ..., k[U] )
T(n) = Latency + n / Throughput [秒] (式1)
と表すことができる。(式1)に示すように、一度に通信するデータ量nを大きくするほど、通信時間に占める遅延時間の影響を相対的に小さくすることができる。
B(p) = N for p = P
状態1:送信ノードのすべてが実行している状態
状態2:受信ノードのすべてが実行している状態
状態3:送信ノードと受信ノードのすべてが、集団的(collective)な実行をしている状態
コンパイラは、グローバルインデックスで表現された配列の代入を、複数ノードのローカルインデックス間の代入に変換し、さらに、複数ノードのアドレス間の多対多通信に変換する。図13においては、グローバル配列Aからグローバル配列Bへの代入は、複数のノードのローカル配列aからローカル配列bへの代入に変換される。そしてさらに、複数のノードのローカル配列aに対応するアドレス空間に格納されたデータが、ローカル配列bに対応するアドレス空間に代入される。
先ず、比較例におけるバッファなしPut通信の一例について説明する。比較例におけるバッファなしPut通信は、実行状態1、すなわち、送信ノードのすべてが実行している状態における通信である。配列A(送信側)の分散先である一次側ノードで通信に関する処理が実行される。配列B(受信側)の分散先である二次側ノードは、受動的な動作を行う。この通信をグローバルデータ間の代入の形式では、以下のように表現される。
B(g(j)) = A(f(j))
先ず一次側ノードは、二次側のすべてのノード
y = (y[1], ..., y[V]); y[1] = 0, ..., Y[1] - 1; ...; y[V] = 0, ..., Y[V] - 1
に問い合わせ、それぞれのローカル配列bのベースアドレスを受け取る。
j = (j[1], ..., j[D]); j[1] = 0, ..., N[1] - 1; ...; j[D] = 0, ..., N[D] - 1
について、以下の多重ループを実施する(S2)。この多重ループにおいて、一次側ノードはPut手順1を実行する。
...
for j[1] = 0 to N[1] - 1
(Put手順1)を実施
end for
...
end for
k[u] = fu( j )
end for
x[u] = gtopA(k[u])
i[u] = gtolA(k[u])
end for
k’[v] = gv( j )
end for
y[v] = gtopB(k’[v])
i’[v] = gtolB(k’[v])
end for
次に、比較例におけるバッファなしGet通信の一例について説明する。比較例におけるバッファなしGet通信は、実行状態2、すなわち、受信ノードのすべてが実行している状態における通信である。配列A(受信側)の分散先である一次側ノードで通信に関する処理が実行される。配列B(送信側)の分散先である二次側ノードは、受動的な動作のみ行う。この通信をグローバルデータ間の代入の形式では、以下のように表現される。
A(f(j)) = B(g(j))
先ず、一次側ノードは、二次側のすべてのノード
y = (y[1], ..., y[V]); y[1] = 0, ..., Y[1] - 1; ...; y[V] = 0, ..., Y[V] - 1
に問い合わせ、それぞれのローカル配列bのベースアドレスを受け取る。
j = (j[1], ..., j[D]); j[1] = 0, ..., N[1] - 1; ...; j[D] = 0, ..., N[D] - 1
について、以下の多重ループを実施する(S3)。この多重ループにおいて、一次側ノードはGet手順1を実行する。
...
for j[1] = 0 to N[1] - 1
(Get手順1)を実施
end for
...
end for
(比較例におけるバッファなし両側通信)
B(g(j)) = A(f(j))
先ず送信ノードの動作について説明する。送信ノードは、すべての通信データのインデックス
j = (j[1], ..., j[D]) ; j[1] = 0, ..., N[1] - 1;...; j[D] = 0, ..., N[D] - 1
について、以下の多重ループを実施する。この多重ループにおいて、送信ノードは送信ノード通信手順1を実行する。
...
for j[1] = 0 to N[1] - 1
(送信ノード通信手順1)
end for
...
end for
k[u] = fu( j )
end for
x[u] = gtopA(k[u])
i[u] = gtolA(k[u])
end for
k’[v] = gv( j )
end for
y[v] = gtopB(k’[v])
end for
j = (j[1], ..., j[D]) ; j[1] = 0, ..., N[1] - 1;...; j[D] = 0, ..., N[D] - 1
について、以下の多重ループを実施する。この多重ループにおいて、受信ノードは受信ノード通信手順1を実行する。
...
for j[1] = 0 to N[1] - 1
(受信ノード通信手順1)
end for
...
end for
k’[v] = gv( j )
end for
y[v] = gtopB(k’[v])
i’[v] = gtolB(k’[v])
end for
k[u] = fu( j )
end for
x[u] = gtopA(k[u])
end for
次に、比較例におけるバッファなし両側通信の一例について説明する。比較例におけるバッファあり両側通信は、実行状態3、すなわち、送信ノードと受信ノードのすべてが、集団的な実行をしている状態である。バッファあり両側通信においては、配列Aの分散先である送信ノードと、配列Bの分散先である受信ノードが協調して動作する。
j = (j[1], ..., j[D]) ; j[1] = 0, ..., N[1] - 1;...; j[D] = 0, ..., N[D] - 1
について、以下の多重ループを実施する(S6)。この多重ループにおいて、送信ノードは送信ノード通信手順2を実行する。
...
for j[1] = 0 to N[1] - 1
(送信ノード通信手順2)
end for
...
end for
k[u] = fu( j )
end for
x[u] = gtopA(k[u])
i[u] = gtolA(k[u])
end for
k’[v] = gv( j )
end for
y[v] = gtopB(k’[v])
end for
次に、送信ノードは、SendBuffのデータを対応する受信ノードへ送信する(S7−1)。
j = (j[1], ..., j[D]) ; j[1] = 0,..., N[1] - 1; ...; j[D] = 0, ..., N[D] - 1
について、以下の多重ループを実施する。この多重ループにおいて、受信ノードは受信ノード通信手順2を実行する。
...
for j[1] = 0 to N[1] - 1
(受信ノード通信手順2)
end for
...
end for
k’[v] = gv( j )
end for
y[v] = gtopB(k’[v])
i’[v] = gtolB(k’[v])
end for
k[u] = fu( j )
end for
x[u] = gtopA(k[u])
end for
アクセス対象のデータの指定に配列の添字式が使用される場合、指定される添字式の範囲が不連続だと、アクセス対象のデータは不連続になる。添字三つ組や間接参照による部分配列の参照がこれに当たる。これは、具体的には例えばA(2:8:2)やA(IX(1:8))などのようにアクセス対象データが指定された場合である。
Fortranでは、参照されるデータがk-次元目において連続であっても、k-次元目の下限から上限までの全てが参照されていなければ、参照されるデータは(k+1)-次元目に跨る連続とはならない。例えば、宣言形状がA(8,8)のとき、A(1:8, 2:3)は次元を跨ぐ8*2=16要素の連続となるが、A(1:7, 2:3)は次元を跨ぐ連続とはならず、7要素の連続となる。
分散の実装方法によっては、グローバル配列の添字が連続であっても、対応するローカル配列の添字が連続であると保障されない場合がある。例えば、cyclic分散について分散データが圧縮されずに割り付けられる実装方法では、A(1:100)が3ノードにcyclic分散されると、分散されるデータは、それぞれストライド幅3の不連続なアドレスに割り付けられるかもしれない。
k-次元目の分散でインデックスがノード数で割り切れない場合、割り付けの大きさをノード間で一定にする実装では、(k+1)-次元目に跨る連続とならない。例えば、宣言形状がA(8,8)のデータが、1次元目がblock分散で3ノードに分散される場合、割り当てがそれぞれA(1:3, 1:8), A(4:6, 1:8), A(7:8, 1:8)となる。このとき、最後のノードだけ1次元目の割り当てが少なくなる。このような場合にすべてのノードで同じサイズの領域が割り付けられると、最後のノードだけは次元を跨ぐ連続にならない。
k-次元目が不均等block分散、block-cyclic分散、またはindirect分散の場合、たとえインデックスがノード数で割り切れても、(k+1)-次元目に跨る連続とならない場合がある。例えば、1次元目が不均等block分散でその分散幅がノード毎にそれぞれ1,3,3,2である場合、各ノードの割付けの大きさが、分散幅の最大値3で統一される実装では、第1と第4のノードでは2次元目に跨る連続にならない。
HPFなどの言語では、グローバル配列を直接ノードに分散するのでなく、テンプレートと呼ばれる仮想的な配列に整列(align)させ、テンプレートを分散することにより、間接的にグローバルデータを分散させることができる。このようなとき、グローバル配列のk-次元目の大きさがテンプレートの対応する次元の大きさと一致する場合を除いて、(k+1)次元目に跨る連続にならない。例えば、グローバル配列の形状がA(10,8)、テンプレートの形状がT(12,8)で、A(i,j) が T(i+1, j) に整列され、1次元目が4ノードにblock分散される場合を考える。このとき、各ノードへのTの分散は、それぞれT(1:3, 1:8), T(4:6, 1:8), T(7:9, 1:8), T(10:12, 1:8)となり、各ノードへのAの分散は、それぞれA(1:2, 1:8), A(3:5, 1:8), A(6:8, 1:8), A(9:10, 1:8)となる。テンプレートの形状でメモリ割付けが行われる実装では、第1と第4のノードでは1次元目がテンプレートの1次元目の大きさより小さいので、2次元目に跨る連続にならない。
検出部25は、検出部15と同様にして、連続区画を検出する。尚、情報処理装置11と情報処理装置22は、同じ情報処理装置であっても良い。
B( g1(j), ..., gV(j) ) = A( f1(j), ..., fU(j) )
実施形態に係るバッファなしPut通信において、通信データは一次側ノードxから二次側ノードyに送信される。一次側と二次側で対応するデータが共に連続している範囲を、一度にputする通信データ単位とする。データは、通信データ単位毎に分割され、一次側も二次側もバッファなしでput通信される。通信データ単位にはxとyで共通に連続な区間Jccが選択される。
次に、通信情報テーブルについて説明する。図27〜図30は、通信情報テーブルの構成の一例(その1〜その4)を示す。尚、図27〜図30は、まとめて一つの通信情報テーブルとしてもよい。また通信情報テーブルは、各項目の対応関係が保持されれば、テーブルの形式に限定されない。
次に、状態1プログラムの解析について説明する。状態1プログラムの解析では、着目する通信に関連する情報を通信情報テーブルに格納する処理が実行される。解析部33は、取得部32が取得した状態1の通信が表現されているプログラムを入力として、状態1プログラムの解析を実行する。尚、状態1プログラムの解析では、送信ノードが一次側、受信ノードが二次側となる。
次に、連続性優先pivoting手順について説明する。整列部34は、通信情報テーブルと、一次側と二次側のどちらを優先するかを示す情報と、を入力として、連続性優先pivoting手順の処理を開始する。
次に、連続データ単位検出手順について説明する。検出部35は、通信情報テーブルを入力として、連続データ単位検出手順を実行する。
次に、連続データ単位put手順について説明する。通信部36は、連続データ単位リスト(以下、Jc-listと記す場合がある)、Jcの連続次元数Dc(0≦Dc≦D)、及び通信情報テーブルを入力として、連続データ単位put手順の処理を開始する。
次に、連続‐連続データ単位検出手順について説明する。検出部35は、連続データ単位Jc = (jc[1], ..., jc[D])、Jcの連続次元数Dc(0≦Dc≦D)、及び通信情報テーブルを入力として、連続‐連続データ単位検出手順の処理を開始する。ここで、連続データ単位Jcは、対応する一次側データが次元を跨いで連続である通信データインデックス範囲である。
次に、連続-連続データ単位put手順について説明する。通信部36は、以下のデータ項目を入力として、連続-連続データ単位put手順の処理を開始する。入力はすなわち、通信データ単位Jcc = (jcc[1], ..., jcc[D])、連続‐連続次元数Dcc、及び、二次側(受信側)ノードインデックスycc = (ycc[1], ..., ycc[V])である。これらに加えて、入力は、二次側ローカルインデックスの起点icc1’ = (icc1’[1], ..., icc1’[V])、通信データ単位の長さLcc、及び、通信情報テーブルである。
実施形態に係るバッファありPut通信において、通信データは一次側ノードxから二次側ノードyに送信される。一度にputする通信データ単位は、一次側では効率のよいバッファリングが可能で、かつ、二次側ではデータが連続している範囲とする。データは、通信データ単位毎に分けられ、一次側ではバッファを介して、二次側ではバッファを介さずput通信される。通信データ単位には、一次側は三つ組で表される領域、二次側は連続である領域であるJtcが選択される。
次に、矩形データ単位検出手順について説明する。検出部35は、通信情報テーブルを入力として、矩形データ単位検出手順の処理を開始する。
次に、矩形データ単位put手順について説明する。通信部36は、矩形データ単位リスト(以下、Jt-listと記す場合がある)、Jtの矩形次元数Dt(0≦Dt≦D)、及び、信情報テーブルを入力として、矩形データ単位put手順の処理を開始する。
次に、矩形‐連続データ単位検出手順について説明する。検出部35は、矩形データ単位Jt = (jt[1], ..., jt[D])、Jtの次元数Dt(0≦Dt≦D)、Jtの上位インデックス(jt[Dt+1], ..., jt[D])、及び、通信情報テーブルを入力として、矩形‐連続データ単位検出手順の処理を開始する。ここで、矩形データ単位Jtは、対応する一次側データが区間、三つ組またはスカラで表現される通信インデックス範囲である。
次に、矩形-連続データ単位put手順について説明する。通信部36は、以下のデータ項目を入力として、矩形-連続データ単位put手順の処理を開始する。入力はすなわち、通信データ単位Jtc = (jtc[1], ..., jtc[D])、矩形‐連続次元数Dtc、及び、二次側(受信側)ノードインデックスytc = (ytc[1], ..., ytc[DtoV[Dtc]])である。これらに加えて、入力は、二次側ローカルインデックスの起点itc1’ = (itc1’[1], ..., itc1’[DtoV[Dtc]])、通信データ単位の長さLtc、及び、通信情報テーブルである。
itc1’[v] = gtolB(gv(jtc1))
次に、矩形データ単位pack手順について説明する。バッファ制御部38は、以下のデータ項目を入力として、矩形データ単位pack手順の処理を開始する。入力はすなわち、各次元が三つ組パラメタで表現できる矩形データ単位Jt = (jt[1], ..., jt[Dt])、矩形次元数Dt、上位次元 (jt[Dt+1], ..., jt[D])、送信バッファSendBufの先頭アドレス、及び、通信情報テーブルである。ただし、各次元が三つ組パラメタで表現できる矩形データ単位Jt = (jt[1], ..., jt[Dt])は、1つの送信先ノードに対応する。
実施形態に係るバッファなしGet通信において、一次側ノードxは、二次側ノードyからデータを受け取る。一度にgetする通信データ単位は、一次側と二次側で対応するデータが共に連続している範囲となる。データは、通信データ単位毎に分けられ、一次側も二次側もバッファなしでget通信される。通信データ単位にはxとyで共通に連続な区間Jccが選択される。
次に、状態2プログラムの解析について説明する。状態2プログラムの解析では、着目する通信に関連する情報を通信情報テーブルに格納する処理が実行される。解析部33は、取得部32が取得した状態2の通信が表現されているプログラムを入力として、状態2プログラムの解析を実行する。尚、状態2プログラムの解析では、受信ノードが一次側、送信ノードが二次側となる。
次に、連続データ単位get手順について説明する。通信部36は、連続データ単位リストJc-list、Jcの連続次元数Dc(0≦Dc≦D)、及び通信情報テーブルを入力として、連続データ単位get手順の処理を開始する。
次に、連続-連続データ単位get手順について説明する。通信部36は、以下のデータ項目を入力として、連続-連続データ単位get手順の処理を開始する。入力はすなわち、通信データ単位Jcc = (jcc[1], ..., jcc[D])、連続‐連続次元数Dcc、及び、二次側(受信側)ノードインデックスycc = (ycc[1], ..., ycc[V])である。これらに加えて、入力は、二次側ローカルインデックスの起点icc1’ = (icc1’[1], ..., icc1’[V])、通信データ単位の長さLcc、及び、通信情報テーブルである。
icc1[u] = i1[u] + jcc1[U] * i3[u]
実施形態に係るバッファありGet通信において、一次側ノードxは、二次側ノードyからデータを受け取る。一度にgetする通信データ単位は、二次側ではデータが連続していて、かつ、一次側では効率のよいアンバッファリングが可能な範囲とする。データは、通信データ単位毎に分けられ、一次側ではバッファを介して、二次側ではバッファを介さずget通信される。通信データ単位には、一次側は三つ組で表現できる領域、二次側は連続である領域であるJtcが選択される。
次に解析部33は、状態2プログラムの解析を行う(S702)。状態2プログラムの解析を行うことにより解析部33は、着目する通信に関連する情報を通信情報テーブルに格納する。この状態1プログラムの解析は、実施形態に係るバッファなしGet通信において説明したものと同様である。
次に、矩形データ単位get手順について説明する。通信部36は、矩形データ単位リストJt-list、Jtの矩形次元数Dt(0≦Dt≦D)、及び、通信情報テーブルを入力として、矩形データ単位get手順の処理を開始する。
次に、矩形-連続データ単位get手順について説明する。通信部36は、以下のデータ項目を入力として、矩形-連続データ単位get手順の処理を開始する。入力はすなわち、通信データ単位Jtc = (jtc[1], ..., jtc[D])、矩形‐連続次元数Dtc、及び、二次側(送信側)ノードインデックスytc = (ytc[1], ..., ytc[DtoV[Dtc]])である。これらに加えて、入力は、二次側ローカルインデックスの起点itc1’ = (itc1’[1], ..., itc1’[DtoV[Dtc]])、通信データ単位の長さLtc、及び、通信情報テーブルである。
itc1’[v] = gtolB(gv( jtc1 ))
次に、矩形データ単位unpack手順について説明する。バッファ制御部38は、以下のデータ項目を入力として、矩形データ単位pack手順の処理を開始する。入力はすなわち、各次元が三つ組パラメタで表現できる矩形データ単位Jt = (jt[1], ..., jt[Dt])、矩形次元数Dt、上位次元 (jt[Dt+1], ..., jt[D])、受信バッファRecvBufの先頭アドレス、及び、通信情報テーブルである。ただし、各次元が三つ組パラメタで表現できる矩形データ単位Jt = (jt[1], ..., jt[Dt])は、1つの送信先ノードに対応する。
実施形態に係るバッファあり両側通信において、一度に送受信する通信データ単位は、送信側では効率のよいpackを伴うバッファリングが可能で、かつ、受信側では効率のよいunpackを伴うアンバッファリングが可能なデータの範囲とする。データは、通信データ単位毎に分けられ、送信側も受信側もバッファを介して両側通信(two-sided communication)される。通信データ単位には、送信側ノードxと受信側ノードyで共通に、区間または三つ組で表現される領域Jtが選択される。
次に、状態3プログラムの解析について説明する。状態3プログラムの解析では、着目する通信に関連する情報を通信情報テーブルに格納する処理が実行される。解析部33は、取得部32が取得した状態3の通信が表現されているプログラムを入力として、状態3プログラムの解析を実行する。
次に、矩形性優先pivoting手順について説明する。整列部34は、送信側と受信側の通信情報テーブルを入力として、矩形性優先pivoting手順の処理を開始する。
次に、共通矩形データ単位検出手順について説明する。検出部35は、送信側と受信側の通信情報テーブルを入力として、共通矩形データ単位検出手順の処理を開始する。
次に、共通矩形データ単位送信処理について説明する。通信部36は、共通矩形データ単位Jt = (jt [1], ..., jt [D])、Jtの共通矩形次元数、及び、送信側の通信情報テーブルを入力として、共通矩形データ単位送信処理を実行する。ここで、Jtの共通矩形次元数は、すなわち矩形である下位インデックスの次元数Dt(0≦Dt≦D)である。
次に送信バッファ準備手順について説明する。送信バッファ準備手順においては、送信側を一次側、受信側を二次側とする。バッファ確保部37は、共通矩形次元数、及び、一次側の通信情報テーブルを入力として送信バッファ準備手順を実行する。ここで、共通矩形次元数は、すなわち、通信データの矩形である下位インデックスの次元数Dt(0≦Dt≦D)である。
次に、共通矩形データ単位pack手順について説明する。バッファ制御部38は、共通矩形データ単位Jt = (jt[1], ..., jt[D])、共通矩形次元数、バッファリングパターンのリストy_countList[Dt]、及び、一次側(送信側)の通信情報テーブルを入力として、共通矩形データ単位pack手順を実行する。ここで、共通矩形次元数は、すなわち矩形である下位インデックスの次元数Dt(0≦Dt≦D)である。
次に、共通矩形データ単位send手順について説明する。通信部36は、以下のデータ項目を入力として、共通矩形データ単位send手順を実行する。入力はすなわち、共通矩形次元数Dt(0≦Dt≦D)、共通矩形データ単位Jt = (jt[1], ..., jt[D])、及び、送信側の通信情報テーブルである。これらに加えて、入力は、一次側(送信側)の送信バッファSendBuf[Y[DtoV[1]]]...[Y[DtoV[Dt]]]、及び送信バッファの次元dの各受信ノードインデックスに対応する寸法bufExtent[d][y[DtoV[d]]]である。
ここでmは、同じ送受信ノード間でのsend-recveive通信についてそれ以上の数の追い越しが起こらないと保証できる十分大きな数であればよい。
次に、共通矩形データ単位受信処理について説明する。通信部36は、共通矩形データ単位Jt = (jt[1], ..., jt[D])、Jtの矩形次元数、及び、受信側の通信情報テーブルを入力として、共通矩形データ単位受信処理を実行する。ここで、Jtの矩形次元数は、すなわち矩形である下位インデックスの次元数Dt(0≦Dt≦D)である。
次に、受信バッファ準備手順について説明する。受信バッファ準備手順においては、受信側を一次側、送信側を二次側とする。バッファ確保部37は、共通矩形次元数、及び、一次側の通信情報テーブルを入力として、受信バッファ準備手順を実行する。ここで、共通矩形次元数は、すなわち、通信データの矩形である下位インデックスの次元数Dt(0≦Dt≦D)である。
次に、共通矩形データ単位recv手順について説明する。通信部36は、以下のデータ項目を入力として、共通矩形データ単位recv手順を実行する。入力はすなわち、共通矩形次元数Dt(0≦Dt≦D)、共通矩形データ単位 Jt = (jt[1], ..., jt[D])、及び、受信側の通信情報テーブルである。これらに加えて、入力は、一次側(受信側)の受信バッファRecvBuf[Y[DtoV[1]]]...[Y[DtoV[Dt]]]、及び、受信バッファの次元dの各送信ノードインデックスに対応する寸法bufExtent[d][y[DtoV[d]]]である。
(jt[Dt+1] + N[Dt+1] * (jt[Dt+2] + N[Dt+2] * (... jt[D] ) ...)) mod m
ここでmは、同じ送受信ノード間でのsend-recveive通信についてそれ以上の数の追い越しが起こらないと保証できる十分大きな数であればよい。
次に、共通矩形データ単位unpack手順について説明する。バッファ制御部38は、共通矩形データ単位Jt = (jt[1], ..., jt[Dt])、共通矩形次元数、バッファリングパターンのリストy_countList[Dt]、及び、一次側(受信側)の通信情報テーブルを入力として、共通矩形データ単位unpack手順を実行する。ここで、共通矩形次元数は、すなわち、矩形である下位インデックスの次元数Dt(0≦Dt≦D)である。
forall (i=0:99, j=0:119) B(i,60,j) = A(i+10,j+n2)
で与えられているのであれば、連続データアクセスとなる可能性があるループ変数iが先、そうでないループ変数jが後になるように、整列部34はソートした方がよい。
((0:89, jx1[2]), (0:89, jx1[2] + jx3[2]), (0:89, jx1[2] + 2 * jx3[2]), ..., (0:89, jx2[2]))
となる。jx1[2], jx2[2], jx3[2]は通信情報テーブルから得られる。
for jx[2] = jx1[2] to jx2[2] step jx3[2]
Jc-list = ((0:89))
call 連続データ単位put手順
end for
Jc-list = ((0:89, 80))
連続データ単位put手順を実施
Jc-list = ((0:89, 81))
連続データ単位put手順を実施
Jc-list = ((0:89, 90))
連続データ単位put手順を実施
(1)記憶装置43に予めインストールされている。
(2)着脱可能記憶媒体50により提供される。
(3)プログラムサーバ(図示せず)から通信インターフェース45を介して提供される。
(付記1)
複数の情報処理装置のうち、前記複数の情報処理装置間で共有するグローバルデータを分割したローカルデータのうち、いずれかのローカルデータが割り当てられる情報処理装置において、
所定の単位に区画された第1の記憶領域に、前記情報処理装置に割り当てられたローカルデータを記憶する記憶部と、
前記情報処理装置から他の情報処理装置に対する書き込み対象である対象ローカルデータの書き込み指示を取得する取得部と、
前記グローバルデータにおいて前記対象ローカルデータが対応するデータを特定する格納領域情報に基づき、前記他の情報処理装置が備える他の記憶部において前記所定の単位に区画された第2の記憶領域のうち、前記対象ローカルデータを書き込む連続する複数の連続区画を検出する検出部と、
前記第1の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記他の情報処理装置に送信する送信部と
を有する情報処理装置。
(付記2)
前記格納領域情報は、前記情報処理装置に割り当てられた前記対象ローカルデータを特定する情報と、前記他の情報処理装置に割り当てられた前記対象ローカルデータを特定する情報を含み、
前記検出部は、前記格納領域情報に基づいて、前記第2の記憶領域の前記連続区画のうち、該連続区画に書き込まれる対象ローカルデータが格納された前記第1の記憶領域の区画が連続する複数の連続区画を検出する
ことを特徴とする付記1に記載の情報処理装置。
(付記3)
前記送信部は、前記記憶部から、前記連続区画の区画数だけ、前記第1の記憶領域に格納されたローカルデータを取り出して、所定のバッファ領域に格納し、該バッファ領域に格納したローカルデータを、所定の単位で、前記第2ノードへ送信する
ことを特徴とする付記1または2に記載の情報処理装置。
(付記4)
前記情報処理装置は、さらに、
前記検出した連続区画の区画数に応じたサイズの前記バッファ領域を確保する確保部と、
を備えることを特徴とする付記3に記載の情報処理装置。
(付記5)
複数の情報処理装置のうち、前記複数の情報処理装置間で共有するグローバルデータを分割したローカルデータのうち、いずれかのローカルデータが割り当てられる情報処理装置において、
所定の単位に区画された第1の記憶領域に、前記情報処理装置にローカルデータ領域を割り当てられた記憶部と、
前記情報処理装置に対する他の情報処理装置からの読み込み対象である対象ローカルデータの読み込み指示を取得する取得部と、
前記グローバルデータにおいて前記対象ローカルデータが対応するデータを特定する格納領域情報に基づき、前記他の情報処理装置が備える他の記憶部において前記所定の単位に区画された第2の記憶領域のうち、前記対象ローカルデータを読み出す連続する複数の連続区画を検出する検出部と、
前記第2の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記情報処理装置に送信することを、前記他の情報処理装置に要求する要求部と
前記他の情報処理装置から前記要求に応じて送信された前記連続区画の区画数のローカルデータを受信して前記第1の記憶領域に格納する受信部と、
を備えることを特徴とする情報処理装置。
(付記6)
前記格納領域情報は、前記情報処理装置に割り当てられた前記対象ローカルデータを特定する情報と、前記他の情報処理装置に割り当てられた前記対象ローカルデータを特定する情報を含み、
前記検出部は、前記格納領域情報に基づいて、前記第2の記憶領域の前記連続区画のうち、該連続区画からデータが読み出されて格納される前記第1の記憶領域の区画が連続する複数の連続区画を検出する
ことを特徴とする付記5に記載の情報処理装置。
(付記7)
前記受信部は、前記ローカルデータを受信して所定のバッファ領域に格納し、該バッファ領域から、検出した前記連続区画の区画数だけ取り出して前記第1の記憶領域に格納する
ことを特徴とする付記5または6に記載の情報処理装置。
(付記8)
前記情報処理装置は、さらに、
前記検出した連続区画の区画数に応じたサイズの前記バッファ領域を確保する確保部と、
を備えることを特徴とする付記7に記載の情報処理装置。
(付記9)
複数の情報処理装置のうち、前記複数の情報処理装置間で共有するグローバルデータを分割したローカルデータのうち、いずれかのローカルデータが割り当てられる情報処理装置は、
前記情報処理装置に割り当てられたローカルデータのうち、前記情報処理装置から他の情報処理装置に対する書き込み対象である対象ローカルデータの書き込み指示を取得し、
前記グローバルデータにおいて前記対象ローカルデータが対応するデータを特定する格納領域情報に基づき、前記他の情報処理装置が備える他の記憶部において前記所定の単位に区画された第2の記憶領域のうち、前記対象ローカルデータを書き込む連続する複数の連続区画を検出し、
所定の単位に区画された第1の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記他の情報処理装置に送信する
ことを特徴とする通信方法。
(付記10)
複数の情報処理装置のうち、前記複数の情報処理装置間で共有するグローバルデータを分割したローカルデータのうち、いずれかのローカルデータが割り当てられる情報処理装置は、
前記情報処理装置に対する他の情報処理装置からの読み込み対象である対象ローカルデータの読み込み指示を取得し、
前記グローバルデータにおいて前記対象ローカルデータが対応するデータを特定する格納領域情報に基づき、前記他の情報処理装置が備える他の記憶部において前記所定の単位に区画された第2の記憶領域のうち、前記対象ローカルデータを読み出す連続する複数の連続区画を検出し、
前記第2の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記情報処理装置に送信することを、前記他の情報処理装置に要求し、
前記他の情報処理装置から前記要求に応じて送信された前記連続区画の区画数のローカルデータを受信して、所定の単位に区画された第1の記憶領域に格納する
ことを特徴とする通信方法。
(付記11)
複数の情報処理装置のうち、前記複数の情報処理装置間で共有するグローバルデータを分割したローカルデータのうち、いずれかのローカルデータが割り当てられる情報処理装置に、
前記情報処理装置に割り当てられたローカルデータのうち、前記情報処理装置から他の情報処理装置に対する書き込み対象である対象ローカルデータの書き込み指示を取得し、
前記グローバルデータにおいて前記対象ローカルデータが対応するデータを特定する格納領域情報に基づき、前記他の情報処理装置が備える他の記憶部において前記所定の単位に区画された第2の記憶領域のうち、前記対象ローカルデータを書き込む連続する複数の連続区画を検出し、
所定の単位に区画された第1の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記他の情報処理装置に送信する
処理を実行させることを特徴とする通信プログラム。
(付記12)
複数の情報処理装置のうち、前記複数の情報処理装置間で共有するグローバルデータを分割したローカルデータのうち、いずれかのローカルデータが割り当てられる情報処理装置に、
前記情報処理装置に対する他の情報処理装置からの読み込み対象である対象ローカルデータの読み込み指示を取得し、
前記グローバルデータにおいて前記対象ローカルデータが対応するデータを特定する格納領域情報に基づき、前記他の情報処理装置が備える他の記憶部において前記所定の単位に区画された第2の記憶領域のうち、前記対象ローカルデータを読み出す連続する複数の連続区画を検出し、
前記第2の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記情報処理装置に送信することを、前記他の情報処理装置に要求し、
前記他の情報処理装置から前記要求に応じて送信された前記連続区画の区画数のローカルデータを受信して、所定の単位に区画された第1の記憶領域に格納する
処理を実行させることを特徴とする通信プログラム。
(付記13)
複数の情報処理装置間で共有するグローバルデータを分割したローカルデータが複数の情報処理装置に分散されている情報処理システムであって、
第1情報処理装置と第2情報処理装置を備え、
前記第1情報処理装置は、
所定の単位に区画された第1の記憶領域に、前記第1情報処理装置に割り当てられたローカルデータを記憶する記憶部と、
前記第1情報処理装置から前記第2情報処理装置に対する書き込み対象である対象ローカルデータの書き込み指示を取得する取得部と、
前記グローバルデータにおいて前記対象ローカルデータが対応するデータを特定する格納領域情報に基づき、前記第2情報処理装置が備える他の記憶部において前記所定の単位に区画された第2の記憶領域のうち、前記対象ローカルデータを書き込む連続する複数の連続区画を検出する検出部と、
前記第1の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記第2情報処理装置に送信する送信部と、を有し、
前記第2情報処理装置は、前記第1情報処理装置から前記連続区画の区画数のローカルデータを受信して、前記第2の記憶領域に格納する
ことを特徴とする情報処理システム。
(付記14)
複数の情報処理装置間で共有するグローバルデータを分割したローカルデータが複数の情報処理装置に分散されている情報処理システムであって、
第1情報処理装置と第2情報処理装置を備え、
前記第1情報処理装置は、
所定の単位に区画された第1の記憶領域に、前記第1情報処理装置にローカルデータ領域を割り当てられた記憶部と、
前記第1情報処理装置に対する第2情報処理装置からの読み込み対象である対象ローカルデータの読み込み指示を取得する取得部と、
前記グローバルデータにおいて前記対象ローカルデータが対応するデータを特定する格納領域情報に基づき、前記第2情報処理装置が備える他の記憶部において前記所定の単位に区画された第2の記憶領域のうち、前記対象ローカルデータを読み出す連続する複数の連続区画を検出する検出部と、
前記第2の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記第1情報処理装置に送信することを、前記第2情報処理装置に要求する要求部と
前記第2情報処理装置から前記要求に応じて送信された前記連続区画の区画数のローカルデータを受信して前記第1の記憶領域に格納する受信部と、を有し、
前記第2情報処理装置は、前記第1情報処理装置からの前記要求に応じて、前記第2の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記第1情報処理装置に送信する
ことを特徴とする情報処理システム。
11 情報処理装置
12 第2ノード
13 記憶部
14 取得部
15 検出部
16 送信部
17 確保部
20 情報処理システム
21 情報処理装置
22 第2ノード
23 記憶部
24 取得部
25 検出部
26 要求部
27 受信部
28 確保部
30 通信ノード
31 記憶部
32 取得部
33 解析部
34 整列部
35 検出部
36 通信部
37 バッファ確保部
38 バッファ制御部
Claims (12)
- 複数の情報処理装置のうち、前記複数の情報処理装置間で共有するグローバルデータを分割したローカルデータのうち、いずれかのローカルデータが割り当てられる情報処理装置において、
所定の単位に区画された第1の記憶領域に、前記情報処理装置に割り当てられたローカルデータを記憶する記憶部と、
前記情報処理装置から他の情報処理装置に対する書き込み対象である対象ローカルデータの書き込み指示を取得する取得部と、
前記グローバルデータにおいて前記対象ローカルデータが対応するデータを特定する格納領域情報に基づき、前記他の情報処理装置が備える他の記憶部において前記所定の単位に区画された第2の記憶領域のうち、前記対象ローカルデータを書き込む連続する複数の連続区画を検出する検出部と、
前記第1の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記他の情報処理装置に送信する送信部と
を有する情報処理装置。 - 前記格納領域情報は、前記情報処理装置に割り当てられた前記対象ローカルデータを特定する情報と、前記他の情報処理装置に割り当てられた前記対象ローカルデータを特定する情報を含み、
前記検出部は、前記格納領域情報に基づいて、前記第2の記憶領域の前記連続区画のうち、該連続区画に書き込まれる対象ローカルデータが格納された前記第1の記憶領域の区画が連続する複数の連続区画を検出する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記送信部は、前記記憶部から、前記第2の記憶領域の前記連続区画の区画数だけ、前記第1の記憶領域に格納されたローカルデータを取り出して、所定のバッファ領域に格納し、該バッファ領域に格納したローカルデータを、所定の単位で、前記他の情報処理装置へ送信する
ことを特徴とする請求項1または2に記載の情報処理装置。 - 複数の情報処理装置のうち、前記複数の情報処理装置間で共有するグローバルデータを分割したローカルデータのうち、いずれかのローカルデータが割り当てられる情報処理装置において、
所定の単位に区画された第1の記憶領域に、前記情報処理装置にローカルデータ領域を割り当てられた記憶部と、
前記情報処理装置に対する他の情報処理装置からの読み込み対象である対象ローカルデータの読み込み指示を取得する取得部と、
前記グローバルデータにおいて前記対象ローカルデータが対応するデータを特定する格納領域情報に基づき、前記他の情報処理装置が備える他の記憶部において前記所定の単位に区画された第2の記憶領域のうち、前記対象ローカルデータを読み出す連続する複数の連続区画を検出する検出部と、
前記第2の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記情報処理装置に送信することを、前記他の情報処理装置に要求する要求部と
前記他の情報処理装置から前記要求に応じて送信された前記連続区画の区画数のローカルデータを受信して前記第1の記憶領域に格納する受信部と、
を備えることを特徴とする情報処理装置。 - 前記格納領域情報は、前記情報処理装置に割り当てられた前記対象ローカルデータを特定する情報と、前記他の情報処理装置に割り当てられた前記対象ローカルデータを特定する情報を含み、
前記検出部は、前記格納領域情報に基づいて、前記第2の記憶領域の前記連続区画のうち、該連続区画からデータが読み出されて格納される前記第1の記憶領域の区画が連続する複数の連続区画を検出する
ことを特徴とする請求項4に記載の情報処理装置。 - 前記受信部は、前記ローカルデータを受信して所定のバッファ領域に格納し、該バッファ領域から、検出した前記第2の記憶領域の前記連続区画の区画数だけ取り出して前記第1の記憶領域に格納する
ことを特徴とする請求項4または5に記載の情報処理装置。 - 複数の情報処理装置のうち、前記複数の情報処理装置間で共有するグローバルデータを分割したローカルデータのうち、いずれかのローカルデータが割り当てられる情報処理装置は、
前記情報処理装置が備える記憶部において所定の単位に区画された第1の記憶領域に、前記情報処理装置に割り当てられたローカルデータを記憶し、
前記情報処理装置に割り当てられたローカルデータのうち、前記情報処理装置から他の情報処理装置に対する書き込み対象である対象ローカルデータの書き込み指示を取得し、
前記グローバルデータにおいて前記対象ローカルデータが対応するデータを特定する格納領域情報に基づき、前記他の情報処理装置が備える他の記憶部において前記所定の単位に区画された第2の記憶領域のうち、前記対象ローカルデータを書き込む連続する複数の連続区画を検出し、
前記第1の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記他の情報処理装置に送信する
ことを特徴とする通信方法。 - 複数の情報処理装置のうち、前記複数の情報処理装置間で共有するグローバルデータを分割したローカルデータのうち、いずれかのローカルデータが割り当てられる情報処理装置は、
前記情報処理装置が備える記憶部において所定の単位に区画された第1の記憶領域に、前記ローカルデータのための領域を割り当て、
前記情報処理装置に対する他の情報処理装置からの読み込み対象である対象ローカルデータの読み込み指示を取得し、
前記グローバルデータにおいて前記対象ローカルデータが対応するデータを特定する格納領域情報に基づき、前記他の情報処理装置が備える他の記憶部において前記所定の単位に区画された第2の記憶領域のうち、前記対象ローカルデータを読み出す連続する複数の連続区画を検出し、
前記第2の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記情報処理装置に送信することを、前記他の情報処理装置に要求し、
前記他の情報処理装置から前記要求に応じて送信された前記連続区画の区画数のローカルデータを受信して前記第1の記憶領域に格納する
ことを特徴とする通信方法。 - 複数の情報処理装置のうち、前記複数の情報処理装置間で共有するグローバルデータを分割したローカルデータのうち、いずれかのローカルデータが割り当てられる情報処理装置に、
前記情報処理装置が備える記憶部において所定の単位に区画された第1の記憶領域に、前記情報処理装置に割り当てられたローカルデータを記憶し、
前記情報処理装置に割り当てられたローカルデータのうち、前記情報処理装置から他の情報処理装置に対する書き込み対象である対象ローカルデータの書き込み指示を取得し、
前記グローバルデータにおいて前記対象ローカルデータが対応するデータを特定する格納領域情報に基づき、前記他の情報処理装置が備える他の記憶部において前記所定の単位に区画された第2の記憶領域のうち、前記対象ローカルデータを書き込む連続する複数の連続区画を検出し、
前記第1の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記他の情報処理装置に送信する
処理を実行させることを特徴とする通信プログラム。 - 複数の情報処理装置のうち、前記複数の情報処理装置間で共有するグローバルデータを分割したローカルデータのうち、いずれかのローカルデータが割り当てられる情報処理装置に、
前記情報処理装置が備える記憶部において所定の単位に区画された第1の記憶領域に、前記ローカルデータのための領域を割り当て、
前記情報処理装置に対する他の情報処理装置からの読み込み対象である対象ローカルデータの読み込み指示を取得し、
前記グローバルデータにおいて前記対象ローカルデータが対応するデータを特定する格納領域情報に基づき、前記他の情報処理装置が備える他の記憶部において前記所定の単位に区画された第2の記憶領域のうち、前記対象ローカルデータを読み出す連続する複数の連続区画を検出し、
前記第2の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記情報処理装置に送信することを、前記他の情報処理装置に要求し、
前記他の情報処理装置から前記要求に応じて送信された前記連続区画の区画数のローカルデータを受信して前記第1の記憶領域に格納する
処理を実行させることを特徴とする通信プログラム。 - 複数の情報処理装置間で共有するグローバルデータを分割したローカルデータが複数の情報処理装置に分散されている情報処理システムであって、
第1情報処理装置と第2情報処理装置を備え、
前記第1情報処理装置は、
所定の単位に区画された第1の記憶領域に、前記第1情報処理装置に割り当てられたローカルデータを記憶する記憶部と、
前記第1情報処理装置から前記第2情報処理装置に対する書き込み対象である対象ローカルデータの書き込み指示を取得する取得部と、
前記グローバルデータにおいて前記対象ローカルデータが対応するデータを特定する格納領域情報に基づき、前記第2情報処理装置が備える他の記憶部において前記所定の単位に区画された第2の記憶領域のうち、前記対象ローカルデータを書き込む連続する複数の連続区画を検出する検出部と、
前記第1の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記第2情報処理装置に送信する送信部と、を有し、
前記第2情報処理装置は、前記第1情報処理装置から前記連続区画の区画数のローカルデータを受信して、前記第2の記憶領域に格納する
ことを特徴とする情報処理システム。 - 複数の情報処理装置間で共有するグローバルデータを分割したローカルデータが複数の情報処理装置に分散されている情報処理システムであって、
第1情報処理装置と第2情報処理装置を備え、
前記第1情報処理装置は、
所定の単位に区画された第1の記憶領域に、前記第1情報処理装置にローカルデータ領域を割り当てられた記憶部と、
前記第1情報処理装置に対する第2情報処理装置からの読み込み対象である対象ローカルデータの読み込み指示を取得する取得部と、
前記グローバルデータにおいて前記対象ローカルデータが対応するデータを特定する格納領域情報に基づき、前記第2情報処理装置が備える他の記憶部において前記所定の単位に区画された第2の記憶領域のうち、前記対象ローカルデータを読み出す連続する複数の連続区画を検出する検出部と、
前記第2の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記第1情報処理装置に送信することを、前記第2情報処理装置に要求する要求部と
前記第2情報処理装置から前記要求に応じて送信された前記連続区画の区画数のローカルデータを受信して前記第1の記憶領域に格納する受信部と、を有し、
前記第2情報処理装置は、前記第1情報処理装置からの前記要求に応じて、前記第2の記憶領域に格納されたローカルデータを、前記連続区画の区画数だけ取り出して前記第1情報処理装置に送信する
ことを特徴とする情報処理システム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014230227A JP6402598B2 (ja) | 2014-11-12 | 2014-11-12 | 情報処理装置、通信方法、通信プログラム、及び、情報処理システム |
US14/887,382 US9841919B2 (en) | 2014-11-12 | 2015-10-20 | Information processing apparatus, communication method and information processing system for communication of global data shared by information processing apparatuses |
EP15190676.5A EP3021210A1 (en) | 2014-11-12 | 2015-10-20 | Information processing apparatus, communication method, communication program and information processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014230227A JP6402598B2 (ja) | 2014-11-12 | 2014-11-12 | 情報処理装置、通信方法、通信プログラム、及び、情報処理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016095596A JP2016095596A (ja) | 2016-05-26 |
JP6402598B2 true JP6402598B2 (ja) | 2018-10-10 |
Family
ID=54365960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014230227A Active JP6402598B2 (ja) | 2014-11-12 | 2014-11-12 | 情報処理装置、通信方法、通信プログラム、及び、情報処理システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US9841919B2 (ja) |
EP (1) | EP3021210A1 (ja) |
JP (1) | JP6402598B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11995448B1 (en) * | 2018-02-08 | 2024-05-28 | Marvell Asia Pte Ltd | Method and apparatus for performing machine learning operations in parallel on machine learning hardware |
US10997510B1 (en) | 2018-05-22 | 2021-05-04 | Marvell Asia Pte, Ltd. | Architecture to support tanh and sigmoid operations for inference acceleration in machine learning |
US10929778B1 (en) | 2018-05-22 | 2021-02-23 | Marvell Asia Pte, Ltd. | Address interleaving for machine learning |
US10929779B1 (en) | 2018-05-22 | 2021-02-23 | Marvell Asia Pte, Ltd. | Architecture to support synchronization between core and inference engine for machine learning |
US11016801B1 (en) | 2018-05-22 | 2021-05-25 | Marvell Asia Pte, Ltd. | Architecture to support color scheme-based synchronization for machine learning |
CA3102644C (en) | 2018-06-07 | 2021-08-17 | Siemens Aktiengesellschaft | Core sealing assemblies, core-coil assemblies, and sealing methods |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3544565B2 (ja) * | 1994-07-20 | 2004-07-21 | 富士通株式会社 | データ転送方法とその装置 |
JP4079460B2 (ja) | 1995-07-24 | 2008-04-23 | 富士通株式会社 | パケット転送装置 |
WO2000045260A1 (fr) | 1999-01-29 | 2000-08-03 | Fujitsu Limited | Compilateur, procede de compilation et support de stockage sur lequel est stocke un programme pour la mise en oeuvre dudit procede |
US6438562B1 (en) * | 1999-08-24 | 2002-08-20 | Oracle Corporation | Parallel index maintenance |
JP2003271540A (ja) * | 2002-03-14 | 2003-09-26 | Ricoh Co Ltd | Dmaデータ転送装置 |
US20050010588A1 (en) * | 2003-07-08 | 2005-01-13 | Zalewski Stephen H. | Method and apparatus for determining replication schema against logical data disruptions |
JP2005084939A (ja) | 2003-09-09 | 2005-03-31 | Fujitsu Ltd | 並列処理正規化プログラムおよび並列処理プログラムの正規化方法 |
JP4117621B2 (ja) | 2004-03-31 | 2008-07-16 | 日本電気株式会社 | データ一括転送装置 |
US20050283658A1 (en) * | 2004-05-21 | 2005-12-22 | Clark Thomas K | Method, apparatus and program storage device for providing failover for high availability in an N-way shared-nothing cluster system |
JP4695367B2 (ja) * | 2004-08-31 | 2011-06-08 | 富士通株式会社 | 情報処理装置,制御装置及び情報処理装置の制御方法 |
US7475196B2 (en) * | 2006-03-23 | 2009-01-06 | International Business Machines Corporation | Processor, data processing system, and method for initializing a memory block in a data processing system having multiple coherency domains |
US7818560B2 (en) * | 2007-09-21 | 2010-10-19 | Intel Corporation | System information synchronization in a links-based multi-processor system |
US8285670B2 (en) * | 2008-07-22 | 2012-10-09 | International Business Machines Corporation | Dynamically maintaining coherency within live ranges of direct buffers |
US8671074B2 (en) * | 2010-04-12 | 2014-03-11 | Microsoft Corporation | Logical replication in clustered database system with adaptive cloning |
-
2014
- 2014-11-12 JP JP2014230227A patent/JP6402598B2/ja active Active
-
2015
- 2015-10-20 US US14/887,382 patent/US9841919B2/en active Active
- 2015-10-20 EP EP15190676.5A patent/EP3021210A1/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
US20160132272A1 (en) | 2016-05-12 |
EP3021210A1 (en) | 2016-05-18 |
US9841919B2 (en) | 2017-12-12 |
JP2016095596A (ja) | 2016-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6402598B2 (ja) | 情報処理装置、通信方法、通信プログラム、及び、情報処理システム | |
CN107145344B (zh) | 在基于图的程序中指定组件 | |
US7089511B2 (en) | Framework for hierarchical VLSI design | |
CN106663010B (zh) | 执行基于图的程序规范 | |
CN106687918B (zh) | 编译基于图的程序规范 | |
CN106687919B (zh) | 用于控制多个组件的执行的方法、***和计算机可读介质 | |
CN106605209B (zh) | 控制数据处理任务 | |
Azad et al. | Combinatorial BLAS 2.0: Scaling combinatorial algorithms on distributed-memory systems | |
JP2014525640A (ja) | 並列処理開発環境の拡張 | |
Sun et al. | Adaptive data placement for staging-based coupled scientific workflows | |
US11630986B2 (en) | Graph conversion method | |
Zhang et al. | In‐memory staging and data‐centric task placement for coupled scientific simulation workflows | |
Puri et al. | MPI-Vector-IO: Parallel I/O and partitioning for geospatial vector data | |
Gropp | Using node information to implement MPI Cartesian topologies | |
Sreepathi et al. | Communication characterization and optimization of applications using topology-aware task mapping on large supercomputers | |
Niethammer et al. | An MPI interface for application and hardware aware Cartesian topology optimization | |
Fresno et al. | Blending extensibility and performance in dense and sparse parallel data management | |
Rink et al. | Memory-efficient array redistribution through portable collective communication | |
Chavarría-Miranda et al. | Topology-aware tile mapping for clusters of SMPs | |
Zhang et al. | Enabling efficient and flexible coupling of parallel scientific applications | |
KR101812452B1 (ko) | 클라우드 서비스에서의 질의 처리 수행 방법 및 이를 이용하는 장치 | |
Hall et al. | Big data aware virtual machine placement in cloud data centers | |
Li et al. | 3-D partitioning for large-scale graph processing | |
Brock | Rdma-based distributed data structures for large-scale parallel systems | |
Shan et al. | Implementing high-performance geometric multigrid solver with naturally grained messages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170804 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180629 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180717 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180806 |
|
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: 20180814 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180827 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6402598 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |