10 adding new features to scotch – Scotch Brand 5.1.10 User Manual

Page 129

Advertising
background image

To speed up target architecture loading in the future, the decomposition-
defined target architecture is compiled by means of acpl.

• Build an architecture graph which is the subgraph of the 8-node de Bruijn

graph restricted to vertices labeled 1, 2, 4, 5, 6, map graph graph.grf onto
it, and save the result to file /tmp/brol.map.

% (gmk ub2 3; echo 5 1 2 4 5 6) | amk grf -L | gmap graph.grf -
/tmp/brol.map

Note how the two input streams of program amk grf (that is, the de Bruijn
source graph and the five-elements vertex label list) are concatenated into a
single stream to be read from the standard input.

• Compile and link the user application brol.c with the libScotch library,

using the default error handler.

% cc brol.c -o brol -lscotch -lscotcherr -lm

Note that the mathematical library should also be included, after all of the
Scotch

libraries.

• Recompile a program that used MeTiS so that it uses Scotch instead.

% cc brol.c -o brol -I${metisdir} -lscotchmetis -lscotch
-lscotcherr -lmetis -lm

Note that the “-lscotchmetis” option must be placed before the “-lmetis”
one, so that routines that are redefined by Scotch are selected instead of
their MeTiS counterpart. When no other MeTiS routines than the ones re-
defined by Scotch are used, the “-lmetis” option can be omitted. The
“-I${metisdir}” option may be necessary to provide the path to the orig-
inal metis.h include file, which contains the prototypes of all of the MeTiS
routines.

10

Adding new features to Scotch

Since Scotch is free/libre software, users have the ability to add new features to it.
Moreover, as Scotch is intended to be a testbed for new partitioning and ordering
algorithms, it has been developed in a very modular way, to ease the development
and inclusion of new partitioning and ordering methods to be called within Scotch
strategies.

All of the source code for partitioning and ordering methods for graphs and

meshes is located in the src/libscotch/ source subdirectory. Source file names
have a very regular pattern, based on the internal data structures they handle.

10.1

Graphs and meshes

The basic structures in Scotch are the Graph and Mesh structures, which model
a simple symmetric graph the definition of which is given in file graph.h, and a

129

Advertising