Configuration of PEXSI is controlled by a single make.inc
file. Examples of the make.inc
file are given under the config/
directory.
Find make.inc
with the most similar architecture, and copy to the main PEXSI directory (using Edison for example, the latest Intel computer at NERSC). ${PEXSI_DIR}
stands for the main directory of PEXSI.
cd ${PEXSI_DIR} cp config/make.inc.edison.intel make.inc
Edit the variables in make.inc.
PEXSI_DIR = Main directory for PEXSI DSUPERLU_DIR = Main directory for SuperLU_DIST METIS_DIR = Main directory for METIS PARMETIS_DIR = Main directory for ParMETIS PTSCOTCH_DIR = Main directory for PT-Scotch
debug
or release
mode in by the variable COMPILE_MODE
in make.inc
. This variable mainly controls the compiling flag -DRELEASE
. The debug
mode introduces tracing of call stacks at all levels of functions, and may significantly slow down the code. For production runs, use release
mode.*.profile
configuration files are for debugging purpose and can be ignored.If make.inc is configured correctly,
cd ${PEXSI_DIR} cd src make
should produce libpexsi_(suffix).a
under src/
.
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 ${PEXSI_DIR} cd examples make driver_pselinv_complex
should produce driver_pselinv_complex
, 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
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.