On many parallel computers, the cost of an integral will be comparable to the cost of a communication. Hence, communication requirements must be reduced by agglomeration. We describe two alternative strategies that can be used to achieve this goal. In each case, the five tasks are shown with shading used to represent the portion of the symmetric D and F matrices allocated to each task. Communication costs can be cut dramatically by replicating the F and D matrices in each of P tasks, one per processor of a parallel computer.
Computation can then proceed in each task without any communication.
The only coordination required is a final summation to accumulate partial F matrices. This can be achieved using a parallel vector reduction algorithm described in Section 11.2 . The technique of replicating data structures on each processor of a parallel computer is commonly used in parallel computing to reduce software engineering costs. It allows an existing sequential code to be adapted quickly for parallel execution, since there is no need to modify data structures. The principal disadvantage of the technique is that it is nonscalable.