Computer 04

LINPACK on Future Manycore & GPU Based Systems

Sunday, May 30, 2010, 1:30pm – 6:00pm
Hamburg University, Main Building, Room M


  • Prof. Dr. Jack Dongarra, University Distinguished Professor of Computer Science, University of Tennessee & Oak Ridge National Laboratory, USA
  • Dr. Jakub Kurzak, Research Scientist, University of Tennessee, USA

We will provide a brief historical look at the development of dense linear algebra libraries, from LINPACK, to LAPACK, to ScaLAPACK. These packages served the community well for many years. Today we see new computer architectures emerging, which will cause another change to the software landscape, namely many core and accelerators. These changes will necessitate changes again to the linear algebra libraries. We have been developing two packages, PLASMA and MAGMA, for just these architectures.

PLASMA (Parallel Linear Algebra Software for Multicore Architectures) is a software library for solving dense systems of linear equations and linear least squares problems, designed to achieve high efficiency on homogeneous multicore processors and multi-socket systems of multicore processors.

Currently, PLASMA significantly outperforms vendor libraries, such as MKL, ACML or ESSL, and drastically outperforms its academic predecessors such as LAPACK and ScaLAPACK on top-of-the-line server-size multicore systems. Currently, however, it only provides a small subset of the functionality of LAPACK and ScaLAPACK and unlike ScaLAPACK, it does not support distributed memory systems.

This tutorial will attempt to present PLASMA from the perspective of an average user, from the perspective of a potential community contributor of numerical routines and from the perspective of the designers of PLASMA environment and runtime mechanisms. Similarities and differences between PLASMA and legacy software will be covered, as well as issues related to interactions between PLASMA, user code and other libraries. Future directions will be outlined, including support for GPUs and distributed memory systems.

Level of Tutorial
Introductory: 30%
Intermediate: 50%
Advanced: 20%

People will benefit from this tutorial that have a basic understanding of numerical computing and programming principles i.e. some familiarity with fundamentals of parallel programming. A genuine interest in dense linear algebra (Gaussian elimination) and numerical libraries in general would be an advantage. Because PLASMA is mostly written in C, supporting both FORTRAN and C interfaces, the main part of the examples is programmed in C. So the attendees should have a basic understanding of the C language as a prerequisite.