8
0
6
1
3
2
2
3
7
4
1
5
5
6
4
7
0
Figure 10: Ordering file obtained when reordering the hypercube graph of Figure 4.
Vertex lists are coded as lists of integer numbers. The first integer is the number
of vertices in the list and the other integers are the labels of the selected vertices,
given in any order. For example, Figure 11 shows the list made from three vertices
of labels 2, 45, and 7.
3
2
45
7
Figure 11: Example of vertex list with three vertices of labels 2, 45, and 7.
6
Programs
The programs of the
Scotch
project belong to five distinct classes.
•
Graph handling programs, the names of which begin in “
g
”, that serve to
build and test source graphs.
•
Mesh handling programs, the names of which begin in “
m
”, that serve to build
and test source meshes.
•
Target architecture handling programs, the names of which begin in “
a
”,
that allow the user to build and test decomposition-defined target files, and
especially to turn a source graph file into a target file.
•
The mapping and ordering programs themselves.
•
Output handling programs, which are the mapping performance analyzer, the
graph factorization program, and the graph, matrix, and mapping visualiza-
tion program.
The general architecture of the
Scotch
project is displayed in Figure 12.
6.1
Invocation
The programs comprising the
Scotch
project have been designed to run in
command-line mode without any interactive prompting, so that they can be called
easily from other programs by means of “
system ()
” or “
popen ()
” system calls,
or be piped together on a single shell command line. In order to facilitate this,
whenever a stream name is asked for (either on input or output), the user may
put a single “
-
” to indicate standard input or output. Moreover, programs read
their input in the same order as stream names are given in the command line. It
allows them to read all their data from a single stream (usually the standard input),
provided that these data are ordered properly.
27