COMMON FILE COMPRESS LZMA
for
lzma
decompression. Note that the correspond-
ing development libraries must be installed on your system before compile time,
and that compressed file handling can take place only on systems which support
multi-threading or multi-processing. In the first case, you must set the
SCOTCH
PTHREAD
flag in order to take advantage of these features.
On Linux systems, the development libraries to install are
libbzip2 1-devel
for
the
bzip2
format,
zlib1-devel
for the
gzip
format, and
liblzma0-devel
for the
lzma
format. The names of the libraries may vary according to operating systems
and library versions. Ask your system engineer in case of trouble.
8.3
Machine word size issues
The integer values handled by
Scotch
are based on the
SCOTCH Num
type, which
equates by default to the
int
C type, corresponding to the
INTEGER
Fortran type,
both of which being of machine word size. To coerce the length of the
SCOTCH
Num
integer type to 32 or 64 bits, one can use the “
-DINTSIZE32
” or “
-DINTSIZE64
”
flags, respectively, or else use the “
-DINT=
” definition, at compile time. For instance,
adding “
-DINT=long
” to the
CFLAGS
variable in the
Makefile.inc
file to be placed
at the root of the source tree will make all
SCOTCH Num
integers become
long
C
integers.
Whenever doing so, make sure to use integer types of equivalent length to declare
variables passed to
Scotch
routines from caller C and Fortran procedures. Also,
because of API conflicts, the
MeTiS
compatibility library will not be usable. It is
usually safer and cleaner to tune your C and Fortran compilers to make them inter-
pret
int
and
INTEGER
types as 32 or 64 bit values, than to use the aforementioned
flags and coerce type lengths in your own code.
Fortran users also have to take care of another size issue: since there are no
pointers in Fortran 77, the Fortran interface of some routines converts pointers to be
returned into integer indices with respect to a given array (e.g. see sections 7.5.10,
7.8.8 and 7.11.3). For 32 64 architectures, such indices can be larger than the
size of a regular
INTEGER
. This is why the indices to be returned are defined by
means of a specific integer type,
SCOTCH Idx
. To coerce the length of this index
type to 32 or 64 bits, one can use the “
-DIDXSIZE32
” or “
-DIDXSIZE64
” flags,
respectively, or else use the “
-DIDX=
” definition, at compile time. For instance,
adding “
-DIDX="long long"
” to the
CFLAGS
variable in the
Makefile.inc
file to
be placed at the root of the source tree will equate all
SCOTCH Idx
integers to C
long
long
integers. By default, when the size of
SCOTCH Idx
is not explicitly defined, it
is assumed to be the same as the size of
SCOTCH Num
.
9
Examples
This section contains chosen examples destined to show how the programs of the
Scotch
project interoperate and can be combined. It is supposed that the current
directory is directory “
scotch 5.1
” of the
Scotch
distribution. Character “
%
”
represents the shell prompt.
•
Partition source graph
brol.grf
into 7 parts, and save the result to file
/tmp/brol.map
.
%
echo cmplt 7 > /tmp/k7.tgt
%
gmap brol.grf /tmp/k7.tgt /tmp/brol.map
127