(3M) Calculator User Manual
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 ta ke place only on systems which suppo rt
multi-threading or multi-proces sing. 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 o f the librar ies may vary according to operating s ystems
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 plac e d
at the ro ot of the source tree will make all SCOTCH
Num integers beco me 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 proce dures. Also,
because of API conflicts, the MeTiS compatibility library will no t 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 co de.
Fortra n users also have to take care of another size issue: since there are no
pointers in Fortran 77, the Fortran interface of some routines c onverts 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 ar chitectures, 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 sourc e 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 c ontains 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 r e sult to file
/tmp/brol.map.
% echo cmplt 7 > /tmp/k7.tgt
% gmap brol.grf /tmp/k7.tgt /tmp/brol.map
127