ONMETIS
Reorder Variables in a Sparse Matrix


ONMETIS is a C program which can reorder the variables (rows and columns) in a sparse matrix, so as to produce less fill in during direct elimination.

It is assumed that the sparse matrix is described abstractly by its adjacency graph. OEMETIS reads a file, stored in the METIS GRAPH format, describing the adjacency graph of the sparse matrix, and computes a permutation of the nodes (= variables = rows and columns) that will produce less fill in.

Usage:

onmetis graph_file
where and writes a reordering in graph_file.iperm.

Licensing:

ONMETIS is part of the METIS family of Multilevel Partitioning Algorithms. It was produced by the lab of George Karypis, who states

"It is our general policy to make these tools available to the research community for use in their own research and/or non-commercial applications."

For further information on licensing and permissions, refer to http://www.cs.umn.edu/~metis, the METIS home page.

Languages:

ONMETIS is available in a C version.

Related Programs:

GRAPHCHK, a C program which can read a METIS GRAPH file and verify that it has the proper format.

KMETIS, a C program which can partition the nodes of a graph.

MESH2DUAL, a C program which converts a finite element mesh to a graph, for further processing by KMETIS or PMETIS.

MESH2NODAL, a C program which converts a finite element mesh to a graph, for further processing by KMETIS or PMETIS.

METIS, a C library which partitions the nodes of a graph, or the elements of a finite element mesh, or reorders the variables in a sparse matrix.

METIS_GRAPH, a data directory which contains examples of the graph files used to describe a graph to the METIS family of programs.

METIS_MESH, a data directory which contains examples of the mesh files used to describe a finite element mesh to the METIS family of programs.

MPI, C programs which use the message passing interface that allows programs to be written for execution on parallel computers.

NEIGHBORS_TO_METIS_GRAPH, a FORTRAN90 program which reads information describing the adjacency relations in a tet mesh, and writes out essentially the same information, but in a format that METIS will accept.

OEMETIS, a C program which reads the adjacency graph of a sparse matrix, stored in METIS GRAPH format, and produces a reordering of the nodes to minimize fill.

PARTDMESH, a C program which can partition the elements of a finite element mesh, by working with the dual graph of the mesh.

PARTNMESH, a C program which can partition the elements of a finite element mesh, by working with the nodal graph of the mesh.

Reference:

  1. George Karypis, Vipin Kumar,
    METIS, a Software Package for Partitioning Unstructured Graphs and Computing Fill-Reduced Orderings of Sparse Matrices;
  2. George Karypis, Vipin Kumar,
    A fast and high quality multilevel scheme for partitioning irregular graphs,
    SIAM Journal on Scientific Computing,
    Volume 20, Number 1, 1998, pages 359-392;

Source Code:

Examples and Tests:

You can go up one level to the C source codes.


Last revised on 26 September 2008.