SuiteSparse is a suite of sparse matrix algorithms, including: UMFPACK(multifrontal LU factorization), CHOLMOD(supernodal Cholesky, with CUDA acceleration), SPQR(multifrontal QR) and many other packages.

Availability and Restrictions

OSC supports most packages in SuiteSparse, including UMFPACK, CHOLMOD, SPQR, KLU and BTF, Ordering Methods (AMD, CAMD, COLAMD, and CCOLAMD) and CSparse. SuiteSparse modules are available for the Intel, GNU, and Portland Group compilers. The following versions of SuiteSparse are available at OSC.

Version oakley
4.4.4 X
4.5.3 X*
* : Current Default Version

You can use module spider suitesparse  to view available modules for a given machine. Feel free to contact OSC Help if you need other versions for your work.


  • SuiteSparse library on our clusters is built without METIS, which might matter if CHOLMOD package is included in your program.


SuiteSparse is available without restriction to all OSC users.

Usage on Oakley

Set-up on Oakley

To use SuitSparse, loading the newest compilers is necessary. Here, for example, gnu/4.8.4 is loaded. module load gnu/4.8.4 Before load SuiteSparse library, MKL is required to be loaded.  module load mkl Now with the following command, SuiteSparse library is ready to be used. module load suitesparse  You can use module spider suitesparse to view available modules on Oakley.

Building With SuiteSparse

With the SuiteSparse library loaded, the following environment variables will be available for use:

Variable Use
$SUITESPARSE_CFLAGS Include flags for C or C++ programs.
$SUITESPARSE_LIBS Use when linking your program to SuiteSparse library.

For example, to build the code my_prog.c with the SuiteSparse library you would use:

icc -c my_prog.c
icc -o my_prog my_prog.o $SUITESPARSE_LIBS

Batch Usage on Oakley

When you log into you are actually logged into a linux box referred to as the login node. To gain access to the mutiple processors in the computing environment, you must submit your job to the batch system for execution. Batch jobs can request mutiple nodes/cores and compute time up to the limits of the OSC systems. Refer to Queues and Reservations and Batch Limit Rules for more info.  Batch jobs run on the compute nodes of the system and not on the login node. It is desirable for big problems since more resources can be used.

Non-interactive Batch Job (Serial Run)
A batch script can be created and submitted for a serial or parallel run. You can create the batch script using any text editor you like in a working directory on the system of your choice. You must load the SuiteSparse module in your batch script before executing a program which is built with the SuiteSparse library. Below is the example batch script that executes a program built with SuiteSparse:
#PBS -N MyProgJob
#PBS -l nodes=1:ppn=12
module load gnu/4.8.4
module load mkl
module load suitesparse
cp foo.dat $TMPDIR
my_prog < foo.dat > foo.out
cp foo.out $PBS_O_WORKDIR

Further Reading

See Also