SCOTCH

A Scientific Computing Library for Graph Partitioning and Mapping

Introduction

SCOTCH is a powerful tool for partitioning graphs and meshes with numerous applications in multiple different fields. The package contains algorithms for graph and mesh partitioning in sequential or parallel modes, hypergraph partitioning and ordering the blocks of block sparse matrices among others.

Using SCOTCH on RCC Resources

There are a large number of programs contained within the SCOTCH package, each with a different job. Documentation regarding these individual programs can be found here. In order to run the SCOTCH programs on RCC systems, there are two options.

Running SCOTCH in Serial

Using the serial version of the SCOTCH programs does not require any modules to be loaded. Simply run the program your job needs. However, please note that on RCC systems, all of the SCOTCH programs are prefixed with scotch_ and thus should be called in the following form:

# General Form
scotch_PROGRAMNAME FILES

# Example
scotch_gmap INFILE.grf INFILE.tgt OUTPUT.map

Running SCOTCH in Parallel

To run the Parallel version of the SCOTCH programs, simply load one of the available MPI modules and then call the programs as described above. SCOTCH works with GNU, Intel and PGI OpenMPI as well as MVAPICH2.  For example:

module load gnu-openmpi

# General Form
scotch_PROGRAMNAME FILES

# Example
scotch_gmap INFILE.grf INFILE.tgt OUTPUT.map

Extensive information on the constitutent programs can be found in the documentation.

Using the SCOTCH API

SCOTCH also comes with a powerful library which can be used to develop programs which use routines from the SCOTCH package. In order to compile a program using this, simply link to the appropriate version of the SCOTCH libraries. For example:

gfortran TEST_SCOTCH.f -o EXECUTABLE -I /opt/hpc/gnu/include -L /opt/hpc/gnu/lib64/libscotch.so

Additional information on the SCOTCH API can be found at the documentation.