All Classes Namespaces Files Functions Variables Typedefs Pages


Configuration of PEXSI is controlled by a single file. Examples of the file are given under the config/ directory.

Find with the most similar architecture, and copy to the main PEXSI directory (using Edison for example, the latest Intel computer at NERSC, a CRAY X30 machine). ${PEXSI_DIR} stands for the main directory of PEXSI.

cp config/

Edit the variables in

PEXSI_DIR     = Main directory for PEXSI
DSUPERLU_DIR  = Main directory for SuperLU_DIST
PARMETIS_DIR  = Main directory for ParMETIS 
PTSCOTCH_DIR  = Main directory for PT-Scotch

Edit the compiler options, for instance

CC           = cc
CXX          = CC
FC           = ftn
LOADER       = CC

Build the PEXSI library

If is configured correctly,

cd src

should produce libpexsi_(suffix).a under src/.

Build examples

After libpexsi_(suffix).a is built, all driver routines are readily to be compiled. For example, the selected inversion for a complex matrix has the test routine

cd examples
make driver_pselinv_complex

should produce driver_pselinv_complex_(suffix), which can be executed with MPI.

For more information on the examples, see Tutorial.


After driver_pselinv_complex is compiled,

examples$ mpirun -n 1 ./driver_pselinv_complex_(suffix)

should return the diagonal of the matrix

\[ (A + i I)^{-1} \]

saved on the 0-th processor, where \(A\) is the five-point discretization of a Laplacian operator on a 2D domain. The result can be compared with examples/driver_pselinv_complex.out to check the correctness of the result.