域分解
域分解(Domain Decomposition)也叫数据划分,划分的对象是数据。这些数据可以是算法(或程序)的输入数据、计算的中间结果或计算的输出数据。
域分解的步骤是:首先分解与问题相关的数据,如果可能的话,应使每份数据的数据量大体相等;然后再将每个计算关联到它所操作的数据上。由此就产生出一些任务,每个任务包括一些数据及其上的操作。当一个操作需要别的任务中的数据时,就会产生通信要求。
域分解的经验方法是:优先集中在最大数据的划分和经常被访问的数据结构上。在不同的阶段,可能要对不同的数据结构进行操作或需要对同一数据结构进行不同的分解。在此情况下,要分别对待,然后再将各阶段设计的分解与算法装配到一起。
下图是一个三维网格的域分解方法。各结点上的计算都是重复进行的。实际上,分解沿X、Y、Z维及它们的任意组合都可以进行。开始时,应进行三维划分,因为该方法能提供最大灵活性。
图中的阴影部分表示一个任务
|