Next: Up: Previous:

kに関する並列化を行なわない場合

figure289

     図5.6: 

我々のアルゴリズムではD(i,j)は図5.6に書くような形で定めて いる. すなわち, 各プロセッサに同じ数だけの(i,j)の組が割り当てられる. そして,

displaymath1582

とする. すなわち, tex2html_wrap_inline1082 を書き込むプロセッサと, tex2html_wrap_inline1092 を求める プロセッサを同一にする. これは,

displaymath1583

となることから非常に自然なやり方であり, こうすることで, 求まった tex2html_wrap_inline1092 の, tex2html_wrap_inline1082 への書き込みがローカルになることが保証される. 一方で tex2html_wrap_inline1092 を求めるために必要な, tex2html_wrap_inline1112tex2html_wrap_inline1114 の読み出しはほと んど全てリモートである. つまり, tex2html_wrap_inline1082 をおくプロセッサを決めたら, 後は, そのプロセッサが, tex2html_wrap_inline1082 を求めるのに必要な全てのデータ ( tex2html_wrap_inline1112tex2html_wrap_inline1114 )を自分の手元に取り寄せて計算する, というのがこの データ/タスク配置で現れる通信パターンになる. 逆に, 読み出しをローカル に行なうということも考えられるが, このデータ配置のもとでは,ある tex2html_wrap_inline1092 を求めるのに, tex2html_wrap_inline1112tex2html_wrap_inline1114 の両方の読み出しが常にロー カルになることを保証することはできない. 読み出しをローカルにする, した がって書き込みをリモートに行なうデータ配置は, PAX [5] において行なわれており, 5.6.8節で比較 する.

なお, D(i,j)に関して, 各プロセッサに同じ数だけの(i,j)の組を割り当 てるだけであれば, 何も図5.6のようにする必要はない. 図5.6 のようにcyclicに, しかも三角形の頂点から底辺に向かって cyclicに割り当てるのは, 頂点に近い部分は, j - iの値が大きく, したがっ て処理の量(割り当てられたC(i, k, j)の数)が多い)ため, それらの間で C(i,k,j)が等しくなるのを避けるためである.



Mitsubishi Research Institute,Inc.
Thu Feb 27 10:02:38 JST 1997