Out-of-Core and Pipeline Techniques for Wavefront Algorithms
Résumé
Several numerical computation algorithms exhibit dependences that lead to a wavefront of the computation. Depending on the data distribution chosen, pipelining communication and computation can be the only way to avoid a sequential execution of the parallel code. The computation grain has to be wisely chosen to obtain at the same time a maximum parallelism and a small communication overhead. On the other hand, when the size of data exceeds the memory capacity of the target platform, data have to be stored on disk. The concept of out-of-core computation aims at minimizing the impact of the I/O needed to compute on such data. It has been applied successfully on several linear algebra applications. In this paper we apply out-of-core techniques to wavefront algorithms. The originality of our approach is to overlap computation, communication, and I/O. An original strategy is proposed using several memory blocks accessed in a cyclic way. The resulting pipeline algorithm achieves a saturation of the disk resource which is the bottleneck in out-of-core algorithms.