流体力学の解析計算に ABCL/f のような並列オブジェクト指向言語を用いる場合, 図5.5に示すように,
図5.5: 1つの並列オブジェクトが1つのセルに対応1つのセルを1つのオブジェクトとして定義する手法が 最も単純なものと考えられる. 各セル(並列オブジェクト)に対して, 圧力・密度等の物理量を計算するメソッドを起動する. それぞれのメソッドでは, いくつかの値を隣接するセルのオブジェクトから得る必要がある. そのようなものついては, 必要になった時点で 値を得ることとなる. 図5.6に Newton-Raphson法による収束計算の1回分を示す.
図5.6: 並列オブジェクトのPEへの割付と計算図5.6に示すように ある連続する3つの並列オブジェクト(=セル)がそれぞれ PEのl番目, m番目, n番目に割り付けられているとする. 収束計算のためのループ内では, 以下の順に値を計算する.
さて, 1つのセルを1つのオブジェクトとして定義した場合に, ある1つのセル(=1つの並列オブジェクト)において, 隣接するセル(他の並列オブジェクト)から計算のために 必要な値を得るための通信処理時間が 全処理時間の多くを占めてしまう場合がある. つまり, 各セルにおいて実行される計算が比較的単純である場合, 計算処理にかかる時間はわずかであり, それと同等かそれ以上の通信処理時間を費やして 隣接セルから必要な値を通信により得るのである.
そこで, 計算処理時間が通信処理時間よりも十分に大きくする方法として, 図5.7 に示すような, 複数のセルを1つのオブジェクトとして定義することが考えられる. この場合には, 複数のセルを1つの並列オブジェクトとして定義し, 物理量ごとに配列(ベクトル)を用いる. 通常, FORTRAN などで用いられる方法と同様である. 図5.8に Newton-Raphson法による収束計算の1回分を示す.
図5.7: 1つの並列オブジェクトが複数のセルに対応
図5.8: 並列オブジェクトのPEへの割付と計算複数のセルを1つのオブジェクトとした場合にも, 両端のセルについて計算する時には, その隣接するセルの値が必要となるので, 他のオブジェクトから必要な値を得なければならない. そのために1つのオブジェクトが必要な通信処理時間は, 1つのセルを1つのオブジェクトとした場合と同等であり, 計算処理時間は, 複数セルにした分だけ比例して増える. したがって, 1つのオブジェクトに多くのセルを定義すれば, 相対的に通信処理時間は小さくなる.
また, 並列オブジェクトの参照において, その並列オブジェクトが同一PEに存在していた場合には PE間の通信処理は必要なくなる. しかし, 配列に対する参照に比べると他のオブジェクトに対する参照の方が 多くの処理を必要とする. したがって, たとえ1つのPE で実行する場合においても N個のセルをN個の並列オブジェクトで表現するより N個のセルを配列で表現する方がよい.