Research Article
Parallelizing dense and banded linear algebra libraries using SMPSs
Article first published online: 22 JUL 2009
DOI: 10.1002/cpe.1463
Copyright © 2009 John Wiley & Sons, Ltd.
Issue
1532-0634/asset/cover.gif?v=1&s=6094df24c795ce080ff6df6ff3b6bcec19adb708)
Concurrency and Computation: Practice and Experience
Volume 21, Issue 18, pages 2438–2456, 25 December 2009
Additional Information
How to Cite
Badia, R. M., Herrero, J. R., Labarta, J., Pérez, J. M., Quintana-Ortí, E. S. and Quintana-Ortí, G. (2009), Parallelizing dense and banded linear algebra libraries using SMPSs. Concurrency Computat.: Pract. Exper., 21: 2438–2456. doi: 10.1002/cpe.1463
Publication History
- Issue published online: 5 NOV 2009
- Article first published online: 22 JUL 2009
- Manuscript Accepted: 19 APR 2009
- Manuscript Revised: 15 APR 2009
- Manuscript Received: 30 OCT 2008
- Abstract
- Article
- References
- Cited By
Keywords:
- linear algebra libraries;
- programmability;
- high performance;
- dynamic scheduling;
- multi-core processors
Abstract
The promise of future many-core processors, with hundreds of threads running concurrently, has led the developers of linear algebra libraries to rethink their design in order to extract more parallelism, further exploit data locality, attain better load balance, and pay careful attention to the critical path of computation. In this paper we describe how existing serial libraries such as (C)LAPACK and FLAME can be easily parallelized using the SMPSs tools, consisting of a few OpenMP-like pragmas and a run-time system. In the LAPACK case, this usually requires the development of blocked algorithms for simple BLAS-level operations, which expose concurrency at a finer grain. For better performance, our experimental results indicate that column-major order, as employed by this library, needs to be abandoned in benefit of a block data layout. This will require a deeper rewrite of LAPACK or, alternatively, a dynamic conversion of the storage pattern at run-time. The parallelization of FLAME routines using SMPSs is simpler as this library includes blocked algorithms (or algorithms-by-blocks in the FLAME argot) for most operations and storage-by-blocks (or block data layout) is already in place. Copyright © 2009 John Wiley & Sons, Ltd.

1532-0634/asset/olbannerleft.gif?v=1&s=a4e4e145787de94e1d91eaab3c8c29d8a9d96a26)