Bergen Center for Computational Science
Organization Map BCCS BCPL CBU CMU Parallab
 

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/


This page is maintained by webmaster@bccs.uib.no. Last updated: Thursday 05 October, 2006
Unifob logo    UiB logo