ALIs
kommt nochARPACK - Arnoldi Package for sparse Eigenvalue Problems
Installations and Usage on LRZ HPC platforms
Introductory Remarks
ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.
The package is designed to compute a few eigenvalues and corresponding eigenvectors of a general n by n matrix A. It is most appropriate for large sparse or structured matrices A where structured means that a matrix-vector product w <- Av requires order n rather than the usual order n2 floating point operations. This software is based upon an algorithmic variant of the Arnoldi process called the Implicitly Restarted Arnoldi Method (IRAM). When the matrix A is symmetric it reduces to a variant of the Lanczos process called the Implicitly Restarted Lanczos Method (IRLM). These variants may be viewed as a synthesis of the Arnoldi/Lanczos process with the Implicitly Shifted QR technique that is suitable for large scale problems. For many standard problems, a matrix factorization is not required. Only the action of the matrix on a vector is needed.
ARPACK software is capable of solving large scale symmetric, nonsymmetric, and generalized eigenproblems from significant application areas. The software is designed to compute a few (k) eigenvalues with user specified features such as those of largest real part or largest magnitude. Storage requirements are on the order of n*k locations. No auxiliary storage is required. A set of Schur basis vectors for the desired k-dimensional eigen-space is computed which is numerically orthogonal to working precision. Numerically accurate eigenvectors are available on request.
Installations and Usage of ARPACK
On both Itanium and x86_64 based systems, sequential as well as parallel versions of ARPACK (the latter called PARPACK) are available. Parallel functionality is based either on calls to BLACS routines or on a pure MPI setup. The following module stacks are supported:
-
BLACS-based version on all HPC systems
module load mkl module load blacs module load arpackafter which you link your application with
mpif90 -o myprog.exe <objects> $ARPACK_BLACS_LIB $BLACS_LIB $MKL_LIB -
MPI-based version on all HPC systems
module load mkl module load arpackafter which you link your application with
mpif90 -o myprog.exe <objects> $ARPACK_MPI_LIB $MKL_LIB
Notes:
-
The environment variable $ARPACK_LIB is also provided for linking purely serial (i.e., non-MPI) applications. In this case, the BLACS/SCALAPACK components can be omitted, and the mpif90 wrapper can be replaced by a call to ifort.
-
All module stacks require the fortran module and an MPI environment to be loaded (one of these is usually contained in the default list of modules, depending on which system you logged in to). The MKL module is for the most part only required if your matrix-vector multiplication implementation (or another part of your program) contains BLAS/LAPACK calls.
-
By default, MKL may also run multi-threaded. You can set MKL_SERIAL=yes or load a sequential mkl module to enforce single-threaded operation.
-
Programs using the BLACS module stack may very well be incompatible with those using pure MPI functionality (test runs using the BLACS library with a pure MPI setup crashed), hence both variants are provided.
-
The installed version of ARPACK/PARPACK is 2.1 or arpack-96, with an additional patch file for both the serial and parallel versions. A further bug fix for the parallel versions is included.
Documentation
-
Home page for ARPACK on the Web
-
User's Guide to ARPACK
The ARPACK and PARPACK source packages, downloadable from the location given above, also contains some example programs (for both the serial and parallel cases).