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
Versions
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 | Owens |
---|---|
4.5.3 | X* |
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.
NOTE: SuiteSparse library on our clusters is built without METIS, which might matter if CHOLMOD package is included in your program.
Access
SuiteSparse is available to all OSC users. If you have any questions, please contact OSC Help.
Publisher/Vendor/Repository and License Type
Timothy A. Davis, Patrick R. Amestoy, and Iain S. Duff./ Open source
Usage
Usage on Owens
Set-up on Owens
To use SuitSparse, ensure the correct compiler is loaded. User module spider suitesparse/version
to view compatible compilers. Before loading the SuiteSparse library, MKL is also required. Load the MKL library with module load mkl
. Then with the following command, SuiteSparse library is ready to be used: module load suitesparse
.
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 Owens
When you log into oakley.osc.edu 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:#!/bin/bash #SBATCH --job-name MyProgJob #SBATCH --nodes=1 --ntasks-per-node=28 #SBATCH --account <project-account> module load gnu/4.8.4 module load mkl module load suitesparse cp foo.dat $TMPDIR cd $TMPDIR my_prog < foo.dat > foo.out cp foo.out $SLURM_SUBMIT_DIR