Leveraging Task-Parallelism with OmpSs in ILUPACK's Preconditioned CG Method
José I. Aliaga, Rosa M. Badia, M. Barreda, Matthias Bollhöfer, Enrique S. Quintana–Ort́ı · 2014
In this paper we describe how to efficiently exploit task parallelism for the solution of sparse linear systems on multithreaded processors via ILUPACK's multi-level preconditioned CG method. Using a pair of data structures, we capture the task dependencies that appear in the two most challenging operations in the method (calculation of the preconditioned and its application), passing this information to the OmpSs runtime which can then implement a correct and efficient schedule of the entire solver. Our results with high-end multicore platforms equipped with Intel and AMD processors report significant performance gains, demonstrating that OmpSs provides an efficient and close-to seamless means to leverage the concurrency in a complex scientific code like ILUPACK.