Achieving numerical accuracy and high performance using recursive tile LU factorization with partial pivoting

TitleAchieving numerical accuracy and high performance using recursive tile LU factorization with partial pivoting
Publication TypeJournal Article
Year of Publication2014
AuthorsDongarra, J., M. Faverge, H. Ltaeif, and P. Luszczek
JournalConcurrency and Computation: Practice and Experience
Volume26
Issue7
Start Page1408
Pagination1408-1431
Date Published05-2014
Keywordsfactorization, parallel linear algebra, recursion, shared memory synchronization, threaded parallelism
Abstract

The LU factorization is an important numerical algorithm for solving systems of linear equations in science and engineering and is a characteristic of many dense linear algebra computations. For example, it has become the de facto numerical algorithm implemented within the LINPACK benchmark to rank the most powerful supercomputers in the world, collected by the TOP500 website. Multicore processors continue to present challenges to the development of fast and robust numerical software due to the increasing levels of hardware parallelism and widening gap between core and memory speeds. In this context, the difficulty in developing new algorithms for the scientific community resides in the combination of two goals: achieving high performance while maintaining the accuracy of the numerical algorithm. This paper proposes a new approach for computing the LU factorization in parallel on multicore architectures, which not only improves the overall performance but also sustains the numerical quality of the standard LU factorization algorithm with partial pivoting. While the update of the trailing submatrix is computationally intensive and highly parallel, the inherently problematic portion of the LU factorization is the panel factorization due to its memory-bound characteristic as well as the atomicity of selecting the appropriate pivots. Our approach uses a parallel fine-grained recursive formulation of the panel factorization step and implements the update of the trailing submatrix with the tile algorithm. Based on conflict-free partitioning of the data and lockless synchronization mechanisms, our implementation lets the overall computation flow naturally without contention. The dynamic runtime system called QUARK is then able to schedule tasks with heterogeneous granularities and to transparently introduce algorithmic lookahead. The performance results of our implementation are competitive compared to the currently available software packages and libraries. For example, it is up to 40% faster when compared to the equivalent Intel MKL routine and up to threefold faster than LAPACK with multithreaded Intel MKL BLAS.

URLhttp://doi.wiley.com/10.1002/cpe.3110
DOI10.1002/cpe.3110
Short TitleConcurrency Computat.: Pract. Exper.