PLASMA (Parallel Linear Algebra Software for Multicore Architectures) and MAGMA (Matrix Algebra on GPU and Multicore Architectures) are software libraries for numerical linear algebra, focusing mainly on dense matrices. The libraries offer functions for solving systems of linear equations with symmetric positive definite as well as general square matrices. Also included are linear least squares solvers, eigenvalue computations, and singular value decomposition.
The main purpose of PLASMA is to address the shortcomings of the widely used LAPACK when running on multicore processors, multi-socket systems of multicore processors, and manycore processors with shared memory. On the other hand, MAGMA aims at utilizing off-load oriented accelerators, especially GPUs. The libraries support both real and complex arithmetic in single and double floating-point precision.
The first day of the tutorial will focus on the PLASMA library. We will explain the concepts of tile data layout and tile algorithms, and the connection to task-based programming in the recent OpenMP standard. The basics of asynchronous execution driven by a directed acyclic graph (DAG) of computational tasks will be also explained.
The second day of the tutorial will be devoted to the MAGMA library, its functional scope as it differs from either LAPACK or PLASMA. Some basic concepts of GPU hardware, interaction, and execution will also be covered. This will provide information on conceptual and design differences between CPUs and GPUs and their memory storage hierarchy in the context of numerical linear algebra routines.
Purpose of the course (benefits for the attendees)
Participants will become familiar with PLASMA and MAGMA software libraries for numerical linear algebra. They will understand their design and concepts as well as practical usage of these libraries.
About the tutor(s)
Piotr Luszczek started his research in sparse direct and iterative methods for linear systems of equations with optimized computational kernels. Subsequently, he worked on out-of-core linear solvers, self-adaptation and autotuning software. He co-designed parallel programming languages in industrial and governmental lab positions. He publishes conferences and journal articles as well as books chapters and patents. The major themes of his research work are performance modeling and evaluation in the context of tuning of parallelizing compilers as well as energy-conscious aspects of heterogeneous and embedded computing. Throughout his professional career, Piotr Luszczek is the principal developer of established industry benchmarks: HPL, HPCC, and HPCG.
Jakub Šístek is a researcher at the School of Mathematics of the University of Manchester and at the Institute of Mathematics of the Czech Academy of Sciences. His research interests involve various aspects of mathematics for high performance scientific computing. In particular, scalable domain decomposition methods for solving algebraic systems in simulations by the finite element method, their parallel implementation, and applications to problems of structural mechanics and computational fluid dynamics. He is the main developer of the open-source BDDCML library for multilevel domain decomposition solvers and of the VALIB library for vortex identification. He has also contributed to the PLASMA software library for numerical linear algebra with dense matrices.
This work was supported by The Ministry of Education, Youth and Sports from the Large Infrastructures for Research, Experimental Development and Innovations project „IT4Innovations National Supercomputing Center – LM2015070“.