EN FR
EN FR


Section: New Software and Platforms

Scotch

Keywords: parallel graph partitioning, parallel static mapping, parallel sparse matrix block ordering, graph repartitioning, fixed vertices, mesh partitioning.

Functional Description

Scotch is a software package for parallel and sequential sparse matrix ordering, parallel and sequential graph partitioning, as well as sequential static mapping and remapping, without and with fixed vertices, and mesh and hypergraph partitioning.

The initial purpose of Scotch was to compute high-quality static mappings of valuated graphs representing parallel computations, onto target architectures of arbitrary topologies. Taking into account the topology and heterogeneity of the target architecture, in terms of processor speed and link bandwidth, allows Scotch to provide partitions that maximize communication locality.

This feature, which was meant for the NUMA machines of the 1980's, has not been widely used in the past because high performance computers in the 1990's were UMA architectures, thanks to hardware advances. As today's high-end architectures are NUMA again, the mapping feature is regaining popularity.

The Scotch package consists of two libraries: the sequential Scotch library, and the parallel PT-Scotch library (for “Parallel Threaded Scotch ”) that operates according to the distributed memory paradigm, using MPI. Scotch was the first full 64-bit implementation of a general purpose graph partitioner.

Version 6.0 , released on December 2012, corresponding to the 20th anniversary of Scotch , offers many new features: static mapping with fixed vertices, static remapping, and static remapping with fixed vertices. Several critical algorithms of the formerly strictly sequential Scotch library can now run in a multi-threaded way. All of these features, which exist only in the sequential version, will be ported to the parallel PT-Scotch library in the upcoming 6.1 major release.

A recent work on branch 6.0 enables Scotch to map onto (possibly disconnected) parts of a regular architecture, thanks to the new sub target architecture. This feature aims at allowing programs to distribute their data so as to maximize locality, according to the assignment of nodes performed by the batch scheduler, which do not always represent a regular, nor a connected, part of a parallel machine.

Scotch has been integrated into numerous third-party software, which indirectly contribute to its diffusion.