Numerical & Mathematical Software
Contents:
MATLAB
ESSL : Engineering and Scientific Subroutine Library
PESSL : Parallel Engineering and Scientific Subroutine Library
ScaLAPACK
MASS : Mathematical Acceleration SubSystem
OSL : Optimization Solutions and Library
WSMP : Watson Sparse Matrix Package
PETSc : Portable, Extensible Toolkit for Scientific Computation
MATLAB
MATLAB integrates mathematical computing, visualization, and a
powerful language to provide a complete environment for technical
computing.
Type "matlab" to start and get help.
If MATLAB is slow in start-up (especially for non-local users
of the machine), try starting it in either
of the following ways:
% matlab -nosplash -nodesktop
% matlab -nosplash -nojvm
MATLAB is a well-known and popular package. However, it is sequential
software and therefore we discourage the use of long MATLAB computations
on a multi-processor machine like the p690 Regatta. Short runs for code
development (e.g. verify numerical behaviour of large parallel codes)
are OK.
Current installation: MATLAB version 6.1
Documentation:
MATLAB 6.x home page
ESSL
The Engineering and Scientific Subroutine Library ESSL provides a
collection of mathematical subroutines optimized for the Power4
architecture.
ESSL contains the de-facto standard libraries for dense matrix
linear algebra operations, i.e.,
- BLAS (Levels 1, 2, 3)
- LAPACK (subset only, see note below)
- Fast Fourier Transforms (FFT)
- Convolutions and Correlations
- Sorting and Searching
- Interpolation
- Numerical Quadrature
- Random Number Generation
The use of subroutines from the ESSL library in the kernel of
a user-developed program leads in almost all cases to significant
improvements in the performance of the program. The BLAS and
LAPACK libraries enable a user-program to reach performance levels
that approach the theoretical peak performance of the Power4
processor. The use of these libraries is therefore
strongly recommended.
The ESSL library is callable from Fortran, C, C++, and PL/I programs.
Note: for codes that depend on LAPACK subroutines that are not included
in the ESSL library, the user should link with
-L/usr/local/lib -llapack
Note: the FFT subroutines that are provided by ESSL give
a high degree of performance but they do not have standard calling
sequences. This may limit the portability of your code. In case
cross-platform portability of your program is important, consider
using the freely available
FFTW package.
Current installation: ESSL Version 3 Release 3
Documentation:
ESSL Products General Information (GC23-0529-08)
|
HTML
|
PDF (270K) |
ESSL Guide and Reference (SA22-7272-04)
|
HTML
|
PDF (5720K) |
Examples of use:
If you use ESSL in a Fortran program
x.f and want to compile
and link in one step, you can use :
| Library
| Command
|
| SMP
|
xlf_r -O -qnosave x.f -lesslsmp
|
| Serial
|
xlf_r -O -qnosave x.f -lessl
|
| Serial
|
xlf -O x.f -lessl
|
If you compile and link your Fortran program in separate steps, you
can use :
| Library
| Command
|
| SMP
|
xlf_r -O -c -qnosave x.f
xlf_r x.o -lesslsmp
|
| Serial
|
xlf_r -O -c -qnosave x.f
xlf_r x.o -lessl
|
| Serial
|
xlf -O -c x.f
xlf x.o -lessl
|
PESSL (Parallel ESSL)
Parallel ESSL provides parallel versions of the subroutines in ESSL.
PESSL is a scalable mathematical subroutine library that supports parallel processing
applications.
PESSL supports the Single Program Multiple Data (SPMD) programming model using either
the Message Passing Interface (MPI) signal handling library or the MPI threaded
library. Parallel ESSL provides subroutines in
Level 2 Parallel BLAS (PBLAS),
Level 3 PBLAS,
Linear Algebraic Equations,
Eigensystem Analysis and Singular Value Analysis,
Fourier Transforms, and
Random Number Generation.
PESSL includes (subsets of) the BLACS and ScaLAPACK.
The PESSL library is callable from Fortran, C, C++, and PL/I programs.
Current installation: PESSL Version 2 Release 3
Documentation:
Parallel ESSL Guide and Reference (SA22-7273-04)
|
HTML
|
PDF (3965K) |
Examples of use:
If you use PESSL in a Fortran program
x.f,
you can compile and link as follows:
| Library
| Command
|
| SMP
|
mpxlf_r -O x.f -lesslsmp -lpesslsmp -lblacssmp
|
| Serial
|
mpxlf -O x.f -lessl -lpessl -lblacs
|
If you compile and link your Fortran program in separate steps, you
can use:
| Library
| Command
|
| SMP
|
mpxlf_r -O -c x.f
mpxlf_r x.o -lesslsmp -lpesslsmp -lblacssmp
|
| Serial
|
mpxlf -O -c x.f
mpxlf x.o -lessl -lpessl -lblacs
|
PESSL supports the XL Fortran compiler option
-qextname.
For details, see the Fortran manuals (or type '
man xlf').
ScaLAPACK
ScaLAPACK extends the LAPACK library to run scalably on MIMD,
distributed memory, concurrent computers. The ScaLAPACK routines are based
on block-partitioned algorithms in order to minimize the frequency of data
movement between different levels of the memory hierarchy. The fundamental
building blocks of the ScaLAPACK library are distributed memory versions
(PBLAS) of the Level 1, 2 and 3 BLAS, and a set of Basic Linear Algebra
Communication subprograms (BLACS) for communication tasks that arise
frequently in parallel linear algebra computations.
Current installation:
A subset of ScaLAPACK is contained in PESSL.
Documentation:
The ScaLAPACK Project
MASS
The Mathematical Acceleration SubSystem (MASS) library is another approach to increase the
performance of a code. It provides high performance versions of a subset of mathematical intrinsic functions.
To do this, it sacrifices a small amount of accuracy. Compared to the standard mathematical library,
libm.a, the MASS library can only differ in the last bit. This is not significant in most programs. The
libmass.a library can be used with either Fortran or C applications and runs under AIX.
As all functions in the MASS library use the same syntax as the standard
functions it replaces, you do not have to make any changes in the source code to use it.
MASS also offers a vector version for some of the functions. The vector functions are more efficient than
the scaler ones, but require that the source code is rewritten. There are two versions of the vector
MASS library. The first library, libmassv.a, contains vector function subroutines that run on the
entire IBM RS/6000 family. The second library, libmassvp4.a, contains the subroutines of libmassv.a
and adds a set that is tuned for and based upon the Power4 architecture.
Current Installation: Version 3.0
Documentation:
|
HTML|
Example of use:
To use the standard MASS library, link your program with
-lmass. For example,
% xlf90 -O3 -qarch=auto -qtune=auto x.f -lmass
% cc -O3 -qarch=auto -qtune=auto x.c -lmass -lm
This assumes that the MASS library is in a directory included in your library search
path (that is, the linker finds the library automatically).
If this is not the case, you have to give the location of the library with the
-L linker option. As
-lmass replaces some of the functions in
-lm, you must
always link it before you link with
-lm.
xlf90 and its variants link automatically with
-lm.
OSL
Current Installation: Not installed
Documentation:
|
HTML|
WSMP
Current Installation: Not installed
Documentation:
|
HTML|
PETSc
Current Installation: Version 2.1.6 (July 28, 2003)
PETSc (Portable, Extensible Toolkit for Scientific Computation) is a
suite of data structures and routines for the scalable (parallel)
solution of scientific applications modeled by partial differential
equations. It employs the MPI standard for all message-passing
communication.
To use PETSc on tre.ii.uib.no:
setenv PETSC_DIR=/usr/local/petsc
setent PETSC_ARCH=rs6000_64
To use PETSc on fire.ii.uib.no:
setenv PETSC_DIR=/localnet/petsc
setent PETSC_ARCH=linux_gnu
For further information about PETSc, please read
http://www-unix.mcs.anl.gov/petsc/petsc-2/