PLASMA is a linear algebra library for high-performance computers. The library includes Fortran 77 and C
subroutines for the analysis and solution of systems of simultaneous linear
algebraic equations, linear least-squares problems, and matrix eigenvalue problems.
The Parallel Linear Algebra for Scalable Multi-core Architectures (PLASMA) project aims to address the critical and highly disruptive situation that is facing the Linear Algebra and High Performance Computing community due to the introduction of multi-core architectures.
PLASMA’s ultimate goal is to create software frameworks that enable programmers to simplify the process of developing applications that can achieve both high performance and portability across a range of new architectures.
The development of programming models that enforce asynchronous, out of order scheduling of operations is the concept used as the basis for the definition of a scalable yet highly efficient software framework for Computational Linear Algebra applications.
This guide describes how to install, test, and time this release of PLASMA on a Linux, Unix and Mac OS/X System.
In order to install the PLASMA library, you require a C compiler, a Fortran Compiler, a
BLAS library and the availability of the pthread library. Before PLASMA can be built, or
the tested, you must define all machine-specific parameters for the architecture to which
you are installing PLASMA. All machine-specific parameters are contained in the file
make.inc. We provide you an installer to ease the installation process. Users are strongly
encouraged to use it.
The PLASMA installer is a set of python scripts developed to ease the installation of the
PLASMA library. It can automatically download, configure and compile the PLASMA
library including its BLAS dependency.
It is available on PLASMA download page:
http://icl.cs.utk.edu/plasma/software/
Here’s a list of the flags that can be used to provide the installer information about the
system like, for example, the C and Fortran compilers, the BLAS library that is already
present on the system and need not be downloaded.
-h or --help : prints this message
--prefix : path where to create the libraries, build and log of the installer
--cc=[CMD] : the C compiler.
--fc=[CMD] : the Fortran compiler.
--ccflags=[FLAGS] : the flags for the C compiler
(default -O3)
--fcflags=[FLAGS] : the flags for the Fortran compiler
(default -O3)
--ldflags_c=[flags] : loader flags when main program is in C. Some compilers (e.g. PGI) require
different options when linking C main programs to Fortran subroutines
and vice-versa
--ldflags_fc=[flags]: loader flags when main program is in Fortran. Some compilers (e.g. PGI) require
different options when linking Fortran main programs to C subroutines
and vice-versa
--makecmd=[CMD] : the make command
(make by default)
--blaslib=[LIB] : a BLAS library
(path should be absolute if --prefix is used)
--downblas : if you do not want to provide a BLAS
we can download and install it for you
--nbcores : The number of cores to be used by the testing.
(2 by default)
--notesting : disables the PLASMA testing. The BLAS library is not
required in this case.
--clean : cleans up the installer directory.
OMP_NUM_THREADS=1
GOTO_NUM_THREADS=1
MKL_NUM_THREADS=1
to disable the multithreading within BLAS. Do not forget to set those environment variables
for any further PLASMA testing you want to run
For an installation with gcc, gfortran and Reference BLAS
./setup.py --cc gcc --fc gfortran --downblas
For an installation with ifort, icc and MKL (em64t architecture)
./setup.py --cc icc --fc ifort --blaslib="-lmkl_em64t -lguide"
For an installation with gcc, gfortran and Veclib (Mac OS/X)
./setup.py --cc gcc --fc gfortran --blaslib="-framework veclib"
For an installation with gcc, gfortran, ATLAS
./setup.py --cc gcc --fc gfortran --blaslib="-lf77blas -lcblas -latlas"
For an installation with gcc, gfortran, goto BLAS and 4 cores
./setup.py --cc gcc --fc gfortran --blaslib="-lgoto" --nbcores=4
For an installation with xlc, xlf, essl and 8 cores
./setup.py --cc xlc --fc xlf --blaslib="-lessl" --nbcores=8
Please note that this is an alpha version and, even if it has been tested on a wide set of
systems, may not work. In case you encounter a problem, your feedback would be greatly
appreciated and would be very useful to improve the quality of this installer. Please submit
your complaints and suggestions to the PLASMA forum:
http://icl.cs.utk.edu/plasma/forum/
6.1. Testings are slow
Please note that, in the case where the installer is asked to automatically download and
install the BLAS library, the reference BLAS is installed and, thus, very low performance is
to be expected. It is strongly recommended that you use an highly optimized BLAS library
(like ATLAS, MKL, GotoBLAS, ESSL etc.) and provide a path to its location through the
–blaslib flag.
6.2. For Mac
Veclib is accessible if you install the Xcode/developer package provides with your Mac OS
installation CD. On MAC OS/C you may be required to add
--ccflags=’ -I/usr/include/sys/’
6.3. Processors with Hyper-threading
The plasma installer cannot detect if you have hyper-threading or not on your machine.
We advice always to limit the number of core for the first testing of the PLASMA library
to half the numbers of cores available if you do not know your exact architecture. Using
hyper-threading will cause the PLASMA testings to hangs.
6.4. Problem with download
If the required packages cannot be automatically downloaded (for example, because no
network connection is available on the system), you can take them any way you like
from the following URLs and place them in the build directory (if the directory does not exist, create
it):