The initial purpose of Scotch was to provide an efficient software environment for partitioning and mapping statically applications modeled as valuated process graphs of arbitrary topologies. The original contribution consisted in developing a ``divide and conquer '' algorithm in which processes are recursively mapped onto processors by using graph bisection algorithms that are applied both to the process graph and to the architecture graph. This allows the mapper to take into account the topology and hetorogeneity of the valuated graph which models the interconnection network and its resources (processor speed, link bandwidth). This technique allowed to compute high quality mappings with low complexity.
The software has then be extended in order to produce vertex separators instead of edge separators, using a multi-level framework. Recursive vertex separation is used to compute reorderings of the unknowns of large sparse linear systems, which both preserve sparsity when factoring the matrix and preserve concurrency for computing and solving the factored matrix in parallel. The original contribution has been to study and implement a tight coupling between the nested dissection and the approximate minimum degree methods; this work was carried out in collaboration with Patrick Amestoy, of ENSEEIHT-IRIT.
Two years ago, new classes of methods have been added to the Scotch library, which allow it to compute efficient orderings of native meshes, resulting in the handling of larger problems than with standard graph partitioners. Meshes are represented as bipartite graphs, in which node vertices are connected to element vertices only, and vice versa. Since this structure is equivalent to an hypergraph, where nodes are connected to hyperedges only, and vice versa, the mesh partitioning routines of Scotch turn it into a hypergraph partitioner.
Version 4.0 of the Scotch software package (http://www.labri.fr/~pelegrin/scotch/ ) has been formally released in February 2006 on InriaGForge, as a LGPLed libre software, in order to encourage members of the community to use it as a testbed for the quick and easy development of new partitioning and ordering methods. As of December 1 , 2006, it has already been downloaded more than 1200 times. Scotch can be called from MUMPS , PaStiX and HIPS as an external ordering library. It is also part of the latest release of Code_ Aster , a GPLed thermal and mechanical analysis software developed by French state-owned electricity producer EDF.
Release 5.0 of Scotch , which will include the parallel ordering routines of the PT-Scotch library, is planned for the early days of 2007. It will extend the capabilities of Scotch in parallel, allowing users to compute in parallel orderings of distributed graphs. PT-Scotch is based on the MPI and Posix Pthread libraries.