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.