From Documentation
Jump to: navigation, search
Note: This page hasn't been updated for a long time, and is most likely outdated.
If you need it to be updated, please submit a ticket to help@sharcnet.ca with the link to the page.
SUPERLU
Description: Library for direct solution of large, sparse, nonsymmetric linear equation systems.
SHARCNET Package information: see SUPERLU software page in web portal
Full list of SHARCNET supported software


Introduction

Sharcnet provides serial and distributed modules built using the intel compiler, mkl and openmpi.

Version Selection

o To load the serial version:

module load superlu/serial/4.3

o To load the mpi version:

module load superlu/dist/3.3

o To see all currently available versions and flavors:

[roberpj@orc-login2:~] module avail superlu
----------- /opt/sharcnet/modules -------------
superlu/dist/3.3   superlu/serial/4.3

Job Submission

o To submit a job to the cluster, use standard sqsub commands such as:

sqsub -r 1h -q serial -o ofile.%J -i [args] ./a.out 
sqsub -r 1h -q mpi -n 4 -o ofile.%J -i [args] ./a.out

Example Job

Serial

1) Submit superlu 5x5 example [without input arguments] to the serial queue as described in /opt/sharcnet/superlu/4.3/serial/example/README:

module load superlu/serial/4.3
cp /opt/sharcnet/superlu/4.3/serial/example/{superlu.c,sp_ienv.c} .
icc -c $CPPFLAGS superlu.c sp_ienv.c
icc superlu.o sp_ienv.o $LDFLAGS -lsuperlu_4.3 -lmkl_intel_lp64 -lmkl_core -lmkl_sequential
sqsub -r 1h -q serial -o ofile.%J ./a.out

2a) Submit real version example [with input arguments] to the serial queue (using simple driver DGSSV to solve a linear system one time) as described in /opt/sharcnet/superlu/4.3/serial/example/README:

module load superlu/serial/4.3
cp /opt/sharcnet/superlu/4.3/serial/example/{dlinsol.c,g20.rua} .
icc -c $CPPFLAGS dlinsol.c
icc dlinsol.o $LDFLAGS -lsuperlu_4.3 -lmkl_intel_lp64 -lmkl_core -lmkl_sequential
sqsub -r 1h -q serial -o ofile.%J -i g20.rua ./a.out

2b) Submit complex version example [with input arguments] to serial queue (using simple driver DGSSV in the symmetric mode) as described in /opt/sharcnet/superlu/4.3/serial/example/README:

module load superlu/serial/4.3
cp /opt/sharcnet/superlu/4.3/serial/example/{zlinsol1.c,cg20.cua} .
icc -c $CPPFLAGS zlinsol1.c
icc zlinsol1.o $LDFLAGS -lsuperlu_4.3 -lmkl_intel_lp64 -lmkl_core -lmkl_sequential
sqsub -r 1h -q serial -o ofile.%J -i cg20.cua ./a.out

Distributed

3) Submission real version example [with input arguments] to the mpi queue (using PDGSSVX with full default options to solve a linear system) as described in /opt/sharcnet/superlu/3.3/dist/example/README:

module load superlu/dist/3.3
cp /opt/sharcnet/superlu/3.3/dist/example/{pddrive.c,dcreate_matrix.c,sp_ienv.c,big.rua} .
mpicc $CPPFLAGS -c pddrive.c dcreate_matrix.c sp_ienv.c
mpif90 -nofor-main pddrive.o dcreate_matrix.o sp_ienv.o $LDFLAGS -lsuperlu_dist_3.3
    -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -lparmetis -lmetis
sqsub -r 1h -q mpi -n 8 -o ofile.%J  ./a.out -r 2 -c 4 big.rua

References

SuperLU Homepage
o http://crd-legacy.lbl.gov/~xiaoye/SuperLU/