mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
scotch_6.0.3: Added to the source tree to simplify building OpenFOAM
Recent versions of scotch are rarely available in packaged form for ready installation on GNU/Linux distributions and so the sources are generally required.
This commit is contained in:
561
scotch_6.0.3/INSTALL.txt
Normal file
561
scotch_6.0.3/INSTALL.txt
Normal file
@ -0,0 +1,561 @@
|
|||||||
|
Scotch 6.0 installation instructions
|
||||||
|
====================================
|
||||||
|
|
||||||
|
|
||||||
|
1) Mandatory tools
|
||||||
|
==================
|
||||||
|
|
||||||
|
In order for you to compile Scotch and/or PT-Scotch, you must have GNU
|
||||||
|
Make installed on your system, as well as an implementation of the MPI
|
||||||
|
message-passing library in the case of PT-Scotch. Lex and Yacc are
|
||||||
|
optional. There is a possibility to install Scotch without having Lex
|
||||||
|
or Yacc, but it may require the tuning of sample Flex and Bison (i.e.,
|
||||||
|
the GNU equivalents of Lex and Yacc) outputs created on a Linux
|
||||||
|
system, which may need some tricky work to compile on other systems,
|
||||||
|
because of different C library implementations.
|
||||||
|
|
||||||
|
To check if GNU Make is installed and is found first, please type:
|
||||||
|
|
||||||
|
%prompt% make --version
|
||||||
|
|
||||||
|
It should read:
|
||||||
|
% GNU Make x.xx
|
||||||
|
% Copyright (C) 20xx Free Software Foundation, Inc.
|
||||||
|
etc, etc.
|
||||||
|
|
||||||
|
|
||||||
|
Alternatively, if GNU Make is installed but its directory does
|
||||||
|
not appear first in the PATH variable that is searched for
|
||||||
|
executables, you can try to locate it using the which command:
|
||||||
|
|
||||||
|
%prompt% which make
|
||||||
|
|
||||||
|
If several occurences of make are found, one might be GNU Make,
|
||||||
|
so try to figure out which of them.
|
||||||
|
|
||||||
|
To see if lex and yacc are present, type
|
||||||
|
%prompt% which lex
|
||||||
|
%prompt% which yacc (or "bison", the GNU flavor of yacc)
|
||||||
|
|
||||||
|
If some of these are missing, please:
|
||||||
|
- check your path variable (just in case they are located in
|
||||||
|
some unusual place, such as /usr/local/bin, /opt/bin,
|
||||||
|
/opt/local/bin/, /opt/gnu/bin, etc). Tools such as "which",
|
||||||
|
"locate" or "find" may help you find them;
|
||||||
|
- ask your system administrator (highly recommended);
|
||||||
|
- install a copy of GNU Make of your own (less recommended,
|
||||||
|
please ask your system administrator first). GNU Make is
|
||||||
|
available from the FSF website, at:
|
||||||
|
http://www.gnu.org/software/make/ and
|
||||||
|
http://ftp.gnu.org/pub/gnu/make/ .
|
||||||
|
A GNU version of lex and yacc is also available from the
|
||||||
|
very same FSF website, at:
|
||||||
|
http://www.gnu.org/software/flex/
|
||||||
|
http://ftp.gnu.org/non-gnu/flex/
|
||||||
|
http://www.gnu.org/software/bison/
|
||||||
|
http://ftp.gnu.org/pub/gnu/bison/ ;
|
||||||
|
- use the "last resort" files placed in a directory judiciously
|
||||||
|
called "last_resort", located in subdirectory "src/libscotch".
|
||||||
|
These files are:
|
||||||
|
. parser_ll.c
|
||||||
|
. parser_ly.h
|
||||||
|
. parser_yy.c .
|
||||||
|
They should be copied in the directory where object files are
|
||||||
|
created, and "touch"ed so that their modification date is more
|
||||||
|
recent than those of the corresponding "parser_ll.l" and
|
||||||
|
"parser_yy.y" files. Then cross your fingers and hope it
|
||||||
|
compiles properly on your system. Else, you will have to dig in
|
||||||
|
their code to have them compile properly...
|
||||||
|
The Makefile of the libScotch library has been designed so as
|
||||||
|
to copy the last_resort/* files automatically when the lex or
|
||||||
|
yacc tools are not found.
|
||||||
|
In this case, depending on your platform, you may also have to set
|
||||||
|
the "-DSCOTCH_RENAME_PARSER" flag in order for all symbols to be
|
||||||
|
properly redefined (see Section 2.2).
|
||||||
|
|
||||||
|
|
||||||
|
2) Configuration
|
||||||
|
================
|
||||||
|
|
||||||
|
2.1) Creating the "Makefile.inc" file
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
Go to the "src/" directory.
|
||||||
|
|
||||||
|
Look in the "Make.inc/" subdirectory for a configuration
|
||||||
|
file which matches your system configuration. If there
|
||||||
|
is none, build a proper one in the "Make.inc/" subdirectory,
|
||||||
|
basing on the structure of existing ones.
|
||||||
|
|
||||||
|
In particular, the Makefile.inc file contains three variables
|
||||||
|
which specify which C compiler to use. Their semantic is as
|
||||||
|
follows: the compiler command in variable CCS is used to compile
|
||||||
|
the sequential (hence the "S" in "CCS") Scotch distribution. The
|
||||||
|
compiler command in CCP is used to compile the parallel ("P")
|
||||||
|
PT-Scotch distribution. The compiler command in CCD is used to compile
|
||||||
|
the version of the "dummysizes" ("D") executable used for compiling
|
||||||
|
PT-Scotch, as explained below.
|
||||||
|
|
||||||
|
Create a symbolic link from the configuration file to the
|
||||||
|
current "src/" working directory, renaming it as "Makefile.inc":
|
||||||
|
|
||||||
|
%prompt% ln -s Make.inc/Makefile.inc.xxxx_xxx_xxx Makefile.inc
|
||||||
|
|
||||||
|
If symbolic links are not available on your system, make a
|
||||||
|
plain copy of the file to a file named "Makefile.inc" in the
|
||||||
|
current "src/" working directory:
|
||||||
|
|
||||||
|
%prompt% cp Make.inc/Makefile.inc.xxxx_xxx_xxx Makefile.inc
|
||||||
|
|
||||||
|
Some additional scripts, designed to ease the installation of Scotch
|
||||||
|
on specific platforms, are also present in subdirectories of the
|
||||||
|
Make.inc directory. This is for instance the case for the mingw32
|
||||||
|
platform.
|
||||||
|
|
||||||
|
|
||||||
|
2.2) Parser symbol conflicts
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
Since Scotch uses a parser to analyze its strategy strings, it may
|
||||||
|
happen that the symbols of this parser conflict with those of
|
||||||
|
another parser used in a third-party library. All "Makefile.inc.*"
|
||||||
|
platform configuration files which base on flex / bison are already
|
||||||
|
tailored so as to prevent such conflicts. If you use other parsing
|
||||||
|
tools, you may have to provide other options. Another solution is to
|
||||||
|
use the pre-processed parser files of the "src/libscotch/last_resort"
|
||||||
|
subdirectory (corresponding operation instructions are given in
|
||||||
|
Section 1).
|
||||||
|
|
||||||
|
|
||||||
|
2.3) Integer size issues
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
By default, all integers used in Scotch and PT-Scotch are of the "int"
|
||||||
|
C type, corresponding to the "INTEGER" type in Fortran. To coerce the
|
||||||
|
size of the Scotch integer type to 32 or 64 bits, add the "-DINTSIZE32"
|
||||||
|
or "-DINTSIZE64" flags, respectively, to the C compiler flags in the
|
||||||
|
Makefile.inc configuration file. If you do so, make sure to use
|
||||||
|
integer types of equivalent size to declare variables passed to Scotch
|
||||||
|
routines from caller C and Fortran procedures. Also, when running on
|
||||||
|
32_64-bit architectures (that is, integer types are 32-bit wide,
|
||||||
|
while address types are 64-bit wide), some integer array indices
|
||||||
|
returned by the Fortran interface have to be of a size equivalent to
|
||||||
|
those of memory addresses, that is, 64 bits. The size of these
|
||||||
|
variables is determined by the "-DIDXSIZE32" and "-DIDXSIZE64" flags,
|
||||||
|
respectively. When none of them is provided, the size of the indices
|
||||||
|
is assumed to be equivalent to that of the Scotch integer type.
|
||||||
|
|
||||||
|
For instance, on a 32-bit architecture, you can use 64-bit integers in
|
||||||
|
Scotch by just setting the "-DINTSIZE64" flag, because addresses will
|
||||||
|
remain on 32 bits. On a 32_64 architecture, you can use either 32-bit
|
||||||
|
or 64-bit integers in Scotch, by setting the "-DINTSIZE32" or
|
||||||
|
"-DINTSIZE64" flags accordingly, but in all cases you must set the
|
||||||
|
"-DIDXSIZE64" flag in order for some of the routines of the Fortran
|
||||||
|
interface to operate properly, because the array indices returned by
|
||||||
|
these routines have to be stored as 64-bit quantities.
|
||||||
|
|
||||||
|
Of course, on 64-bit architectures, another possibility is to tune
|
||||||
|
your C and Fortran compilers to make them interpret all "int" and
|
||||||
|
"INTEGER" types as 64 bit values. This solution is the simplest one,
|
||||||
|
as there is no need to use any of the aforementioned flags, nor to
|
||||||
|
hard-code type lengths in user's code. Yet, it prevents mixing 32 and
|
||||||
|
64-bit features, and may create problems when linking PT-Scotch if a
|
||||||
|
corresponding MPI library is not available.
|
||||||
|
|
||||||
|
Be careful not to mismatch the 32-bit and 64-bit versions of the
|
||||||
|
"scotch.h" and "ptscotch.h" include files that are generated at
|
||||||
|
compile time. When several versions of Scotch are simultaneously
|
||||||
|
present on a system, Make sure to place the corresponding include and
|
||||||
|
library files in separate directories. Most Scotch data structures
|
||||||
|
will have different sizes, depending on integer or pointer
|
||||||
|
sizes. Consequently, compiling a 64-bit executable with the 32-bit
|
||||||
|
version of "scotch.h" may lead to unpredictable behavior because of
|
||||||
|
memory overflow.
|
||||||
|
|
||||||
|
|
||||||
|
2.4) Compression libraries
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
The binaries of the Scotch distribution can handle compressed
|
||||||
|
graphs in input or output. Three compressed graph formats are
|
||||||
|
currently supported: bzip2, gzip and lzma. In order for them to be
|
||||||
|
actually activated, the proper libraries must be available on your
|
||||||
|
system. On a Linux platform, they are called "zlib" for the gzip
|
||||||
|
format, "libbz2" for the bzip2 format, and "liblzma" for the lzma
|
||||||
|
format. Note that it is the "development" version (also called
|
||||||
|
"devel", for short, within package names) of each of these libraries
|
||||||
|
which is required for the compilation to succeed.
|
||||||
|
According to the libraries installed on your system, you may set
|
||||||
|
flags "-DCOMMON_FILE_COMPRESS_BZ2", "-DCOMMON_FILE_COMPRESS_GZ" and/or
|
||||||
|
"-DCOMMON_FILE_COMPRESS_LZMA" in the CFLAGS variable of your
|
||||||
|
Makefile.inc configuration file, to have these formats and their
|
||||||
|
respective extensions ".bz2", ".gz" and ".lzma", recognized and
|
||||||
|
handled by Scotch.
|
||||||
|
|
||||||
|
Compression and decompression are handled either by extra threads
|
||||||
|
or by fork'ed child processes if threads are not available. On
|
||||||
|
systems which do not provide a functional fork() system call,
|
||||||
|
compressed files cannot be handled when the "-DCOMMON_PTHREAD" flag
|
||||||
|
is not set (see below).
|
||||||
|
|
||||||
|
|
||||||
|
2.5) Multi-threading
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Scotch can also take advantage of Posix threads when they are
|
||||||
|
available. They are used in several places:
|
||||||
|
|
||||||
|
- to compress and uncompress file data. This can be done either
|
||||||
|
by launching a service thread, or else by creating a separate
|
||||||
|
process by means of a Posix fork() system call. This choice is
|
||||||
|
controlled by the "-DCOMMON_PTHREAD" flag: if it is set, threads
|
||||||
|
will be used, else fork() calls will be performed. For systems
|
||||||
|
which do not support the fork() system call, such as the MinGW32
|
||||||
|
platform, one can set the "-DCOMMON_STUB_FORK" flag, which creates
|
||||||
|
a stub fork() routine which always returns an error. Therefore,
|
||||||
|
without both fork() and threads, one must set the
|
||||||
|
"-DCOMMON_STUB_FORK" flag without setting "-DCOMMON_PTHREAD", so
|
||||||
|
that compilation will successfully complete; however, in this case,
|
||||||
|
compressed graphs shall not be handled in practice.
|
||||||
|
|
||||||
|
- to create distributed graphs in parallel. Since this task involves
|
||||||
|
concurrent MPI communications, the MPI library must support the
|
||||||
|
MPI_THREAD_MULTIPLE level. The use of threads within Scotch itself
|
||||||
|
is controlled by the "-DSCOTCH_PTHREAD" flag, which is completely
|
||||||
|
independent from the "-DCOMMON_PTHREAD" flag. Any of them can be set
|
||||||
|
without setting the other.
|
||||||
|
|
||||||
|
Note that if you compile Scotch with the "-DSCOTCH_PTHREAD" flag,
|
||||||
|
you will have to initialize your communication subsystem by using
|
||||||
|
the MPI_Init_thread() MPI call, not MPI_Init(), and the provided
|
||||||
|
thread support level value returned by the routine must be
|
||||||
|
checked carefully.
|
||||||
|
If you have doubts on the stability of your MPI implementation, it
|
||||||
|
is better not to set "-DSCOTCH_PTHREAD". For instance, on Linux
|
||||||
|
platforms, concurrency problems have been experienced with MPICH2
|
||||||
|
versions prior to 1.0.7 using TCP; consequently, if the MPI
|
||||||
|
implementation on your platform is based on an older MPICH2 version,
|
||||||
|
do not set the "-DSCOTCH_PTHREAD" flag.
|
||||||
|
|
||||||
|
Note that since the Scotch and PT-Scotch libraries are distinct, you
|
||||||
|
can still compile Scotch with threads enabled, and compile PT-Scotch
|
||||||
|
with threads disabled. However, since PT-Scotch calls Scotch
|
||||||
|
routines when operating on a single process, threaded routines will
|
||||||
|
be used on each process, without interfering with MPI.
|
||||||
|
|
||||||
|
- to run in a multi-threaded way several key algorithms of the Scotch
|
||||||
|
(no longer really) sequential library, such as graph coarsening and
|
||||||
|
k-way diffusion. More algorithms will be re-coded in a threaded way
|
||||||
|
in future versions.
|
||||||
|
|
||||||
|
To date, thread management is performed in a very rudimentary way.
|
||||||
|
The available number of threads can only be set at compile-time, and
|
||||||
|
the assignment of threads to cores is performed in increasing order,
|
||||||
|
starting from 0, which may not always prove to be the most efficient
|
||||||
|
mapping in terms of memory affinity. We plan to add a mechanism for
|
||||||
|
dynamic thread allocation in the near future, based upon the hwloc
|
||||||
|
library.
|
||||||
|
|
||||||
|
The compilation flags used to manage threads are the following:
|
||||||
|
|
||||||
|
"-DCOMMON_PTHREAD" enables threads for algorithms not related to
|
||||||
|
graph management, partitioning and/or ordering, e.g. compressed
|
||||||
|
file handling.
|
||||||
|
|
||||||
|
"-DCOMMON_PTHREAD_BARRIER" creates a replacement for missing
|
||||||
|
pthread_barrier_t implementations, which unfortunately happens on some
|
||||||
|
systems.
|
||||||
|
|
||||||
|
"-DSCOTCH_PTHREAD" is necessary to enable multi-threaded algorithms
|
||||||
|
in Scotch and/or PT-Scotch.
|
||||||
|
|
||||||
|
"-DSCOTCH_PTHREAD_AFFINITY_LINUX" enables Linux extensions for
|
||||||
|
handling thread affinity. As said above, this may not prove
|
||||||
|
efficient in all cases. More options will be provided in the
|
||||||
|
near future.
|
||||||
|
|
||||||
|
"-DSCOTCH_PTHREAD_NUMBER=x" sets the overall number of threads to be
|
||||||
|
used by multi-threaded algorithms. This number may not necessary be a
|
||||||
|
power of two. Since some algorithms have had to be reformulated to
|
||||||
|
accomodate for multi-threading, some algorithms will most probably be
|
||||||
|
much more efficient than sequential processing only for a number of
|
||||||
|
threads strictly greater than 2. Setting "-DSCOTCH_PTHREAD_NUMBER=1"
|
||||||
|
allows one to run sequential algorithms instead of multi-threaded
|
||||||
|
ones, while benefitting from multi-threading for file compression and
|
||||||
|
distributed graph handling.
|
||||||
|
|
||||||
|
When compiling under mingw32 on Windows systems, it is possible to
|
||||||
|
benefit from multi-threading by including the "semaphore.h" and
|
||||||
|
"pthread.h" files, included in the "src/misc" subdirectory, at compile
|
||||||
|
time. These files have been kindly provided by Samuel Thibault, under
|
||||||
|
a BSD 2-Clause License. These files will not work for Cygwin. This is
|
||||||
|
not a problem, as Cygwin provides its own implementation of Posix
|
||||||
|
threads.
|
||||||
|
|
||||||
|
|
||||||
|
2.6) Monitoring memory allocation
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
Some memory allocation information can be aggregated if PT-Scotch is
|
||||||
|
compiled with the -DCOMMON_MEMORY_TRACE flag. When this flag is set,
|
||||||
|
the "-va" option will make dgmap, dgord and dgpart output the minimum,
|
||||||
|
maximum and average peak amount of memory used over all processes.
|
||||||
|
|
||||||
|
Several API routines will also be made available to report the current
|
||||||
|
and maximum amount of memory used by Scotch within the process they
|
||||||
|
are called: SCOTCH_memCur() and SCOTCH_memMax(), respectively.
|
||||||
|
|
||||||
|
A rudimentary memory checking mechanism is available for platforms
|
||||||
|
that do not have efficient memory checking and debugging tools such as
|
||||||
|
Valgrind or gdb. It can be activated through the
|
||||||
|
"-DCOMMON_MEMORY_CHECK=x" flag. This is almost only for internal
|
||||||
|
debugging purposes. The value of the "-DCOMMON_MEMORY_CHECK" is 1 if
|
||||||
|
memory checking should be enabled by default, and 0 else. This
|
||||||
|
mechanism is absolutely NOT thread-safe at the time being.
|
||||||
|
|
||||||
|
|
||||||
|
2.7) Randomness
|
||||||
|
---------------
|
||||||
|
|
||||||
|
Many algorithms in Scotch and PT-Scotch are based on the random
|
||||||
|
selection of vertices (e.g. seed vertices for graph growing
|
||||||
|
algorithms, vertices to be mated for coarsening algorithms,
|
||||||
|
etc.). This selection is performed by using integer pseudo-random
|
||||||
|
generators to produce seemingly uncorrelated vertex indices.
|
||||||
|
|
||||||
|
The advantage of pseudo-randomness over pure randomness is that the
|
||||||
|
same pseudo-random seed will always yield the same sequence of
|
||||||
|
pseudo-random numbers. Consequently, while using a different random
|
||||||
|
seed for each run is likely to explore better the solution space,
|
||||||
|
using a fixed random seed eases the debugging of programs, because
|
||||||
|
algorithms behave identically across multiple runs (save for
|
||||||
|
asynchronousness issues, see next section). By default, Scotch is
|
||||||
|
compiled with the "-DCOMMON_RANDOM_FIXED_SEED" flag set, so that
|
||||||
|
multiple executions of the same sequential programs will always yield
|
||||||
|
the same results.
|
||||||
|
|
||||||
|
Prior to version 6.0, Scotch relied on the operating system
|
||||||
|
pseudo-random generator. While this posed no problem for most
|
||||||
|
sequential programs, parallel runs of PT-Scotch were not reproducible
|
||||||
|
on some systems, because the MPI implementation also used this
|
||||||
|
pseudo-random generator for its own purposes. In order to avoid this
|
||||||
|
problem, Scotch now uses its own pseudo-random generator. Users that
|
||||||
|
want to go on using the operating system pseudo-random generator
|
||||||
|
(e.g. for regression testing with respect to version 5.x) can still do
|
||||||
|
so, by compiling with the "-DCOMMON_RANDOM_SYSTEM" flag set. In this
|
||||||
|
case, the "-DCOMMON_RANDOM_RAND" flag allows one to use the srand()
|
||||||
|
routine instead of the default srandom() routine.
|
||||||
|
|
||||||
|
|
||||||
|
2.8) Deterministic behavior
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
When Scotch is compiled with the "-DCOMMON_RANDOM_FIXED_SEED"
|
||||||
|
flag set, multiple executions of the same sequential programs
|
||||||
|
will always yield the same results. Yet, non-deterministic
|
||||||
|
multi-threaded and/or parallel algorithms may still introduce
|
||||||
|
some variability in the produced results, due to operating system
|
||||||
|
artifacts.
|
||||||
|
|
||||||
|
To ease the tracking down of bugs, it is possible to coerce Scotch to
|
||||||
|
exhibit a deterministic behavior by setting the
|
||||||
|
"-DSCOTCH_DETERMINISTIC" flag. This option makes sure that two
|
||||||
|
consecutive runs of Scotch on the same graph and same number of
|
||||||
|
processes and/or threads will always yield the same result. However,
|
||||||
|
it does not mean that two executions of Scotch on different numbers of
|
||||||
|
processes and/or threads will always yield the same result. Indeed,
|
||||||
|
changing the number of processes impacts graph data distribution and
|
||||||
|
consequently the order in which vertices are processed. Consequently,
|
||||||
|
coarsening algorithms are likely to produce different coarse graphs,
|
||||||
|
leading to different partitions.
|
||||||
|
|
||||||
|
This option is likely to have adverse impact on performance, since all
|
||||||
|
non-deterministic multi-threaded algorithms will be disabled. In the
|
||||||
|
case of Scotch, the multi-threaded matching algorithm for coarsening
|
||||||
|
will be replaced by its sequential counterpart, whatever the available
|
||||||
|
number of threads is. In the case of PT-Scotch, point-to-point
|
||||||
|
messages will be received in a fixed order rather than being processed
|
||||||
|
on a first-come, first-serve basis.
|
||||||
|
|
||||||
|
Setting this flag automatically results in setting the
|
||||||
|
"-DCOMMON_RANDOM_FIXED_SEED" flag. Users are also strongly advised to
|
||||||
|
compile without setting the "-DCOMMON_RANDOM_SYSTEM" flag, in order to
|
||||||
|
avoid any interference with third-party libraries that might use the
|
||||||
|
operating system pseudo-random generator.
|
||||||
|
|
||||||
|
|
||||||
|
2.9) Point-to-point or collective communications
|
||||||
|
------------------------------------------------
|
||||||
|
|
||||||
|
Since distributed graph vertices can have any initial distribution
|
||||||
|
across processes, communication rounds are likely to involve all of
|
||||||
|
the processes in an almost all-to-all scheme. In order to speed-up
|
||||||
|
running time, most of these communications are performed by means of
|
||||||
|
asynchronous sends and receives, which allows computations to overlap
|
||||||
|
with communications. However, for large numbers of processes, this can
|
||||||
|
lead to the saturation of the communication network of the target
|
||||||
|
parallel machine. To avoid this, communication consuming routines also
|
||||||
|
have a collective communication based version. The use of this version
|
||||||
|
is enabled by default, as it greatly improves scalability for large
|
||||||
|
numbers of processes. To disable it, set the "-DSCOTCH_PTOP" flag at
|
||||||
|
compile time.
|
||||||
|
|
||||||
|
|
||||||
|
2.10) MeTiS compatibility library
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
In order to ease the adoption of Scotch/PT-Scotch by people who
|
||||||
|
already developed code based on the MeTiS/ParMeTiS interface, a MeTiS
|
||||||
|
V3 compatibility library is included in the Scotch package. It
|
||||||
|
provides stubs for the graph partitioning and ordering routines of
|
||||||
|
MeTiS/ParMeTiS, but not for the service routines that are comprised
|
||||||
|
in this package. Consequently, for people willing to use both
|
||||||
|
libraries, that is, experiment with the graph partitioning features of
|
||||||
|
Scotch while using the service routines of the genuine MeTiS package,
|
||||||
|
special measures have to be taken.
|
||||||
|
|
||||||
|
A first solution can be to coerce the linker to pick partitioning
|
||||||
|
routines from the libscotch, and service routines from the
|
||||||
|
libmetis. This can be done by placing the library names in this
|
||||||
|
order as arguments to the linker command. Yet, some linkers may still
|
||||||
|
report an error, as some symbols are multiply defined.
|
||||||
|
|
||||||
|
Alternately, the names of the compatibility routines can be changed so
|
||||||
|
as to avoid conflicts. When the "-DSCOTCH_METIS_PREFIX" flag is set at
|
||||||
|
compile time, all Scotch versions of the MeTiS routines are prefixed
|
||||||
|
with "SCOTCH_". Of course, this will require an equivalent change in
|
||||||
|
the user's application code.
|
||||||
|
|
||||||
|
An advantage of the Scotch/PT-Scotch stubs over the genuine
|
||||||
|
MeTiS/ParMeTiS V3 routines is that they can be available in a 64-bit
|
||||||
|
version. In this case, all int's that were passed to MeTiS/ParMeTiS
|
||||||
|
routines must be replaced by 64-bit integer values (even the option
|
||||||
|
configuration values). However, in this case, one will not be able to
|
||||||
|
link against the service routines of the genuine MeTiS/ParMeTiS V3
|
||||||
|
library, as the latter is only available as a 32-bit implementation.
|
||||||
|
|
||||||
|
|
||||||
|
3) Compilation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Once you have performed the configuration of the "Makefile.inc" file,
|
||||||
|
compile the Scotch distribution by typing "make scotch", or just
|
||||||
|
"make", in the current "src/" working directory. To compile the
|
||||||
|
PT-Scotch distribution, type "make ptscotch" in the same "src/"
|
||||||
|
directory. This can be done in any order. Typing "make scotch
|
||||||
|
ptscotch" to compile both is equivalent to typing "make ptscotch"
|
||||||
|
alone, since PT-Scotch requires Scotch.
|
||||||
|
|
||||||
|
The most common problem you may encounter when trying to compile
|
||||||
|
PT-Scotch on a new platform relates to the "dummysizes" and
|
||||||
|
"ptdummysizes" executables. The purpose of these programs is to
|
||||||
|
determine, on the target platform, the sizes of the opaque data
|
||||||
|
structures of Scotch and PT-Scotch, respectively. They have to be
|
||||||
|
compiled and run before any library function can be compiled. The
|
||||||
|
sequential case poses no specific problems, as "dummysizes" is always
|
||||||
|
compiled with the same command as the one used to compile the
|
||||||
|
sequential Scotch package (hence, "CCD=$(CCS)" when executing "make
|
||||||
|
scotch"). In the parallel case, "ptdummysizes" has to take into
|
||||||
|
account the sizes of some MPI data structures, such as MPI_Comm, and
|
||||||
|
the most common way to have access to this information is to use some
|
||||||
|
flavor of MPI-aware compilers such as "mpicc" which automatically
|
||||||
|
refer to "mpi.h". Therefore, "CCD=mpicc" will work for most systems
|
||||||
|
and MPI implementations. Yet, on some platforms, programs compiled for
|
||||||
|
parallel execution cannot be run interactively. Moreover,
|
||||||
|
"ptdummysizes" itself does not contain any MPI calls, as it just wants
|
||||||
|
to know the sizes of the data structures, and the communication
|
||||||
|
susbystem of the platform may not want to run it. In any of these
|
||||||
|
cases, compilation will break. It is possible to solve this problem by
|
||||||
|
specifying, in the CCD variable of "Makefile.inc", how to compile
|
||||||
|
"ptdummysizes" sequentially but with knowledge of the location of the
|
||||||
|
"mpi.h" include file, for instance with the following line: "CCD =
|
||||||
|
my_sequential_cc -I/path/to/my/mpi/implementation/include/dir/".
|
||||||
|
|
||||||
|
If no error occurs, all of the relevant header, library and executable
|
||||||
|
files will be created and copied to the "../include/", "../lib/" and
|
||||||
|
"../bin/" directories, relatively to your current "src/" working
|
||||||
|
directory. Headers, libraries and binaries of Scotch and PT-Scotch can
|
||||||
|
coexist in these directories without any interference.
|
||||||
|
|
||||||
|
Then, typing "make install" will perform a GNU-like installation, with
|
||||||
|
header, library, binary and man files copied to the "include", "lib",
|
||||||
|
"bin" and "man" subdirectories of the path specified in the "prefix"
|
||||||
|
variable, which is set by default to "/usr/local". For instance,
|
||||||
|
typing "make prefix=/home/myself/usr/ install" will install the
|
||||||
|
Scotch/PT-Scotch files in a subtree of directory "/home/myself/usr/".
|
||||||
|
|
||||||
|
|
||||||
|
4) Checking
|
||||||
|
===========
|
||||||
|
|
||||||
|
A set of test programs is available in the "src/check" directory. They
|
||||||
|
serve as non-regression checks for both sequential and parallel
|
||||||
|
features of Scotch and PT-Scotch. They can be launched by typing "make
|
||||||
|
check" and/or "make ptcheck" in the "src/" directory.
|
||||||
|
|
||||||
|
In the case of "ptcheck", programs will be run in debug mode; user
|
||||||
|
action is required (by typing ENTER whenever necessary) for launching
|
||||||
|
the parallel programs.
|
||||||
|
|
||||||
|
One might look at these programs for examples of how to use the Scotch
|
||||||
|
and PT-Scotch libraries. However, some of these programs test internal
|
||||||
|
features, and interact with the library through non-standard and
|
||||||
|
non-documented procedures. It is therefore recommended NOT to imitate
|
||||||
|
these calling practices and rather to follow the guidelines provided in
|
||||||
|
the Scotch and PT-Scotch user manuals.
|
||||||
|
|
||||||
|
|
||||||
|
5) Use
|
||||||
|
======
|
||||||
|
|
||||||
|
Users willing to use the features of the sequential (but possibly
|
||||||
|
threaded) libScotch library have to include "scotch.h" and to link
|
||||||
|
against the "libscotch" library, plus an error handling package such
|
||||||
|
as "libscotcherr" or "libscotcherrexit".
|
||||||
|
|
||||||
|
Users willing to use the features of the distributed-memory parallel
|
||||||
|
libPTScotch library have to include "ptscotch.h" (which itself
|
||||||
|
includes "scotch.h") and to link against both the "libptscotch" and
|
||||||
|
"libscotch" libraries (in this order whenever order is significant),
|
||||||
|
plus an error handling package such as "libptscotcherr" or
|
||||||
|
"libptscotcherrexit".
|
||||||
|
|
||||||
|
In the case of complex programs, which may run as sequential programs
|
||||||
|
but may also call parallel routines, it is necessary to link only once
|
||||||
|
against a Scotch error handling routine, and this routine cannot call
|
||||||
|
MPI routines. Hence, the "libscotcherr" or "libscotcherrexit"
|
||||||
|
libraries must be used. This will not impact the behavior of the
|
||||||
|
parallel routines, but process numbers will not be displayed in case
|
||||||
|
of an error.
|
||||||
|
|
||||||
|
|
||||||
|
6) Documentation and use
|
||||||
|
========================
|
||||||
|
|
||||||
|
The Scotch and PT-Scotch user's manuals are available in the "doc/"
|
||||||
|
directory. They describe how to use the libscotch and libptscotch
|
||||||
|
libraries, as well as the standalone programs of the Scotch and
|
||||||
|
PT-Scotch distributions.
|
||||||
|
|
||||||
|
|
||||||
|
7) Note to packagers
|
||||||
|
====================
|
||||||
|
|
||||||
|
Since version 6.0, the Scotch and PT-Scotch packages can be made
|
||||||
|
independent. The libScotch will not be tied by any dependency against
|
||||||
|
any MPI package, while the libPTScotch has to depend on the one with
|
||||||
|
which it has been compiled, in addition to the libScotch package that
|
||||||
|
it uses.
|
||||||
|
|
||||||
|
In versions 5.x, the libPTScotch also contained a modified copy of the
|
||||||
|
libScotch. It is no longer the case, which will result in lower disk
|
||||||
|
footprint.
|
||||||
|
|
||||||
|
Regarding the use of threads, since Scotch is at the time being not
|
||||||
|
dynamically configurable, one has to decide whether to compile it with
|
||||||
|
threads enabled or not and, additionally, with which number of threads
|
||||||
|
it will run. Based on the current processor market, I recommend to
|
||||||
|
compile with -DSCOTCH_PTHREAD_NUMBER=2 (and, of course,
|
||||||
|
-DSCOTCH_PTHREAD_AFFINITY_LINUX whenever possible). The penalty for
|
||||||
|
single-thread CPUs will not be too high, while hyper-threaded and
|
||||||
|
many-core CPUs will benefit from the extra thread.
|
||||||
7
scotch_6.0.3/LICENCE_fr.txt
Normal file
7
scotch_6.0.3/LICENCE_fr.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
Cette copie de la distribution logicielle Scotch 6.0 est distribu<62>e
|
||||||
|
selon les termes de la licence de logiciel libre CeCILL-C.
|
||||||
|
|
||||||
|
Une copie du texte de cette licence se trouve dans le sous-r<>pertoire
|
||||||
|
"doc", dans le fichier appel<65> "CeCILL-C_V1-fr.txt". Veuillez en lire
|
||||||
|
attentivement les clauses. Vous ne pourrez utiliser cette copie de la
|
||||||
|
distribution logicielle Scotch 6.0 que si vous les acceptez.
|
||||||
6
scotch_6.0.3/LICENSE_en.txt
Normal file
6
scotch_6.0.3/LICENSE_en.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
This copy of the Scotch 6.0 distribution is licensed to you under the
|
||||||
|
terms of the CeCILL-C free/libre software license.
|
||||||
|
|
||||||
|
A copy of this license is available in subdirectory "doc", in file
|
||||||
|
named "CeCILL-C_V1-en.txt". Please read its terms carefully. Only if
|
||||||
|
you accept them can you use this copy of the Scotch 6.0 distribution.
|
||||||
8
scotch_6.0.3/LISEZ-MOI.txt
Normal file
8
scotch_6.0.3/LISEZ-MOI.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
Les clauses selon lesquelles cette copie de la distribution logicielle
|
||||||
|
Scotch 6.0 est mise <20> votre disposition sont d<>finies dans le fichier
|
||||||
|
"LICENCE_fr.txt", situ<74> dans le m<>me r<>pertoire que le pr<70>sent
|
||||||
|
fichier.
|
||||||
|
|
||||||
|
Si vous les acceptez, veuillez vous r<>f<EFBFBD>rer au fichier "INSTALL.txt",
|
||||||
|
<EFBFBD>galement situ<74> dans ce r<>pertoire, pour consulter les instructions
|
||||||
|
d'installation.
|
||||||
6
scotch_6.0.3/README.txt
Normal file
6
scotch_6.0.3/README.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
The terms under which this copy of the Scotch 6.0 distribution
|
||||||
|
is provided to you are described in file "LICENSE_en.txt", located
|
||||||
|
in the same directory as this file.
|
||||||
|
|
||||||
|
If you accept them, please refer to file "INSTALL.txt", also
|
||||||
|
located in this directory, for the installation instructions.
|
||||||
517
scotch_6.0.3/doc/CeCILL-C_V1-en.txt
Normal file
517
scotch_6.0.3/doc/CeCILL-C_V1-en.txt
Normal file
@ -0,0 +1,517 @@
|
|||||||
|
|
||||||
|
CeCILL-C FREE SOFTWARE LICENSE AGREEMENT
|
||||||
|
|
||||||
|
|
||||||
|
Notice
|
||||||
|
|
||||||
|
This Agreement is a Free Software license agreement that is the result
|
||||||
|
of discussions between its authors in order to ensure compliance with
|
||||||
|
the two main principles guiding its drafting:
|
||||||
|
|
||||||
|
* firstly, compliance with the principles governing the distribution
|
||||||
|
of Free Software: access to source code, broad rights granted to
|
||||||
|
users,
|
||||||
|
* secondly, the election of a governing law, French law, with which
|
||||||
|
it is conformant, both as regards the law of torts and
|
||||||
|
intellectual property law, and the protection that it offers to
|
||||||
|
both authors and holders of the economic rights over software.
|
||||||
|
|
||||||
|
The authors of the CeCILL-C (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre])
|
||||||
|
license are:
|
||||||
|
|
||||||
|
Commissariat <20> l'Energie Atomique - CEA, a public scientific, technical
|
||||||
|
and industrial research establishment, having its principal place of
|
||||||
|
business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France.
|
||||||
|
|
||||||
|
Centre National de la Recherche Scientifique - CNRS, a public scientific
|
||||||
|
and technological establishment, having its principal place of business
|
||||||
|
at 3 rue Michel-Ange, 75794 Paris cedex 16, France.
|
||||||
|
|
||||||
|
Institut National de Recherche en Informatique et en Automatique -
|
||||||
|
INRIA, a public scientific and technological establishment, having its
|
||||||
|
principal place of business at Domaine de Voluceau, Rocquencourt, BP
|
||||||
|
105, 78153 Le Chesnay cedex, France.
|
||||||
|
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The purpose of this Free Software license agreement is to grant users
|
||||||
|
the right to modify and re-use the software governed by this license.
|
||||||
|
|
||||||
|
The exercising of this right is conditional upon the obligation to make
|
||||||
|
available to the community the modifications made to the source code of
|
||||||
|
the software so as to contribute to its evolution.
|
||||||
|
|
||||||
|
In consideration of access to the source code and the rights to copy,
|
||||||
|
modify and redistribute granted by the license, users are provided only
|
||||||
|
with a limited warranty and the software's author, the holder of the
|
||||||
|
economic rights, and the successive licensors only have limited liability.
|
||||||
|
|
||||||
|
In this respect, the risks associated with loading, using, modifying
|
||||||
|
and/or developing or reproducing the software by the user are brought to
|
||||||
|
the user's attention, given its Free Software status, which may make it
|
||||||
|
complicated to use, with the result that its use is reserved for
|
||||||
|
developers and experienced professionals having in-depth computer
|
||||||
|
knowledge. Users are therefore encouraged to load and test the
|
||||||
|
suitability of the software as regards their requirements in conditions
|
||||||
|
enabling the security of their systems and/or data to be ensured and,
|
||||||
|
more generally, to use and operate it in the same conditions of
|
||||||
|
security. This Agreement may be freely reproduced and published,
|
||||||
|
provided it is not altered, and that no provisions are either added or
|
||||||
|
removed herefrom.
|
||||||
|
|
||||||
|
This Agreement may apply to any or all software for which the holder of
|
||||||
|
the economic rights decides to submit the use thereof to its provisions.
|
||||||
|
|
||||||
|
|
||||||
|
Article 1 - DEFINITIONS
|
||||||
|
|
||||||
|
For the purpose of this Agreement, when the following expressions
|
||||||
|
commence with a capital letter, they shall have the following meaning:
|
||||||
|
|
||||||
|
Agreement: means this license agreement, and its possible subsequent
|
||||||
|
versions and annexes.
|
||||||
|
|
||||||
|
Software: means the software in its Object Code and/or Source Code form
|
||||||
|
and, where applicable, its documentation, "as is" when the Licensee
|
||||||
|
accepts the Agreement.
|
||||||
|
|
||||||
|
Initial Software: means the Software in its Source Code and possibly its
|
||||||
|
Object Code form and, where applicable, its documentation, "as is" when
|
||||||
|
it is first distributed under the terms and conditions of the Agreement.
|
||||||
|
|
||||||
|
Modified Software: means the Software modified by at least one
|
||||||
|
Integrated Contribution.
|
||||||
|
|
||||||
|
Source Code: means all the Software's instructions and program lines to
|
||||||
|
which access is required so as to modify the Software.
|
||||||
|
|
||||||
|
Object Code: means the binary files originating from the compilation of
|
||||||
|
the Source Code.
|
||||||
|
|
||||||
|
Holder: means the holder(s) of the economic rights over the Initial
|
||||||
|
Software.
|
||||||
|
|
||||||
|
Licensee: means the Software user(s) having accepted the Agreement.
|
||||||
|
|
||||||
|
Contributor: means a Licensee having made at least one Integrated
|
||||||
|
Contribution.
|
||||||
|
|
||||||
|
Licensor: means the Holder, or any other individual or legal entity, who
|
||||||
|
distributes the Software under the Agreement.
|
||||||
|
|
||||||
|
Integrated Contribution: means any or all modifications, corrections,
|
||||||
|
translations, adaptations and/or new functions integrated into the
|
||||||
|
Source Code by any or all Contributors.
|
||||||
|
|
||||||
|
Related Module: means a set of sources files including their
|
||||||
|
documentation that, without modification to the Source Code, enables
|
||||||
|
supplementary functions or services in addition to those offered by the
|
||||||
|
Software.
|
||||||
|
|
||||||
|
Derivative Software: means any combination of the Software, modified or
|
||||||
|
not, and of a Related Module.
|
||||||
|
|
||||||
|
Parties: mean both the Licensee and the Licensor.
|
||||||
|
|
||||||
|
These expressions may be used both in singular and plural form.
|
||||||
|
|
||||||
|
|
||||||
|
Article 2 - PURPOSE
|
||||||
|
|
||||||
|
The purpose of the Agreement is the grant by the Licensor to the
|
||||||
|
Licensee of a non-exclusive, transferable and worldwide license for the
|
||||||
|
Software as set forth in Article 5 hereinafter for the whole term of the
|
||||||
|
protection granted by the rights over said Software.
|
||||||
|
|
||||||
|
|
||||||
|
Article 3 - ACCEPTANCE
|
||||||
|
|
||||||
|
3.1 The Licensee shall be deemed as having accepted the terms and
|
||||||
|
conditions of this Agreement upon the occurrence of the first of the
|
||||||
|
following events:
|
||||||
|
|
||||||
|
* (i) loading the Software by any or all means, notably, by
|
||||||
|
downloading from a remote server, or by loading from a physical
|
||||||
|
medium;
|
||||||
|
* (ii) the first time the Licensee exercises any of the rights
|
||||||
|
granted hereunder.
|
||||||
|
|
||||||
|
3.2 One copy of the Agreement, containing a notice relating to the
|
||||||
|
characteristics of the Software, to the limited warranty, and to the
|
||||||
|
fact that its use is restricted to experienced users has been provided
|
||||||
|
to the Licensee prior to its acceptance as set forth in Article 3.1
|
||||||
|
hereinabove, and the Licensee hereby acknowledges that it has read and
|
||||||
|
understood it.
|
||||||
|
|
||||||
|
|
||||||
|
Article 4 - EFFECTIVE DATE AND TERM
|
||||||
|
|
||||||
|
|
||||||
|
4.1 EFFECTIVE DATE
|
||||||
|
|
||||||
|
The Agreement shall become effective on the date when it is accepted by
|
||||||
|
the Licensee as set forth in Article 3.1.
|
||||||
|
|
||||||
|
|
||||||
|
4.2 TERM
|
||||||
|
|
||||||
|
The Agreement shall remain in force for the entire legal term of
|
||||||
|
protection of the economic rights over the Software.
|
||||||
|
|
||||||
|
|
||||||
|
Article 5 - SCOPE OF RIGHTS GRANTED
|
||||||
|
|
||||||
|
The Licensor hereby grants to the Licensee, who accepts, the following
|
||||||
|
rights over the Software for any or all use, and for the term of the
|
||||||
|
Agreement, on the basis of the terms and conditions set forth hereinafter.
|
||||||
|
|
||||||
|
Besides, if the Licensor owns or comes to own one or more patents
|
||||||
|
protecting all or part of the functions of the Software or of its
|
||||||
|
components, the Licensor undertakes not to enforce the rights granted by
|
||||||
|
these patents against successive Licensees using, exploiting or
|
||||||
|
modifying the Software. If these patents are transferred, the Licensor
|
||||||
|
undertakes to have the transferees subscribe to the obligations set
|
||||||
|
forth in this paragraph.
|
||||||
|
|
||||||
|
|
||||||
|
5.1 RIGHT OF USE
|
||||||
|
|
||||||
|
The Licensee is authorized to use the Software, without any limitation
|
||||||
|
as to its fields of application, with it being hereinafter specified
|
||||||
|
that this comprises:
|
||||||
|
|
||||||
|
1. permanent or temporary reproduction of all or part of the Software
|
||||||
|
by any or all means and in any or all form.
|
||||||
|
|
||||||
|
2. loading, displaying, running, or storing the Software on any or
|
||||||
|
all medium.
|
||||||
|
|
||||||
|
3. entitlement to observe, study or test its operation so as to
|
||||||
|
determine the ideas and principles behind any or all constituent
|
||||||
|
elements of said Software. This shall apply when the Licensee
|
||||||
|
carries out any or all loading, displaying, running, transmission
|
||||||
|
or storage operation as regards the Software, that it is entitled
|
||||||
|
to carry out hereunder.
|
||||||
|
|
||||||
|
|
||||||
|
5.2 RIGHT OF MODIFICATION
|
||||||
|
|
||||||
|
The right of modification includes the right to translate, adapt,
|
||||||
|
arrange, or make any or all modifications to the Software, and the right
|
||||||
|
to reproduce the resulting software. It includes, in particular, the
|
||||||
|
right to create a Derivative Software.
|
||||||
|
|
||||||
|
The Licensee is authorized to make any or all modification to the
|
||||||
|
Software provided that it includes an explicit notice that it is the
|
||||||
|
author of said modification and indicates the date of the creation thereof.
|
||||||
|
|
||||||
|
|
||||||
|
5.3 RIGHT OF DISTRIBUTION
|
||||||
|
|
||||||
|
In particular, the right of distribution includes the right to publish,
|
||||||
|
transmit and communicate the Software to the general public on any or
|
||||||
|
all medium, and by any or all means, and the right to market, either in
|
||||||
|
consideration of a fee, or free of charge, one or more copies of the
|
||||||
|
Software by any means.
|
||||||
|
|
||||||
|
The Licensee is further authorized to distribute copies of the modified
|
||||||
|
or unmodified Software to third parties according to the terms and
|
||||||
|
conditions set forth hereinafter.
|
||||||
|
|
||||||
|
|
||||||
|
5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION
|
||||||
|
|
||||||
|
The Licensee is authorized to distribute true copies of the Software in
|
||||||
|
Source Code or Object Code form, provided that said distribution
|
||||||
|
complies with all the provisions of the Agreement and is accompanied by:
|
||||||
|
|
||||||
|
1. a copy of the Agreement,
|
||||||
|
|
||||||
|
2. a notice relating to the limitation of both the Licensor's
|
||||||
|
warranty and liability as set forth in Articles 8 and 9,
|
||||||
|
|
||||||
|
and that, in the event that only the Object Code of the Software is
|
||||||
|
redistributed, the Licensee allows effective access to the full Source
|
||||||
|
Code of the Software at a minimum during the entire period of its
|
||||||
|
distribution of the Software, it being understood that the additional
|
||||||
|
cost of acquiring the Source Code shall not exceed the cost of
|
||||||
|
transferring the data.
|
||||||
|
|
||||||
|
|
||||||
|
5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE
|
||||||
|
|
||||||
|
When the Licensee makes an Integrated Contribution to the Software, the
|
||||||
|
terms and conditions for the distribution of the resulting Modified
|
||||||
|
Software become subject to all the provisions of this Agreement.
|
||||||
|
|
||||||
|
The Licensee is authorized to distribute the Modified Software, in
|
||||||
|
source code or object code form, provided that said distribution
|
||||||
|
complies with all the provisions of the Agreement and is accompanied by:
|
||||||
|
|
||||||
|
1. a copy of the Agreement,
|
||||||
|
|
||||||
|
2. a notice relating to the limitation of both the Licensor's
|
||||||
|
warranty and liability as set forth in Articles 8 and 9,
|
||||||
|
|
||||||
|
and that, in the event that only the object code of the Modified
|
||||||
|
Software is redistributed, the Licensee allows effective access to the
|
||||||
|
full source code of the Modified Software at a minimum during the entire
|
||||||
|
period of its distribution of the Modified Software, it being understood
|
||||||
|
that the additional cost of acquiring the source code shall not exceed
|
||||||
|
the cost of transferring the data.
|
||||||
|
|
||||||
|
|
||||||
|
5.3.3 DISTRIBUTION OF DERIVATIVE SOFTWARE
|
||||||
|
|
||||||
|
When the Licensee creates Derivative Software, this Derivative Software
|
||||||
|
may be distributed under a license agreement other than this Agreement,
|
||||||
|
subject to compliance with the requirement to include a notice
|
||||||
|
concerning the rights over the Software as defined in Article 6.4.
|
||||||
|
In the event the creation of the Derivative Software required modification
|
||||||
|
of the Source Code, the Licensee undertakes that:
|
||||||
|
|
||||||
|
1. the resulting Modified Software will be governed by this Agreement,
|
||||||
|
2. the Integrated Contributions in the resulting Modified Software
|
||||||
|
will be clearly identified and documented,
|
||||||
|
3. the Licensee will allow effective access to the source code of the
|
||||||
|
Modified Software, at a minimum during the entire period of
|
||||||
|
distribution of the Derivative Software, such that such
|
||||||
|
modifications may be carried over in a subsequent version of the
|
||||||
|
Software; it being understood that the additional cost of
|
||||||
|
purchasing the source code of the Modified Software shall not
|
||||||
|
exceed the cost of transferring the data.
|
||||||
|
|
||||||
|
|
||||||
|
5.3.4 COMPATIBILITY WITH THE CeCILL LICENSE
|
||||||
|
|
||||||
|
When a Modified Software contains an Integrated Contribution subject to
|
||||||
|
the CeCILL license agreement, or when a Derivative Software contains a
|
||||||
|
Related Module subject to the CeCILL license agreement, the provisions
|
||||||
|
set forth in the third item of Article 6.4 are optional.
|
||||||
|
|
||||||
|
|
||||||
|
Article 6 - INTELLECTUAL PROPERTY
|
||||||
|
|
||||||
|
|
||||||
|
6.1 OVER THE INITIAL SOFTWARE
|
||||||
|
|
||||||
|
The Holder owns the economic rights over the Initial Software. Any or
|
||||||
|
all use of the Initial Software is subject to compliance with the terms
|
||||||
|
and conditions under which the Holder has elected to distribute its work
|
||||||
|
and no one shall be entitled to modify the terms and conditions for the
|
||||||
|
distribution of said Initial Software.
|
||||||
|
|
||||||
|
The Holder undertakes that the Initial Software will remain ruled at
|
||||||
|
least by this Agreement, for the duration set forth in Article 4.2.
|
||||||
|
|
||||||
|
|
||||||
|
6.2 OVER THE INTEGRATED CONTRIBUTIONS
|
||||||
|
|
||||||
|
The Licensee who develops an Integrated Contribution is the owner of the
|
||||||
|
intellectual property rights over this Contribution as defined by
|
||||||
|
applicable law.
|
||||||
|
|
||||||
|
|
||||||
|
6.3 OVER THE RELATED MODULES
|
||||||
|
|
||||||
|
The Licensee who develops a Related Module is the owner of the
|
||||||
|
intellectual property rights over this Related Module as defined by
|
||||||
|
applicable law and is free to choose the type of agreement that shall
|
||||||
|
govern its distribution under the conditions defined in Article 5.3.3.
|
||||||
|
|
||||||
|
|
||||||
|
6.4 NOTICE OF RIGHTS
|
||||||
|
|
||||||
|
The Licensee expressly undertakes:
|
||||||
|
|
||||||
|
1. not to remove, or modify, in any manner, the intellectual property
|
||||||
|
notices attached to the Software;
|
||||||
|
|
||||||
|
2. to reproduce said notices, in an identical manner, in the copies
|
||||||
|
of the Software modified or not;
|
||||||
|
|
||||||
|
3. to ensure that use of the Software, its intellectual property
|
||||||
|
notices and the fact that it is governed by the Agreement is
|
||||||
|
indicated in a text that is easily accessible, specifically from
|
||||||
|
the interface of any Derivative Software.
|
||||||
|
|
||||||
|
The Licensee undertakes not to directly or indirectly infringe the
|
||||||
|
intellectual property rights of the Holder and/or Contributors on the
|
||||||
|
Software and to take, where applicable, vis-<2D>-vis its staff, any and all
|
||||||
|
measures required to ensure respect of said intellectual property rights
|
||||||
|
of the Holder and/or Contributors.
|
||||||
|
|
||||||
|
|
||||||
|
Article 7 - RELATED SERVICES
|
||||||
|
|
||||||
|
7.1 Under no circumstances shall the Agreement oblige the Licensor to
|
||||||
|
provide technical assistance or maintenance services for the Software.
|
||||||
|
|
||||||
|
However, the Licensor is entitled to offer this type of services. The
|
||||||
|
terms and conditions of such technical assistance, and/or such
|
||||||
|
maintenance, shall be set forth in a separate instrument. Only the
|
||||||
|
Licensor offering said maintenance and/or technical assistance services
|
||||||
|
shall incur liability therefor.
|
||||||
|
|
||||||
|
7.2 Similarly, any Licensor is entitled to offer to its licensees, under
|
||||||
|
its sole responsibility, a warranty, that shall only be binding upon
|
||||||
|
itself, for the redistribution of the Software and/or the Modified
|
||||||
|
Software, under terms and conditions that it is free to decide. Said
|
||||||
|
warranty, and the financial terms and conditions of its application,
|
||||||
|
shall be subject of a separate instrument executed between the Licensor
|
||||||
|
and the Licensee.
|
||||||
|
|
||||||
|
|
||||||
|
Article 8 - LIABILITY
|
||||||
|
|
||||||
|
8.1 Subject to the provisions of Article 8.2, the Licensee shall be
|
||||||
|
entitled to claim compensation for any direct loss it may have suffered
|
||||||
|
from the Software as a result of a fault on the part of the relevant
|
||||||
|
Licensor, subject to providing evidence thereof.
|
||||||
|
|
||||||
|
8.2 The Licensor's liability is limited to the commitments made under
|
||||||
|
this Agreement and shall not be incurred as a result of in particular:
|
||||||
|
(i) loss due the Licensee's total or partial failure to fulfill its
|
||||||
|
obligations, (ii) direct or consequential loss that is suffered by the
|
||||||
|
Licensee due to the use or performance of the Software, and (iii) more
|
||||||
|
generally, any consequential loss. In particular the Parties expressly
|
||||||
|
agree that any or all pecuniary or business loss (i.e. loss of data,
|
||||||
|
loss of profits, operating loss, loss of customers or orders,
|
||||||
|
opportunity cost, any disturbance to business activities) or any or all
|
||||||
|
legal proceedings instituted against the Licensee by a third party,
|
||||||
|
shall constitute consequential loss and shall not provide entitlement to
|
||||||
|
any or all compensation from the Licensor.
|
||||||
|
|
||||||
|
|
||||||
|
Article 9 - WARRANTY
|
||||||
|
|
||||||
|
9.1 The Licensee acknowledges that the scientific and technical
|
||||||
|
state-of-the-art when the Software was distributed did not enable all
|
||||||
|
possible uses to be tested and verified, nor for the presence of
|
||||||
|
possible defects to be detected. In this respect, the Licensee's
|
||||||
|
attention has been drawn to the risks associated with loading, using,
|
||||||
|
modifying and/or developing and reproducing the Software which are
|
||||||
|
reserved for experienced users.
|
||||||
|
|
||||||
|
The Licensee shall be responsible for verifying, by any or all means,
|
||||||
|
the suitability of the product for its requirements, its good working
|
||||||
|
order, and for ensuring that it shall not cause damage to either persons
|
||||||
|
or properties.
|
||||||
|
|
||||||
|
9.2 The Licensor hereby represents, in good faith, that it is entitled
|
||||||
|
to grant all the rights over the Software (including in particular the
|
||||||
|
rights set forth in Article 5).
|
||||||
|
|
||||||
|
9.3 The Licensee acknowledges that the Software is supplied "as is" by
|
||||||
|
the Licensor without any other express or tacit warranty, other than
|
||||||
|
that provided for in Article 9.2 and, in particular, without any warranty
|
||||||
|
as to its commercial value, its secured, safe, innovative or relevant
|
||||||
|
nature.
|
||||||
|
|
||||||
|
Specifically, the Licensor does not warrant that the Software is free
|
||||||
|
from any error, that it will operate without interruption, that it will
|
||||||
|
be compatible with the Licensee's own equipment and software
|
||||||
|
configuration, nor that it will meet the Licensee's requirements.
|
||||||
|
|
||||||
|
9.4 The Licensor does not either expressly or tacitly warrant that the
|
||||||
|
Software does not infringe any third party intellectual property right
|
||||||
|
relating to a patent, software or any other property right. Therefore,
|
||||||
|
the Licensor disclaims any and all liability towards the Licensee
|
||||||
|
arising out of any or all proceedings for infringement that may be
|
||||||
|
instituted in respect of the use, modification and redistribution of the
|
||||||
|
Software. Nevertheless, should such proceedings be instituted against
|
||||||
|
the Licensee, the Licensor shall provide it with technical and legal
|
||||||
|
assistance for its defense. Such technical and legal assistance shall be
|
||||||
|
decided on a case-by-case basis between the relevant Licensor and the
|
||||||
|
Licensee pursuant to a memorandum of understanding. The Licensor
|
||||||
|
disclaims any and all liability as regards the Licensee's use of the
|
||||||
|
name of the Software. No warranty is given as regards the existence of
|
||||||
|
prior rights over the name of the Software or as regards the existence
|
||||||
|
of a trademark.
|
||||||
|
|
||||||
|
|
||||||
|
Article 10 - TERMINATION
|
||||||
|
|
||||||
|
10.1 In the event of a breach by the Licensee of its obligations
|
||||||
|
hereunder, the Licensor may automatically terminate this Agreement
|
||||||
|
thirty (30) days after notice has been sent to the Licensee and has
|
||||||
|
remained ineffective.
|
||||||
|
|
||||||
|
10.2 A Licensee whose Agreement is terminated shall no longer be
|
||||||
|
authorized to use, modify or distribute the Software. However, any
|
||||||
|
licenses that it may have granted prior to termination of the Agreement
|
||||||
|
shall remain valid subject to their having been granted in compliance
|
||||||
|
with the terms and conditions hereof.
|
||||||
|
|
||||||
|
|
||||||
|
Article 11 - MISCELLANEOUS
|
||||||
|
|
||||||
|
|
||||||
|
11.1 EXCUSABLE EVENTS
|
||||||
|
|
||||||
|
Neither Party shall be liable for any or all delay, or failure to
|
||||||
|
perform the Agreement, that may be attributable to an event of force
|
||||||
|
majeure, an act of God or an outside cause, such as defective
|
||||||
|
functioning or interruptions of the electricity or telecommunications
|
||||||
|
networks, network paralysis following a virus attack, intervention by
|
||||||
|
government authorities, natural disasters, water damage, earthquakes,
|
||||||
|
fire, explosions, strikes and labor unrest, war, etc.
|
||||||
|
|
||||||
|
11.2 Any failure by either Party, on one or more occasions, to invoke
|
||||||
|
one or more of the provisions hereof, shall under no circumstances be
|
||||||
|
interpreted as being a waiver by the interested Party of its right to
|
||||||
|
invoke said provision(s) subsequently.
|
||||||
|
|
||||||
|
11.3 The Agreement cancels and replaces any or all previous agreements,
|
||||||
|
whether written or oral, between the Parties and having the same
|
||||||
|
purpose, and constitutes the entirety of the agreement between said
|
||||||
|
Parties concerning said purpose. No supplement or modification to the
|
||||||
|
terms and conditions hereof shall be effective as between the Parties
|
||||||
|
unless it is made in writing and signed by their duly authorized
|
||||||
|
representatives.
|
||||||
|
|
||||||
|
11.4 In the event that one or more of the provisions hereof were to
|
||||||
|
conflict with a current or future applicable act or legislative text,
|
||||||
|
said act or legislative text shall prevail, and the Parties shall make
|
||||||
|
the necessary amendments so as to comply with said act or legislative
|
||||||
|
text. All other provisions shall remain effective. Similarly, invalidity
|
||||||
|
of a provision of the Agreement, for any reason whatsoever, shall not
|
||||||
|
cause the Agreement as a whole to be invalid.
|
||||||
|
|
||||||
|
|
||||||
|
11.5 LANGUAGE
|
||||||
|
|
||||||
|
The Agreement is drafted in both French and English and both versions
|
||||||
|
are deemed authentic.
|
||||||
|
|
||||||
|
|
||||||
|
Article 12 - NEW VERSIONS OF THE AGREEMENT
|
||||||
|
|
||||||
|
12.1 Any person is authorized to duplicate and distribute copies of this
|
||||||
|
Agreement.
|
||||||
|
|
||||||
|
12.2 So as to ensure coherence, the wording of this Agreement is
|
||||||
|
protected and may only be modified by the authors of the License, who
|
||||||
|
reserve the right to periodically publish updates or new versions of the
|
||||||
|
Agreement, each with a separate number. These subsequent versions may
|
||||||
|
address new issues encountered by Free Software.
|
||||||
|
|
||||||
|
12.3 Any Software distributed under a given version of the Agreement may
|
||||||
|
only be subsequently distributed under the same version of the Agreement
|
||||||
|
or a subsequent version.
|
||||||
|
|
||||||
|
|
||||||
|
Article 13 - GOVERNING LAW AND JURISDICTION
|
||||||
|
|
||||||
|
13.1 The Agreement is governed by French law. The Parties agree to
|
||||||
|
endeavor to seek an amicable solution to any disagreements or disputes
|
||||||
|
that may arise during the performance of the Agreement.
|
||||||
|
|
||||||
|
13.2 Failing an amicable solution within two (2) months as from their
|
||||||
|
occurrence, and unless emergency proceedings are necessary, the
|
||||||
|
disagreements or disputes shall be referred to the Paris Courts having
|
||||||
|
jurisdiction, by the more diligent Party.
|
||||||
|
|
||||||
|
|
||||||
|
Version 1.0 dated 2006-09-05.
|
||||||
521
scotch_6.0.3/doc/CeCILL-C_V1-fr.txt
Normal file
521
scotch_6.0.3/doc/CeCILL-C_V1-fr.txt
Normal file
@ -0,0 +1,521 @@
|
|||||||
|
|
||||||
|
CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-C
|
||||||
|
|
||||||
|
|
||||||
|
Avertissement
|
||||||
|
|
||||||
|
Ce contrat est une licence de logiciel libre issue d'une concertation
|
||||||
|
entre ses auteurs afin que le respect de deux grands principes pr<70>side <20>
|
||||||
|
sa r<>daction:
|
||||||
|
|
||||||
|
* d'une part, le respect des principes de diffusion des logiciels
|
||||||
|
libres: acc<63>s au code source, droits <20>tendus conf<6E>r<EFBFBD>s aux
|
||||||
|
utilisateurs,
|
||||||
|
* d'autre part, la d<>signation d'un droit applicable, le droit
|
||||||
|
fran<61>ais, auquel elle est conforme, tant au regard du droit de la
|
||||||
|
responsabilit<69> civile que du droit de la propri<72>t<EFBFBD> intellectuelle
|
||||||
|
et de la protection qu'il offre aux auteurs et titulaires des
|
||||||
|
droits patrimoniaux sur un logiciel.
|
||||||
|
|
||||||
|
Les auteurs de la licence CeCILL-C (pour Ce[a] C[nrs] I[nria] L[ogiciel]
|
||||||
|
L[ibre]) sont:
|
||||||
|
|
||||||
|
Commissariat <20> l'Energie Atomique - CEA, <20>tablissement public de
|
||||||
|
recherche <20> caract<63>re scientifique, technique et industriel, dont le
|
||||||
|
si<EFBFBD>ge est situ<74> 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris.
|
||||||
|
|
||||||
|
Centre National de la Recherche Scientifique - CNRS, <20>tablissement
|
||||||
|
public <20> caract<63>re scientifique et technologique, dont le si<73>ge est
|
||||||
|
situ<EFBFBD> 3 rue Michel-Ange, 75794 Paris cedex 16.
|
||||||
|
|
||||||
|
Institut National de Recherche en Informatique et en Automatique -
|
||||||
|
INRIA, <20>tablissement public <20> caract<63>re scientifique et technologique,
|
||||||
|
dont le si<73>ge est situ<74> Domaine de Voluceau, Rocquencourt, BP 105, 78153
|
||||||
|
Le Chesnay cedex.
|
||||||
|
|
||||||
|
|
||||||
|
Pr<50>ambule
|
||||||
|
|
||||||
|
Ce contrat est une licence de logiciel libre dont l'objectif est de
|
||||||
|
conf<EFBFBD>rer aux utilisateurs la libert<72> de modifier et de r<>utiliser le
|
||||||
|
logiciel r<>gi par cette licence.
|
||||||
|
|
||||||
|
L'exercice de cette libert<72> est assorti d'une obligation de remettre <20>
|
||||||
|
la disposition de la communaut<75> les modifications apport<72>es au code
|
||||||
|
source du logiciel afin de contribuer <20> son <20>volution.
|
||||||
|
|
||||||
|
L'accessibilit<69> au code source et les droits de copie, de modification
|
||||||
|
et de redistribution qui d<>coulent de ce contrat ont pour contrepartie
|
||||||
|
de n'offrir aux utilisateurs qu'une garantie limit<69>e et de ne faire
|
||||||
|
peser sur l'auteur du logiciel, le titulaire des droits patrimoniaux et
|
||||||
|
les conc<6E>dants successifs qu'une responsabilit<69> restreinte.
|
||||||
|
|
||||||
|
A cet <20>gard l'attention de l'utilisateur est attir<69>e sur les risques
|
||||||
|
associ<EFBFBD>s au chargement, <20> l'utilisation, <20> la modification et/ou au
|
||||||
|
d<EFBFBD>veloppement et <20> la reproduction du logiciel par l'utilisateur <20>tant
|
||||||
|
donn<EFBFBD> sa sp<73>cificit<69> de logiciel libre, qui peut le rendre complexe <20>
|
||||||
|
manipuler et qui le r<>serve donc <20> des d<>veloppeurs ou des
|
||||||
|
professionnels avertis poss<73>dant des connaissances informatiques
|
||||||
|
approfondies. Les utilisateurs sont donc invit<69>s <20> charger et tester
|
||||||
|
l'ad<61>quation du logiciel <20> leurs besoins dans des conditions permettant
|
||||||
|
d'assurer la s<>curit<69> de leurs syst<73>mes et/ou de leurs donn<6E>es et, plus
|
||||||
|
g<EFBFBD>n<EFBFBD>ralement, <20> l'utiliser et l'exploiter dans les m<>mes conditions de
|
||||||
|
s<EFBFBD>curit<EFBFBD>. Ce contrat peut <20>tre reproduit et diffus<75> librement, sous
|
||||||
|
r<EFBFBD>serve de le conserver en l'<27>tat, sans ajout ni suppression de clauses.
|
||||||
|
|
||||||
|
Ce contrat est susceptible de s'appliquer <20> tout logiciel dont le
|
||||||
|
titulaire des droits patrimoniaux d<>cide de soumettre l'exploitation aux
|
||||||
|
dispositions qu'il contient.
|
||||||
|
|
||||||
|
|
||||||
|
Article 1 - DEFINITIONS
|
||||||
|
|
||||||
|
Dans ce contrat, les termes suivants, lorsqu'ils seront <20>crits avec une
|
||||||
|
lettre capitale, auront la signification suivante:
|
||||||
|
|
||||||
|
Contrat: d<>signe le pr<70>sent contrat de licence, ses <20>ventuelles versions
|
||||||
|
post<EFBFBD>rieures et annexes.
|
||||||
|
|
||||||
|
Logiciel: d<>signe le logiciel sous sa forme de Code Objet et/ou de Code
|
||||||
|
Source et le cas <20>ch<63>ant sa documentation, dans leur <20>tat au moment de
|
||||||
|
l'acceptation du Contrat par le Licenci<63>.
|
||||||
|
|
||||||
|
Logiciel Initial: d<>signe le Logiciel sous sa forme de Code Source et
|
||||||
|
<EFBFBD>ventuellement de Code Objet et le cas <20>ch<63>ant sa documentation, dans
|
||||||
|
leur <20>tat au moment de leur premi<6D>re diffusion sous les termes du Contrat.
|
||||||
|
|
||||||
|
Logiciel Modifi<66>: d<>signe le Logiciel modifi<66> par au moins une
|
||||||
|
Contribution Int<6E>gr<67>e.
|
||||||
|
|
||||||
|
Code Source: d<>signe l'ensemble des instructions et des lignes de
|
||||||
|
programme du Logiciel et auquel l'acc<63>s est n<>cessaire en vue de
|
||||||
|
modifier le Logiciel.
|
||||||
|
|
||||||
|
Code Objet: d<>signe les fichiers binaires issus de la compilation du
|
||||||
|
Code Source.
|
||||||
|
|
||||||
|
Titulaire: d<>signe le ou les d<>tenteurs des droits patrimoniaux d'auteur
|
||||||
|
sur le Logiciel Initial.
|
||||||
|
|
||||||
|
Licenci<EFBFBD>: d<>signe le ou les utilisateurs du Logiciel ayant accept<70> le
|
||||||
|
Contrat.
|
||||||
|
|
||||||
|
Contributeur: d<>signe le Licenci<63> auteur d'au moins une Contribution
|
||||||
|
Int<EFBFBD>gr<EFBFBD>e.
|
||||||
|
|
||||||
|
Conc<EFBFBD>dant: d<>signe le Titulaire ou toute personne physique ou morale
|
||||||
|
distribuant le Logiciel sous le Contrat.
|
||||||
|
|
||||||
|
Contribution Int<6E>gr<67>e: d<>signe l'ensemble des modifications,
|
||||||
|
corrections, traductions, adaptations et/ou nouvelles fonctionnalit<69>s
|
||||||
|
int<EFBFBD>gr<EFBFBD>es dans le Code Source par tout Contributeur.
|
||||||
|
|
||||||
|
Module Li<4C>: d<>signe un ensemble de fichiers sources y compris leur
|
||||||
|
documentation qui, sans modification du Code Source, permet de r<>aliser
|
||||||
|
des fonctionnalit<69>s ou services suppl<70>mentaires <20> ceux fournis par le
|
||||||
|
Logiciel.
|
||||||
|
|
||||||
|
Logiciel D<>riv<69>: d<>signe toute combinaison du Logiciel, modifi<66> ou non,
|
||||||
|
et d'un Module Li<4C>.
|
||||||
|
|
||||||
|
Parties: d<>signe collectivement le Licenci<63> et le Conc<6E>dant.
|
||||||
|
|
||||||
|
Ces termes s'entendent au singulier comme au pluriel.
|
||||||
|
|
||||||
|
|
||||||
|
Article 2 - OBJET
|
||||||
|
|
||||||
|
Le Contrat a pour objet la concession par le Conc<6E>dant au Licenci<63> d'une
|
||||||
|
licence non exclusive, cessible et mondiale du Logiciel telle que
|
||||||
|
d<EFBFBD>finie ci-apr<70>s <20> l'article 5 pour toute la dur<75>e de protection des droits
|
||||||
|
portant sur ce Logiciel.
|
||||||
|
|
||||||
|
|
||||||
|
Article 3 - ACCEPTATION
|
||||||
|
|
||||||
|
3.1 L'acceptation par le Licenci<63> des termes du Contrat est r<>put<75>e
|
||||||
|
acquise du fait du premier des faits suivants:
|
||||||
|
|
||||||
|
* (i) le chargement du Logiciel par tout moyen notamment par
|
||||||
|
t<>l<EFBFBD>chargement <20> partir d'un serveur distant ou par chargement <20>
|
||||||
|
partir d'un support physique;
|
||||||
|
* (ii) le premier exercice par le Licenci<63> de l'un quelconque des
|
||||||
|
droits conc<6E>d<EFBFBD>s par le Contrat.
|
||||||
|
|
||||||
|
3.2 Un exemplaire du Contrat, contenant notamment un avertissement
|
||||||
|
relatif aux sp<73>cificit<69>s du Logiciel, <20> la restriction de garantie et <20>
|
||||||
|
la limitation <20> un usage par des utilisateurs exp<78>riment<6E>s a <20>t<EFBFBD> mis <20>
|
||||||
|
disposition du Licenci<63> pr<70>alablement <20> son acceptation telle que
|
||||||
|
d<EFBFBD>finie <20> l'article 3.1 ci dessus et le Licenci<63> reconna<6E>t en avoir pris
|
||||||
|
connaissance.
|
||||||
|
|
||||||
|
|
||||||
|
Article 4 - ENTREE EN VIGUEUR ET DUREE
|
||||||
|
|
||||||
|
|
||||||
|
4.1 ENTREE EN VIGUEUR
|
||||||
|
|
||||||
|
Le Contrat entre en vigueur <20> la date de son acceptation par le Licenci<63>
|
||||||
|
telle que d<>finie en 3.1.
|
||||||
|
|
||||||
|
|
||||||
|
4.2 DUREE
|
||||||
|
|
||||||
|
Le Contrat produira ses effets pendant toute la dur<75>e l<>gale de
|
||||||
|
protection des droits patrimoniaux portant sur le Logiciel.
|
||||||
|
|
||||||
|
|
||||||
|
Article 5 - ETENDUE DES DROITS CONCEDES
|
||||||
|
|
||||||
|
Le Conc<6E>dant conc<6E>de au Licenci<63>, qui accepte, les droits suivants sur
|
||||||
|
le Logiciel pour toutes destinations et pour la dur<75>e du Contrat dans
|
||||||
|
les conditions ci-apr<70>s d<>taill<6C>es.
|
||||||
|
|
||||||
|
Par ailleurs, si le Conc<6E>dant d<>tient ou venait <20> d<>tenir un ou
|
||||||
|
plusieurs brevets d'invention prot<6F>geant tout ou partie des
|
||||||
|
fonctionnalit<EFBFBD>s du Logiciel ou de ses composants, il s'engage <20> ne pas
|
||||||
|
opposer les <20>ventuels droits conf<6E>r<EFBFBD>s par ces brevets aux Licenci<63>s
|
||||||
|
successifs qui utiliseraient, exploiteraient ou modifieraient le
|
||||||
|
Logiciel. En cas de cession de ces brevets, le Conc<6E>dant s'engage <20>
|
||||||
|
faire reprendre les obligations du pr<70>sent alin<69>a aux cessionnaires.
|
||||||
|
|
||||||
|
|
||||||
|
5.1 DROIT D'UTILISATION
|
||||||
|
|
||||||
|
Le Licenci<63> est autoris<69> <20> utiliser le Logiciel, sans restriction quant
|
||||||
|
aux domaines d'application, <20>tant ci-apr<70>s pr<70>cis<69> que cela comporte:
|
||||||
|
|
||||||
|
1. la reproduction permanente ou provisoire du Logiciel en tout ou
|
||||||
|
partie par tout moyen et sous toute forme.
|
||||||
|
|
||||||
|
2. le chargement, l'affichage, l'ex<65>cution, ou le stockage du
|
||||||
|
Logiciel sur tout support.
|
||||||
|
|
||||||
|
3. la possibilit<69> d'en observer, d'en <20>tudier, ou d'en tester le
|
||||||
|
fonctionnement afin de d<>terminer les id<69>es et principes qui sont
|
||||||
|
<20> la base de n'importe quel <20>l<EFBFBD>ment de ce Logiciel; et ceci,
|
||||||
|
lorsque le Licenci<63> effectue toute op<6F>ration de chargement,
|
||||||
|
d'affichage, d'ex<65>cution, de transmission ou de stockage du
|
||||||
|
Logiciel qu'il est en droit d'effectuer en vertu du Contrat.
|
||||||
|
|
||||||
|
|
||||||
|
5.2 DROIT DE MODIFICATION
|
||||||
|
|
||||||
|
Le droit de modification comporte le droit de traduire, d'adapter,
|
||||||
|
d'arranger ou d'apporter toute autre modification au Logiciel et le
|
||||||
|
droit de reproduire le logiciel en r<>sultant. Il comprend en particulier
|
||||||
|
le droit de cr<63>er un Logiciel D<>riv<69>.
|
||||||
|
|
||||||
|
Le Licenci<63> est autoris<69> <20> apporter toute modification au Logiciel sous
|
||||||
|
r<EFBFBD>serve de mentionner, de fa<66>on explicite, son nom en tant qu'auteur de
|
||||||
|
cette modification et la date de cr<63>ation de celle-ci.
|
||||||
|
|
||||||
|
|
||||||
|
5.3 DROIT DE DISTRIBUTION
|
||||||
|
|
||||||
|
Le droit de distribution comporte notamment le droit de diffuser, de
|
||||||
|
transmettre et de communiquer le Logiciel au public sur tout support et
|
||||||
|
par tout moyen ainsi que le droit de mettre sur le march<63> <20> titre
|
||||||
|
on<EFBFBD>reux ou gratuit, un ou des exemplaires du Logiciel par tout proc<6F>d<EFBFBD>.
|
||||||
|
|
||||||
|
Le Licenci<63> est autoris<69> <20> distribuer des copies du Logiciel, modifi<66> ou
|
||||||
|
non, <20> des tiers dans les conditions ci-apr<70>s d<>taill<6C>es.
|
||||||
|
|
||||||
|
|
||||||
|
5.3.1 DISTRIBUTION DU LOGICIEL SANS MODIFICATION
|
||||||
|
|
||||||
|
Le Licenci<63> est autoris<69> <20> distribuer des copies conformes du Logiciel,
|
||||||
|
sous forme de Code Source ou de Code Objet, <20> condition que cette
|
||||||
|
distribution respecte les dispositions du Contrat dans leur totalit<69> et
|
||||||
|
soit accompagn<67>e:
|
||||||
|
|
||||||
|
1. d'un exemplaire du Contrat,
|
||||||
|
|
||||||
|
2. d'un avertissement relatif <20> la restriction de garantie et de
|
||||||
|
responsabilit<69> du Conc<6E>dant telle que pr<70>vue aux articles 8
|
||||||
|
et 9,
|
||||||
|
|
||||||
|
et que, dans le cas o<> seul le Code Objet du Logiciel est redistribu<62>,
|
||||||
|
le Licenci<63> permette un acc<63>s effectif au Code Source complet du
|
||||||
|
Logiciel pendant au moins toute la dur<75>e de sa distribution du Logiciel,
|
||||||
|
<EFBFBD>tant entendu que le co<63>t additionnel d'acquisition du Code Source ne
|
||||||
|
devra pas exc<78>der le simple co<63>t de transfert des donn<6E>es.
|
||||||
|
|
||||||
|
|
||||||
|
5.3.2 DISTRIBUTION DU LOGICIEL MODIFIE
|
||||||
|
|
||||||
|
Lorsque le Licenci<63> apporte une Contribution Int<6E>gr<67>e au Logiciel, les
|
||||||
|
conditions de distribution du Logiciel Modifi<66> en r<>sultant sont alors
|
||||||
|
soumises <20> l'int<6E>gralit<69> des dispositions du Contrat.
|
||||||
|
|
||||||
|
Le Licenci<63> est autoris<69> <20> distribuer le Logiciel Modifi<66> sous forme de
|
||||||
|
code source ou de code objet, <20> condition que cette distribution
|
||||||
|
respecte les dispositions du Contrat dans leur totalit<69> et soit
|
||||||
|
accompagn<EFBFBD>e:
|
||||||
|
|
||||||
|
1. d'un exemplaire du Contrat,
|
||||||
|
|
||||||
|
2. d'un avertissement relatif <20> la restriction de garantie et de
|
||||||
|
responsabilit<69> du Conc<6E>dant telle que pr<70>vue aux articles 8
|
||||||
|
et 9,
|
||||||
|
|
||||||
|
et que, dans le cas o<> seul le code objet du Logiciel Modifi<66> est
|
||||||
|
redistribu<EFBFBD>, le Licenci<63> permette un acc<63>s effectif <20> son code source
|
||||||
|
complet pendant au moins toute la dur<75>e de sa distribution du Logiciel
|
||||||
|
Modifi<EFBFBD>, <20>tant entendu que le co<63>t additionnel d'acquisition du code
|
||||||
|
source ne devra pas exc<78>der le simple co<63>t de transfert des donn<6E>es.
|
||||||
|
|
||||||
|
|
||||||
|
5.3.3 DISTRIBUTION DU LOGICIEL DERIVE
|
||||||
|
|
||||||
|
Lorsque le Licenci<63> cr<63>e un Logiciel D<>riv<69>, ce Logiciel D<>riv<69> peut
|
||||||
|
<EFBFBD>tre distribu<62> sous un contrat de licence autre que le pr<70>sent Contrat <20>
|
||||||
|
condition de respecter les obligations de mention des droits sur le
|
||||||
|
Logiciel telles que d<>finies <20> l'article 6.4. Dans le cas o<> la cr<63>ation du
|
||||||
|
Logiciel D<>riv<69> a n<>cessit<69> une modification du Code Source le licenci<63>
|
||||||
|
s'engage <20> ce que:
|
||||||
|
|
||||||
|
1. le Logiciel Modifi<66> correspondant <20> cette modification soit r<>gi
|
||||||
|
par le pr<70>sent Contrat,
|
||||||
|
2. les Contributions Int<6E>gr<67>es dont le Logiciel Modifi<66> r<>sulte
|
||||||
|
soient clairement identifi<66>es et document<6E>es,
|
||||||
|
3. le Licenci<63> permette un acc<63>s effectif au code source du Logiciel
|
||||||
|
Modifi<66>, pendant au moins toute la dur<75>e de la distribution du
|
||||||
|
Logiciel D<>riv<69>, de telle sorte que ces modifications puissent
|
||||||
|
<20>tre reprises dans une version ult<6C>rieure du Logiciel, <20>tant
|
||||||
|
entendu que le co<63>t additionnel d'acquisition du code source du
|
||||||
|
Logiciel Modifi<66> ne devra pas exc<78>der le simple co<63>t du transfert
|
||||||
|
des donn<6E>es.
|
||||||
|
|
||||||
|
|
||||||
|
5.3.4 COMPATIBILITE AVEC LA LICENCE CeCILL
|
||||||
|
|
||||||
|
Lorsqu'un Logiciel Modifi<66> contient une Contribution Int<6E>gr<67>e soumise au
|
||||||
|
contrat de licence CeCILL, ou lorsqu'un Logiciel D<>riv<69> contient un
|
||||||
|
Module Li<4C> soumis au contrat de licence CeCILL, les stipulations pr<70>vues
|
||||||
|
au troisi<73>me item de l'article 6.4 sont facultatives.
|
||||||
|
|
||||||
|
|
||||||
|
Article 6 - PROPRIETE INTELLECTUELLE
|
||||||
|
|
||||||
|
|
||||||
|
6.1 SUR LE LOGICIEL INITIAL
|
||||||
|
|
||||||
|
Le Titulaire est d<>tenteur des droits patrimoniaux sur le Logiciel
|
||||||
|
Initial. Toute utilisation du Logiciel Initial est soumise au respect
|
||||||
|
des conditions dans lesquelles le Titulaire a choisi de diffuser son
|
||||||
|
oeuvre et nul autre n'a la facult<6C> de modifier les conditions de
|
||||||
|
diffusion de ce Logiciel Initial.
|
||||||
|
|
||||||
|
Le Titulaire s'engage <20> ce que le Logiciel Initial reste au moins r<>gi
|
||||||
|
par le Contrat et ce, pour la dur<75>e vis<69>e <20> l'article 4.2.
|
||||||
|
|
||||||
|
|
||||||
|
6.2 SUR LES CONTRIBUTIONS INTEGREES
|
||||||
|
|
||||||
|
Le Licenci<63> qui a d<>velopp<70> une Contribution Int<6E>gr<67>e est titulaire sur
|
||||||
|
celle-ci des droits de propri<72>t<EFBFBD> intellectuelle dans les conditions
|
||||||
|
d<EFBFBD>finies par la l<>gislation applicable.
|
||||||
|
|
||||||
|
|
||||||
|
6.3 SUR LES MODULES LIES
|
||||||
|
|
||||||
|
Le Licenci<63> qui a d<>velopp<70> un Module Li<4C> est titulaire sur celui-ci des
|
||||||
|
droits de propri<72>t<EFBFBD> intellectuelle dans les conditions d<>finies par la
|
||||||
|
l<EFBFBD>gislation applicable et reste libre du choix du contrat r<>gissant sa
|
||||||
|
diffusion dans les conditions d<>finies <20> l'article 5.3.3.
|
||||||
|
|
||||||
|
|
||||||
|
6.4 MENTIONS DES DROITS
|
||||||
|
|
||||||
|
Le Licenci<63> s'engage express<73>ment:
|
||||||
|
|
||||||
|
1. <20> ne pas supprimer ou modifier de quelque mani<6E>re que ce soit les
|
||||||
|
mentions de propri<72>t<EFBFBD> intellectuelle appos<6F>es sur le Logiciel;
|
||||||
|
|
||||||
|
2. <20> reproduire <20> l'identique lesdites mentions de propri<72>t<EFBFBD>
|
||||||
|
intellectuelle sur les copies du Logiciel modifi<66> ou non;
|
||||||
|
|
||||||
|
3. <20> faire en sorte que l'utilisation du Logiciel, ses mentions de
|
||||||
|
propri<72>t<EFBFBD> intellectuelle et le fait qu'il est r<>gi par le Contrat
|
||||||
|
soient indiqu<71>s dans un texte facilement accessible notamment
|
||||||
|
depuis l'interface de tout Logiciel D<>riv<69>.
|
||||||
|
|
||||||
|
Le Licenci<63> s'engage <20> ne pas porter atteinte, directement ou
|
||||||
|
indirectement, aux droits de propri<72>t<EFBFBD> intellectuelle du Titulaire et/ou
|
||||||
|
des Contributeurs sur le Logiciel et <20> prendre, le cas <20>ch<63>ant, <20>
|
||||||
|
l'<27>gard de son personnel toutes les mesures n<>cessaires pour assurer le
|
||||||
|
respect des dits droits de propri<72>t<EFBFBD> intellectuelle du Titulaire et/ou
|
||||||
|
des Contributeurs.
|
||||||
|
|
||||||
|
|
||||||
|
Article 7 - SERVICES ASSOCIES
|
||||||
|
|
||||||
|
7.1 Le Contrat n'oblige en aucun cas le Conc<6E>dant <20> la r<>alisation de
|
||||||
|
prestations d'assistance technique ou de maintenance du Logiciel.
|
||||||
|
|
||||||
|
Cependant le Conc<6E>dant reste libre de proposer ce type de services. Les
|
||||||
|
termes et conditions d'une telle assistance technique et/ou d'une telle
|
||||||
|
maintenance seront alors d<>termin<69>s dans un acte s<>par<61>. Ces actes de
|
||||||
|
maintenance et/ou assistance technique n'engageront que la seule
|
||||||
|
responsabilit<EFBFBD> du Conc<6E>dant qui les propose.
|
||||||
|
|
||||||
|
7.2 De m<>me, tout Conc<6E>dant est libre de proposer, sous sa seule
|
||||||
|
responsabilit<EFBFBD>, <20> ses licenci<63>s une garantie, qui n'engagera que lui,
|
||||||
|
lors de la redistribution du Logiciel et/ou du Logiciel Modifi<66> et ce,
|
||||||
|
dans les conditions qu'il souhaite. Cette garantie et les modalit<69>s
|
||||||
|
financi<EFBFBD>res de son application feront l'objet d'un acte s<>par<61> entre le
|
||||||
|
Conc<EFBFBD>dant et le Licenci<63>.
|
||||||
|
|
||||||
|
|
||||||
|
Article 8 - RESPONSABILITE
|
||||||
|
|
||||||
|
8.1 Sous r<>serve des dispositions de l'article 8.2, le Licenci<63> a la
|
||||||
|
facult<EFBFBD>, sous r<>serve de prouver la faute du Conc<6E>dant concern<72>, de
|
||||||
|
solliciter la r<>paration du pr<70>judice direct qu'il subirait du fait du
|
||||||
|
Logiciel et dont il apportera la preuve.
|
||||||
|
|
||||||
|
8.2 La responsabilit<69> du Conc<6E>dant est limit<69>e aux engagements pris en
|
||||||
|
application du Contrat et ne saurait <20>tre engag<61>e en raison notamment:
|
||||||
|
(i) des dommages dus <20> l'inex<65>cution, totale ou partielle, de ses
|
||||||
|
obligations par le Licenci<63>, (ii) des dommages directs ou indirects
|
||||||
|
d<EFBFBD>coulant de l'utilisation ou des performances du Logiciel subis par le
|
||||||
|
Licenci<EFBFBD> et (iii) plus g<>n<EFBFBD>ralement d'un quelconque dommage indirect. En
|
||||||
|
particulier, les Parties conviennent express<73>ment que tout pr<70>judice
|
||||||
|
financier ou commercial (par exemple perte de donn<6E>es, perte de
|
||||||
|
b<EFBFBD>n<EFBFBD>fices, perte d'exploitation, perte de client<6E>le ou de commandes,
|
||||||
|
manque <20> gagner, trouble commercial quelconque) ou toute action dirig<69>e
|
||||||
|
contre le Licenci<63> par un tiers, constitue un dommage indirect et
|
||||||
|
n'ouvre pas droit <20> r<>paration par le Conc<6E>dant.
|
||||||
|
|
||||||
|
|
||||||
|
Article 9 - GARANTIE
|
||||||
|
|
||||||
|
9.1 Le Licenci<63> reconna<6E>t que l'<27>tat actuel des connaissances
|
||||||
|
scientifiques et techniques au moment de la mise en circulation du
|
||||||
|
Logiciel ne permet pas d'en tester et d'en v<>rifier toutes les
|
||||||
|
utilisations ni de d<>tecter l'existence d'<27>ventuels d<>fauts. L'attention
|
||||||
|
du Licenci<63> a <20>t<EFBFBD> attir<69>e sur ce point sur les risques associ<63>s au
|
||||||
|
chargement, <20> l'utilisation, la modification et/ou au d<>veloppement et <20>
|
||||||
|
la reproduction du Logiciel qui sont r<>serv<72>s <20> des utilisateurs avertis.
|
||||||
|
|
||||||
|
Il rel<65>ve de la responsabilit<69> du Licenci<63> de contr<74>ler, par tous
|
||||||
|
moyens, l'ad<61>quation du produit <20> ses besoins, son bon fonctionnement et
|
||||||
|
de s'assurer qu'il ne causera pas de dommages aux personnes et aux biens.
|
||||||
|
|
||||||
|
9.2 Le Conc<6E>dant d<>clare de bonne foi <20>tre en droit de conc<6E>der
|
||||||
|
l'ensemble des droits attach<63>s au Logiciel (comprenant notamment les
|
||||||
|
droits vis<69>s <20> l'article 5).
|
||||||
|
|
||||||
|
9.3 Le Licenci<63> reconna<6E>t que le Logiciel est fourni "en l'<27>tat" par le
|
||||||
|
Conc<EFBFBD>dant sans autre garantie, expresse ou tacite, que celle pr<70>vue <20>
|
||||||
|
l'article 9.2 et notamment sans aucune garantie sur sa valeur commerciale,
|
||||||
|
son caract<63>re s<>curis<69>, innovant ou pertinent.
|
||||||
|
|
||||||
|
En particulier, le Conc<6E>dant ne garantit pas que le Logiciel est exempt
|
||||||
|
d'erreur, qu'il fonctionnera sans interruption, qu'il sera compatible
|
||||||
|
avec l'<27>quipement du Licenci<63> et sa configuration logicielle ni qu'il
|
||||||
|
remplira les besoins du Licenci<63>.
|
||||||
|
|
||||||
|
9.4 Le Conc<6E>dant ne garantit pas, de mani<6E>re expresse ou tacite, que le
|
||||||
|
Logiciel ne porte pas atteinte <20> un quelconque droit de propri<72>t<EFBFBD>
|
||||||
|
intellectuelle d'un tiers portant sur un brevet, un logiciel ou sur tout
|
||||||
|
autre droit de propri<72>t<EFBFBD>. Ainsi, le Conc<6E>dant exclut toute garantie au
|
||||||
|
profit du Licenci<63> contre les actions en contrefa<66>on qui pourraient <20>tre
|
||||||
|
diligent<EFBFBD>es au titre de l'utilisation, de la modification, et de la
|
||||||
|
redistribution du Logiciel. N<>anmoins, si de telles actions sont
|
||||||
|
exerc<EFBFBD>es contre le Licenci<63>, le Conc<6E>dant lui apportera son aide
|
||||||
|
technique et juridique pour sa d<>fense. Cette aide technique et
|
||||||
|
juridique est d<>termin<69>e au cas par cas entre le Conc<6E>dant concern<72> et
|
||||||
|
le Licenci<63> dans le cadre d'un protocole d'accord. Le Conc<6E>dant d<>gage
|
||||||
|
toute responsabilit<69> quant <20> l'utilisation de la d<>nomination du
|
||||||
|
Logiciel par le Licenci<63>. Aucune garantie n'est apport<72>e quant <20>
|
||||||
|
l'existence de droits ant<6E>rieurs sur le nom du Logiciel et sur
|
||||||
|
l'existence d'une marque.
|
||||||
|
|
||||||
|
|
||||||
|
Article 10 - RESILIATION
|
||||||
|
|
||||||
|
10.1 En cas de manquement par le Licenci<63> aux obligations mises <20> sa
|
||||||
|
charge par le Contrat, le Conc<6E>dant pourra r<>silier de plein droit le
|
||||||
|
Contrat trente (30) jours apr<70>s notification adress<73>e au Licenci<63> et
|
||||||
|
rest<EFBFBD>e sans effet.
|
||||||
|
|
||||||
|
10.2 Le Licenci<63> dont le Contrat est r<>sili<6C> n'est plus autoris<69> <20>
|
||||||
|
utiliser, modifier ou distribuer le Logiciel. Cependant, toutes les
|
||||||
|
licences qu'il aura conc<6E>d<EFBFBD>es ant<6E>rieurement <20> la r<>siliation du Contrat
|
||||||
|
resteront valides sous r<>serve qu'elles aient <20>t<EFBFBD> effectu<74>es en
|
||||||
|
conformit<EFBFBD> avec le Contrat.
|
||||||
|
|
||||||
|
|
||||||
|
Article 11 - DISPOSITIONS DIVERSES
|
||||||
|
|
||||||
|
|
||||||
|
11.1 CAUSE EXTERIEURE
|
||||||
|
|
||||||
|
Aucune des Parties ne sera responsable d'un retard ou d'une d<>faillance
|
||||||
|
d'ex<65>cution du Contrat qui serait d<> <20> un cas de force majeure, un cas
|
||||||
|
fortuit ou une cause ext<78>rieure, telle que, notamment, le mauvais
|
||||||
|
fonctionnement ou les interruptions du r<>seau <20>lectrique ou de
|
||||||
|
t<EFBFBD>l<EFBFBD>communication, la paralysie du r<>seau li<6C>e <20> une attaque
|
||||||
|
informatique, l'intervention des autorit<69>s gouvernementales, les
|
||||||
|
catastrophes naturelles, les d<>g<EFBFBD>ts des eaux, les tremblements de terre,
|
||||||
|
le feu, les explosions, les gr<67>ves et les conflits sociaux, l'<27>tat de
|
||||||
|
guerre...
|
||||||
|
|
||||||
|
11.2 Le fait, par l'une ou l'autre des Parties, d'omettre en une ou
|
||||||
|
plusieurs occasions de se pr<70>valoir d'une ou plusieurs dispositions du
|
||||||
|
Contrat, ne pourra en aucun cas impliquer renonciation par la Partie
|
||||||
|
int<EFBFBD>ress<EFBFBD>e <20> s'en pr<70>valoir ult<6C>rieurement.
|
||||||
|
|
||||||
|
11.3 Le Contrat annule et remplace toute convention ant<6E>rieure, <20>crite
|
||||||
|
ou orale, entre les Parties sur le m<>me objet et constitue l'accord
|
||||||
|
entier entre les Parties sur cet objet. Aucune addition ou modification
|
||||||
|
aux termes du Contrat n'aura d'effet <20> l'<27>gard des Parties <20> moins
|
||||||
|
d'<27>tre faite par <20>crit et sign<67>e par leurs repr<70>sentants d<>ment habilit<69>s.
|
||||||
|
|
||||||
|
11.4 Dans l'hypoth<74>se o<> une ou plusieurs des dispositions du Contrat
|
||||||
|
s'av<61>rerait contraire <20> une loi ou <20> un texte applicable, existants ou
|
||||||
|
futurs, cette loi ou ce texte pr<70>vaudrait, et les Parties feraient les
|
||||||
|
amendements n<>cessaires pour se conformer <20> cette loi ou <20> ce texte.
|
||||||
|
Toutes les autres dispositions resteront en vigueur. De m<>me, la
|
||||||
|
nullit<EFBFBD>, pour quelque raison que ce soit, d'une des dispositions du
|
||||||
|
Contrat ne saurait entra<72>ner la nullit<69> de l'ensemble du Contrat.
|
||||||
|
|
||||||
|
|
||||||
|
11.5 LANGUE
|
||||||
|
|
||||||
|
Le Contrat est r<>dig<69> en langue fran<61>aise et en langue anglaise, ces
|
||||||
|
deux versions faisant <20>galement foi.
|
||||||
|
|
||||||
|
|
||||||
|
Article 12 - NOUVELLES VERSIONS DU CONTRAT
|
||||||
|
|
||||||
|
12.1 Toute personne est autoris<69>e <20> copier et distribuer des copies de
|
||||||
|
ce Contrat.
|
||||||
|
|
||||||
|
12.2 Afin d'en pr<70>server la coh<6F>rence, le texte du Contrat est prot<6F>g<EFBFBD>
|
||||||
|
et ne peut <20>tre modifi<66> que par les auteurs de la licence, lesquels se
|
||||||
|
r<EFBFBD>servent le droit de publier p<>riodiquement des mises <20> jour ou de
|
||||||
|
nouvelles versions du Contrat, qui poss<73>deront chacune un num<75>ro
|
||||||
|
distinct. Ces versions ult<6C>rieures seront susceptibles de prendre en
|
||||||
|
compte de nouvelles probl<62>matiques rencontr<74>es par les logiciels libres.
|
||||||
|
|
||||||
|
12.3 Tout Logiciel diffus<75> sous une version donn<6E>e du Contrat ne pourra
|
||||||
|
faire l'objet d'une diffusion ult<6C>rieure que sous la m<>me version du
|
||||||
|
Contrat ou une version post<73>rieure.
|
||||||
|
|
||||||
|
|
||||||
|
Article 13 - LOI APPLICABLE ET COMPETENCE TERRITORIALE
|
||||||
|
|
||||||
|
13.1 Le Contrat est r<>gi par la loi fran<61>aise. Les Parties conviennent
|
||||||
|
de tenter de r<>gler <20> l'amiable les diff<66>rends ou litiges qui
|
||||||
|
viendraient <20> se produire par suite ou <20> l'occasion du Contrat.
|
||||||
|
|
||||||
|
13.2 A d<>faut d'accord amiable dans un d<>lai de deux (2) mois <20> compter
|
||||||
|
de leur survenance et sauf situation relevant d'une proc<6F>dure d'urgence,
|
||||||
|
les diff<66>rends ou litiges seront port<72>s par la Partie la plus diligente
|
||||||
|
devant les Tribunaux comp<6D>tents de Paris.
|
||||||
|
|
||||||
|
|
||||||
|
Version 1.0 du 2006-09-05.
|
||||||
BIN
scotch_6.0.3/doc/ptscotch_user6.0.pdf
Normal file
BIN
scotch_6.0.3/doc/ptscotch_user6.0.pdf
Normal file
Binary file not shown.
BIN
scotch_6.0.3/doc/ptscotch_user6.0.ps.gz
Normal file
BIN
scotch_6.0.3/doc/ptscotch_user6.0.ps.gz
Normal file
Binary file not shown.
121
scotch_6.0.3/doc/scotch_example.f
Normal file
121
scotch_6.0.3/doc/scotch_example.f
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
************************************************************
|
||||||
|
** **
|
||||||
|
** NAME : scotch_example.f **
|
||||||
|
** **
|
||||||
|
** AUTHOR : Francois PELLEGRINI **
|
||||||
|
** **
|
||||||
|
** FUNCTION : FORTRAN testbed for the LibSCOTCH **
|
||||||
|
** library routines. **
|
||||||
|
** **
|
||||||
|
** DATES : # Version 3.4 : from : 04 feb 2000 **
|
||||||
|
** to 07 feb 2000 **
|
||||||
|
** # Version 4.0 : from : 13 mar 2005 **
|
||||||
|
** to 13 mar 2005 **
|
||||||
|
** **
|
||||||
|
*234567*****************************************************
|
||||||
|
|
||||||
|
PROGRAM SCOTCH_TEST
|
||||||
|
IMPLICIT NONE
|
||||||
|
INCLUDE "scotchf.h"
|
||||||
|
DOUBLEPRECISION SCOTCHGRAPH (SCOTCH_GRAPHDIM)
|
||||||
|
INTEGER VERTNBR
|
||||||
|
DATA VERTNBR / 3 /
|
||||||
|
INTEGER EDGENBR
|
||||||
|
DATA EDGENBR / 4 /
|
||||||
|
INTEGER VERTTAB (4)
|
||||||
|
DATA VERTTAB / 1, 2, 4, 5 /
|
||||||
|
INTEGER EDGETAB (4)
|
||||||
|
DATA EDGETAB / 2, 1, 3, 2 /
|
||||||
|
INTEGER INDXTAB (1)
|
||||||
|
INTEGER IDXVERTNBR
|
||||||
|
INTEGER IDXVERTTABIDX, IDXVENDTABIDX
|
||||||
|
INTEGER IDXVELOTABIDX, IDXVLBLTABIDX
|
||||||
|
INTEGER IDXEDGENBR
|
||||||
|
INTEGER IDXEDGETABIDX, IDXEDLOTABIDX
|
||||||
|
INTEGER IDXBASEVAL, IDXFLAGVAL
|
||||||
|
INTEGER IERR
|
||||||
|
|
||||||
|
PRINT *, 'Starting'
|
||||||
|
|
||||||
|
CALL SCOTCHFGRAPHINIT (SCOTCHGRAPH (1), IERR)
|
||||||
|
IF (IERR .NE. 0) THEN
|
||||||
|
PRINT *, 'ERROR : MAIN : Cannot initialize graph'
|
||||||
|
STOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
CALL SCOTCHFGRAPHBUILD (SCOTCHGRAPH (1), 1, VERTNBR,
|
||||||
|
* VERTTAB (1), VERTTAB (2),
|
||||||
|
* VERTTAB (1), VERTTAB (1),
|
||||||
|
* EDGENBR,
|
||||||
|
* EDGETAB (1), EDGETAB (1), IERR)
|
||||||
|
IF (IERR .NE. 0) THEN
|
||||||
|
PRINT *, 'ERROR : MAIN : Cannot build graph'
|
||||||
|
STOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
CALL SCOTCHFGRAPHCHECK (SCOTCHGRAPH (1), IERR)
|
||||||
|
IF (IERR .NE. 0) THEN
|
||||||
|
PRINT *, 'ERROR : MAIN : Invalid check'
|
||||||
|
STOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
PRINT *, 'Outputing original graph'
|
||||||
|
|
||||||
|
CALL SCOTCHFGRAPHSAVE (SCOTCHGRAPH (1), 1, IERR)
|
||||||
|
IF (IERR .NE. 0) THEN
|
||||||
|
PRINT *, 'ERROR : MAIN : Invalid graph output'
|
||||||
|
STOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
CALL SCOTCHFGRAPHDATA (SCOTCHGRAPH (1), INDXTAB (1),
|
||||||
|
* IDXBASEVAL, IDXVERTNBR,
|
||||||
|
* IDXVERTTABIDX, IDXVENDTABIDX,
|
||||||
|
* IDXVELOTABIDX, IDXVLBLTABIDX,
|
||||||
|
* IDXEDGENBR,
|
||||||
|
* IDXEDGETABIDX, IDXEDLOTABIDX,
|
||||||
|
* IDXFLAGVAL, IERR);
|
||||||
|
IF (IERR .NE. 0) THEN
|
||||||
|
PRINT *, 'ERROR : MAIN : Cannot get graph data'
|
||||||
|
STOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
PRINT *, 'Number of vertices : ', IDXVERTNBR
|
||||||
|
PRINT *, 'Index of verttab : ', IDXVERTTABIDX
|
||||||
|
PRINT *, 'Index of vendtab : ', IDXVENDTABIDX
|
||||||
|
PRINT *, 'Index of velotab : ', IDXVELOTABIDX
|
||||||
|
PRINT *, 'Index of vlbltab : ', IDXVLBLTABIDX
|
||||||
|
PRINT *, 'Number of edges : ', IDXEDGENBR
|
||||||
|
PRINT *, 'Index of edgetab : ', IDXEDGETABIDX
|
||||||
|
PRINT *, 'Index of edlotab : ', IDXEDLOTABIDX
|
||||||
|
|
||||||
|
PRINT *, 'Updating vertex and edge arrays'
|
||||||
|
INDXTAB (IDXVERTTABIDX + 1) = 3
|
||||||
|
INDXTAB (IDXEDGETABIDX) = 2
|
||||||
|
INDXTAB (IDXEDGETABIDX + 1) = 3
|
||||||
|
INDXTAB (IDXEDGETABIDX + 2) = 1
|
||||||
|
INDXTAB (IDXEDGETABIDX + 3) = 1
|
||||||
|
|
||||||
|
PRINT *, 'Outputting updated graph'
|
||||||
|
|
||||||
|
CALL SCOTCHFGRAPHCHECK (SCOTCHGRAPH (1), IERR)
|
||||||
|
IF (IERR .NE. 0) THEN
|
||||||
|
PRINT *, 'ERROR : MAIN : Invalid check'
|
||||||
|
STOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
CALL SCOTCHFGRAPHSAVE (SCOTCHGRAPH (1), 1, IERR)
|
||||||
|
IF (IERR .NE. 0) THEN
|
||||||
|
PRINT *, 'ERROR : MAIN : Invalid graph output'
|
||||||
|
STOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
CALL SCOTCHFGRAPHEXIT (SCOTCHGRAPH (1), IERR)
|
||||||
|
IF (IERR .NE. 0) THEN
|
||||||
|
PRINT *, 'ERROR : MAIN : Cannot destroy graph'
|
||||||
|
STOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
PRINT *, 'Test complete'
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
END
|
||||||
BIN
scotch_6.0.3/doc/scotch_user6.0.pdf
Normal file
BIN
scotch_6.0.3/doc/scotch_user6.0.pdf
Normal file
Binary file not shown.
BIN
scotch_6.0.3/doc/scotch_user6.0.ps.gz
Normal file
BIN
scotch_6.0.3/doc/scotch_user6.0.ps.gz
Normal file
Binary file not shown.
BIN
scotch_6.0.3/grf/3elt.grf.gz
Normal file
BIN
scotch_6.0.3/grf/3elt.grf.gz
Normal file
Binary file not shown.
BIN
scotch_6.0.3/grf/3elt.xyz.gz
Normal file
BIN
scotch_6.0.3/grf/3elt.xyz.gz
Normal file
Binary file not shown.
BIN
scotch_6.0.3/grf/4elt.grf.gz
Normal file
BIN
scotch_6.0.3/grf/4elt.grf.gz
Normal file
Binary file not shown.
BIN
scotch_6.0.3/grf/4elt.xyz.gz
Normal file
BIN
scotch_6.0.3/grf/4elt.xyz.gz
Normal file
Binary file not shown.
BIN
scotch_6.0.3/grf/4elt2.grf.gz
Normal file
BIN
scotch_6.0.3/grf/4elt2.grf.gz
Normal file
Binary file not shown.
BIN
scotch_6.0.3/grf/4elt2.xyz.gz
Normal file
BIN
scotch_6.0.3/grf/4elt2.xyz.gz
Normal file
Binary file not shown.
BIN
scotch_6.0.3/grf/bump.grf.gz
Normal file
BIN
scotch_6.0.3/grf/bump.grf.gz
Normal file
Binary file not shown.
BIN
scotch_6.0.3/grf/bump.xyz.gz
Normal file
BIN
scotch_6.0.3/grf/bump.xyz.gz
Normal file
Binary file not shown.
107
scotch_6.0.3/man/man1/amk_ccc.1
Normal file
107
scotch_6.0.3/man/man1/amk_ccc.1
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH amk_ccc 1 "August 03, 2010" "" "Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBamk_ccc, amk_fft2, amk_hy, amk_m2, amk_p2 \fP- create target architectures
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBamk_ccc\fP [\fIoptions\fP] \fIdim\fP [\fItfile\fP]
|
||||||
|
.PP
|
||||||
|
\fBamk_fft2\fP [\fIoptions\fP] \fIdim\fP [\fItfile\fP]
|
||||||
|
.PP
|
||||||
|
\fBamk_hy\fP [\fIoptions\fP] \fIdim\fP [\fItfile\fP]
|
||||||
|
.PP
|
||||||
|
\fBamk_m2\fP [\fIoptions\fP] \fIdimX\fP [\fIdimY\fP] [\fItfile\fP]
|
||||||
|
.PP
|
||||||
|
\fBamk_p2\fP [\fIoptions\fP] [\fIwght0\fP] [\fIwght1\fP] [\fItfile\fP]
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The amk_* programs create target architecture files for some common,
|
||||||
|
regular topologies.
|
||||||
|
.PP
|
||||||
|
\fBamk_ccc\fP creates a decomposition-defined cube-connected-cycle
|
||||||
|
topology of dimension \fIdim\fP. The decomposition is performed first by
|
||||||
|
bisection along the dimensions of the hypercube, then along the
|
||||||
|
remaining cycle graphs.
|
||||||
|
.PP
|
||||||
|
\fBamk_fft2\fP creates a decomposition-defined fast-Fourier-transform
|
||||||
|
topology of dimension \fIdim\fP. The decomposition is performed by
|
||||||
|
recursive bisection of the vertices, by descending dimension
|
||||||
|
(that is, bit number in the labeling of the vertices).
|
||||||
|
.PP
|
||||||
|
\fBamk_hy\fP creates a decomposition-defined hypercube topology of
|
||||||
|
dimension \fIdim\fP. The decomposition is performed by
|
||||||
|
recursive bisection of the vertices, by descending dimension
|
||||||
|
(that is, bit number in the labeling of the vertices). Save for
|
||||||
|
experimentation purposes, this program is deprecated, as the
|
||||||
|
algorithmically-defined 'hcub' target architecture is a more
|
||||||
|
convenient and efficient way to represent hypercube architectures.
|
||||||
|
.PP
|
||||||
|
\fBamk_m2\fP creates a decomposition-defined 2D regular grid topology of
|
||||||
|
dimensions \fIdimX\fP and \fIdimY\fP. The decomposition is performed by
|
||||||
|
recursive splitting along the dimensions, either by cutting the
|
||||||
|
longest one, or by one-way dissection, depending on the '\fB-m\fP' option
|
||||||
|
flag. Save for experimentation purposes, this program is deprecated,
|
||||||
|
as the algorithmically-defined 'mesh2D' and 'mesh3D' target
|
||||||
|
architectures are a more convenient and efficient way to represent
|
||||||
|
2D and 3D grid architectures.
|
||||||
|
.PP
|
||||||
|
\fBamk_p2\fP creates a weighted path graph topology comprising only two
|
||||||
|
vertices of weights \fIwght0\fP and \fIwght1\fP. This is just a helper program,
|
||||||
|
which builds a 'wcmplt' algorithmically-defined complete graph with
|
||||||
|
two vertices. It may be used to compute weighted bisections of a
|
||||||
|
graph.
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-m\fP\fImeth\fP
|
||||||
|
For \fBamk_m2\fP only. Perform either recursive dissection or
|
||||||
|
one-way dissection, according to the given method flag:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
n
|
||||||
|
perform nested dissection (default).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
o
|
||||||
|
perform one-way dissection (cut across Y, then X).
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.SH EXAMPLE
|
||||||
|
Create a cube-connected-cycle target architecture of dimension 4,
|
||||||
|
and save it to file 'ccc4.tgt'.
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ amk_ccc 4 ccc4.tgt
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
Run gmap to compute a bisection, into two parts of respective weights
|
||||||
|
3 and 5, of graph 'brol.grf' and save the resulting mapping to
|
||||||
|
file 'brol.map'. The dash '-' standard file name is used so that the
|
||||||
|
target architecture description is read from the standard input,
|
||||||
|
through the pipe.
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ amk_p2 3 5 | gmap brol.grf - brol.map
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBgmk_msh\fP(1), \fBgtst\fP(1), \fBgmap\fP(1), \fBgord\fP(1), \fBgout\fP(1), \fBamk_grf\fP(1).
|
||||||
|
.PP
|
||||||
|
Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
1
scotch_6.0.3/man/man1/amk_fft2.1
Normal file
1
scotch_6.0.3/man/man1/amk_fft2.1
Normal file
@ -0,0 +1 @@
|
|||||||
|
.so man1/amk_ccc.1
|
||||||
1
scotch_6.0.3/man/man1/amk_hy.1
Normal file
1
scotch_6.0.3/man/man1/amk_hy.1
Normal file
@ -0,0 +1 @@
|
|||||||
|
.so man1/amk_ccc.1
|
||||||
1
scotch_6.0.3/man/man1/amk_m2.1
Normal file
1
scotch_6.0.3/man/man1/amk_m2.1
Normal file
@ -0,0 +1 @@
|
|||||||
|
.so man1/amk_ccc.1
|
||||||
1
scotch_6.0.3/man/man1/amk_p2.1
Normal file
1
scotch_6.0.3/man/man1/amk_p2.1
Normal file
@ -0,0 +1 @@
|
|||||||
|
.so man1/amk_ccc.1
|
||||||
56
scotch_6.0.3/man/man1/atst.1
Normal file
56
scotch_6.0.3/man/man1/atst.1
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH atst 1 "August 03, 2010" "" "Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBatst \fP- test the consistency of target architectures
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBatst\fP [\fIoptions\fP] [\fIafile\fP] [\fIlfile\fP]
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The \fBatst\fP program checks the consistency of a Scotch
|
||||||
|
decomposition-defined target architecture and, in case of success,
|
||||||
|
outputs some statistics regarding the number of target vertices and
|
||||||
|
the length of paths linking them. Target architectures define the
|
||||||
|
topology of the target graphs used by static mapping programs
|
||||||
|
\fBgmap\fP(1) and \fBdgmap\fP(1).
|
||||||
|
.PP
|
||||||
|
The resulting statistics are stored in file \fIlfile\fP. When file names
|
||||||
|
are not specified, data is read from standard input and written to
|
||||||
|
standard output. Standard streams can also be explicitly represented
|
||||||
|
by a dash '-'.
|
||||||
|
.PP
|
||||||
|
When the proper libraries have been included at compile time, \fBatst\fP
|
||||||
|
can directly handle compressed files, both as input and output. A
|
||||||
|
stream is treated as compressed whenever its name is postfixed with
|
||||||
|
a compressed file extension, such as in 'brol.tgt.bz2' or '-.gz'. The
|
||||||
|
compression formats which can be supported are the bzip2 format
|
||||||
|
('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma', on
|
||||||
|
input only).
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.SH EXAMPLE
|
||||||
|
Test the consistency of architecture arch.tgt:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ atst arch.tgt
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBamk_grf\fP(1), \fBamk_ccc\fP(1), \fBamk_fft2\fP(1), \fBamk_hy\fP(1), \fBamk_m2\fP(1),
|
||||||
|
\fBamk_p2\fP(1), \fBgmap\fP(1), \fBdgmap\fP(1).
|
||||||
|
.PP
|
||||||
|
Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
141
scotch_6.0.3/man/man1/dgmap.1
Normal file
141
scotch_6.0.3/man/man1/dgmap.1
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH dgmap 1 "August 03, 2010" "" "PT-Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBdgmap, dgpart \fP- compute static mappings and partitions in parallel
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBdgmap\fP [\fIoptions\fP] [\fIgfile\fP] [\fItfile\fP] [\fImfile\fP] [\fIlfile\fP]
|
||||||
|
.PP
|
||||||
|
\fBdgpart\fP [\fIoptions\fP] [\fInparts\fP] [\fIgfile\fP] [\fImfile\fP] [\fIlfile\fP]
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The \fBdgmap\fP program computes, in a parallel way, a static mapping of a
|
||||||
|
source graph onto a target graph.
|
||||||
|
.PP
|
||||||
|
The \fBdgpart\fP program is a shortcut of \fBdgmap\fP for computing partitions
|
||||||
|
of a source graph.
|
||||||
|
.PP
|
||||||
|
Source graph file \fIgfile\fP is either a centralized graph file, or a set
|
||||||
|
of files representing fragments of a distributed graph. For \fBdgmap\fP,
|
||||||
|
the target architecture file \fItfile\fP describes either algorithmically-coded
|
||||||
|
topologies such as meshes and hypercubes, or decomposition-defined
|
||||||
|
architectures created by means of the \fBamk_grf\fP(1) program. See
|
||||||
|
\fBgmap\fP(1) for a description of target architectures. The resulting
|
||||||
|
mapping is stored in file \fImfile\fP. Eventual logging information (such
|
||||||
|
as the one produced by option \fB-v\fP) is sent to file \fIlfile\fP. When file
|
||||||
|
names are not specified, data is read from standard input and
|
||||||
|
written to standard output. Standard streams can also be explicitely
|
||||||
|
represented by a dash '-'.
|
||||||
|
.PP
|
||||||
|
When the proper libraries have been included at compile time, \fBdgmap\fP
|
||||||
|
and \fBdgpart\fP can directly handle compressed graphs, both as input and
|
||||||
|
output. A stream is treated as compressed whenever its name is
|
||||||
|
postfixed with a compressed file extension, such as
|
||||||
|
in 'brol.grf.bz2' or '-.gz'. The compression formats which can be
|
||||||
|
supported are the bzip2 format ('.bz2'), the gzip format ('.gz'),
|
||||||
|
and the lzma format ('.lzma', on input only).
|
||||||
|
.PP
|
||||||
|
\fBdgmap\fP and \fBdgpart\fP base on implementations of the MPI interface to
|
||||||
|
spread work across the processing elements. They are therefore not
|
||||||
|
likely to be run directly, but instead through some launcher command
|
||||||
|
such as \fBmpirun\fP.
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-c\fPopt
|
||||||
|
Choose default mapping strategy according to one or
|
||||||
|
several \fIoptions\fP among:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
b
|
||||||
|
enforce load balance as much as possible.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
q
|
||||||
|
privilege quality over speed (default).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
s
|
||||||
|
privilege speed over quality.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
t
|
||||||
|
enforce safety.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
x
|
||||||
|
enforce scalability.
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-m\fP\fIstrat\fP
|
||||||
|
Use parallel mapping strategy \fIstrat\fP (see
|
||||||
|
PT-Scotch user's manual for more information).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-r\fP\fIpnum\fP
|
||||||
|
Set root process for centralized files (default is 0).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-v\fP\fIverb\fP
|
||||||
|
Set verbose mode to \fIverb\fP. It is a set of one of more
|
||||||
|
characters which can be:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
m
|
||||||
|
mapping information.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
s
|
||||||
|
strategy information.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
t
|
||||||
|
timing information.
|
||||||
|
.SH NOTE
|
||||||
|
At the time being (version 5.1.0), \fBdgmap\fP cannot compute full static
|
||||||
|
mappings as \fBgmap\fP(1) does, but only partitions (that is, mappings
|
||||||
|
onto unweighted or weighted complete graphs). Target architectures
|
||||||
|
other than the 'cmplt' and 'wcmplt' ones will lead to an error
|
||||||
|
message.
|
||||||
|
.SH EXAMPLES
|
||||||
|
Run \fBdgpart\fP on 5 processing elements to compute a partition into 7
|
||||||
|
parts of graph brol.grf and save the resulting ordering to file brol.map.
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ mpirun -np 5 dgpart 7 brol.grf brol.map
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
Run \fBdgpart\fP on 5 processing elements to partition into 7 parts the
|
||||||
|
distributed graph stored on graph fragment files brol5-0.dgr to
|
||||||
|
brol5-4.dgr, and save the resulting mapping to file brol.map (see
|
||||||
|
\fBdgscat\fP(1) for an explanation of the '%p' and '%r' sequences in names
|
||||||
|
of distributed graph fragments).
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ mpirun -np 5 dgpart 7 brol%p-%r.dgr brol.map
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBdgtst\fP(1), \fBdgscat\fP(1), \fBamk_grf\fP(1), \fBacpl\fP(1), \fBgmap\fP(1), \fBgmtst\fP(1).
|
||||||
|
.PP
|
||||||
|
PT-Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
138
scotch_6.0.3/man/man1/dgord.1
Normal file
138
scotch_6.0.3/man/man1/dgord.1
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH dgord 1 "August 03, 2010" "" "PT-Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBdgord \fP- compute sparse matrix orderings of graphs in parallel
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBdgord\fP [\fIoptions\fP] [\fIgfile\fP] [\fIofile\fP] [\fIlfile\fP]
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The \fBdgord\fP program computes, in a parallel way, an ordering of a
|
||||||
|
Scotch source graph representing the pattern of some symmetric
|
||||||
|
sparse matrix.
|
||||||
|
.PP
|
||||||
|
Source graph file \fIgfile\fP is either a centralized graph file, or a set
|
||||||
|
of files representing fragments of a distributed graph. The resulting
|
||||||
|
ordering is stored in file \fIofile\fP. Eventual logging information (such
|
||||||
|
as the one produced by option \fB-v\fP) is sent to file \fIlfile\fP. When file
|
||||||
|
names are not specified, data is read from standard input and
|
||||||
|
written to standard output. Standard streams can also be explicitely
|
||||||
|
represented by a dash '-'.
|
||||||
|
.PP
|
||||||
|
When the proper libraries have been included at compile time, \fBdgord\fP
|
||||||
|
can directly handle compressed graphs, both as input and output. A
|
||||||
|
stream is treated as compressed whenever its name is postfixed with
|
||||||
|
a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The
|
||||||
|
compression formats which can be supported are the bzip2 format
|
||||||
|
('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma', on
|
||||||
|
input only).
|
||||||
|
.PP
|
||||||
|
\fBdgord\fP bases on implementations of the MPI interface to spread work
|
||||||
|
across the processing elements. It is therefore not likely to be run
|
||||||
|
directly, but instead through some launcher command such as \fBmpirun\fP.
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-c\fPopt
|
||||||
|
Choose default ordering strategy according to one or
|
||||||
|
several \fIoptions\fP among:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
b
|
||||||
|
enforce load balance as much as possible.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
q
|
||||||
|
privilege quality over speed (default).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
s
|
||||||
|
privilege speed over quality.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
t
|
||||||
|
enforce safety.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
x
|
||||||
|
enforce scalability.
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-m\fP\fImfile\fP
|
||||||
|
Save column block mapping data to file \fImfile\fP. Mapping
|
||||||
|
data specifies, for each vertex, the index of the column
|
||||||
|
block to which this vertex belongs.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-o\fP\fIstrat\fP
|
||||||
|
Use parallel graph ordering strategy \fIstrat\fP (see
|
||||||
|
PT-Scotch user's manual for more information).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-r\fP\fIpnum\fP
|
||||||
|
Set root process for centralized files (default is 0).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-t\fP\fItfile\fP
|
||||||
|
Save partitioning tree data to file \fItfile\fP. Partitioning
|
||||||
|
tree data specifies, for each vertex, the index of the
|
||||||
|
first vertex of the parent block of the block to which
|
||||||
|
the vertex belongs. Altogether with the mapping data
|
||||||
|
provided in file \fImfile\fP, it allows one to rebuild the
|
||||||
|
separator tree of the nested dissection process.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-v\fP\fIverb\fP
|
||||||
|
Set verbose mode to \fIverb\fP. It is a set of one of more
|
||||||
|
characters which can be:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
s
|
||||||
|
strategy information.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
t
|
||||||
|
timing information.
|
||||||
|
.SH EXAMPLES
|
||||||
|
Run \fBdgord\fP on 5 processing elements to reorder matrix graph brol.grf
|
||||||
|
and save the resulting ordering to file brol.ord, using the default
|
||||||
|
sequential graph ordering strategy:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ mpirun -np 5 dgord brol.grf brol.ord
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
Run \fBdgord\fP on 5 processing elements to reorder the distributed matrix
|
||||||
|
stored on graph fragment files brol5-0.dgr to brol5-4.dgr, and save
|
||||||
|
the resulting ordering to file brol.ord (see \fBdgscat\fP(1) for an
|
||||||
|
explanation of the '%p' and '%r' sequences in names of distributed
|
||||||
|
graph fragments).
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ mpirun -np 5 dgord brol%p-%r.dgr brol.ord
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBdgtst\fP(1), \fBdgscat\fP(1), \fBgmk_hy\fP(1), \fBgord\fP(1).
|
||||||
|
.PP
|
||||||
|
PT-Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
1
scotch_6.0.3/man/man1/dgpart.1
Normal file
1
scotch_6.0.3/man/man1/dgpart.1
Normal file
@ -0,0 +1 @@
|
|||||||
|
.so man1/dgmap.1
|
||||||
117
scotch_6.0.3/man/man1/dgscat.1
Normal file
117
scotch_6.0.3/man/man1/dgscat.1
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH dgscat 1 "August 03, 2010" "" "PT-Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBdgscat \fP- build distributed source graph file fragments from a centralized source graph file
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBdgscat\fP [\fIoptions\fP] [\fIigfile\fP] [\fIogfile\fP]
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The \fBdgscat\fP program reads a centralized source graph \fIigfile\fP and
|
||||||
|
writes it back on the form of a set of files \fIogfile\fP representing
|
||||||
|
fragments of a distributed source graph.
|
||||||
|
.PP
|
||||||
|
When file names are not specified, data is read from standard input
|
||||||
|
and written to standard output. Standard streams can also be
|
||||||
|
explicitly represented by a dash '-'.
|
||||||
|
.PP
|
||||||
|
When the proper libraries have been included at compile time, dgord
|
||||||
|
can directly handle compressed graphs, both as input and output. A
|
||||||
|
stream is treated as compressed whenever its name is postfixed with
|
||||||
|
a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The
|
||||||
|
compression formats which can be supported are the bzip2 format
|
||||||
|
('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma', on
|
||||||
|
input only).
|
||||||
|
.PP
|
||||||
|
dgord bases on implementations of the MPI interface to spread work
|
||||||
|
across the processing elements. It is therefore not likely to be run
|
||||||
|
directly, but instead through some launcher command such as \fBmpirun\fP.
|
||||||
|
.SH DISTRIBUTED FILE NAMES
|
||||||
|
In order to tell whether programs should read from, or write to, a
|
||||||
|
single file located on only one processor, or to multiple instances
|
||||||
|
of the same file on all of the processors, or else to distinct files
|
||||||
|
on each of the processors, a special grammar has been designed,
|
||||||
|
which is based on the '%' escape character. Four such escape
|
||||||
|
sequences are defined, which are interpreted independently on every
|
||||||
|
processor, prior to file opening. By default, when a filename is
|
||||||
|
provided, it is assumed that the file is to be opened on only one of
|
||||||
|
the processors, called the root processor, which is usually process
|
||||||
|
0 of the communicator within which the program is run. The index
|
||||||
|
of the root processor can be changed by means of the \fB-r\fP
|
||||||
|
option. Using any of the first three escape sequences below will
|
||||||
|
instruct programs to open in parallel a file of name equal to the
|
||||||
|
interpreted filename, on every processor on which they are run.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
%p
|
||||||
|
Replaced by the number of processes in the global communicator in
|
||||||
|
which the program is run. Leads to parallel opening.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
%r
|
||||||
|
Replaced on each process running the program by the rank of this
|
||||||
|
process in the global communicator. Leads to parallel opening.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
%-
|
||||||
|
Discarded, but leads to parallel opening. This sequence is mainly
|
||||||
|
used to instruct programs to open on every processor a file of
|
||||||
|
identical name. The opened files can be, according whether the
|
||||||
|
given path leads to a shared directory or to directories that
|
||||||
|
are local to each processor, either to the opening of multiple
|
||||||
|
instances of the same file, or to the opening of distinct files
|
||||||
|
which may each have a different content, respectively (but in
|
||||||
|
this latter case it is much recommended to identify files by
|
||||||
|
means of the '%r' sequence).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
%%
|
||||||
|
Replaced by a single '%' character. File names using this escape
|
||||||
|
sequence are not considered for parallel opening, unless one or
|
||||||
|
several of the three other escape sequences are also present.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
For instance, filename 'brol' will lead to the opening of file 'brol'
|
||||||
|
on the root processor only, filename '%\fB-brol\fP' (or even 'br%\fB-ol\fP') will
|
||||||
|
lead to the parallel opening of files called 'brol' on every
|
||||||
|
processor, and filename 'brol%p-%r' will lead to the opening of files
|
||||||
|
'brol2-0' and 'brol2-1', respectively, on each of the two processors
|
||||||
|
on which the program were to run.
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-c\fP
|
||||||
|
Check the consistency of the input source graph after
|
||||||
|
loading it into memory.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-r\fP\fIpnum\fP
|
||||||
|
Set root process for centralized files (default is 0).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.SH EXAMPLE
|
||||||
|
Run \fBdgscat\fP on 5 processing elements to scatter centralized graph
|
||||||
|
file brol.grf into 5 gzipped file fragments brol5-0.dgr.gz to
|
||||||
|
brol5-4.dgr.gz.
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ mpirun -np 5 dgscat brol.grf brol%p-%r.dgr.gz
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBdgtst\fP(1), \fBdgord\fP(1), \fBgmk_hy\fP(1).
|
||||||
|
.PP
|
||||||
|
PT-Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
78
scotch_6.0.3/man/man1/dgtst.1
Normal file
78
scotch_6.0.3/man/man1/dgtst.1
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH dgtst 1 "August 03, 2010" "" "PT-Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBdgtst \fP- test the consistency of source graphs in parallel
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBdgtst\fP [\fIoptions\fP] [\fIgfile\fP] [\fIlfile\fP]
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The \fBdgtst\fP program checks, in a parallel way, the consistency of a
|
||||||
|
Scotch source graph and, in case of success, outputs some statistics
|
||||||
|
regarding edge weights, vertex weights, and vertex degrees.
|
||||||
|
.PP
|
||||||
|
It produces the very same results as the \fBgtst\fP(1) program of the
|
||||||
|
Scotch sequential distribution, but unlike this latter it can handle
|
||||||
|
distributed graphs.
|
||||||
|
.PP
|
||||||
|
Source graph file \fIgfile\fP is either a centralized graph file, or a set
|
||||||
|
of files representing fragments of a distributed graph. The
|
||||||
|
resulting statistics are stored in file \fIlfile\fP. When file names are
|
||||||
|
not specified, data is read from standard input and written to
|
||||||
|
standard output. Standard streams can also be explicitly
|
||||||
|
represented by a dash '-'.
|
||||||
|
.PP
|
||||||
|
When the proper libraries have been included at compile time, \fBdgtst\fP
|
||||||
|
can directly handle compressed graphs, both as input and output. A
|
||||||
|
stream is treated as compressed whenever its name is postfixed with
|
||||||
|
a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The
|
||||||
|
compression formats which can be supported are the bzip2 format
|
||||||
|
('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma', on
|
||||||
|
input only).
|
||||||
|
.PP
|
||||||
|
\fBdgtst\fP bases on implementations of the MPI interface to spread work
|
||||||
|
across the processing elements. It is therefore not likely to be run
|
||||||
|
directly, but instead through some launcher command such as \fBmpirun\fP.
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-r\fP\fIpnum\fP
|
||||||
|
Set root process for centralized files (default is 0).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.SH EXAMPLE
|
||||||
|
Run \fBdgtst\fP on 5 processing elements to test the consistency of graph brol.grf
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ mpirun -np 5 dgtst brol.grf
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
Run dgord on 5 processing elements to test the consistency of a
|
||||||
|
distributed graph stored on graph fragment files brol5-0.dgr to
|
||||||
|
brol5-4.dgr, and save the resulting ordering to file brol.ord (see
|
||||||
|
\fBdgscat\fP(1) for an explanation of the '%p' and '%r' sequences in names
|
||||||
|
of distributed graph fragments).
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ mpirun -np 5 dgtst brol%p-%r.dgr brol.ord
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBdgscat\fP(1), \fBgtst\fP(1), \fBdgord\fP(1).
|
||||||
|
.PP
|
||||||
|
PT-Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
106
scotch_6.0.3/man/man1/gcv.1
Normal file
106
scotch_6.0.3/man/man1/gcv.1
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH gcv 1 "August 03, 2010" "" "Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBgcv \fP- graph file converter
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBgcv\fP [\fIoptions\fP] [\fIigfile\fP] [\fIogfile\fP] [\fIoxfile\fP]
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The \fBgcv\fP program converts Scotch graph files from and to other
|
||||||
|
external file formats.
|
||||||
|
.PP
|
||||||
|
File \fIigfile\fP is converted into graph file \fIogfile\fP, with optional
|
||||||
|
geometry data being put in geometry file \fIoxfile\fP, if it is
|
||||||
|
available.
|
||||||
|
.PP
|
||||||
|
When file names are not specified, data is read from standard input
|
||||||
|
and written to standard output. Standard streams can also be
|
||||||
|
explicitly represented by a dash '-'.
|
||||||
|
.PP
|
||||||
|
When the proper libraries have been included at compile time, dgtst
|
||||||
|
can directly handle compressed graphs, both as input and output. A
|
||||||
|
stream is treated as compressed whenever its name is postfixed with
|
||||||
|
a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The
|
||||||
|
compression formats which can be supported are the bzip2 format
|
||||||
|
('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma', on
|
||||||
|
input only).
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-i\fP\fIifmt\fP
|
||||||
|
Set format of input graph file, which can be:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
b\fInum\fP
|
||||||
|
Boeing-Harwell format. This is a matrix format.
|
||||||
|
Only square matrices are supported. Square matrices
|
||||||
|
with unsymmetric pattern are symmetrized. In
|
||||||
|
case the file contains several matrices, the \fInum\fP
|
||||||
|
parameter allow the user to provide the index of
|
||||||
|
the matrix to convert, starting from 0. When the \fInum\fP
|
||||||
|
parameter is not set, it is assumed to be 0.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
c
|
||||||
|
Chaco format. This is an adjacency graph
|
||||||
|
format, also used by MeTiS.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
m
|
||||||
|
Matrix Market format. This is a matrix format
|
||||||
|
describing individual edges. Matrix pattern is
|
||||||
|
symmetrized, such that rectangular matrices are
|
||||||
|
eventually squared.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
s
|
||||||
|
Scotch graph format. This is an adjacency graph format.
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-o\fP\fIofmt\fP
|
||||||
|
Set format of output graph file, which can be:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
c
|
||||||
|
Chaco format.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
m
|
||||||
|
Matrix Market symmetric pattern format.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
s
|
||||||
|
Scotch format. This is the default.
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.SH EXAMPLE
|
||||||
|
Convert a Matrix Market graph into a Scotch graph. Matrix Market
|
||||||
|
files do not comprise geometry data, so no geometry file is needed
|
||||||
|
on output:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ gcv -im brol.mm brol.grf
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBgtst\fP(1), \fBgmap\fP(1), \fBgord\fP(1), \fBgout\fP(1).
|
||||||
|
.PP
|
||||||
|
Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
180
scotch_6.0.3/man/man1/gmap.1
Normal file
180
scotch_6.0.3/man/man1/gmap.1
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH gmap 1 "August 03, 2010" "" "Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBgmap, gpart \fP- compute static mappings and partitions sequentially
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBgmap\fP [\fIoptions\fP] [\fIgfile\fP] [\fItfile\fP] [\fImfile\fP] [\fIlfile\fP]
|
||||||
|
.PP
|
||||||
|
\fBgpart\fP [\fIoptions\fP] [\fInparts\fP] [\fIgfile\fP] [\fImfile\fP] [\fIlfile\fP]
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The \fBgmap\fP program computes, in a sequential way, a static mapping of a
|
||||||
|
source graph onto a target graph.
|
||||||
|
.PP
|
||||||
|
The \fBgpart\fP program is a shortcut of \fBgmap\fP for computing unweighted
|
||||||
|
partitions of a source graph.
|
||||||
|
.PP
|
||||||
|
Source graph file \fIgfile\fP can only be a centralized graph file. For \fBgmap\fP,
|
||||||
|
the target architecture file \fItfile\fP describes either algorithmically-coded
|
||||||
|
topologies such as meshes and hypercubes, or decomposition-defined
|
||||||
|
architectures created by means of the \fBamk_grf\fP(1) program. The resulting
|
||||||
|
mapping is stored in file \fImfile\fP. Eventual logging information (such
|
||||||
|
as the one produced by option \fB-v\fP) is sent to file \fIlfile\fP. When file
|
||||||
|
names are not specified, data is read from standard input and
|
||||||
|
written to standard output. Standard streams can also be explicitely
|
||||||
|
represented by a dash '-'.
|
||||||
|
.PP
|
||||||
|
When the proper libraries have been included at compile time, \fBgmap\fP
|
||||||
|
and \fBgpart\fP can directly handle compressed graphs, both as input and
|
||||||
|
output. A stream is treated as compressed whenever its name is
|
||||||
|
postfixed with a compressed file extension, such as
|
||||||
|
in 'brol.grf.bz2' or '-.gz'. The compression formats which can be
|
||||||
|
supported are the bzip2 format ('.bz2'), the gzip format ('.gz'),
|
||||||
|
and the lzma format ('.lzma', on input only).
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-c\fPopt
|
||||||
|
Choose default mapping strategy according to one or
|
||||||
|
several \fIoptions\fP among:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
b
|
||||||
|
enforce load balance as much as possible.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
q
|
||||||
|
privilege quality over speed (default).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
s
|
||||||
|
privilege speed over quality.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
t
|
||||||
|
enforce safety.
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-m\fPstrat
|
||||||
|
Use sequential mapping strategy strat (see
|
||||||
|
Scotch user's manual for more information).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-v\fPverb
|
||||||
|
Set verbose mode to verb. It is a set of one of more
|
||||||
|
characters which can be:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
m
|
||||||
|
mapping information.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
s
|
||||||
|
strategy information.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
t
|
||||||
|
timing information.
|
||||||
|
.SH TARGET ARCHITECTURES
|
||||||
|
Target architectures represent graphs onto which source graphs are
|
||||||
|
mapped. In order to speed-up the obtainment of target architecture
|
||||||
|
topological properties during the computation of mappings, some
|
||||||
|
classical topologies are algorithmically coded into the mapper
|
||||||
|
itself. These topologies are consequently simply defined by their
|
||||||
|
code name, followed by their dimensional parameters:
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
cmplt \fIdim\fP
|
||||||
|
unweighted complete graph of size \fIdim\fP.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
cmpltw \fIdim\fP \fIw0\fP \fIw1\fP \.\.\. \fIwdim-1\fP
|
||||||
|
weighted complete graph of size
|
||||||
|
size and of respective loads
|
||||||
|
\fIw0\fP, \fIw1\fP, \.\.\., \fIwdim-1\fP.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
hcub \fIdim\fP
|
||||||
|
hypercube of dimension \fIdim\fP.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
leaf \fIhgt\fP \fIn0\fP \fIw0\fP \.\.\. \fInhgt-1\fP \fIwhgt-1\fP
|
||||||
|
tree-leaf graph of height \fIhgt\fP
|
||||||
|
with (\fIn0\fP times \fIn1\fP times \.\.\. \fInhgt-1\fP)
|
||||||
|
vertices, with inter-cluster link
|
||||||
|
weights of \fIw0\fP, \fIw1\fP, \.\.\. \fIwhgt-1\fP.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
mesh2D \fIdimX\fP \fIdimY\fP
|
||||||
|
2D mesh of \fIdimX\fP times \fIdimY\fP nodes.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
mesh3D \fIdimX\fP \fIdimY\fP \fIdimZ\fP
|
||||||
|
23 mesh of \fIdimX\fP times \fIdimY\fP times \fIdimZ\fP nodes.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
torus2D \fIdimX\fP \fIdimY\fP
|
||||||
|
2D torus of \fIdimX\fP times \fIdimY\fP nodes.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
torus3D \fIdimX\fP \fIdimY\fP \fIdimZ\fP
|
||||||
|
3D torus of \fIdimX\fP times \fIdimY\fP times \fIdimZ\fP nodes.
|
||||||
|
.PP
|
||||||
|
Other target topologies can be created from their source graph
|
||||||
|
description by using the \fBamk_grf\fP(1) command. In this case, the
|
||||||
|
target description will begin with the code name \fBdeco\fP.
|
||||||
|
.SH MAPPINGS
|
||||||
|
Mappings are represented by as many lines as there are vertices in
|
||||||
|
the source graph. Each of these lines is made of two figures: the
|
||||||
|
number of the vertex (or its label if source graph vertices are
|
||||||
|
labeled) and the index of the target vertex to which it has been
|
||||||
|
assigned. Target vertex indices range from 0 to the number of
|
||||||
|
vertices in the target architecture (that is, the number of parts)
|
||||||
|
minus one.
|
||||||
|
.PP
|
||||||
|
This block of lines is always preceded by the number of such
|
||||||
|
lines. In most cases, since full mappings are requested, the number
|
||||||
|
of lines is equal to the number of vertices in the source graph.
|
||||||
|
.SH EXAMPLES
|
||||||
|
Run \fBgpart\fP to compute a partition into 7 parts of graph 'brol.grf' and
|
||||||
|
save the resulting ordering to file 'brol.map'.
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ gpart 7 brol.grf brol.map
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
Run \fBgmap\fP to compute a partition, into 3 parts of respective weights
|
||||||
|
1, 2 and 4, of graph 'brol.grf' and save the resulting mapping to
|
||||||
|
file 'brol.map'. The dash '-' standard file name is used so that the
|
||||||
|
target architecture description is read from the standard input,
|
||||||
|
through the pipe, as provided by the 'echo' shell command.
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ echo "cmpltw 3 1 2 4" | gmap brol.grf - brol.map
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBamk_grf\fP(1), \fBacpl\fP(1), \fBgmtst\fP(1), \fBdgmap\fP(1).
|
||||||
|
.PP
|
||||||
|
Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
74
scotch_6.0.3/man/man1/gmk_hy.1
Normal file
74
scotch_6.0.3/man/man1/gmk_hy.1
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH gmk_hy 1 "August 03, 2010" "" "Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBgmk_hy, gmk_m2, gmk_m3, gmk_ub2 \fP- create source graphs
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBgmk_hy\fP [\fIoptions\fP] \fIdim\fP [\fIofile\fP]
|
||||||
|
.PP
|
||||||
|
\fBgmk_m2\fP [\fIoptions\fP] [\fB-g\fP\fIcfile\fP] \fIdimX\fP \fIdimY\fP [\fIofile\fP]
|
||||||
|
.PP
|
||||||
|
\fBgmk_m3\fP [\fIoptions\fP] [\fB-g\fP\fIcfile\fP] \fIdimX\fP \fIdimY\fP \fIdimZ\fP [\fIofile\fP]
|
||||||
|
.PP
|
||||||
|
\fBgmk_ub2\fP [\fIoptions\fP] \fIdim\fP
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The \fBgmk_\fP* programs create source graph files for some common,
|
||||||
|
regular topologies.
|
||||||
|
.PP
|
||||||
|
\fBgmk_hy\fP creates a hypercube of dimension \fIdim\fP.
|
||||||
|
.PP
|
||||||
|
\fBgmk_m2\fP creates a 2D regular grid of dimensions \fIdimX\fP and \fIdimY\fP.
|
||||||
|
.PP
|
||||||
|
\fBgmk_m3\fP creates a 3D regular grid of dimensions \fIdimX\fP, \fIdimY\fP and \fIdimZ\fP.
|
||||||
|
.PP
|
||||||
|
\fBgmk_ub2\fP creates an unoriented de Bruijn graph of dimension \fIdim\fP.
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-b\fP base
|
||||||
|
For \fBgmk_m2\fP and \fBgmk_m3\fP only. Output graphs with base
|
||||||
|
value set to base. Default value is 0.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-e\fP
|
||||||
|
For \fBgmk_m2\fP only. Build a 8-neighbor grid rather than a
|
||||||
|
4-neighbor grid.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-g\fP\fIcfile\fP
|
||||||
|
For \fBgmk_m2\fP and \fBgmk_m3\fP only. Output graph vertex
|
||||||
|
coordinates (that is, geometry data to be used by
|
||||||
|
\fBgout\fP(1)) in file \fIcfile\fP.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-t\fP
|
||||||
|
For \fBgmk_m2\fP and \fBgmk_m3\fP only. Create torus graphs, that
|
||||||
|
is, graphs such that there exist loop edges between
|
||||||
|
vertices of rank 0 and (\fIdim\fP-1) in every dimension.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.SH EXAMPLE
|
||||||
|
Create a 5x7 grid along with its geometry:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ gmk_m2 5 7 -g/tmp/m5x7.xyz /tmp/m5x7.grf
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBgmk_msh\fP(1), \fBgtst\fP(1), \fBgmap\fP(1), \fBgord\fP(1), \fBgout\fP(1), \fBamk_grf\fP(1).
|
||||||
|
.PP
|
||||||
|
Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
1
scotch_6.0.3/man/man1/gmk_m2.1
Normal file
1
scotch_6.0.3/man/man1/gmk_m2.1
Normal file
@ -0,0 +1 @@
|
|||||||
|
.so man1/gmk_hy.1
|
||||||
1
scotch_6.0.3/man/man1/gmk_m3.1
Normal file
1
scotch_6.0.3/man/man1/gmk_m3.1
Normal file
@ -0,0 +1 @@
|
|||||||
|
.so man1/gmk_hy.1
|
||||||
41
scotch_6.0.3/man/man1/gmk_msh.1
Normal file
41
scotch_6.0.3/man/man1/gmk_msh.1
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH gmk_msh 1 "August 03, 2010" "" "Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBgmk_msh \fP- create source graph from source mesh
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBgmk_msh\fP [\fIoptions\fP] [\fImfile\fP] [\fIgfile\fP]
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The \fBgmk_msh\fP program creates a source graph from a source mesh.
|
||||||
|
The vertices of the graph are the nodes of the mesh, and all mesh
|
||||||
|
elements are turned into cliques, that is, there exists an edge
|
||||||
|
between two vertices in the graph if there exists at least an
|
||||||
|
element in the mesh which comprises the two associated nodes.
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.SH EXAMPLE
|
||||||
|
Create a source graph brol.grf from a source mesh brol.msh:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ gmk_msh brol.msh brol.grf
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
dgmap (1), \fBdgord\fP(1), \fBgmap\fP(1), \fBgord\fP(1), \fBgtst\fP(1), \fBmmk_m2\fP(1), \fBmord\fP(1), \fBmcv\fP(1), \fBmtst\fP(1).
|
||||||
|
.PP
|
||||||
|
Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
1
scotch_6.0.3/man/man1/gmk_ub2.1
Normal file
1
scotch_6.0.3/man/man1/gmk_ub2.1
Normal file
@ -0,0 +1 @@
|
|||||||
|
.so man1/gmk_hy.1
|
||||||
72
scotch_6.0.3/man/man1/gmtst.1
Normal file
72
scotch_6.0.3/man/man1/gmtst.1
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH gmtst 1 "August 03, 2010" "" "Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBgmtst \fP- compute statistics on mappings
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBgmtst\fP [\fIoptions\fP] [\fIgfile\fP] [\fItfile\fP] [\fImfile\fP] [\fIlfile\fP]
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The \fBgmtst\fP program computes, in a sequential way, statistics on a
|
||||||
|
static mapping, such as load imbalance ratio, edge dilation
|
||||||
|
distribution, etc. It yields the same results as the ones produced
|
||||||
|
by the \fB-vm\fP option of the \fBgmap\fP(1) program.
|
||||||
|
.PP
|
||||||
|
Source graph file \fIgfile\fP can only be a centralized graph file. File
|
||||||
|
\fItfile\fP represents the target architecture onto which \fIgfile\fP was
|
||||||
|
mapped. If mapping file \fImfile\fP was produced by \fBgpart\fP(1), the target
|
||||||
|
architecture file to provide \fBgmtst\fP should describe a complete graph
|
||||||
|
with the same number of vertices as the requested number of parts,
|
||||||
|
for instance by means of the '\fBcmplt\fP \fInum\fP' algorithmically-described
|
||||||
|
architecture. The resulting statistics are stored in file
|
||||||
|
\fIlfile\fP. When file names are not specified, data is read from standard
|
||||||
|
input and written to standard output. Standard streams can also be
|
||||||
|
explicitly represented by a dash '-'.
|
||||||
|
.PP
|
||||||
|
When the proper libraries have been included at compile time, gtst
|
||||||
|
can directly handle compressed graphs, both as input and output. A
|
||||||
|
stream is treated as compressed whenever its name is postfixed with
|
||||||
|
a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The
|
||||||
|
compression formats which can be supported are the bzip2 format
|
||||||
|
('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma', on
|
||||||
|
input only).
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.SH EXAMPLES
|
||||||
|
Display statistics on mapping brol.map of graph brol.grf onto target
|
||||||
|
architecture brol.tgt:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ gmtst brol.grf brol.tgt brol.map
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
Display statistics on partitioning brol.map of graph brol.grf into
|
||||||
|
\fInum\fP parts. Note the use of the complete graph
|
||||||
|
algorithmically-described architecture and of the shell pipe command
|
||||||
|
to provide the complete target architecture description on the
|
||||||
|
standard input of the \fBgmtst\fP command:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ echo "cmplt num" | gmtst brol.grf - brol.map
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBgmap\fP(1), \fBgout\fP(1), \fBgtst\fP(1).
|
||||||
|
.PP
|
||||||
|
Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
112
scotch_6.0.3/man/man1/gord.1
Normal file
112
scotch_6.0.3/man/man1/gord.1
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH gord 1 "August 03, 2010" "" "Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBgord \fP- compute sparse matrix orderings of graphs
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBgord\fP [\fIoptions\fP] [\fIgfile\fP] [\fIofile\fP] [\fIlfile\fP]
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The \fBgord\fP program computes, in a sequential way, an ordering of a
|
||||||
|
Scotch source graph representing the pattern of some symmetric
|
||||||
|
sparse matrix.
|
||||||
|
.PP
|
||||||
|
Source graph file \fIgfile\fP can only be a centralized graph file. The
|
||||||
|
resulting ordering is stored in file \fIofile\fP. Eventual logging
|
||||||
|
information (such as the one produced by option \fB-v\fP) is sent to file
|
||||||
|
\fIlfile\fP. When file names are not specified, data is read from standard
|
||||||
|
input and written to standard output. Standard streams can also be
|
||||||
|
explicitely represented by a dash '-'.
|
||||||
|
.PP
|
||||||
|
When the proper libraries have been included at compile time, \fBgord\fP
|
||||||
|
can directly handle compressed graphs, both as input and output. A
|
||||||
|
stream is treated as compressed whenever its name is postfixed with
|
||||||
|
a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The
|
||||||
|
compression formats which can be supported are the bzip2 format
|
||||||
|
('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma', on
|
||||||
|
input only).
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-c\fPopt
|
||||||
|
Choose default ordering strategy according to one or
|
||||||
|
several \fIoptions\fP among:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
b
|
||||||
|
enforce load balance as much as possible.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
q
|
||||||
|
privilege quality over speed (default).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
s
|
||||||
|
privilege speed over quality.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
t
|
||||||
|
enforce safety.
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-m\fP\fImfile\fP
|
||||||
|
Save column block mapping data to file \fImfile\fP. Mapping
|
||||||
|
data specifies, for each vertex, the index of the column
|
||||||
|
block to which this vertex belongs.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-o\fP\fIstrat\fP
|
||||||
|
Use sequential graph ordering strategy \fIstrat\fP (see
|
||||||
|
Scotch user's manual for more information).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-t\fP\fItfile\fP
|
||||||
|
Save partitioning tree data to file \fItfile\fP. Partitioning
|
||||||
|
tree data specifies, for each vertex, the index of the
|
||||||
|
first vertex of the parent block of the block to which
|
||||||
|
the vertex belongs. Altogether with the mapping data
|
||||||
|
provided in file \fImfile\fP, it allows one to rebuild the
|
||||||
|
separator tree of the nested dissection process.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-v\fP\fIverb\fP
|
||||||
|
Set verbose mode to \fIverb\fP. It is a set of one of more
|
||||||
|
characters which can be:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
s
|
||||||
|
strategy information.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
t
|
||||||
|
timing information.
|
||||||
|
.SH EXAMPLE
|
||||||
|
Reorder matrix graph brol.grf and save the resulting ordering to
|
||||||
|
file brol.ord using the default sequential graph ordering strategy:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ gord brol.grf brol.ord
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBdgord\fP(1), \fBgmk_hy\fP(1), \fBgtst\fP(1).
|
||||||
|
.PP
|
||||||
|
Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
60
scotch_6.0.3/man/man1/gotst.1
Normal file
60
scotch_6.0.3/man/man1/gotst.1
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH gotst 1 "August 03, 2010" "" "Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBgomtst \fP- compute statistics on sparse matrix orderings
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBgotst\fP [\fIoptions\fP] [\fIgfile\fP] [\fIofile\fP] [\fIlfile\fP]
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The \fBgotst\fP program computes, in a sequential way, statistics on a
|
||||||
|
sparse matrix ordering, such as fill-in, operation count, and
|
||||||
|
separator tree parameters: minimum, maximum, average height and
|
||||||
|
variance of its leaves.
|
||||||
|
.PP
|
||||||
|
Source graph file \fIgfile\fP can only be a centralized graph file. File
|
||||||
|
\fIofile\fP represents the ordering of the symmetric sparse matrix the
|
||||||
|
pattern of which is represented by \fIgfile\fP. The resulting statistics
|
||||||
|
are stored in file \fIlfile\fP. When file names are not specified, data is
|
||||||
|
read from standard input and written to standard output. Standard
|
||||||
|
streams can also be explicitly represented by a dash '-'.
|
||||||
|
.PP
|
||||||
|
When the proper libraries have been included at compile time, gtst
|
||||||
|
can directly handle compressed graphs, both as input and output. A
|
||||||
|
stream is treated as compressed whenever its name is postfixed with
|
||||||
|
a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The
|
||||||
|
compression formats which can be supported are the bzip2 format
|
||||||
|
('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma', on
|
||||||
|
input only).
|
||||||
|
.PP
|
||||||
|
Since \fBgotst\fP performs sequentially the symbolic factorization of
|
||||||
|
matrix \fIgfile\fP in order to compute fill-in and operation count
|
||||||
|
numbers, this program can take a long time or even run out of memory,
|
||||||
|
when applied to very large graphs.
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.SH EXAMPLE
|
||||||
|
Display statistics on ordering brol.ord of graph brol.grf:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ gotst brol.grf brol.ord
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBgord\fP(1), \fBgtst\fP(1), \fBdgord\fP(1).
|
||||||
|
.PP
|
||||||
|
Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
268
scotch_6.0.3/man/man1/gout.1
Normal file
268
scotch_6.0.3/man/man1/gout.1
Normal file
@ -0,0 +1,268 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH gout 1 "August 03, 2010" "" "Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBgout \fP- output graphics from matrices and graphs
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBgout\fP [\fIoptions\fP] [\fIgfile\fP] [\fIxfile\fP] [\fImfile\fP] [\fIvfile\fP]
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The \fBgout\fP program creates graphics files of various types,
|
||||||
|
representing the Scotch graph and mapping data which is passed to it.
|
||||||
|
.PP
|
||||||
|
Source graph file \fIgfile\fP can only be a centralized graph file. File
|
||||||
|
\fIxfile\fP stores its associated geometry, whenever necessary. File
|
||||||
|
\fImfile\fP represents label information attached to each of the graph
|
||||||
|
vertices, for instance the index of the part to which each vertex
|
||||||
|
belongs in the case of a mapping file. File \fIvfile\fP is the output
|
||||||
|
graphics file, the type of which may differ according to the input
|
||||||
|
parameters. When file names are not specified, data is read from
|
||||||
|
standard input and written to standard output. Standard streams can
|
||||||
|
also be explicitly represented by a dash '-'.
|
||||||
|
.PP
|
||||||
|
When the proper libraries have been included at compile time, gtst
|
||||||
|
can directly handle compressed graphs, both as input and output. A
|
||||||
|
stream is treated as compressed whenever its name is postfixed with
|
||||||
|
a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The
|
||||||
|
compression formats which can be supported are the bzip2 format
|
||||||
|
('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma', on
|
||||||
|
input only).
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-g\fP\fIgeop\fP
|
||||||
|
Geometry parameters, which can be an arbitrary
|
||||||
|
combination of any of the following code letters:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
n
|
||||||
|
Do not read geometry data, when it is not
|
||||||
|
available or not required, such as when using
|
||||||
|
the \fB-om\fP option.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
p
|
||||||
|
Permute Y and Z geometry dimensions.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
r
|
||||||
|
Rotate geometry by 90 degrees in the (X,Y) plane.
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-mn\fP
|
||||||
|
Do not read mapping data, when it is not available or
|
||||||
|
not required.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-o\fP\fIoutp\fP
|
||||||
|
Select the output file type and allows to provide
|
||||||
|
additional parameters between braces and separated
|
||||||
|
by commas:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
i
|
||||||
|
OpenInventor 3D mesh file, to be viewed by means of
|
||||||
|
programs such as \fBivview\fP. Additional parameters for
|
||||||
|
this output file type are:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
c
|
||||||
|
Color output.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
g
|
||||||
|
Gray level output.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
r
|
||||||
|
Remove cut edges.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
v
|
||||||
|
View cut edges.
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
m
|
||||||
|
PostScript matrix pattern file. Additional parameters
|
||||||
|
for this output file type are:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
e
|
||||||
|
EPSF-type output.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
f
|
||||||
|
Full-page output.
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
p
|
||||||
|
PostScript 2D mesh file. This output module was
|
||||||
|
intended for 2D meshes; as a fallback, the Z
|
||||||
|
coordinate is projected according to isometric
|
||||||
|
perspective rules, but drawings of full 3D objects
|
||||||
|
are most likely to be unreadable. Additional parameters
|
||||||
|
for this output file type are:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
c
|
||||||
|
Color output.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
g
|
||||||
|
Gray level output.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
e
|
||||||
|
EPSF-type output.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
f
|
||||||
|
Full-page output.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
s
|
||||||
|
Short clipping (disks excluded).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
l
|
||||||
|
Large clipping (disks included).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
a
|
||||||
|
Avoid displaying disks.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
d
|
||||||
|
Display disks.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
r
|
||||||
|
Remove cut edges.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
v
|
||||||
|
View cut edges.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
X=\fIrat\fP
|
||||||
|
Maximum x clipping ratio (in [0.0;1.0]).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
x=\fIrat\fP
|
||||||
|
Minimum x clipping ratio.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
Y=\fIrat\fP
|
||||||
|
Maximum y clipping ratio.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
y=\fIrat\fP
|
||||||
|
Minimum y clipping ratio.
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
t
|
||||||
|
Tulip 3D mesh file. Additional parameters
|
||||||
|
for this output file type are:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
b
|
||||||
|
Black and white output.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
c
|
||||||
|
Color output.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
a
|
||||||
|
Avoid displaying disks.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
d
|
||||||
|
Display disks.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
r
|
||||||
|
Remove cut edges.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
v
|
||||||
|
View cut edges.
|
||||||
|
.RE
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.SH EXAMPLES
|
||||||
|
Build an OpenInventor file of the mapping of graph brol.grf
|
||||||
|
contained in file brol.map. Vertices with no mapping information
|
||||||
|
attached to them will be rendered in white, while distinct colors
|
||||||
|
will be used to represent the different parts. Cut edges will be
|
||||||
|
removed:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ gout '-oi{r}' brol.grf brol.xyz brol.map brol.iv
|
||||||
|
$ ivview brol.iv
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
Build an OpenInventor file of graph brol.grf without any vertex
|
||||||
|
information associated to it. Mapping data are not required and
|
||||||
|
will not be read, but a file name has to be provided, hence the
|
||||||
|
'-':
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ gout -oi -mn brol.grf brol.xyz - brol.iv
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
Output the pattern of matrix brol.grf on the form of a PostScript
|
||||||
|
flat drawing. Geometry and mapping data are not required and will
|
||||||
|
not be read, but file names have to be provided, hence the
|
||||||
|
two '-'s:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ gout -om -gn -mn brol.grf - - brol.ps
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
Output a PostScript 2D drawing of a rectangular portion graph
|
||||||
|
brol.grf, with disks representing mapping data:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ gout '-op{c,e,d,x=0.3,X=0.6,y=0.2,Y=0.5}' brol.grf brol.xyz brol.map brol.ps
|
||||||
|
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBgmap\fP(1), \fBgout\fP(1), \fBgtst\fP(1).
|
||||||
|
.PP
|
||||||
|
Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
1
scotch_6.0.3/man/man1/gpart.1
Normal file
1
scotch_6.0.3/man/man1/gpart.1
Normal file
@ -0,0 +1 @@
|
|||||||
|
.so man1/gmap.1
|
||||||
57
scotch_6.0.3/man/man1/gtst.1
Normal file
57
scotch_6.0.3/man/man1/gtst.1
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH gtst 1 "August 03, 2010" "" "Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBgtst \fP- test the consistency of source graphs
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBgtst\fP [\fIoptions\fP] [\fIgfile\fP] [\fIlfile\fP]
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The \fBgtst\fP program checks, in a sequential way, the consistency of a
|
||||||
|
Scotch source graph and, in case of success, outputs some statistics
|
||||||
|
regarding edge weights, vertex weights, and vertex degrees.
|
||||||
|
.PP
|
||||||
|
It produces the very same results as the \fBdgtst\fP(1) program of the
|
||||||
|
PT-Scotch parallel distribution, but unlike this latter it cannot
|
||||||
|
handle distributed graphs.
|
||||||
|
.PP
|
||||||
|
Source graph file \fIgfile\fP can only be a centralized graph file. The
|
||||||
|
resulting statistics are stored in file \fIlfile\fP. When file names are
|
||||||
|
not specified, data is read from standard input and written to
|
||||||
|
standard output. Standard streams can also be explicitly
|
||||||
|
represented by a dash '-'.
|
||||||
|
.PP
|
||||||
|
When the proper libraries have been included at compile time, \fBgtst\fP
|
||||||
|
can directly handle compressed graphs, both as input and output. A
|
||||||
|
stream is treated as compressed whenever its name is postfixed with
|
||||||
|
a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The
|
||||||
|
compression formats which can be supported are the bzip2 format
|
||||||
|
('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma', on
|
||||||
|
input only).
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.SH EXAMPLE
|
||||||
|
Test the consistency of graph brol.grf:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ gtst brol.grf
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBdgtst\fP(1), \fBgmap\fP(1), \fBgord\fP(1), \fBgout\fP(1).
|
||||||
|
.PP
|
||||||
|
Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
55
scotch_6.0.3/man/man1/mmk_m2.1
Normal file
55
scotch_6.0.3/man/man1/mmk_m2.1
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH mmk_m2 1 "August 03, 2010" "" "Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBmmk_m2, mmk_m3 \fP- create source meshes
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBmmk_m2\fP [\fIoptions\fP] [\fB-g\fP\fIcfile\fP] \fIdimX\fP \fIdimY\fP [\fIofile\fP]
|
||||||
|
.PP
|
||||||
|
\fBmmk_m3\fP [\fIoptions\fP] [\fB-g\fP\fIcfile\fP] \fIdimX\fP \fIdimY\fP \fIdimZ\fP [\fIofile\fP]
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The \fBmmk_\fP* programs create source mesh files for some common,
|
||||||
|
regular topologies.
|
||||||
|
.PP
|
||||||
|
\fBmmk_m2\fP creates a 2D regular mesh of \fIdimX\fP times \fIdimY\fP elements and
|
||||||
|
(\fIdimX\fP+1) times (\fIdimY\fP+1) nodes, such that element (i,j) is
|
||||||
|
connected to nodes (i,j), (i,j+1), (i+1,j) and (i+1,j+1).
|
||||||
|
.PP
|
||||||
|
\fBmmk_m3\fP creates a 3D regular mesh of \fIdimX\fP times \fIdimY\fP times \fIdimZ\fP
|
||||||
|
elements and (\fIdimX\fP+1) times (\fIdimY\fP+1) times (\fIdimZ\fP+1) nodes,
|
||||||
|
such that element (i,j,k) is connected to nodes (i,j,k), (i,j,k+1),
|
||||||
|
(i,j+1,k), (i,j+1,k+1), (i+1,j,k), (i+1,j,k+1), (i+1,j+1,k) and
|
||||||
|
(i+1,j+1,k+1).
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-g\fP\fIcfile\fP
|
||||||
|
Output graph vertex coordinates (that is, geometry data to be used by
|
||||||
|
\fBgout\fP(1)) in file \fIcfile\fP.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.SH EXAMPLE
|
||||||
|
Create a mesh of 5x7 elements, along with its geometry:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ mmk_m2 5 7 -g/tmp/m5x7.xyz /tmp/m5x7.msh
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBmord\fP(1), \fBmtst\fP(1), \fBgmk_msh\fP(1).
|
||||||
|
.PP
|
||||||
|
Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
1
scotch_6.0.3/man/man1/mmk_m3.1
Normal file
1
scotch_6.0.3/man/man1/mmk_m3.1
Normal file
@ -0,0 +1 @@
|
|||||||
|
.so man1/mmk_m2.1
|
||||||
115
scotch_6.0.3/man/man1/mord.1
Normal file
115
scotch_6.0.3/man/man1/mord.1
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH mord 1 "August 03, 2010" "" "Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBmord \fP- compute sparse matrix orderings of meshes
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBmord\fP [\fIoptions\fP] [\fImfile\fP] [\fIofile\fP] [\fIlfile\fP]
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The \fBmord\fP program computes, in a sequential way, an ordering of a
|
||||||
|
Scotch source mesh representing the pattern of some symmetric sparse
|
||||||
|
matrix. Only nodes of the mesh are effectively ordered. Elements
|
||||||
|
provide connectivity information, such that every node is considered
|
||||||
|
to be linked to all of the nodes which share at least an element
|
||||||
|
with it.
|
||||||
|
.PP
|
||||||
|
Source mesh file \fImfile\fP can only be a centralized mesh file. The
|
||||||
|
resulting ordering is stored in file \fIofile\fP. Eventual logging
|
||||||
|
information (such as the one produced by option \fB-v\fP) is sent to file
|
||||||
|
\fIlfile\fP. When file names are not specified, data is read from standard
|
||||||
|
input and written to standard output. Standard streams can also be
|
||||||
|
explicitely represented by a dash '-'.
|
||||||
|
.PP
|
||||||
|
When the proper libraries have been included at compile time, gord
|
||||||
|
can directly handle compressed meshes, both as input and output. A
|
||||||
|
stream is treated as compressed whenever its name is postfixed with
|
||||||
|
a compressed file extension, such as in 'brol.msh.bz2' or '-.gz'. The
|
||||||
|
compression formats which can be supported are the bzip2 format
|
||||||
|
('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma', on
|
||||||
|
input only).
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-c\fPopt
|
||||||
|
Choose default ordering strategy according to one or
|
||||||
|
several \fIoptions\fP among:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
b
|
||||||
|
enforce load balance as much as possible.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
q
|
||||||
|
privilege quality over speed (default).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
s
|
||||||
|
privilege speed over quality.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
t
|
||||||
|
enforce safety.
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-m\fP\fImfile\fP
|
||||||
|
Save column block mapping data to file \fImfile\fP. Mapping data
|
||||||
|
specifies, for each node vertex, the index of the column
|
||||||
|
block to which this node vertex belongs.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-o\fP\fIstrat\fP
|
||||||
|
Use sequential mesh ordering strategy \fIstrat\fP (see
|
||||||
|
Scotch user's manual for more information).
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-t\fP\fItfile\fP
|
||||||
|
Save partitioning tree data to file \fItfile\fP. Partitioning
|
||||||
|
tree data specifies, for each node vertex, the index of the
|
||||||
|
first node vertex of the parent block of the block to which
|
||||||
|
the node vertex belongs. Altogether with the mapping data
|
||||||
|
provided in file \fImfile\fP, it allows one to rebuild the
|
||||||
|
separator tree of the nested dissection process.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-v\fP\fIverb\fP
|
||||||
|
Set verbose mode to \fIverb\fP. It is a set of one of more
|
||||||
|
characters which can be:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
s
|
||||||
|
strategy information.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
t
|
||||||
|
timing information.
|
||||||
|
.SH EXAMPLE
|
||||||
|
Reorder matrix mesh brol.msh and save the resulting ordering to
|
||||||
|
file brol.ord using the default sequential mesh ordering strategy:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ mord brol.msh brol.ord
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBgmk_msh\fP(1), \fBgotst\fP(1), \fBmtst\fP(1).
|
||||||
|
.PP
|
||||||
|
Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
54
scotch_6.0.3/man/man1/mtst.1
Normal file
54
scotch_6.0.3/man/man1/mtst.1
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
." Text automatically generated by txt2man
|
||||||
|
.TH mtst 1 "August 03, 2010" "" "Scotch user's manual"
|
||||||
|
.SH NAME
|
||||||
|
\fBmtst \fP- test the consistency of source meshes
|
||||||
|
\fB
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
\fBmtst\fP [\fIoptions\fP] [\fImfile\fP] [\fIlfile\fP]
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
The \fBmtst\fP program checks, in a sequential way, the consistency of a
|
||||||
|
Scotch source mesh and, in case of success, outputs some statistics
|
||||||
|
regarding edge weights, node and element vertex weights, and node
|
||||||
|
and element vertex degrees.
|
||||||
|
.PP
|
||||||
|
Source mesh file \fImfile\fP can only be a centralized mesh file. The
|
||||||
|
resulting statistics are stored in file \fIlfile\fP. When file names are
|
||||||
|
not specified, data is read from standard input and written to
|
||||||
|
standard output. Standard streams can also be explicitly
|
||||||
|
represented by a dash '-'.
|
||||||
|
.PP
|
||||||
|
When the proper libraries have been included at compile time, \fBmtst\fP
|
||||||
|
can directly handle compressed meshes, both as input and output. A
|
||||||
|
stream is treated as compressed whenever its name is postfixed with
|
||||||
|
a compressed file extension, such as in 'brol.msh.bz2' or '-.gz'. The
|
||||||
|
compression formats which can be supported are the bzip2 format
|
||||||
|
('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma', on
|
||||||
|
input only).
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-h\fP
|
||||||
|
Display some help.
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
|
\fB-V\fP
|
||||||
|
Display program version and copyright.
|
||||||
|
.SH EXAMPLE
|
||||||
|
Test the consistency of mesh brol.msh:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.fam C
|
||||||
|
$ mtst brol.msh
|
||||||
|
|
||||||
|
.fam T
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBmord\fP(1), \fBgrf_msh\fP(1).
|
||||||
|
.PP
|
||||||
|
Scotch user's manual.
|
||||||
|
.SH AUTHOR
|
||||||
|
Francois Pellegrini <francois.pellegrini@labri.fr>
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.alpha_dec_osf1
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.alpha_dec_osf1
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = gmake
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = cc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = mpicc
|
||||||
|
CFLAGS = -v -O3 -omp -ansi_alias -ansi_args -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lm
|
||||||
|
CP = cp
|
||||||
|
LEX = lex
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = yacc
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_mac_darwin10
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_mac_darwin10
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = make
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = gcc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = gcc
|
||||||
|
CFLAGS = -O3 -Drestrict=__restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_PTHREAD_BARRIER -DCOMMON_RANDOM_FIXED_SEED -DCOMMON_TIMING_OLD -DSCOTCH_PTHREAD -DSCOTCH_RENAME
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lz -lm -lpthread
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_mac_darwin10.icc
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_mac_darwin10.icc
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = make
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = icc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = icc
|
||||||
|
CFLAGS = -O3 -restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_PTHREAD_BARRIER -DCOMMON_RANDOM_FIXED_SEED -DCOMMON_TIMING_OLD -DSCOTCH_PTHREAD -DSCOTCH_RENAME
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lz -lm
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_mac_darwin8
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_mac_darwin8
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = make
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = gcc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = mpicc
|
||||||
|
CFLAGS = -O3 -Drestrict=__restrict -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DCOMMON_TIMING_OLD -DSCOTCH_PTHREAD -DSCOTCH_RENAME
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lm
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_pc_freebsd
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_pc_freebsd
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = gmake
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = cc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = mpicc
|
||||||
|
CFLAGS += -std=c99 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS += -lz -lm -lpthread
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_pc_linux2
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_pc_linux2
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = make
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = gcc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = gcc
|
||||||
|
CFLAGS = -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -Drestrict=__restrict
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lz -lm -pthread
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_pc_linux2.c99
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_pc_linux2.c99
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = make
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = gcc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = gcc
|
||||||
|
CFLAGS = -std=c99 -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER -DSCOTCH_PTHREAD
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lz -lm -pthread
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -D_XOPEN_SOURCE=600 -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_pc_linux2.debug
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_pc_linux2.debug
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = make
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = gcc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = gcc
|
||||||
|
CFLAGS = -g -O0 -Drestrict=__restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DSCOTCH_DEBUG_ALL -DSCOTCH_DETERMINISTIC -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -g -lz -lm -pthread
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = make
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = gcc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = gcc
|
||||||
|
CFLAGS = -O3 -Drestrict=__restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lz -lm -pthread
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_pc_linux2.prof
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_pc_linux2.prof
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = make
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = gcc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = gcc
|
||||||
|
CFLAGS = -pg -O3 -Drestrict=__restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lz -lm -pthread
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_pc_linux2.shlib
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_pc_linux2.shlib
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .so
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = make
|
||||||
|
AR = gcc
|
||||||
|
ARFLAGS = -shared -o
|
||||||
|
CAT = cat
|
||||||
|
CCS = gcc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = gcc
|
||||||
|
CFLAGS = -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -Drestrict=__restrict
|
||||||
|
CLIBFLAGS = -shared -fPIC
|
||||||
|
LDFLAGS = -lz -lm -pthread
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = echo
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .so
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = make
|
||||||
|
AR = gcc
|
||||||
|
ARFLAGS = -shared -o
|
||||||
|
CAT = cat
|
||||||
|
CCS = gcc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = gcc
|
||||||
|
CFLAGS = -g -O0 -Drestrict=__restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DSCOTCH_DEBUG_ALL -DSCOTCH_DETERMINISTIC -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME
|
||||||
|
CLIBFLAGS = -shared -fPIC
|
||||||
|
LDFLAGS = -g -lz -lm -pthread
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = echo
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_pc_linux3
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_pc_linux3
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = make
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = gcc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = gcc
|
||||||
|
CFLAGS = -O3 -Drestrict=__restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER -DSCOTCH_PTHREAD
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lz -lpthread -lm -pthread
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
69
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_pc_mingw32
Normal file
69
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_pc_mingw32
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# This make include file is intended for building under MinGW32. As is,
|
||||||
|
# it relies on :
|
||||||
|
# - pthread-win32 (http://sourceware.org/pthreads-win32/),
|
||||||
|
# - zlib (http://www.zlib.net/)
|
||||||
|
# - mpich2 (http://www.mcs.anl.gov/research/projects/mpich2/).
|
||||||
|
# It must be adapted to reflect your environment, in particular
|
||||||
|
# installation root directories, include path and library name.
|
||||||
|
# Since all files are linked with the MPI libraries, this file is
|
||||||
|
# for compiling PT-Scotch only. To compile Scotch, remove the
|
||||||
|
# -DSCOTCH_PTSCOTCH flag, as well as all references to MPI in the
|
||||||
|
# CFLAGS and CLIBFLAGS =
|
||||||
|
LDFLAGS variables.
|
||||||
|
|
||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = make
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = gcc
|
||||||
|
CCP = gcc
|
||||||
|
CCD = gcc
|
||||||
|
|
||||||
|
#--- Compiler/loader flags
|
||||||
|
CFLAGS_CPL = -O0 -g3
|
||||||
|
CFLAGS_INC =
|
||||||
|
CFLAGS_DEF = -DCOMMON_RANDOM_FIXED_SEED -DCOMMON_STUB_FORK -DSCOTCH_PTSCOTCH -DSCOTCH_RENAME -D'pipe(pfds)=_pipe(pfds,1024,0x8000)'
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS =
|
||||||
|
|
||||||
|
PGMFILES=$(PROGRAMFILES)
|
||||||
|
|
||||||
|
#--- MPI
|
||||||
|
MPI_ROOTDIR = $(PGMFILES)/MPICH2
|
||||||
|
CFLAGS_INC += -I$(MPI_ROOTDIR)/include
|
||||||
|
#--- Comment/Uncomment for threaded MPI
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS += -L$(MPI_ROOTDIR)/lib -lm -lmpi
|
||||||
|
#CLIBFLAGS =
|
||||||
|
LDFLAGS += -L$(MPI_ROOTDIR)/lib -lm -lmpich2mt
|
||||||
|
|
||||||
|
#--- Pthread : Uncomment for pthread support
|
||||||
|
#PTHREAD_ROOTDIR = $(PGMFILES)/pthread-win32
|
||||||
|
#CFLAGS_INC += -I$(PTHREAD_ROOTDIR)/include
|
||||||
|
#CLIBFLAGS =
|
||||||
|
LDFLAGS += -L$(PTHREAD_ROOTDIR)/lib -lpthreadGC2
|
||||||
|
|
||||||
|
#--- zlib: Uncomment for compressed files
|
||||||
|
#ZLIB_ROOTDIR = $(PGMFILES)/zlib-1.2.3
|
||||||
|
#CFLAGS_INC += -I$(ZLIB_ROOTDIR)/include
|
||||||
|
#CLIBFLAGS =
|
||||||
|
LDFLAGS += -L$(ZLIB_ROOTDIR)/lib -lzdll
|
||||||
|
|
||||||
|
#--- COMMON_PTHREAD: Uncomment for compressed files
|
||||||
|
#CFLAGS_DEF += -DCOMMON_PTHREAD -DCOMMON_FILE_COMPRESS_GZ
|
||||||
|
|
||||||
|
#--- SCOTCH_PTHREAD: Uncomment for threaded MPI
|
||||||
|
#CFLAGS_DEF += -DSCOTCH_PTHREAD
|
||||||
|
|
||||||
|
CFLAGS = $(CFLAGS_CPL) $(CFLAGS_INC) $(CFLAGS_DEF)
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = cp
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_sun_solaris5
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.i686_sun_solaris5
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = make
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = cc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = mpicc
|
||||||
|
CFLAGS = -m64 -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME -Du_int32_t=uint32_t -Du_int64_t=uint64_t
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lz -lm -lrt
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = yacc
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.mips_sgi_irix6
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.mips_sgi_irix6
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = gmake
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = xlc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = mpicc
|
||||||
|
CFLAGS = -n32 -xansi -fullwarn -O2 -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lm
|
||||||
|
CP = cp
|
||||||
|
LEX = lex
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = yacc
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.pa11_hp_ux10
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.pa11_hp_ux10
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = gmake
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = cc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = mpicc
|
||||||
|
CFLAGS = -Aa -z +DA1.1 +w1 +O4 +Onoinitcheck +Onolimit -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lm
|
||||||
|
CP = cp
|
||||||
|
LEX = lex
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = yacc
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.power3_ibm_aix5
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.power3_ibm_aix5
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = gmake
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -X64 -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = xlc_r
|
||||||
|
CCP = mpcc_r
|
||||||
|
CCD = xlc_r -I/usr/lpp/ppe.poe/include
|
||||||
|
CFLAGS = -ma -q64 -qarch=auto -O3 -qstrict -qtune=pwr3 -qlanglvl=extc99 -s -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME -D_ALL_SOURCE
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -bmaxdata:0x80000000 -lpthread -lm
|
||||||
|
CP = cp
|
||||||
|
LEX = lex
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = yacc
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.power6_ibm_aix5
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.power6_ibm_aix5
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = gmake
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -X64 -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = xlc_r
|
||||||
|
CCP = mpcc_r
|
||||||
|
CCD = xlc_r -I/usr/lpp/ppe.poe/include
|
||||||
|
CFLAGS = -ma -q64 -qarch=auto -O3 -qstrict -qtune=pwr6 -qlanglvl=extc99 -s -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME -D_ALL_SOURCE
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lpthread -lm
|
||||||
|
CP = cp
|
||||||
|
LEX = lex
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = yacc
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.ppc450_ibm_bgp
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.ppc450_ibm_bgp
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = gmake
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = /bgsys/drivers/ppcfloor/comm/bin/mpixlc_r
|
||||||
|
CCP = /bgsys/drivers/ppcfloor/comm/bin/mpixlc_r
|
||||||
|
CCD = xlc_r -I/bgsys/drivers/ppcfloor/comm/include
|
||||||
|
CFLAGS = -O3 -qstrict -qlanglvl=extc99 -qarch=450d -qtune=450 -s -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_DETERMINISTIC -D_ALL_SOURCE
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lpthread -lm
|
||||||
|
CP = cp
|
||||||
|
LEX = lex
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = yacc
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.ppca2_ibm_bgq
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.ppca2_ibm_bgq
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = gmake
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = /bgsys/drivers/ppcfloor/comm/xl/bin/mpixlc_r
|
||||||
|
CCP = /bgsys/drivers/ppcfloor/comm/xl/bin/mpixlc_r
|
||||||
|
CCD = xlc_r -I/bgsys/drivers/ppcfloor/comm/xl/include
|
||||||
|
CFLAGS = -O3 -qstrict -qlanglvl=extc99 -s -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_DETERMINISTIC -D_ALL_SOURCE
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lpthread -lm
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = gmake
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = cc
|
||||||
|
CCP = cc
|
||||||
|
CCD = cc
|
||||||
|
CFLAGS = -O3 -c99 -fast -fastsse -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME -DIDXSIZE64
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lm -lrt
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.x86-64_pc_freebsd
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.x86-64_pc_freebsd
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = gmake
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = cc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = cc
|
||||||
|
CFLAGS += -std -fPIC -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER -DSCOTCH_PTHREAD -Drestrict=__restrict -DIDXSIZE64
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS += -lz -lm -lthread
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.x86-64_pc_linux2
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.x86-64_pc_linux2
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = make
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = gcc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = gcc
|
||||||
|
CFLAGS = -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -Drestrict=__restrict -DIDXSIZE64
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lz -lm -lrt -pthread
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
21
scotch_6.0.3/src/Make.inc/Makefile.inc.x86-64_pc_linux2.icc
Normal file
21
scotch_6.0.3/src/Make.inc/Makefile.inc.x86-64_pc_linux2.icc
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = make
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = icc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = icc
|
||||||
|
CFLAGS = -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -restrict -DIDXSIZE64
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -lz -lm -lrt -pthread
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .a
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = make
|
||||||
|
AR = ar
|
||||||
|
ARFLAGS = -ruv
|
||||||
|
CAT = cat
|
||||||
|
CCS = icc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = icc
|
||||||
|
CFLAGS = -g -O0 -fp-model strict -traceback -check-uninit -fp-stack-check -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_DEBUG_ALL -DSCOTCH_DETERMINISTIC -DSCOTCH_RENAME -restrict -DIDXSIZE64
|
||||||
|
CLIBFLAGS =
|
||||||
|
LDFLAGS = -g -lz -lm -lrt -pthread
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = ranlib
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
EXE =
|
||||||
|
LIB = .so
|
||||||
|
OBJ = .o
|
||||||
|
|
||||||
|
MAKE = make
|
||||||
|
AR = gcc
|
||||||
|
ARFLAGS = -shared -o
|
||||||
|
CAT = cat
|
||||||
|
CCS = gcc
|
||||||
|
CCP = mpicc
|
||||||
|
CCD = gcc
|
||||||
|
CFLAGS = -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -Drestrict=__restrict -DIDXSIZE64
|
||||||
|
CLIBFLAGS = -shared -fPIC
|
||||||
|
LDFLAGS = -lz -lm -lrt -pthread
|
||||||
|
CP = cp
|
||||||
|
LEX = flex -Pscotchyy -olex.yy.c
|
||||||
|
LN = ln
|
||||||
|
MKDIR = mkdir
|
||||||
|
MV = mv
|
||||||
|
RANLIB = echo
|
||||||
|
YACC = bison -pscotchyy -y -b y
|
||||||
13
scotch_6.0.3/src/Make.inc/mingw32/README.txt
Normal file
13
scotch_6.0.3/src/Make.inc/mingw32/README.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
These three script files can be used to create a Windows DLL from the
|
||||||
|
PT-Scotch library on a MinGW32 system. They are intended to be called
|
||||||
|
directly from the src/Make.inc/mingw32 directory and produce results
|
||||||
|
in the lib directory.
|
||||||
|
|
||||||
|
The first two ones must be called from a Unix-like shell window.
|
||||||
|
The last one must be called from a MSDOS-like command window.
|
||||||
|
|
||||||
|
These scripts are intended only as examples. They must be adapted to
|
||||||
|
reflect your environment, in particular library path and library name.
|
||||||
|
|
||||||
|
They have been provided by Yves Secretan (yves.secretan@ete.inrs.ca)
|
||||||
|
and are licensed under the CeCILL-C libre/free license.
|
||||||
20
scotch_6.0.3/src/Make.inc/mingw32/gendll_0.sh
Executable file
20
scotch_6.0.3/src/Make.inc/mingw32/gendll_0.sh
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# (C) 2008 Yves Secretan (yves.secretan@ete.inrs.ca)
|
||||||
|
# This software is governed by the CeCILL-C license under French law
|
||||||
|
# and abiding by the rules of distribution of free software. You can
|
||||||
|
# use, modify and/or redistribute the software under the terms of the
|
||||||
|
# CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
|
||||||
|
# URL: "http://www.cecill.info".
|
||||||
|
#
|
||||||
|
# To be executed in a MSYS window.
|
||||||
|
#
|
||||||
|
# This file will link the PT-Scotch DLL. It must be adapted to reflect
|
||||||
|
# your environment, in particular library path and library name.
|
||||||
|
|
||||||
|
export OBJS="../../libscotch/lib*.o"
|
||||||
|
export LDFLAGS="--shared -Wl,--allow-multiple-definition"
|
||||||
|
export PGMFILES="/l"
|
||||||
|
export LDPATH="-L../../../lib -L$PGMFILES/MPICH2/lib -L$PGMFILES/pthread-win32/lib"
|
||||||
|
export LDLIBS="-lptscotch -lptscotcherr -lmpi -lpthreadGC2"
|
||||||
|
|
||||||
|
gcc --output ../../../lib/libptscotch.dll $LDFLAGS $LDPATH $OBJS $LDLIBS
|
||||||
16
scotch_6.0.3/src/Make.inc/mingw32/gendll_1.sh
Executable file
16
scotch_6.0.3/src/Make.inc/mingw32/gendll_1.sh
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# (C) 2008 Yves Secretan (yves.secretan@ete.inrs.ca)
|
||||||
|
# This software is governed by the CeCILL-C license under French law
|
||||||
|
# and abiding by the rules of distribution of free software. You can
|
||||||
|
# use, modify and/or redistribute the software under the terms of the
|
||||||
|
# CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
|
||||||
|
# URL: "http://www.cecill.info".
|
||||||
|
#
|
||||||
|
# To be executed in a MSYS window.
|
||||||
|
#
|
||||||
|
# This file creates the Exports definition file from the PT-Scotch DLL.
|
||||||
|
# It must be adapted to reflect your environment, in particular library
|
||||||
|
# path and library name.
|
||||||
|
|
||||||
|
echo EXPORTS > ../../../lib/libptscotch.def
|
||||||
|
nm ../../../lib/libptscotch.a | grep ' T _SCOTCH_' | sed 's/.* T _//' >> ../../../lib/libptscotch.def
|
||||||
14
scotch_6.0.3/src/Make.inc/mingw32/gendll_2.bat
Executable file
14
scotch_6.0.3/src/Make.inc/mingw32/gendll_2.bat
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
REM (C) 2008 Yves Secretan (yves.secretan@ete.inrs.ca)
|
||||||
|
REM This software is governed by the CeCILL-C license under French law
|
||||||
|
REM and abiding by the rules of distribution of free software. You can
|
||||||
|
REM use, modify and/or redistribute the software under the terms of the
|
||||||
|
REM CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
|
||||||
|
REM URL: "http://www.cecill.info".
|
||||||
|
REM
|
||||||
|
REM To be executed in a DOS window.
|
||||||
|
REM
|
||||||
|
REM This file will create the PT-Scotch DLL. It must be adapted to reflect
|
||||||
|
REM your environment, in particular library path and library name.
|
||||||
|
REM
|
||||||
|
set VC_PATH="C:\Program Files\Microsoft Visual Studio .NET\VC7\BIN"
|
||||||
|
%VC_PATH%\vcvars32.bat && %VC_PATH%\lib.exe /def:..\..\..\lib\libptscotch.def /out:..\..\..\lib\libptscotch.dll
|
||||||
134
scotch_6.0.3/src/Makefile
Normal file
134
scotch_6.0.3/src/Makefile
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
## Copyright 2004,2007,2008,2010-2012,2014 IPB, Universite de Bordeaux, INRIA & CNRS
|
||||||
|
##
|
||||||
|
## This file is part of the Scotch software package for static mapping,
|
||||||
|
## graph partitioning and sparse matrix ordering.
|
||||||
|
##
|
||||||
|
## This software is governed by the CeCILL-C license under French law
|
||||||
|
## and abiding by the rules of distribution of free software. You can
|
||||||
|
## use, modify and/or redistribute the software under the terms of the
|
||||||
|
## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
|
||||||
|
## URL: "http://www.cecill.info".
|
||||||
|
##
|
||||||
|
## As a counterpart to the access to the source code and rights to copy,
|
||||||
|
## modify and redistribute granted by the license, users are provided
|
||||||
|
## only with a limited warranty and the software's author, the holder of
|
||||||
|
## the economic rights, and the successive licensors have only limited
|
||||||
|
## liability.
|
||||||
|
##
|
||||||
|
## In this respect, the user's attention is drawn to the risks associated
|
||||||
|
## with loading, using, modifying and/or developing or reproducing the
|
||||||
|
## software by the user in light of its specific status of free software,
|
||||||
|
## that may mean that it is complicated to manipulate, and that also
|
||||||
|
## therefore means that it is reserved for developers and experienced
|
||||||
|
## professionals having in-depth computer knowledge. Users are therefore
|
||||||
|
## encouraged to load and test the software's suitability as regards
|
||||||
|
## their requirements in conditions enabling the security of their
|
||||||
|
## systems and/or data to be ensured and, more generally, to use and
|
||||||
|
## operate it in the same conditions as regards security.
|
||||||
|
##
|
||||||
|
## The fact that you are presently reading this means that you have had
|
||||||
|
## knowledge of the CeCILL-C license and that you accept its terms.
|
||||||
|
##
|
||||||
|
|
||||||
|
VERSION = 6
|
||||||
|
RELEASE = 0
|
||||||
|
PATCHLEVEL = 3
|
||||||
|
|
||||||
|
.PHONY : clean default install ptscotch realclean required scotch
|
||||||
|
|
||||||
|
default : scotch
|
||||||
|
|
||||||
|
required : Makefile.inc ../bin ../include ../lib
|
||||||
|
|
||||||
|
Makefile.inc :
|
||||||
|
@echo "#####################################################################"
|
||||||
|
@echo "BEFORE COMPILING Scotch OR PT-Scotch, YOU SHOULD HAVE AN APPROPRIATE"
|
||||||
|
@echo "Makefile.inc FILE IN THIS DIRECTORY. PLEASE LOOK INTO DIRECTORY"
|
||||||
|
@echo " ./Make.inc FOR AN EXISTING Makefile.inc FILE THAT FITS YOUR NEED, OR"
|
||||||
|
@echo "USE THEM AS MODELS IN CASE YOU NEED TO BUILD A NEW ONE FOR YOUR"
|
||||||
|
@echo "PARTICULAR PLATFORM."
|
||||||
|
@echo "#####################################################################"
|
||||||
|
@echo "Then, type \"make scotch\" (default) for the sequential library"
|
||||||
|
@echo "and software, or \"make ptscotch\" for the parallel library and"
|
||||||
|
@echo "software."
|
||||||
|
@exit 1
|
||||||
|
|
||||||
|
include Makefile.inc
|
||||||
|
|
||||||
|
prefix ?= /usr/local
|
||||||
|
bindir ?= $(prefix)/bin
|
||||||
|
includedir ?= $(prefix)/include
|
||||||
|
libdir ?= $(prefix)/lib
|
||||||
|
datarootdir ?= $(prefix)/share
|
||||||
|
mandir ?= $(datarootdir)/man
|
||||||
|
|
||||||
|
../bin :
|
||||||
|
-$(MKDIR) ../bin
|
||||||
|
|
||||||
|
../include :
|
||||||
|
-$(MKDIR) ../include
|
||||||
|
|
||||||
|
../lib :
|
||||||
|
-$(MKDIR) ../lib
|
||||||
|
|
||||||
|
$(bindir) :
|
||||||
|
-$(MKDIR) $(bindir)
|
||||||
|
|
||||||
|
$(datarootdir) :
|
||||||
|
-$(MKDIR) $(datarootdir)
|
||||||
|
|
||||||
|
$(includedir) :
|
||||||
|
-$(MKDIR) $(includedir)
|
||||||
|
|
||||||
|
$(libdir) :
|
||||||
|
-$(MKDIR) $(libdir)
|
||||||
|
|
||||||
|
$(mandir) : $(datarootdir)
|
||||||
|
-$(MKDIR) $(mandir)
|
||||||
|
|
||||||
|
$(mandir)/man1 : $(mandir)
|
||||||
|
-$(MKDIR) $(mandir)/man1
|
||||||
|
|
||||||
|
scotch : required
|
||||||
|
(cd libscotch ; $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) scotch && $(MAKE) install)
|
||||||
|
(cd scotch ; $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) scotch && $(MAKE) install)
|
||||||
|
(cd libscotchmetis ; $(MAKE) scotch && $(MAKE) install)
|
||||||
|
|
||||||
|
ptscotch : required
|
||||||
|
(cd libscotch ; $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) ptscotch && $(MAKE) ptinstall)
|
||||||
|
(cd scotch ; $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) ptscotch && $(MAKE) ptinstall)
|
||||||
|
(cd libscotchmetis ; $(MAKE) ptscotch && $(MAKE) ptinstall)
|
||||||
|
|
||||||
|
check : scotch
|
||||||
|
(cd check ; $(MAKE) check)
|
||||||
|
|
||||||
|
ptcheck : ptscotch
|
||||||
|
(cd check ; $(MAKE) ptcheck)
|
||||||
|
|
||||||
|
esmumps : scotch
|
||||||
|
(cd esmumps ; $(MAKE) scotch && $(MAKE) install)
|
||||||
|
|
||||||
|
ptesmumps : ptscotch
|
||||||
|
(cd esmumps ; $(MAKE) ptscotch && $(MAKE) ptinstall)
|
||||||
|
|
||||||
|
install : required $(bindir) $(includedir) $(libdir) $(mandir)/man1
|
||||||
|
-$(CP) -f ../bin/[agm]*$(EXE) $(bindir)
|
||||||
|
-$(CP) -f ../bin/d[agm]*$(EXE) $(bindir)
|
||||||
|
-$(CP) -f ../include/*scotch*.h $(includedir)
|
||||||
|
-$(CP) -f ../lib/*scotch*$(LIB) $(libdir)
|
||||||
|
-$(CP) -Rf ../man/* $(mandir)
|
||||||
|
|
||||||
|
clean : required
|
||||||
|
(cd libscotch ; $(MAKE) clean)
|
||||||
|
(cd scotch ; $(MAKE) clean)
|
||||||
|
(cd libscotchmetis ; $(MAKE) clean)
|
||||||
|
(cd check ; $(MAKE) clean)
|
||||||
|
(cd esmumps ; $(MAKE) clean)
|
||||||
|
|
||||||
|
realclean : required
|
||||||
|
(cd libscotch ; $(MAKE) realclean)
|
||||||
|
(cd scotch ; $(MAKE) realclean)
|
||||||
|
(cd libscotchmetis ; $(MAKE) realclean)
|
||||||
|
(cd check ; $(MAKE) realclean)
|
||||||
|
(cd esmumps ; $(MAKE) realclean)
|
||||||
|
-$(RM) ../bin/* ../include/* ../lib/*
|
||||||
1
scotch_6.0.3/src/Makefile.inc
Symbolic link
1
scotch_6.0.3/src/Makefile.inc
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM-64Int32
|
||||||
220
scotch_6.0.3/src/check/Makefile
Normal file
220
scotch_6.0.3/src/check/Makefile
Normal file
@ -0,0 +1,220 @@
|
|||||||
|
## Copyright 2011,2012,2014 IPB, Universite de Bordeaux, INRIA & CNRS
|
||||||
|
##
|
||||||
|
## This file is part of the Scotch software package for static mapping,
|
||||||
|
## graph partitioning and sparse matrix ordering.
|
||||||
|
##
|
||||||
|
## This software is governed by the CeCILL-C license under French law
|
||||||
|
## and abiding by the rules of distribution of free software. You can
|
||||||
|
## use, modify and/or redistribute the software under the terms of the
|
||||||
|
## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
|
||||||
|
## URL: "http://www.cecill.info".
|
||||||
|
##
|
||||||
|
## As a counterpart to the access to the source code and rights to copy,
|
||||||
|
## modify and redistribute granted by the license, users are provided
|
||||||
|
## only with a limited warranty and the software's author, the holder of
|
||||||
|
## the economic rights, and the successive licensors have only limited
|
||||||
|
## liability.
|
||||||
|
##
|
||||||
|
## In this respect, the user's attention is drawn to the risks associated
|
||||||
|
## with loading, using, modifying and/or developing or reproducing the
|
||||||
|
## software by the user in light of its specific status of free software,
|
||||||
|
## that may mean that it is complicated to manipulate, and that also
|
||||||
|
## therefore means that it is reserved for developers and experienced
|
||||||
|
## professionals having in-depth computer knowledge. Users are therefore
|
||||||
|
## encouraged to load and test the software's suitability as regards
|
||||||
|
## their requirements in conditions enabling the security of their
|
||||||
|
## systems and/or data to be ensured and, more generally, to use and
|
||||||
|
## operate it in the same conditions as regards security.
|
||||||
|
##
|
||||||
|
## The fact that you are presently reading this means that you have had
|
||||||
|
## knowledge of the CeCILL-C license and that you accept its terms.
|
||||||
|
##
|
||||||
|
|
||||||
|
SCOTCHINCLUDEDIR = ../../include
|
||||||
|
SCOTCHLIBDIR = ../../lib
|
||||||
|
SCOTCHBINDIR = ../../bin
|
||||||
|
|
||||||
|
LIBPTSCOTCH = -lptscotch -lscotch -lptscotcherrexit
|
||||||
|
LIBSCOTCH = -lscotch -lscotcherrexit
|
||||||
|
|
||||||
|
DEPPTSCOTCH = $(SCOTCHLIBDIR)/libptscotch$(LIB)
|
||||||
|
DEPSCOTCH = $(SCOTCHLIBDIR)/libscotch$(LIB)
|
||||||
|
|
||||||
|
EXECP = mpirun -n 4
|
||||||
|
|
||||||
|
##
|
||||||
|
## General inference rules.
|
||||||
|
##
|
||||||
|
|
||||||
|
include ../Makefile.inc
|
||||||
|
|
||||||
|
%$(OBJ) : %.c
|
||||||
|
$(CC) $(CFLAGS) $(CLIBFLAGS) -I$(SCOTCHINCLUDEDIR) -c $(<) -o $(@)
|
||||||
|
|
||||||
|
%$(EXE) : %.c
|
||||||
|
$(CC) $(CFLAGS) -I$(SCOTCHINCLUDEDIR) -L$(SCOTCHLIBDIR) $(<) -o $(@) $(SCOTCHLIBS) $(LDFLAGS)
|
||||||
|
|
||||||
|
##
|
||||||
|
## Project rules.
|
||||||
|
##
|
||||||
|
|
||||||
|
.PHONY : check ptcheck clean realclean
|
||||||
|
|
||||||
|
check : realclean
|
||||||
|
$(MAKE) CC="$(CCS)" CCD="$(CCS)" SCOTCHLIBS="$(LIBSCOTCH)" $(CHECKSCOTCH)
|
||||||
|
|
||||||
|
ptcheck : realclean
|
||||||
|
$(MAKE) CFLAGS="$(CFLAGS) -DSCOTCH_PTSCOTCH" CC="$(CCP)" SCOTCHLIBS="$(LIBPTSCOTCH)" $(CHECKPTSCOTCH)
|
||||||
|
|
||||||
|
clean :
|
||||||
|
-$(RM) *~ *$(OBJ)
|
||||||
|
|
||||||
|
realclean : clean
|
||||||
|
-$(RM) \
|
||||||
|
test_common_thread \
|
||||||
|
test_scotch_graph_color \
|
||||||
|
test_scotch_graph_map \
|
||||||
|
test_scotch_graph_order \
|
||||||
|
test_scotch_graph_part_ovl \
|
||||||
|
test_scotch_dgraph_band \
|
||||||
|
test_scotch_dgraph_check \
|
||||||
|
test_scotch_dgraph_coarsen \
|
||||||
|
test_scotch_dgraph_grow \
|
||||||
|
test_scotch_dgraph_redist \
|
||||||
|
test_strat_par \
|
||||||
|
test_strat_seq
|
||||||
|
|
||||||
|
##
|
||||||
|
## Test cases dependencies.
|
||||||
|
##
|
||||||
|
|
||||||
|
CHECKSCOTCH = check_common_thread \
|
||||||
|
check_strat_seq \
|
||||||
|
check_graph_color \
|
||||||
|
check_graph_map \
|
||||||
|
check_graph_order \
|
||||||
|
check_graph_part_ovl \
|
||||||
|
check_prog_gpart_remap
|
||||||
|
|
||||||
|
CHECKPTSCOTCH = check_strat_par \
|
||||||
|
check_scotch_dgraph_check \
|
||||||
|
check_scotch_dgraph_band \
|
||||||
|
check_scotch_dgraph_coarsen \
|
||||||
|
check_scotch_dgraph_grow \
|
||||||
|
check_scotch_dgraph_redist \
|
||||||
|
|
||||||
|
##
|
||||||
|
## Todo list.
|
||||||
|
##
|
||||||
|
|
||||||
|
check_dgraph_fold_comm : test_dgraph_fold_comm
|
||||||
|
$(EXECS) ./test_dgraph_fold_comm data/dgraph_fold_comm_1.txt
|
||||||
|
|
||||||
|
test_dgraph_fold_comm : test_dgraph_fold_comm.c
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
|
check_scotch_dgraph_redist : test_scotch_dgraph_redist
|
||||||
|
$(EXECP) ./test_scotch_dgraph_redist data/bump.grf
|
||||||
|
|
||||||
|
test_scotch_dgraph_redist : test_scotch_dgraph_redist.c
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
|
check_prog_gpart_remap :
|
||||||
|
$(EXECS) $(SCOTCHBINDIR)/gpart 32 data/bump_imbal_32.grf /dev/null -rodata/bump_old.map -vmt
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
|
check_common_thread : test_common_thread
|
||||||
|
$(EXECS) ./test_common_thread
|
||||||
|
|
||||||
|
test_common_thread : test_common_thread.c \
|
||||||
|
$(SCOTCHLIBDIR)/libscotch$(LIB)
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
|
check_graph_color : test_scotch_graph_color
|
||||||
|
$(EXECS) ./test_scotch_graph_color data/bump.grf
|
||||||
|
|
||||||
|
test_graph_color : test_scotch_graph_color.c \
|
||||||
|
$(SCOTCHLIBDIR)/libscotch$(LIB)
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
|
check_graph_map : test_scotch_graph_map
|
||||||
|
$(EXECS) ./test_scotch_graph_map data/m4x4.grf
|
||||||
|
$(EXECS) ./test_scotch_graph_map data/m4x4_b1.grf
|
||||||
|
$(EXECS) ./test_scotch_graph_map data/m16x16.grf
|
||||||
|
$(EXECS) ./test_scotch_graph_map data/m16x16_b1.grf
|
||||||
|
|
||||||
|
test_graph_map : test_scotch_graph_map.c \
|
||||||
|
$(SCOTCHLIBDIR)/libscotch$(LIB)
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
|
check_graph_order : test_scotch_graph_order
|
||||||
|
$(EXECS) ./test_scotch_graph_order data/bump.grf
|
||||||
|
$(EXECS) ./test_scotch_graph_order data/bump_b1.grf
|
||||||
|
|
||||||
|
test_graph_order : test_scotch_graph_order.c \
|
||||||
|
$(SCOTCHLIBDIR)/libscotch$(LIB)
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
|
check_graph_part_ovl : test_scotch_graph_part_ovl
|
||||||
|
$(EXECS) ./test_scotch_graph_part_ovl 4 data/m16x16.grf /dev/null
|
||||||
|
$(EXECS) ./test_scotch_graph_part_ovl 4 data/m16x16_b1.grf /dev/null
|
||||||
|
|
||||||
|
test_graph_part_ovl : test_scotch_graph_part_ovl.c \
|
||||||
|
$(SCOTCHLIBDIR)/libscotch$(LIB)
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
|
check_strat_seq : test_strat_seq
|
||||||
|
$(EXECS) ./test_strat_seq
|
||||||
|
|
||||||
|
test_strat_seq : test_strat_seq.c \
|
||||||
|
$(SCOTCHLIBDIR)/libscotch$(LIB)
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
|
check_strat_par : test_strat_par
|
||||||
|
$(EXECS) ./test_strat_par
|
||||||
|
|
||||||
|
test_strat_par : test_strat_par.c \
|
||||||
|
$(SCOTCHLIBDIR)/libptscotch$(LIB)
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
|
check_scotch_dgraph_band : test_scotch_dgraph_band
|
||||||
|
$(EXECP) ./test_scotch_dgraph_band data/bump_b1.grf
|
||||||
|
|
||||||
|
test_scotch_dgraph_band : test_scotch_dgraph_band.c \
|
||||||
|
$(SCOTCHLIBDIR)/libptscotch$(LIB)
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
|
check_scotch_dgraph_coarsen : test_scotch_dgraph_coarsen
|
||||||
|
$(EXECP) ./test_scotch_dgraph_coarsen data/bump.grf
|
||||||
|
$(EXECP) ./test_scotch_dgraph_coarsen data/bump_b1.grf
|
||||||
|
|
||||||
|
test_scotch_dgraph_coarsen : test_scotch_dgraph_coarsen.c \
|
||||||
|
$(SCOTCHLIBDIR)/libptscotch$(LIB)
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
|
check_scotch_dgraph_check : test_scotch_dgraph_check
|
||||||
|
$(EXECP) ./test_scotch_dgraph_check data/bump.grf
|
||||||
|
$(EXECP) ./test_scotch_dgraph_check data/bump_b1.grf
|
||||||
|
|
||||||
|
test_scotch_dgraph_check : test_scotch_dgraph_check.c \
|
||||||
|
$(SCOTCHLIBDIR)/libptscotch$(LIB)
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
|
check_scotch_dgraph_grow : test_scotch_dgraph_grow
|
||||||
|
$(EXECP) ./test_scotch_dgraph_grow data/bump.grf
|
||||||
|
|
||||||
|
test_scotch_dgraph_grow : test_scotch_dgraph_grow.c \
|
||||||
|
$(SCOTCHLIBDIR)/libptscotch$(LIB)
|
||||||
9803
scotch_6.0.3/src/check/data/bump.grf
Normal file
9803
scotch_6.0.3/src/check/data/bump.grf
Normal file
File diff suppressed because it is too large
Load Diff
9803
scotch_6.0.3/src/check/data/bump_b1.grf
Normal file
9803
scotch_6.0.3/src/check/data/bump_b1.grf
Normal file
File diff suppressed because it is too large
Load Diff
9803
scotch_6.0.3/src/check/data/bump_imbal_32.grf
Normal file
9803
scotch_6.0.3/src/check/data/bump_imbal_32.grf
Normal file
File diff suppressed because it is too large
Load Diff
9801
scotch_6.0.3/src/check/data/bump_old.map
Normal file
9801
scotch_6.0.3/src/check/data/bump_old.map
Normal file
File diff suppressed because it is too large
Load Diff
259
scotch_6.0.3/src/check/data/m16x16.grf
Normal file
259
scotch_6.0.3/src/check/data/m16x16.grf
Normal file
@ -0,0 +1,259 @@
|
|||||||
|
0
|
||||||
|
256 960
|
||||||
|
0 000
|
||||||
|
2 1 16
|
||||||
|
3 0 2 17
|
||||||
|
3 1 3 18
|
||||||
|
3 2 4 19
|
||||||
|
3 3 5 20
|
||||||
|
3 4 6 21
|
||||||
|
3 5 7 22
|
||||||
|
3 6 8 23
|
||||||
|
3 7 9 24
|
||||||
|
3 8 10 25
|
||||||
|
3 9 11 26
|
||||||
|
3 10 12 27
|
||||||
|
3 11 13 28
|
||||||
|
3 12 14 29
|
||||||
|
3 13 15 30
|
||||||
|
2 14 31
|
||||||
|
3 0 17 32
|
||||||
|
4 1 16 18 33
|
||||||
|
4 2 17 19 34
|
||||||
|
4 3 18 20 35
|
||||||
|
4 4 19 21 36
|
||||||
|
4 5 20 22 37
|
||||||
|
4 6 21 23 38
|
||||||
|
4 7 22 24 39
|
||||||
|
4 8 23 25 40
|
||||||
|
4 9 24 26 41
|
||||||
|
4 10 25 27 42
|
||||||
|
4 11 26 28 43
|
||||||
|
4 12 27 29 44
|
||||||
|
4 13 28 30 45
|
||||||
|
4 14 29 31 46
|
||||||
|
3 15 30 47
|
||||||
|
3 16 33 48
|
||||||
|
4 17 32 34 49
|
||||||
|
4 18 33 35 50
|
||||||
|
4 19 34 36 51
|
||||||
|
4 20 35 37 52
|
||||||
|
4 21 36 38 53
|
||||||
|
4 22 37 39 54
|
||||||
|
4 23 38 40 55
|
||||||
|
4 24 39 41 56
|
||||||
|
4 25 40 42 57
|
||||||
|
4 26 41 43 58
|
||||||
|
4 27 42 44 59
|
||||||
|
4 28 43 45 60
|
||||||
|
4 29 44 46 61
|
||||||
|
4 30 45 47 62
|
||||||
|
3 31 46 63
|
||||||
|
3 32 49 64
|
||||||
|
4 33 48 50 65
|
||||||
|
4 34 49 51 66
|
||||||
|
4 35 50 52 67
|
||||||
|
4 36 51 53 68
|
||||||
|
4 37 52 54 69
|
||||||
|
4 38 53 55 70
|
||||||
|
4 39 54 56 71
|
||||||
|
4 40 55 57 72
|
||||||
|
4 41 56 58 73
|
||||||
|
4 42 57 59 74
|
||||||
|
4 43 58 60 75
|
||||||
|
4 44 59 61 76
|
||||||
|
4 45 60 62 77
|
||||||
|
4 46 61 63 78
|
||||||
|
3 47 62 79
|
||||||
|
3 48 65 80
|
||||||
|
4 49 64 66 81
|
||||||
|
4 50 65 67 82
|
||||||
|
4 51 66 68 83
|
||||||
|
4 52 67 69 84
|
||||||
|
4 53 68 70 85
|
||||||
|
4 54 69 71 86
|
||||||
|
4 55 70 72 87
|
||||||
|
4 56 71 73 88
|
||||||
|
4 57 72 74 89
|
||||||
|
4 58 73 75 90
|
||||||
|
4 59 74 76 91
|
||||||
|
4 60 75 77 92
|
||||||
|
4 61 76 78 93
|
||||||
|
4 62 77 79 94
|
||||||
|
3 63 78 95
|
||||||
|
3 64 81 96
|
||||||
|
4 65 80 82 97
|
||||||
|
4 66 81 83 98
|
||||||
|
4 67 82 84 99
|
||||||
|
4 68 83 85 100
|
||||||
|
4 69 84 86 101
|
||||||
|
4 70 85 87 102
|
||||||
|
4 71 86 88 103
|
||||||
|
4 72 87 89 104
|
||||||
|
4 73 88 90 105
|
||||||
|
4 74 89 91 106
|
||||||
|
4 75 90 92 107
|
||||||
|
4 76 91 93 108
|
||||||
|
4 77 92 94 109
|
||||||
|
4 78 93 95 110
|
||||||
|
3 79 94 111
|
||||||
|
3 80 97 112
|
||||||
|
4 81 96 98 113
|
||||||
|
4 82 97 99 114
|
||||||
|
4 83 98 100 115
|
||||||
|
4 84 99 101 116
|
||||||
|
4 85 100 102 117
|
||||||
|
4 86 101 103 118
|
||||||
|
4 87 102 104 119
|
||||||
|
4 88 103 105 120
|
||||||
|
4 89 104 106 121
|
||||||
|
4 90 105 107 122
|
||||||
|
4 91 106 108 123
|
||||||
|
4 92 107 109 124
|
||||||
|
4 93 108 110 125
|
||||||
|
4 94 109 111 126
|
||||||
|
3 95 110 127
|
||||||
|
3 96 113 128
|
||||||
|
4 97 112 114 129
|
||||||
|
4 98 113 115 130
|
||||||
|
4 99 114 116 131
|
||||||
|
4 100 115 117 132
|
||||||
|
4 101 116 118 133
|
||||||
|
4 102 117 119 134
|
||||||
|
4 103 118 120 135
|
||||||
|
4 104 119 121 136
|
||||||
|
4 105 120 122 137
|
||||||
|
4 106 121 123 138
|
||||||
|
4 107 122 124 139
|
||||||
|
4 108 123 125 140
|
||||||
|
4 109 124 126 141
|
||||||
|
4 110 125 127 142
|
||||||
|
3 111 126 143
|
||||||
|
3 112 129 144
|
||||||
|
4 113 128 130 145
|
||||||
|
4 114 129 131 146
|
||||||
|
4 115 130 132 147
|
||||||
|
4 116 131 133 148
|
||||||
|
4 117 132 134 149
|
||||||
|
4 118 133 135 150
|
||||||
|
4 119 134 136 151
|
||||||
|
4 120 135 137 152
|
||||||
|
4 121 136 138 153
|
||||||
|
4 122 137 139 154
|
||||||
|
4 123 138 140 155
|
||||||
|
4 124 139 141 156
|
||||||
|
4 125 140 142 157
|
||||||
|
4 126 141 143 158
|
||||||
|
3 127 142 159
|
||||||
|
3 128 145 160
|
||||||
|
4 129 144 146 161
|
||||||
|
4 130 145 147 162
|
||||||
|
4 131 146 148 163
|
||||||
|
4 132 147 149 164
|
||||||
|
4 133 148 150 165
|
||||||
|
4 134 149 151 166
|
||||||
|
4 135 150 152 167
|
||||||
|
4 136 151 153 168
|
||||||
|
4 137 152 154 169
|
||||||
|
4 138 153 155 170
|
||||||
|
4 139 154 156 171
|
||||||
|
4 140 155 157 172
|
||||||
|
4 141 156 158 173
|
||||||
|
4 142 157 159 174
|
||||||
|
3 143 158 175
|
||||||
|
3 144 161 176
|
||||||
|
4 145 160 162 177
|
||||||
|
4 146 161 163 178
|
||||||
|
4 147 162 164 179
|
||||||
|
4 148 163 165 180
|
||||||
|
4 149 164 166 181
|
||||||
|
4 150 165 167 182
|
||||||
|
4 151 166 168 183
|
||||||
|
4 152 167 169 184
|
||||||
|
4 153 168 170 185
|
||||||
|
4 154 169 171 186
|
||||||
|
4 155 170 172 187
|
||||||
|
4 156 171 173 188
|
||||||
|
4 157 172 174 189
|
||||||
|
4 158 173 175 190
|
||||||
|
3 159 174 191
|
||||||
|
3 160 177 192
|
||||||
|
4 161 176 178 193
|
||||||
|
4 162 177 179 194
|
||||||
|
4 163 178 180 195
|
||||||
|
4 164 179 181 196
|
||||||
|
4 165 180 182 197
|
||||||
|
4 166 181 183 198
|
||||||
|
4 167 182 184 199
|
||||||
|
4 168 183 185 200
|
||||||
|
4 169 184 186 201
|
||||||
|
4 170 185 187 202
|
||||||
|
4 171 186 188 203
|
||||||
|
4 172 187 189 204
|
||||||
|
4 173 188 190 205
|
||||||
|
4 174 189 191 206
|
||||||
|
3 175 190 207
|
||||||
|
3 176 193 208
|
||||||
|
4 177 192 194 209
|
||||||
|
4 178 193 195 210
|
||||||
|
4 179 194 196 211
|
||||||
|
4 180 195 197 212
|
||||||
|
4 181 196 198 213
|
||||||
|
4 182 197 199 214
|
||||||
|
4 183 198 200 215
|
||||||
|
4 184 199 201 216
|
||||||
|
4 185 200 202 217
|
||||||
|
4 186 201 203 218
|
||||||
|
4 187 202 204 219
|
||||||
|
4 188 203 205 220
|
||||||
|
4 189 204 206 221
|
||||||
|
4 190 205 207 222
|
||||||
|
3 191 206 223
|
||||||
|
3 192 209 224
|
||||||
|
4 193 208 210 225
|
||||||
|
4 194 209 211 226
|
||||||
|
4 195 210 212 227
|
||||||
|
4 196 211 213 228
|
||||||
|
4 197 212 214 229
|
||||||
|
4 198 213 215 230
|
||||||
|
4 199 214 216 231
|
||||||
|
4 200 215 217 232
|
||||||
|
4 201 216 218 233
|
||||||
|
4 202 217 219 234
|
||||||
|
4 203 218 220 235
|
||||||
|
4 204 219 221 236
|
||||||
|
4 205 220 222 237
|
||||||
|
4 206 221 223 238
|
||||||
|
3 207 222 239
|
||||||
|
3 208 225 240
|
||||||
|
4 209 224 226 241
|
||||||
|
4 210 225 227 242
|
||||||
|
4 211 226 228 243
|
||||||
|
4 212 227 229 244
|
||||||
|
4 213 228 230 245
|
||||||
|
4 214 229 231 246
|
||||||
|
4 215 230 232 247
|
||||||
|
4 216 231 233 248
|
||||||
|
4 217 232 234 249
|
||||||
|
4 218 233 235 250
|
||||||
|
4 219 234 236 251
|
||||||
|
4 220 235 237 252
|
||||||
|
4 221 236 238 253
|
||||||
|
4 222 237 239 254
|
||||||
|
3 223 238 255
|
||||||
|
2 224 241
|
||||||
|
3 225 240 242
|
||||||
|
3 226 241 243
|
||||||
|
3 227 242 244
|
||||||
|
3 228 243 245
|
||||||
|
3 229 244 246
|
||||||
|
3 230 245 247
|
||||||
|
3 231 246 248
|
||||||
|
3 232 247 249
|
||||||
|
3 233 248 250
|
||||||
|
3 234 249 251
|
||||||
|
3 235 250 252
|
||||||
|
3 236 251 253
|
||||||
|
3 237 252 254
|
||||||
|
3 238 253 255
|
||||||
|
2 239 254
|
||||||
259
scotch_6.0.3/src/check/data/m16x16_b1.grf
Normal file
259
scotch_6.0.3/src/check/data/m16x16_b1.grf
Normal file
@ -0,0 +1,259 @@
|
|||||||
|
0
|
||||||
|
256 960
|
||||||
|
1 000
|
||||||
|
2 2 17
|
||||||
|
3 1 3 18
|
||||||
|
3 2 4 19
|
||||||
|
3 3 5 20
|
||||||
|
3 4 6 21
|
||||||
|
3 5 7 22
|
||||||
|
3 6 8 23
|
||||||
|
3 7 9 24
|
||||||
|
3 8 10 25
|
||||||
|
3 9 11 26
|
||||||
|
3 10 12 27
|
||||||
|
3 11 13 28
|
||||||
|
3 12 14 29
|
||||||
|
3 13 15 30
|
||||||
|
3 14 16 31
|
||||||
|
2 15 32
|
||||||
|
3 1 18 33
|
||||||
|
4 2 17 19 34
|
||||||
|
4 3 18 20 35
|
||||||
|
4 4 19 21 36
|
||||||
|
4 5 20 22 37
|
||||||
|
4 6 21 23 38
|
||||||
|
4 7 22 24 39
|
||||||
|
4 8 23 25 40
|
||||||
|
4 9 24 26 41
|
||||||
|
4 10 25 27 42
|
||||||
|
4 11 26 28 43
|
||||||
|
4 12 27 29 44
|
||||||
|
4 13 28 30 45
|
||||||
|
4 14 29 31 46
|
||||||
|
4 15 30 32 47
|
||||||
|
3 16 31 48
|
||||||
|
3 17 34 49
|
||||||
|
4 18 33 35 50
|
||||||
|
4 19 34 36 51
|
||||||
|
4 20 35 37 52
|
||||||
|
4 21 36 38 53
|
||||||
|
4 22 37 39 54
|
||||||
|
4 23 38 40 55
|
||||||
|
4 24 39 41 56
|
||||||
|
4 25 40 42 57
|
||||||
|
4 26 41 43 58
|
||||||
|
4 27 42 44 59
|
||||||
|
4 28 43 45 60
|
||||||
|
4 29 44 46 61
|
||||||
|
4 30 45 47 62
|
||||||
|
4 31 46 48 63
|
||||||
|
3 32 47 64
|
||||||
|
3 33 50 65
|
||||||
|
4 34 49 51 66
|
||||||
|
4 35 50 52 67
|
||||||
|
4 36 51 53 68
|
||||||
|
4 37 52 54 69
|
||||||
|
4 38 53 55 70
|
||||||
|
4 39 54 56 71
|
||||||
|
4 40 55 57 72
|
||||||
|
4 41 56 58 73
|
||||||
|
4 42 57 59 74
|
||||||
|
4 43 58 60 75
|
||||||
|
4 44 59 61 76
|
||||||
|
4 45 60 62 77
|
||||||
|
4 46 61 63 78
|
||||||
|
4 47 62 64 79
|
||||||
|
3 48 63 80
|
||||||
|
3 49 66 81
|
||||||
|
4 50 65 67 82
|
||||||
|
4 51 66 68 83
|
||||||
|
4 52 67 69 84
|
||||||
|
4 53 68 70 85
|
||||||
|
4 54 69 71 86
|
||||||
|
4 55 70 72 87
|
||||||
|
4 56 71 73 88
|
||||||
|
4 57 72 74 89
|
||||||
|
4 58 73 75 90
|
||||||
|
4 59 74 76 91
|
||||||
|
4 60 75 77 92
|
||||||
|
4 61 76 78 93
|
||||||
|
4 62 77 79 94
|
||||||
|
4 63 78 80 95
|
||||||
|
3 64 79 96
|
||||||
|
3 65 82 97
|
||||||
|
4 66 81 83 98
|
||||||
|
4 67 82 84 99
|
||||||
|
4 68 83 85 100
|
||||||
|
4 69 84 86 101
|
||||||
|
4 70 85 87 102
|
||||||
|
4 71 86 88 103
|
||||||
|
4 72 87 89 104
|
||||||
|
4 73 88 90 105
|
||||||
|
4 74 89 91 106
|
||||||
|
4 75 90 92 107
|
||||||
|
4 76 91 93 108
|
||||||
|
4 77 92 94 109
|
||||||
|
4 78 93 95 110
|
||||||
|
4 79 94 96 111
|
||||||
|
3 80 95 112
|
||||||
|
3 81 98 113
|
||||||
|
4 82 97 99 114
|
||||||
|
4 83 98 100 115
|
||||||
|
4 84 99 101 116
|
||||||
|
4 85 100 102 117
|
||||||
|
4 86 101 103 118
|
||||||
|
4 87 102 104 119
|
||||||
|
4 88 103 105 120
|
||||||
|
4 89 104 106 121
|
||||||
|
4 90 105 107 122
|
||||||
|
4 91 106 108 123
|
||||||
|
4 92 107 109 124
|
||||||
|
4 93 108 110 125
|
||||||
|
4 94 109 111 126
|
||||||
|
4 95 110 112 127
|
||||||
|
3 96 111 128
|
||||||
|
3 97 114 129
|
||||||
|
4 98 113 115 130
|
||||||
|
4 99 114 116 131
|
||||||
|
4 100 115 117 132
|
||||||
|
4 101 116 118 133
|
||||||
|
4 102 117 119 134
|
||||||
|
4 103 118 120 135
|
||||||
|
4 104 119 121 136
|
||||||
|
4 105 120 122 137
|
||||||
|
4 106 121 123 138
|
||||||
|
4 107 122 124 139
|
||||||
|
4 108 123 125 140
|
||||||
|
4 109 124 126 141
|
||||||
|
4 110 125 127 142
|
||||||
|
4 111 126 128 143
|
||||||
|
3 112 127 144
|
||||||
|
3 113 130 145
|
||||||
|
4 114 129 131 146
|
||||||
|
4 115 130 132 147
|
||||||
|
4 116 131 133 148
|
||||||
|
4 117 132 134 149
|
||||||
|
4 118 133 135 150
|
||||||
|
4 119 134 136 151
|
||||||
|
4 120 135 137 152
|
||||||
|
4 121 136 138 153
|
||||||
|
4 122 137 139 154
|
||||||
|
4 123 138 140 155
|
||||||
|
4 124 139 141 156
|
||||||
|
4 125 140 142 157
|
||||||
|
4 126 141 143 158
|
||||||
|
4 127 142 144 159
|
||||||
|
3 128 143 160
|
||||||
|
3 129 146 161
|
||||||
|
4 130 145 147 162
|
||||||
|
4 131 146 148 163
|
||||||
|
4 132 147 149 164
|
||||||
|
4 133 148 150 165
|
||||||
|
4 134 149 151 166
|
||||||
|
4 135 150 152 167
|
||||||
|
4 136 151 153 168
|
||||||
|
4 137 152 154 169
|
||||||
|
4 138 153 155 170
|
||||||
|
4 139 154 156 171
|
||||||
|
4 140 155 157 172
|
||||||
|
4 141 156 158 173
|
||||||
|
4 142 157 159 174
|
||||||
|
4 143 158 160 175
|
||||||
|
3 144 159 176
|
||||||
|
3 145 162 177
|
||||||
|
4 146 161 163 178
|
||||||
|
4 147 162 164 179
|
||||||
|
4 148 163 165 180
|
||||||
|
4 149 164 166 181
|
||||||
|
4 150 165 167 182
|
||||||
|
4 151 166 168 183
|
||||||
|
4 152 167 169 184
|
||||||
|
4 153 168 170 185
|
||||||
|
4 154 169 171 186
|
||||||
|
4 155 170 172 187
|
||||||
|
4 156 171 173 188
|
||||||
|
4 157 172 174 189
|
||||||
|
4 158 173 175 190
|
||||||
|
4 159 174 176 191
|
||||||
|
3 160 175 192
|
||||||
|
3 161 178 193
|
||||||
|
4 162 177 179 194
|
||||||
|
4 163 178 180 195
|
||||||
|
4 164 179 181 196
|
||||||
|
4 165 180 182 197
|
||||||
|
4 166 181 183 198
|
||||||
|
4 167 182 184 199
|
||||||
|
4 168 183 185 200
|
||||||
|
4 169 184 186 201
|
||||||
|
4 170 185 187 202
|
||||||
|
4 171 186 188 203
|
||||||
|
4 172 187 189 204
|
||||||
|
4 173 188 190 205
|
||||||
|
4 174 189 191 206
|
||||||
|
4 175 190 192 207
|
||||||
|
3 176 191 208
|
||||||
|
3 177 194 209
|
||||||
|
4 178 193 195 210
|
||||||
|
4 179 194 196 211
|
||||||
|
4 180 195 197 212
|
||||||
|
4 181 196 198 213
|
||||||
|
4 182 197 199 214
|
||||||
|
4 183 198 200 215
|
||||||
|
4 184 199 201 216
|
||||||
|
4 185 200 202 217
|
||||||
|
4 186 201 203 218
|
||||||
|
4 187 202 204 219
|
||||||
|
4 188 203 205 220
|
||||||
|
4 189 204 206 221
|
||||||
|
4 190 205 207 222
|
||||||
|
4 191 206 208 223
|
||||||
|
3 192 207 224
|
||||||
|
3 193 210 225
|
||||||
|
4 194 209 211 226
|
||||||
|
4 195 210 212 227
|
||||||
|
4 196 211 213 228
|
||||||
|
4 197 212 214 229
|
||||||
|
4 198 213 215 230
|
||||||
|
4 199 214 216 231
|
||||||
|
4 200 215 217 232
|
||||||
|
4 201 216 218 233
|
||||||
|
4 202 217 219 234
|
||||||
|
4 203 218 220 235
|
||||||
|
4 204 219 221 236
|
||||||
|
4 205 220 222 237
|
||||||
|
4 206 221 223 238
|
||||||
|
4 207 222 224 239
|
||||||
|
3 208 223 240
|
||||||
|
3 209 226 241
|
||||||
|
4 210 225 227 242
|
||||||
|
4 211 226 228 243
|
||||||
|
4 212 227 229 244
|
||||||
|
4 213 228 230 245
|
||||||
|
4 214 229 231 246
|
||||||
|
4 215 230 232 247
|
||||||
|
4 216 231 233 248
|
||||||
|
4 217 232 234 249
|
||||||
|
4 218 233 235 250
|
||||||
|
4 219 234 236 251
|
||||||
|
4 220 235 237 252
|
||||||
|
4 221 236 238 253
|
||||||
|
4 222 237 239 254
|
||||||
|
4 223 238 240 255
|
||||||
|
3 224 239 256
|
||||||
|
2 225 242
|
||||||
|
3 226 241 243
|
||||||
|
3 227 242 244
|
||||||
|
3 228 243 245
|
||||||
|
3 229 244 246
|
||||||
|
3 230 245 247
|
||||||
|
3 231 246 248
|
||||||
|
3 232 247 249
|
||||||
|
3 233 248 250
|
||||||
|
3 234 249 251
|
||||||
|
3 235 250 252
|
||||||
|
3 236 251 253
|
||||||
|
3 237 252 254
|
||||||
|
3 238 253 255
|
||||||
|
3 239 254 256
|
||||||
|
2 240 255
|
||||||
19
scotch_6.0.3/src/check/data/m4x4.grf
Normal file
19
scotch_6.0.3/src/check/data/m4x4.grf
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
0
|
||||||
|
16 48
|
||||||
|
0 000
|
||||||
|
2 1 4
|
||||||
|
3 0 2 5
|
||||||
|
3 1 3 6
|
||||||
|
2 2 7
|
||||||
|
3 0 5 8
|
||||||
|
4 1 4 6 9
|
||||||
|
4 2 5 7 10
|
||||||
|
3 3 6 11
|
||||||
|
3 4 9 12
|
||||||
|
4 5 8 10 13
|
||||||
|
4 6 9 11 14
|
||||||
|
3 7 10 15
|
||||||
|
2 8 13
|
||||||
|
3 9 12 14
|
||||||
|
3 10 13 15
|
||||||
|
2 11 14
|
||||||
19
scotch_6.0.3/src/check/data/m4x4_b1.grf
Normal file
19
scotch_6.0.3/src/check/data/m4x4_b1.grf
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
0
|
||||||
|
16 48
|
||||||
|
1 000
|
||||||
|
2 2 5
|
||||||
|
3 1 3 6
|
||||||
|
3 2 4 7
|
||||||
|
2 3 8
|
||||||
|
3 1 6 9
|
||||||
|
4 2 5 7 10
|
||||||
|
4 3 6 8 11
|
||||||
|
3 4 7 12
|
||||||
|
3 5 10 13
|
||||||
|
4 6 9 11 14
|
||||||
|
4 7 10 12 15
|
||||||
|
3 8 11 16
|
||||||
|
2 9 14
|
||||||
|
3 10 13 15
|
||||||
|
3 11 14 16
|
||||||
|
2 12 15
|
||||||
207
scotch_6.0.3/src/check/test_common_thread.c
Normal file
207
scotch_6.0.3/src/check/test_common_thread.c
Normal file
@ -0,0 +1,207 @@
|
|||||||
|
/* Copyright 2012,2014 IPB, Universite de Bordeaux, INRIA & CNRS
|
||||||
|
**
|
||||||
|
** This file is part of the Scotch software package for static mapping,
|
||||||
|
** graph partitioning and sparse matrix ordering.
|
||||||
|
**
|
||||||
|
** This software is governed by the CeCILL-C license under French law
|
||||||
|
** and abiding by the rules of distribution of free software. You can
|
||||||
|
** use, modify and/or redistribute the software under the terms of the
|
||||||
|
** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
|
||||||
|
** URL: "http://www.cecill.info".
|
||||||
|
**
|
||||||
|
** As a counterpart to the access to the source code and rights to copy,
|
||||||
|
** modify and redistribute granted by the license, users are provided
|
||||||
|
** only with a limited warranty and the software's author, the holder of
|
||||||
|
** the economic rights, and the successive licensors have only limited
|
||||||
|
** liability.
|
||||||
|
**
|
||||||
|
** In this respect, the user's attention is drawn to the risks associated
|
||||||
|
** with loading, using, modifying and/or developing or reproducing the
|
||||||
|
** software by the user in light of its specific status of free software,
|
||||||
|
** that may mean that it is complicated to manipulate, and that also
|
||||||
|
** therefore means that it is reserved for developers and experienced
|
||||||
|
** professionals having in-depth computer knowledge. Users are therefore
|
||||||
|
** encouraged to load and test the software's suitability as regards
|
||||||
|
** their requirements in conditions enabling the security of their
|
||||||
|
** systems and/or data to be ensured and, more generally, to use and
|
||||||
|
** operate it in the same conditions as regards security.
|
||||||
|
**
|
||||||
|
** The fact that you are presently reading this means that you have had
|
||||||
|
** knowledge of the CeCILL-C license and that you accept its terms.
|
||||||
|
*/
|
||||||
|
/************************************************************/
|
||||||
|
/** **/
|
||||||
|
/** NAME : test_common_thread.c **/
|
||||||
|
/** **/
|
||||||
|
/** AUTHOR : Francois PELLEGRINI **/
|
||||||
|
/** **/
|
||||||
|
/** FUNCTION : This module tests the sequential **/
|
||||||
|
/** strategy building routines. **/
|
||||||
|
/** **/
|
||||||
|
/** DATES : # Version 6.0 : from : 04 nov 2012 **/
|
||||||
|
/** to 23 sep 2014 **/
|
||||||
|
/** **/
|
||||||
|
/************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** The defines and includes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _XOPEN_SOURCE
|
||||||
|
#define _XOPEN_SOURCE 600
|
||||||
|
#endif /* _XOPEN_SOURCE */
|
||||||
|
#ifndef __USE_XOPEN2K
|
||||||
|
#define __USE_XOPEN2K /* For POSIX pthread_barrier_t */
|
||||||
|
#endif /* __USE_XOPEN2K */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#if ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD))
|
||||||
|
#include <pthread.h>
|
||||||
|
#endif /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */
|
||||||
|
|
||||||
|
#include "../libscotch/module.h"
|
||||||
|
#include "../libscotch/common.h"
|
||||||
|
|
||||||
|
#define COMPVAL(n) (((n) * ((n) + 1)) / 2)
|
||||||
|
|
||||||
|
/*
|
||||||
|
** The type and structure definitions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*+ The block data structure +*/
|
||||||
|
|
||||||
|
typedef struct TestThreadGroup_ {
|
||||||
|
ThreadGroupHeader thrddat; /*+ Thread handling data +*/
|
||||||
|
int redusum; /*+ Value to compare reduction to +*/
|
||||||
|
} TestThreadGroup;
|
||||||
|
|
||||||
|
/*+ The thread-specific data block. +*/
|
||||||
|
|
||||||
|
typedef struct TestThread_ {
|
||||||
|
ThreadHeader thrddat; /*+ Thread management data +*/
|
||||||
|
int reduval; /*+ Value to reduce +*/
|
||||||
|
int scanval; /*+ Value for scan +*/
|
||||||
|
int dummval; /*+ Dummy value for scan +*/
|
||||||
|
} TestThread;
|
||||||
|
|
||||||
|
/*************************/
|
||||||
|
/* */
|
||||||
|
/* The threaded routine. */
|
||||||
|
/* */
|
||||||
|
/*************************/
|
||||||
|
|
||||||
|
#if ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD))
|
||||||
|
|
||||||
|
static
|
||||||
|
void
|
||||||
|
testReduce (
|
||||||
|
TestThread * restrict const tlocptr, /* Pointer to local thread */
|
||||||
|
void * restrict const vlocptr, /* Pointer to local value */
|
||||||
|
void * restrict const vremptr) /* Pointer to remote value */
|
||||||
|
{
|
||||||
|
TestThread * restrict const tremptr = (TestThread *) vremptr;
|
||||||
|
|
||||||
|
tlocptr->reduval += tremptr->reduval;
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
void
|
||||||
|
testScan (
|
||||||
|
TestThread * restrict const tlocptr, /* Pointer to local thread */
|
||||||
|
int * restrict const vlocptr, /* Pointer to local value */
|
||||||
|
int * restrict const vremptr, /* Pointer to remote value */
|
||||||
|
const int phasval) /* Phase index */
|
||||||
|
{
|
||||||
|
vlocptr[1 - phasval] = vlocptr[phasval] + ((vremptr == NULL) ? 0 : vremptr[phasval]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
int
|
||||||
|
testThreads (
|
||||||
|
TestThread * restrict thrdptr)
|
||||||
|
{
|
||||||
|
TestThreadGroup * restrict const grouptr = (TestThreadGroup *) (thrdptr->thrddat.grouptr);
|
||||||
|
const int thrdnbr = grouptr->thrddat.thrdnbr;
|
||||||
|
const int thrdnum = thrdptr->thrddat.thrdnum;
|
||||||
|
int o;
|
||||||
|
|
||||||
|
printf ("%d: running\n", thrdnum);
|
||||||
|
|
||||||
|
o = 0;
|
||||||
|
|
||||||
|
if (thrdnum == 0)
|
||||||
|
printf ("Performing reduction\n");
|
||||||
|
|
||||||
|
threadBarrier (thrdptr);
|
||||||
|
|
||||||
|
thrdptr->reduval = 1 + thrdptr->thrddat.thrdnum;
|
||||||
|
threadReduce (thrdptr, thrdptr, (ThreadReduceFunc) testReduce, 0);
|
||||||
|
|
||||||
|
if ((thrdnum == 0) && /* Test reduction result on thread 0 */
|
||||||
|
(thrdptr->reduval != grouptr->redusum)) {
|
||||||
|
printf ("0: invalid reduction operator\n");
|
||||||
|
o = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (thrdnum == 0)
|
||||||
|
printf ("Performing scan\n");
|
||||||
|
|
||||||
|
threadBarrier (thrdptr);
|
||||||
|
|
||||||
|
thrdptr->scanval = 1 + thrdptr->thrddat.thrdnum;
|
||||||
|
threadScan (thrdptr, &thrdptr->scanval, (ThreadScanFunc) testScan);
|
||||||
|
|
||||||
|
if (thrdptr->scanval != COMPVAL (thrdnum + 1)) {
|
||||||
|
printf ("%d: invalid scan operator\n", thrdnum);
|
||||||
|
o = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
threadBarrier (thrdptr);
|
||||||
|
|
||||||
|
return (o);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */
|
||||||
|
|
||||||
|
/*********************/
|
||||||
|
/* */
|
||||||
|
/* The main routine. */
|
||||||
|
/* */
|
||||||
|
/*********************/
|
||||||
|
|
||||||
|
int
|
||||||
|
main (
|
||||||
|
int argc,
|
||||||
|
char * argv[])
|
||||||
|
{
|
||||||
|
TestThreadGroup groudat;
|
||||||
|
#if ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD))
|
||||||
|
TestThread * restrict thrdtab;
|
||||||
|
int thrdnbr;
|
||||||
|
#endif /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */
|
||||||
|
|
||||||
|
SCOTCH_errorProg (argv[0]);
|
||||||
|
|
||||||
|
#if ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD))
|
||||||
|
thrdnbr = SCOTCH_PTHREAD_NUMBER;
|
||||||
|
|
||||||
|
groudat.redusum = COMPVAL (thrdnbr);
|
||||||
|
|
||||||
|
if ((thrdtab = malloc (thrdnbr * sizeof (TestThread))) == NULL) {
|
||||||
|
errorPrint ("main: out of memory");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (threadLaunch (&groudat, thrdtab, sizeof (TestThread), (ThreadLaunchStartFunc) testThreads, (ThreadLaunchJoinFunc) NULL,
|
||||||
|
thrdnbr, THREADCANBARRIER | THREADCANREDUCE | THREADCANSCAN) != 0) {
|
||||||
|
errorPrint ("main: cannot launch or run threads");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
#else /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */
|
||||||
|
printf ("Scotch not compiled with either COMMON_PTHREAD or SCOTCH_PTHREAD\n");
|
||||||
|
#endif /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */
|
||||||
|
|
||||||
|
free (thrdtab);
|
||||||
|
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
135
scotch_6.0.3/src/check/test_scotch_arch.c
Normal file
135
scotch_6.0.3/src/check/test_scotch_arch.c
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
/* Copyright 2014 IPB, Universite de Bordeaux, INRIA & CNRS
|
||||||
|
**
|
||||||
|
** This file is part of the Scotch software package for static mapping,
|
||||||
|
** graph partitioning and sparse matrix ordering.
|
||||||
|
**
|
||||||
|
** This software is governed by the CeCILL-C license under French law
|
||||||
|
** and abiding by the rules of distribution of free software. You can
|
||||||
|
** use, modify and/or redistribute the software under the terms of the
|
||||||
|
** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
|
||||||
|
** URL: "http://www.cecill.info".
|
||||||
|
**
|
||||||
|
** As a counterpart to the access to the source code and rights to copy,
|
||||||
|
** modify and redistribute granted by the license, users are provided
|
||||||
|
** only with a limited warranty and the software's author, the holder of
|
||||||
|
** the economic rights, and the successive licensors have only limited
|
||||||
|
** liability.
|
||||||
|
**
|
||||||
|
** In this respect, the user's attention is drawn to the risks associated
|
||||||
|
** with loading, using, modifying and/or developing or reproducing the
|
||||||
|
** software by the user in light of its specific status of free software,
|
||||||
|
** that may mean that it is complicated to manipulate, and that also
|
||||||
|
** therefore means that it is reserved for developers and experienced
|
||||||
|
** professionals having in-depth computer knowledge. Users are therefore
|
||||||
|
** encouraged to load and test the software's suitability as regards
|
||||||
|
** their requirements in conditions enabling the security of their
|
||||||
|
** systems and/or data to be ensured and, more generally, to use and
|
||||||
|
** operate it in the same conditions as regards security.
|
||||||
|
**
|
||||||
|
** The fact that you are presently reading this means that you have had
|
||||||
|
** knowledge of the CeCILL-C license and that you accept its terms.
|
||||||
|
*/
|
||||||
|
/************************************************************/
|
||||||
|
/** **/
|
||||||
|
/** NAME : test_scotch_arch.c **/
|
||||||
|
/** **/
|
||||||
|
/** AUTHOR : Francois PELLEGRINI **/
|
||||||
|
/** **/
|
||||||
|
/** FUNCTION : This module tests the operation of **/
|
||||||
|
/** the SCOTCH_arch*() routines. **/
|
||||||
|
/** **/
|
||||||
|
/** DATES : # Version 6.0 : from : 25 jun 2014 **/
|
||||||
|
/** to 25 jun 2014 **/
|
||||||
|
/** **/
|
||||||
|
/************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** The defines and includes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H))
|
||||||
|
#include <stdint.h>
|
||||||
|
#endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "scotch.h"
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
SCOTCH_Arch archdat;
|
||||||
|
|
||||||
|
/*********************/
|
||||||
|
/* */
|
||||||
|
/* The main routine. */
|
||||||
|
/* */
|
||||||
|
/*********************/
|
||||||
|
|
||||||
|
int
|
||||||
|
main (
|
||||||
|
int argc,
|
||||||
|
char * argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
SCOTCH_Num baseval;
|
||||||
|
SCOTCH_Num vertnbr;
|
||||||
|
SCOTCH_Num vertnum;
|
||||||
|
SCOTCH_Num colonbr;
|
||||||
|
SCOTCH_Num colonum;
|
||||||
|
SCOTCH_Num * colotab;
|
||||||
|
SCOTCH_Num * cnbrtab;
|
||||||
|
|
||||||
|
SCOTCH_errorProg (argv[0]);
|
||||||
|
|
||||||
|
if (SCOTCH_graphInit (&grafdat) != 0) { /* Initialize source graph */
|
||||||
|
SCOTCH_errorPrint ("main: cannot initialize graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((fileptr = fopen (argv[1], "r")) == NULL) {
|
||||||
|
SCOTCH_errorPrint ("main: cannot open file");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_graphLoad (&grafdat, fileptr, -1, 0) != 0) { /* Read source graph */
|
||||||
|
SCOTCH_errorPrint ("main: cannot load graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose (fileptr);
|
||||||
|
|
||||||
|
SCOTCH_graphSize (&grafdat, &vertnbr, NULL);
|
||||||
|
|
||||||
|
if ((colotab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) {
|
||||||
|
SCOTCH_errorPrint ("main: out of memory (1)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((cnbrtab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) {
|
||||||
|
SCOTCH_errorPrint ("main: out of memory (1)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
memset (cnbrtab, 0, vertnbr * sizeof (SCOTCH_Num));
|
||||||
|
|
||||||
|
if (SCOTCH_graphColor (&grafdat, colotab, &colonbr, 0) != 0) {
|
||||||
|
SCOTCH_errorPrint ("main: cannot color graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf ("Number of colors: %ld\n", (long) colonbr);
|
||||||
|
|
||||||
|
for (vertnum = 0; vertnum < vertnbr; vertnum ++) /* Sum-up color histogram */
|
||||||
|
cnbrtab[colotab[vertnum]] ++;
|
||||||
|
|
||||||
|
for (colonum = 0; colonum < colonbr; colonum ++)
|
||||||
|
printf ("Color %5ld: %ld\n",
|
||||||
|
(long) colonum,
|
||||||
|
(long) cnbrtab[colonum]);
|
||||||
|
|
||||||
|
free (cnbrtab);
|
||||||
|
free (colotab);
|
||||||
|
SCOTCH_graphExit (&grafdat);
|
||||||
|
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
207
scotch_6.0.3/src/check/test_scotch_dgraph_band.c
Normal file
207
scotch_6.0.3/src/check/test_scotch_dgraph_band.c
Normal file
@ -0,0 +1,207 @@
|
|||||||
|
/* Copyright 2011,2012,2014 IPB, Universite de Bordeaux, INRIA & CNRS
|
||||||
|
**
|
||||||
|
** This file is part of the Scotch software package for static mapping,
|
||||||
|
** graph partitioning and sparse matrix ordering.
|
||||||
|
**
|
||||||
|
** This software is governed by the CeCILL-C license under French law
|
||||||
|
** and abiding by the rules of distribution of free software. You can
|
||||||
|
** use, modify and/or redistribute the software under the terms of the
|
||||||
|
** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
|
||||||
|
** URL: "http://www.cecill.info".
|
||||||
|
**
|
||||||
|
** As a counterpart to the access to the source code and rights to copy,
|
||||||
|
** modify and redistribute granted by the license, users are provided
|
||||||
|
** only with a limited warranty and the software's author, the holder of
|
||||||
|
** the economic rights, and the successive licensors have only limited
|
||||||
|
** liability.
|
||||||
|
**
|
||||||
|
** In this respect, the user's attention is drawn to the risks associated
|
||||||
|
** with loading, using, modifying and/or developing or reproducing the
|
||||||
|
** software by the user in light of its specific status of free software,
|
||||||
|
** that may mean that it is complicated to manipulate, and that also
|
||||||
|
** therefore means that it is reserved for developers and experienced
|
||||||
|
** professionals having in-depth computer knowledge. Users are therefore
|
||||||
|
** encouraged to load and test the software's suitability as regards
|
||||||
|
** their requirements in conditions enabling the security of their
|
||||||
|
** systems and/or data to be ensured and, more generally, to use and
|
||||||
|
** operate it in the same conditions as regards security.
|
||||||
|
**
|
||||||
|
** The fact that you are presently reading this means that you have had
|
||||||
|
** knowledge of the CeCILL-C license and that you accept its terms.
|
||||||
|
*/
|
||||||
|
/************************************************************/
|
||||||
|
/** **/
|
||||||
|
/** NAME : test_scotch_dgraph_band.c **/
|
||||||
|
/** **/
|
||||||
|
/** AUTHOR : Francois PELLEGRINI **/
|
||||||
|
/** **/
|
||||||
|
/** FUNCTION : This module tests the operation of **/
|
||||||
|
/** the SCOTCH_dgraphBand() routine. **/
|
||||||
|
/** **/
|
||||||
|
/** DATES : # Version 6.0 : from : 10 nov 2011 **/
|
||||||
|
/** to 23 sep 2014 **/
|
||||||
|
/** **/
|
||||||
|
/************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** The defines and includes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <mpi.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H))
|
||||||
|
#include <stdint.h>
|
||||||
|
#endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include "ptscotch.h"
|
||||||
|
|
||||||
|
#define errorProg SCOTCH_errorProg
|
||||||
|
#define errorPrint SCOTCH_errorPrint
|
||||||
|
|
||||||
|
/*********************/
|
||||||
|
/* */
|
||||||
|
/* The main routine. */
|
||||||
|
/* */
|
||||||
|
/*********************/
|
||||||
|
|
||||||
|
int
|
||||||
|
main (
|
||||||
|
|
||||||
|
int argc,
|
||||||
|
char * argv[])
|
||||||
|
{
|
||||||
|
MPI_Comm proccomm;
|
||||||
|
int procglbnbr; /* Number of processes sharing graph data */
|
||||||
|
int proclocnum; /* Number of this process */
|
||||||
|
SCOTCH_Num vertglbnbr;
|
||||||
|
SCOTCH_Num vertlocnbr;
|
||||||
|
SCOTCH_Num * fronloctab;
|
||||||
|
SCOTCH_Num baseval;
|
||||||
|
SCOTCH_Dgraph grafdat;
|
||||||
|
SCOTCH_Dgraph bandgrafdat;
|
||||||
|
SCOTCH_Num bandvertglbnbr;
|
||||||
|
SCOTCH_Num bandvertlocnbr;
|
||||||
|
SCOTCH_Num * bandvlblloctab;
|
||||||
|
FILE * file;
|
||||||
|
int procnum;
|
||||||
|
#ifdef SCOTCH_PTHREAD
|
||||||
|
int thrdlvlreqval;
|
||||||
|
int thrdlvlproval;
|
||||||
|
#endif /* SCOTCH_PTHREAD */
|
||||||
|
|
||||||
|
errorProg (argv[0]);
|
||||||
|
|
||||||
|
#ifdef SCOTCH_PTHREAD
|
||||||
|
thrdlvlreqval = MPI_THREAD_MULTIPLE;
|
||||||
|
if (MPI_Init_thread (&argc, &argv, thrdlvlreqval, &thrdlvlproval) != MPI_SUCCESS)
|
||||||
|
errorPrint ("main: Cannot initialize (1)");
|
||||||
|
if (thrdlvlreqval > thrdlvlproval)
|
||||||
|
errorPrint ("main: MPI implementation is not thread-safe: recompile without SCOTCH_PTHREAD");
|
||||||
|
#else /* SCOTCH_PTHREAD */
|
||||||
|
if (MPI_Init (&argc, &argv) != MPI_SUCCESS)
|
||||||
|
errorPrint ("main: Cannot initialize (2)");
|
||||||
|
#endif /* SCOTCH_PTHREAD */
|
||||||
|
|
||||||
|
if (argc != 2) {
|
||||||
|
errorPrint ("main: invalid number of parameters");
|
||||||
|
exit (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
proccomm = MPI_COMM_WORLD;
|
||||||
|
MPI_Comm_size (proccomm, &procglbnbr); /* Get communicator data */
|
||||||
|
MPI_Comm_rank (proccomm, &proclocnum);
|
||||||
|
|
||||||
|
fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ());
|
||||||
|
|
||||||
|
#ifndef SCOTCH_CHECK_AUTO
|
||||||
|
if (proclocnum == 0) { /* Synchronize on keybord input */
|
||||||
|
char c;
|
||||||
|
|
||||||
|
printf ("Waiting for key press...\n");
|
||||||
|
scanf ("%c", &c);
|
||||||
|
}
|
||||||
|
#endif /* SCOTCH_CHECK_AUTO */
|
||||||
|
|
||||||
|
if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */
|
||||||
|
errorPrint ("main: cannot communicate");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphInit (&grafdat, proccomm) != 0) { /* Initialize source graph */
|
||||||
|
errorPrint ("main: cannot initialize graph (1)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
file = NULL;
|
||||||
|
if ((proclocnum == 0) &&
|
||||||
|
((file = fopen (argv[1], "r")) == NULL)) {
|
||||||
|
errorPrint ("main: cannot open graph file");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphLoad (&grafdat, file, 0, 0) != 0) {
|
||||||
|
errorPrint ("main: cannot load graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (file != NULL)
|
||||||
|
fclose (file);
|
||||||
|
|
||||||
|
if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */
|
||||||
|
errorPrint ("main: cannot communicate");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
SCOTCH_dgraphData (&grafdat, NULL, &vertglbnbr, &vertlocnbr, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
if ((fronloctab = malloc (vertlocnbr * sizeof (SCOTCH_Num))) == NULL) {
|
||||||
|
errorPrint ("main: cannot allocate frontier array");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphInit (&bandgrafdat, proccomm) != 0) { /* Initialize band graph */
|
||||||
|
errorPrint ("main: cannot initialize graph (2)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
fronloctab[0] = 0;
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphBand (&grafdat, (proclocnum == 1) ? 1 : 0, fronloctab, 4, &bandgrafdat) != 0) {
|
||||||
|
errorPrint ("main: cannot compute band graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
SCOTCH_dgraphData (&bandgrafdat, &baseval, &bandvertglbnbr, &bandvertlocnbr, NULL, NULL, NULL, NULL, NULL, &bandvlblloctab, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
for (procnum = 0; procnum < procglbnbr; procnum ++) {
|
||||||
|
SCOTCH_Num bandvertlocnum;
|
||||||
|
|
||||||
|
MPI_Barrier (proccomm);
|
||||||
|
|
||||||
|
if (procnum == proclocnum) {
|
||||||
|
if ((file = fopen ("/tmp/test_scotch_dgraph_band.map", (procnum == 0) ? "w" : "a+")) == NULL) {
|
||||||
|
errorPrint ("main: cannot open mapping file");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (procnum == 0)
|
||||||
|
fprintf (file, "%ld\n", (long) bandvertglbnbr);
|
||||||
|
|
||||||
|
for (bandvertlocnum = 0; bandvertlocnum < bandvertlocnbr; bandvertlocnum ++)
|
||||||
|
fprintf (file, "%ld\t1\n", (long) bandvlblloctab[bandvertlocnum]);
|
||||||
|
|
||||||
|
fclose (file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SCOTCH_dgraphExit (&bandgrafdat);
|
||||||
|
SCOTCH_dgraphExit (&grafdat);
|
||||||
|
|
||||||
|
MPI_Finalize ();
|
||||||
|
exit (0);
|
||||||
|
}
|
||||||
160
scotch_6.0.3/src/check/test_scotch_dgraph_check.c
Normal file
160
scotch_6.0.3/src/check/test_scotch_dgraph_check.c
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
/* Copyright 2014 IPB, Universite de Bordeaux, INRIA & CNRS
|
||||||
|
**
|
||||||
|
** This file is part of the Scotch software package for static mapping,
|
||||||
|
** graph partitioning and sparse matrix ordering.
|
||||||
|
**
|
||||||
|
** This software is governed by the CeCILL-C license under French law
|
||||||
|
** and abiding by the rules of distribution of free software. You can
|
||||||
|
** use, modify and/or redistribute the software under the terms of the
|
||||||
|
** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
|
||||||
|
** URL: "http://www.cecill.info".
|
||||||
|
**
|
||||||
|
** As a counterpart to the access to the source code and rights to copy,
|
||||||
|
** modify and redistribute granted by the license, users are provided
|
||||||
|
** only with a limited warranty and the software's author, the holder of
|
||||||
|
** the economic rights, and the successive licensors have only limited
|
||||||
|
** liability.
|
||||||
|
**
|
||||||
|
** In this respect, the user's attention is drawn to the risks associated
|
||||||
|
** with loading, using, modifying and/or developing or reproducing the
|
||||||
|
** software by the user in light of its specific status of free software,
|
||||||
|
** that may mean that it is complicated to manipulate, and that also
|
||||||
|
** therefore means that it is reserved for developers and experienced
|
||||||
|
** professionals having in-depth computer knowledge. Users are therefore
|
||||||
|
** encouraged to load and test the software's suitability as regards
|
||||||
|
** their requirements in conditions enabling the security of their
|
||||||
|
** systems and/or data to be ensured and, more generally, to use and
|
||||||
|
** operate it in the same conditions as regards security.
|
||||||
|
**
|
||||||
|
** The fact that you are presently reading this means that you have had
|
||||||
|
** knowledge of the CeCILL-C license and that you accept its terms.
|
||||||
|
*/
|
||||||
|
/************************************************************/
|
||||||
|
/** **/
|
||||||
|
/** NAME : test_scotch_dgraph_check.c **/
|
||||||
|
/** **/
|
||||||
|
/** AUTHOR : Francois PELLEGRINI **/
|
||||||
|
/** **/
|
||||||
|
/** FUNCTION : This module tests the operation of **/
|
||||||
|
/** the SCOTCH_dgraphCheck() routine. **/
|
||||||
|
/** **/
|
||||||
|
/** DATES : # Version 6.0 : from : 28 sep 2014 **/
|
||||||
|
/** to 28 sep 2014 **/
|
||||||
|
/** **/
|
||||||
|
/************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** The defines and includes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <mpi.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H))
|
||||||
|
#include <stdint.h>
|
||||||
|
#endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include "ptscotch.h"
|
||||||
|
|
||||||
|
#define errorProg SCOTCH_errorProg
|
||||||
|
#define errorPrint SCOTCH_errorPrint
|
||||||
|
|
||||||
|
/*********************/
|
||||||
|
/* */
|
||||||
|
/* The main routine. */
|
||||||
|
/* */
|
||||||
|
/*********************/
|
||||||
|
|
||||||
|
int
|
||||||
|
main (
|
||||||
|
|
||||||
|
int argc,
|
||||||
|
char * argv[])
|
||||||
|
{
|
||||||
|
MPI_Comm proccomm;
|
||||||
|
int procglbnbr; /* Number of processes sharing graph data */
|
||||||
|
int proclocnum; /* Number of this process */
|
||||||
|
SCOTCH_Dgraph grafdat;
|
||||||
|
FILE * file;
|
||||||
|
#ifdef SCOTCH_PTHREAD
|
||||||
|
int thrdlvlreqval;
|
||||||
|
int thrdlvlproval;
|
||||||
|
#endif /* SCOTCH_PTHREAD */
|
||||||
|
|
||||||
|
errorProg (argv[0]);
|
||||||
|
|
||||||
|
#ifdef SCOTCH_PTHREAD
|
||||||
|
thrdlvlreqval = MPI_THREAD_MULTIPLE;
|
||||||
|
if (MPI_Init_thread (&argc, &argv, thrdlvlreqval, &thrdlvlproval) != MPI_SUCCESS)
|
||||||
|
errorPrint ("main: Cannot initialize (1)");
|
||||||
|
if (thrdlvlreqval > thrdlvlproval)
|
||||||
|
errorPrint ("main: MPI implementation is not thread-safe: recompile without SCOTCH_PTHREAD");
|
||||||
|
#else /* SCOTCH_PTHREAD */
|
||||||
|
if (MPI_Init (&argc, &argv) != MPI_SUCCESS)
|
||||||
|
errorPrint ("main: Cannot initialize (2)");
|
||||||
|
#endif /* SCOTCH_PTHREAD */
|
||||||
|
|
||||||
|
if (argc != 2) {
|
||||||
|
errorPrint ("main: invalid number of parameters");
|
||||||
|
exit (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
proccomm = MPI_COMM_WORLD;
|
||||||
|
MPI_Comm_size (proccomm, &procglbnbr); /* Get communicator data */
|
||||||
|
MPI_Comm_rank (proccomm, &proclocnum);
|
||||||
|
|
||||||
|
fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ());
|
||||||
|
|
||||||
|
#ifndef SCOTCH_CHECK_AUTO
|
||||||
|
if (proclocnum == 0) { /* Synchronize on keybord input */
|
||||||
|
char c;
|
||||||
|
|
||||||
|
printf ("Waiting for key press...\n");
|
||||||
|
scanf ("%c", &c);
|
||||||
|
}
|
||||||
|
#endif /* SCOTCH_CHECK_AUTO */
|
||||||
|
|
||||||
|
if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */
|
||||||
|
errorPrint ("main: cannot communicate");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphInit (&grafdat, proccomm) != 0) { /* Initialize source graph */
|
||||||
|
errorPrint ("main: cannot initialize graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
file = NULL;
|
||||||
|
if ((proclocnum == 0) &&
|
||||||
|
((file = fopen (argv[1], "r")) == NULL)) {
|
||||||
|
errorPrint ("main: cannot open graph file");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphLoad (&grafdat, file, 0, 0) != 0) {
|
||||||
|
errorPrint ("main: cannot load graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (file != NULL)
|
||||||
|
fclose (file);
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphCheck (&grafdat) != 0) {
|
||||||
|
errorPrint ("main: invalid graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */
|
||||||
|
errorPrint ("main: cannot communicate");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
SCOTCH_dgraphExit (&grafdat);
|
||||||
|
|
||||||
|
MPI_Finalize ();
|
||||||
|
exit (0);
|
||||||
|
}
|
||||||
242
scotch_6.0.3/src/check/test_scotch_dgraph_coarsen.c
Normal file
242
scotch_6.0.3/src/check/test_scotch_dgraph_coarsen.c
Normal file
@ -0,0 +1,242 @@
|
|||||||
|
/* Copyright 2014 IPB, Universite de Bordeaux, INRIA & CNRS
|
||||||
|
**
|
||||||
|
** This file is part of the Scotch software package for static mapping,
|
||||||
|
** graph partitioning and sparse matrix ordering.
|
||||||
|
**
|
||||||
|
** This software is governed by the CeCILL-C license under French law
|
||||||
|
** and abiding by the rules of distribution of free software. You can
|
||||||
|
** use, modify and/or redistribute the software under the terms of the
|
||||||
|
** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
|
||||||
|
** URL: "http://www.cecill.info".
|
||||||
|
**
|
||||||
|
** As a counterpart to the access to the source code and rights to copy,
|
||||||
|
** modify and redistribute granted by the license, users are provided
|
||||||
|
** only with a limited warranty and the software's author, the holder of
|
||||||
|
** the economic rights, and the successive licensors have only limited
|
||||||
|
** liability.
|
||||||
|
**
|
||||||
|
** In this respect, the user's attention is drawn to the risks associated
|
||||||
|
** with loading, using, modifying and/or developing or reproducing the
|
||||||
|
** software by the user in light of its specific status of free software,
|
||||||
|
** that may mean that it is complicated to manipulate, and that also
|
||||||
|
** therefore means that it is reserved for developers and experienced
|
||||||
|
** professionals having in-depth computer knowledge. Users are therefore
|
||||||
|
** encouraged to load and test the software's suitability as regards
|
||||||
|
** their requirements in conditions enabling the security of their
|
||||||
|
** systems and/or data to be ensured and, more generally, to use and
|
||||||
|
** operate it in the same conditions as regards security.
|
||||||
|
**
|
||||||
|
** The fact that you are presently reading this means that you have had
|
||||||
|
** knowledge of the CeCILL-C license and that you accept its terms.
|
||||||
|
*/
|
||||||
|
/************************************************************/
|
||||||
|
/** **/
|
||||||
|
/** NAME : test_scotch_dgraph_coarsen.c **/
|
||||||
|
/** **/
|
||||||
|
/** AUTHOR : Francois PELLEGRINI **/
|
||||||
|
/** **/
|
||||||
|
/** FUNCTION : This module tests the operation of **/
|
||||||
|
/** the SCOTCH_dgraphCoarsen() routine. **/
|
||||||
|
/** **/
|
||||||
|
/** DATES : # Version 6.0 : from : 28 sep 2014 **/
|
||||||
|
/** to 28 sep 2014 **/
|
||||||
|
/** **/
|
||||||
|
/************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** The defines and includes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <mpi.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H))
|
||||||
|
#include <stdint.h>
|
||||||
|
#endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include "ptscotch.h"
|
||||||
|
|
||||||
|
#define errorProg SCOTCH_errorProg
|
||||||
|
#define errorPrint SCOTCH_errorPrint
|
||||||
|
|
||||||
|
/*********************/
|
||||||
|
/* */
|
||||||
|
/* The main routine. */
|
||||||
|
/* */
|
||||||
|
/*********************/
|
||||||
|
|
||||||
|
int
|
||||||
|
main (
|
||||||
|
|
||||||
|
int argc,
|
||||||
|
char * argv[])
|
||||||
|
{
|
||||||
|
MPI_Comm proccomm;
|
||||||
|
int procglbnbr; /* Number of processes sharing graph data */
|
||||||
|
int proclocnum; /* Number of this process */
|
||||||
|
SCOTCH_Num vertglbnbr;
|
||||||
|
SCOTCH_Num vertlocnbr;
|
||||||
|
SCOTCH_Num baseval;
|
||||||
|
SCOTCH_Dgraph grafdat;
|
||||||
|
SCOTCH_Dgraph coargrafdat;
|
||||||
|
SCOTCH_Num coarvertglbnbr;
|
||||||
|
SCOTCH_Num coarvertlocnbr;
|
||||||
|
double coarrat;
|
||||||
|
FILE * file;
|
||||||
|
#ifdef SCOTCH_PTHREAD
|
||||||
|
int thrdlvlreqval;
|
||||||
|
int thrdlvlproval;
|
||||||
|
#endif /* SCOTCH_PTHREAD */
|
||||||
|
int i;
|
||||||
|
|
||||||
|
errorProg (argv[0]);
|
||||||
|
|
||||||
|
#ifdef SCOTCH_PTHREAD
|
||||||
|
thrdlvlreqval = MPI_THREAD_MULTIPLE;
|
||||||
|
if (MPI_Init_thread (&argc, &argv, thrdlvlreqval, &thrdlvlproval) != MPI_SUCCESS)
|
||||||
|
errorPrint ("main: Cannot initialize (1)");
|
||||||
|
if (thrdlvlreqval > thrdlvlproval)
|
||||||
|
errorPrint ("main: MPI implementation is not thread-safe: recompile without SCOTCH_PTHREAD");
|
||||||
|
#else /* SCOTCH_PTHREAD */
|
||||||
|
if (MPI_Init (&argc, &argv) != MPI_SUCCESS)
|
||||||
|
errorPrint ("main: Cannot initialize (2)");
|
||||||
|
#endif /* SCOTCH_PTHREAD */
|
||||||
|
|
||||||
|
if (argc != 2) {
|
||||||
|
errorPrint ("main: invalid number of parameters");
|
||||||
|
exit (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
proccomm = MPI_COMM_WORLD;
|
||||||
|
MPI_Comm_size (proccomm, &procglbnbr); /* Get communicator data */
|
||||||
|
MPI_Comm_rank (proccomm, &proclocnum);
|
||||||
|
|
||||||
|
fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ());
|
||||||
|
|
||||||
|
#ifndef SCOTCH_CHECK_AUTO
|
||||||
|
if (proclocnum == 0) { /* Synchronize on keybord input */
|
||||||
|
char c;
|
||||||
|
|
||||||
|
printf ("Waiting for key press...\n");
|
||||||
|
scanf ("%c", &c);
|
||||||
|
}
|
||||||
|
#endif /* SCOTCH_CHECK_AUTO */
|
||||||
|
|
||||||
|
if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */
|
||||||
|
errorPrint ("main: cannot communicate");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphInit (&grafdat, proccomm) != 0) { /* Initialize source graph */
|
||||||
|
errorPrint ("main: cannot initialize graph (1)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
file = NULL;
|
||||||
|
if ((proclocnum == 0) &&
|
||||||
|
((file = fopen (argv[1], "r")) == NULL)) {
|
||||||
|
errorPrint ("main: cannot open graph file");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphLoad (&grafdat, file, 0, 0) != 0) {
|
||||||
|
errorPrint ("main: cannot load graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (file != NULL)
|
||||||
|
fclose (file);
|
||||||
|
|
||||||
|
if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */
|
||||||
|
errorPrint ("main: cannot communicate");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
SCOTCH_dgraphData (&grafdat, NULL, &vertglbnbr, &vertlocnbr, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
coarrat = 0.8; /* Lazy coarsening ratio */
|
||||||
|
|
||||||
|
for (i = 0; i < 3; i ++) { /* For all test cases */
|
||||||
|
SCOTCH_Num * multloctab;
|
||||||
|
SCOTCH_Num multlocsiz;
|
||||||
|
SCOTCH_Num foldval;
|
||||||
|
char * foldstr;
|
||||||
|
char * coarstr;
|
||||||
|
int procnum;
|
||||||
|
int o;
|
||||||
|
|
||||||
|
switch (i) {
|
||||||
|
case 0 :
|
||||||
|
multlocsiz = vertlocnbr;
|
||||||
|
foldval = SCOTCH_COARSENNONE;
|
||||||
|
foldstr = "Plain coarsening";
|
||||||
|
break;
|
||||||
|
case 1 :
|
||||||
|
multlocsiz = (SCOTCH_Num) (((double) vertglbnbr * coarrat) / (double) (procglbnbr / 2)) + 1;
|
||||||
|
foldval = SCOTCH_COARSENFOLD;
|
||||||
|
foldstr = "Folding";
|
||||||
|
break;
|
||||||
|
case 2 :
|
||||||
|
multlocsiz = (SCOTCH_Num) (((double) vertglbnbr * coarrat) / (double) (procglbnbr / 2)) + 1;
|
||||||
|
foldval = SCOTCH_COARSENFOLDDUP;
|
||||||
|
foldstr = "Folding with duplication";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (proclocnum == 0)
|
||||||
|
printf ("%s\n", foldstr);
|
||||||
|
|
||||||
|
if ((multloctab = malloc (multlocsiz * 2 * sizeof (SCOTCH_Num))) == NULL) {
|
||||||
|
errorPrint ("main: cannot allocate multinode array");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphInit (&coargrafdat, proccomm) != 0) { /* Initialize band graph */
|
||||||
|
errorPrint ("main: cannot initialize graph (2)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
o = SCOTCH_dgraphCoarsen (&grafdat, 0, coarrat, foldval, &coargrafdat, multloctab);
|
||||||
|
|
||||||
|
SCOTCH_dgraphData (&coargrafdat, NULL, &coarvertglbnbr, &coarvertlocnbr, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
for (procnum = 0; procnum < procglbnbr; procnum ++) {
|
||||||
|
switch (o) {
|
||||||
|
case 0 :
|
||||||
|
coarstr = "coarse graph created";
|
||||||
|
break;
|
||||||
|
case 1 :
|
||||||
|
coarstr = "graph could not be coarsened";
|
||||||
|
break;
|
||||||
|
case 2 :
|
||||||
|
coarstr = "folded graph not created here";
|
||||||
|
break;
|
||||||
|
case 3 :
|
||||||
|
coarstr = "cannot create coarse graph";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (procnum == proclocnum)
|
||||||
|
printf ("%d: %s (%ld / %ld / %ld)\n", procnum, coarstr, (long) multlocsiz, (long) coarvertlocnbr, (long) vertlocnbr);
|
||||||
|
|
||||||
|
MPI_Barrier (proccomm);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (coarvertlocnbr > multlocsiz) {
|
||||||
|
errorPrint ("main: invalid local multinode array size");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
SCOTCH_dgraphExit (&coargrafdat);
|
||||||
|
free (multloctab);
|
||||||
|
}
|
||||||
|
|
||||||
|
SCOTCH_dgraphExit (&grafdat);
|
||||||
|
|
||||||
|
MPI_Finalize ();
|
||||||
|
exit (0);
|
||||||
|
}
|
||||||
231
scotch_6.0.3/src/check/test_scotch_dgraph_grow.c
Normal file
231
scotch_6.0.3/src/check/test_scotch_dgraph_grow.c
Normal file
@ -0,0 +1,231 @@
|
|||||||
|
/* Copyright 2012,2014 IPB, Universite de Bordeaux, INRIA & CNRS
|
||||||
|
**
|
||||||
|
** This file is part of the Scotch software package for static mapping,
|
||||||
|
** graph partitioning and sparse matrix ordering.
|
||||||
|
**
|
||||||
|
** This software is governed by the CeCILL-C license under French law
|
||||||
|
** and abiding by the rules of distribution of free software. You can
|
||||||
|
** use, modify and/or redistribute the software under the terms of the
|
||||||
|
** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
|
||||||
|
** URL: "http://www.cecill.info".
|
||||||
|
**
|
||||||
|
** As a counterpart to the access to the source code and rights to copy,
|
||||||
|
** modify and redistribute granted by the license, users are provided
|
||||||
|
** only with a limited warranty and the software's author, the holder of
|
||||||
|
** the economic rights, and the successive licensors have only limited
|
||||||
|
** liability.
|
||||||
|
**
|
||||||
|
** In this respect, the user's attention is drawn to the risks associated
|
||||||
|
** with loading, using, modifying and/or developing or reproducing the
|
||||||
|
** software by the user in light of its specific status of free software,
|
||||||
|
** that may mean that it is complicated to manipulate, and that also
|
||||||
|
** therefore means that it is reserved for developers and experienced
|
||||||
|
** professionals having in-depth computer knowledge. Users are therefore
|
||||||
|
** encouraged to load and test the software's suitability as regards
|
||||||
|
** their requirements in conditions enabling the security of their
|
||||||
|
** systems and/or data to be ensured and, more generally, to use and
|
||||||
|
** operate it in the same conditions as regards security.
|
||||||
|
**
|
||||||
|
** The fact that you are presently reading this means that you have had
|
||||||
|
** knowledge of the CeCILL-C license and that you accept its terms.
|
||||||
|
*/
|
||||||
|
/************************************************************/
|
||||||
|
/** **/
|
||||||
|
/** NAME : test_scotch_dgraph_grow.c **/
|
||||||
|
/** **/
|
||||||
|
/** AUTHOR : Francois PELLEGRINI **/
|
||||||
|
/** **/
|
||||||
|
/** FUNCTION : This module tests the operation of **/
|
||||||
|
/** the SCOTCH_dgraphGrow() routine. **/
|
||||||
|
/** **/
|
||||||
|
/** DATES : # Version 6.0 : from : 26 sep 2012 **/
|
||||||
|
/** to 28 sep 2014 **/
|
||||||
|
/** **/
|
||||||
|
/************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** The defines and includes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <mpi.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H))
|
||||||
|
#include <stdint.h>
|
||||||
|
#endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include "ptscotch.h"
|
||||||
|
|
||||||
|
#define errorProg SCOTCH_errorProg
|
||||||
|
#define errorPrint SCOTCH_errorPrint
|
||||||
|
|
||||||
|
void _SCOTCHintRandInit (void);
|
||||||
|
SCOTCH_Num _SCOTCHintRandVal (SCOTCH_Num);
|
||||||
|
|
||||||
|
/*********************/
|
||||||
|
/* */
|
||||||
|
/* The main routine. */
|
||||||
|
/* */
|
||||||
|
/*********************/
|
||||||
|
|
||||||
|
int
|
||||||
|
main (
|
||||||
|
|
||||||
|
int argc,
|
||||||
|
char * argv[])
|
||||||
|
{
|
||||||
|
MPI_Status statdat;
|
||||||
|
MPI_Comm proccomm;
|
||||||
|
int procglbnbr; /* Number of processes sharing graph data */
|
||||||
|
int proclocnum; /* Number of this process */
|
||||||
|
long vertlocadj;
|
||||||
|
SCOTCH_Num vertglbnbr;
|
||||||
|
SCOTCH_Num vertlocnbr;
|
||||||
|
SCOTCH_Num vertgstnbr;
|
||||||
|
SCOTCH_Num * seedloctab;
|
||||||
|
SCOTCH_Num * partgsttab;
|
||||||
|
SCOTCH_Num baseval;
|
||||||
|
SCOTCH_Dgraph grafdat;
|
||||||
|
FILE * file;
|
||||||
|
int procnum;
|
||||||
|
#ifdef SCOTCH_PTHREAD
|
||||||
|
int thrdlvlreqval;
|
||||||
|
int thrdlvlproval;
|
||||||
|
#endif /* SCOTCH_PTHREAD */
|
||||||
|
|
||||||
|
errorProg (argv[0]);
|
||||||
|
|
||||||
|
#ifdef SCOTCH_PTHREAD
|
||||||
|
thrdlvlreqval = MPI_THREAD_MULTIPLE;
|
||||||
|
if (MPI_Init_thread (&argc, &argv, thrdlvlreqval, &thrdlvlproval) != MPI_SUCCESS)
|
||||||
|
errorPrint ("main: Cannot initialize (1)");
|
||||||
|
if (thrdlvlreqval > thrdlvlproval)
|
||||||
|
errorPrint ("main: MPI implementation is not thread-safe: recompile without SCOTCH_PTHREAD");
|
||||||
|
#else /* SCOTCH_PTHREAD */
|
||||||
|
if (MPI_Init (&argc, &argv) != MPI_SUCCESS)
|
||||||
|
errorPrint ("main: Cannot initialize (2)");
|
||||||
|
#endif /* SCOTCH_PTHREAD */
|
||||||
|
|
||||||
|
if (argc != 2) {
|
||||||
|
errorPrint ("main: invalid number of parameters");
|
||||||
|
exit (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
proccomm = MPI_COMM_WORLD;
|
||||||
|
MPI_Comm_size (proccomm, &procglbnbr); /* Get communicator data */
|
||||||
|
MPI_Comm_rank (proccomm, &proclocnum);
|
||||||
|
|
||||||
|
fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ());
|
||||||
|
|
||||||
|
#ifndef SCOTCH_CHECK_AUTO
|
||||||
|
if (proclocnum == 0) { /* Synchronize on keybord input */
|
||||||
|
char c;
|
||||||
|
|
||||||
|
printf ("Waiting for key press...\n");
|
||||||
|
scanf ("%c", &c);
|
||||||
|
}
|
||||||
|
#endif /* SCOTCH_CHECK_AUTO */
|
||||||
|
|
||||||
|
if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */
|
||||||
|
errorPrint ("main: cannot communicate");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphInit (&grafdat, proccomm) != 0) { /* Initialize source graph */
|
||||||
|
errorPrint ("main: cannot initialize graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
file = NULL;
|
||||||
|
if ((proclocnum == 0) &&
|
||||||
|
((file = fopen (argv[1], "r")) == NULL)) {
|
||||||
|
errorPrint ("main: cannot open graph file");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphLoad (&grafdat, file, 0, 0) != 0) {
|
||||||
|
errorPrint ("main: cannot load graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (file != NULL)
|
||||||
|
fclose (file);
|
||||||
|
|
||||||
|
if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */
|
||||||
|
errorPrint ("main: cannot communicate");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphGhst (&grafdat) != 0) {
|
||||||
|
errorPrint ("main: cannot compute ghost edge array");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
SCOTCH_dgraphData (&grafdat, &baseval, &vertglbnbr, &vertlocnbr, NULL, &vertgstnbr, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
if ((seedloctab = malloc (vertlocnbr * sizeof (SCOTCH_Num))) == NULL) {
|
||||||
|
errorPrint ("main: cannot allocate seed array");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((partgsttab = malloc (vertgstnbr * sizeof (SCOTCH_Num))) == NULL) {
|
||||||
|
errorPrint ("main: cannot allocate part array");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
memset (partgsttab, ~0, vertgstnbr * sizeof (SCOTCH_Num));
|
||||||
|
|
||||||
|
_SCOTCHintRandInit ();
|
||||||
|
seedloctab[0] = _SCOTCHintRandVal (vertlocnbr);
|
||||||
|
seedloctab[1] = _SCOTCHintRandVal (vertlocnbr);
|
||||||
|
seedloctab[2] = _SCOTCHintRandVal (vertlocnbr);
|
||||||
|
|
||||||
|
partgsttab[seedloctab[0] - baseval] = 0;
|
||||||
|
partgsttab[seedloctab[1] - baseval] = 1;
|
||||||
|
partgsttab[seedloctab[2] - baseval] = 2;
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphGrow (&grafdat, 3, seedloctab, 4, partgsttab) != 0) {
|
||||||
|
errorPrint ("main: cannot compute grown regions");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (procnum = 0; procnum < procglbnbr; procnum ++) {
|
||||||
|
SCOTCH_Num vertlocnum;
|
||||||
|
|
||||||
|
MPI_Barrier (proccomm);
|
||||||
|
|
||||||
|
if (procnum == proclocnum) {
|
||||||
|
if ((file = fopen ("/tmp/test_scotch_dgraph_grow.map", (procnum == 0) ? "w" : "a+")) == NULL) {
|
||||||
|
errorPrint ("main: cannot open mapping file");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (procnum == 0) {
|
||||||
|
fprintf (file, "%ld\n", (long) vertglbnbr);
|
||||||
|
vertlocadj = (long) baseval;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
MPI_Recv (&vertlocadj, 1, MPI_LONG, procnum - 1, 0, MPI_COMM_WORLD, &statdat);
|
||||||
|
|
||||||
|
for (vertlocnum = 0; vertlocnum < vertlocnbr; vertlocnum ++)
|
||||||
|
fprintf (file, "%ld\t%ld\n", vertlocadj + (long) vertlocnum, (long) partgsttab[vertlocnum]);
|
||||||
|
|
||||||
|
fclose (file);
|
||||||
|
|
||||||
|
if (procnum < (procglbnbr - 1)) {
|
||||||
|
vertlocadj += (long) vertlocnbr;
|
||||||
|
MPI_Send (&vertlocadj, 1, MPI_LONG, procnum + 1, 0, MPI_COMM_WORLD);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SCOTCH_dgraphExit (&grafdat);
|
||||||
|
|
||||||
|
MPI_Finalize ();
|
||||||
|
exit (0);
|
||||||
|
}
|
||||||
188
scotch_6.0.3/src/check/test_scotch_dgraph_redist.c
Normal file
188
scotch_6.0.3/src/check/test_scotch_dgraph_redist.c
Normal file
@ -0,0 +1,188 @@
|
|||||||
|
/* Copyright 2012,2014 IPB, Universite de Bordeaux, INRIA & CNRS
|
||||||
|
**
|
||||||
|
** This file is part of the Scotch software package for static mapping,
|
||||||
|
** graph partitioning and sparse matrix ordering.
|
||||||
|
**
|
||||||
|
** This software is governed by the CeCILL-C license under French law
|
||||||
|
** and abiding by the rules of distribution of free software. You can
|
||||||
|
** use, modify and/or redistribute the software under the terms of the
|
||||||
|
** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
|
||||||
|
** URL: "http://www.cecill.info".
|
||||||
|
**
|
||||||
|
** As a counterpart to the access to the source code and rights to copy,
|
||||||
|
** modify and redistribute granted by the license, users are provided
|
||||||
|
** only with a limited warranty and the software's author, the holder of
|
||||||
|
** the economic rights, and the successive licensors have only limited
|
||||||
|
** liability.
|
||||||
|
**
|
||||||
|
** In this respect, the user's attention is drawn to the risks associated
|
||||||
|
** with loading, using, modifying and/or developing or reproducing the
|
||||||
|
** software by the user in light of its specific status of free software,
|
||||||
|
** that may mean that it is complicated to manipulate, and that also
|
||||||
|
** therefore means that it is reserved for developers and experienced
|
||||||
|
** professionals having in-depth computer knowledge. Users are therefore
|
||||||
|
** encouraged to load and test the software's suitability as regards
|
||||||
|
** their requirements in conditions enabling the security of their
|
||||||
|
** systems and/or data to be ensured and, more generally, to use and
|
||||||
|
** operate it in the same conditions as regards security.
|
||||||
|
**
|
||||||
|
** The fact that you are presently reading this means that you have had
|
||||||
|
** knowledge of the CeCILL-C license and that you accept its terms.
|
||||||
|
*/
|
||||||
|
/************************************************************/
|
||||||
|
/** **/
|
||||||
|
/** NAME : test_scotch_dgraph_redist.c **/
|
||||||
|
/** **/
|
||||||
|
/** AUTHOR : Francois PELLEGRINI **/
|
||||||
|
/** **/
|
||||||
|
/** FUNCTION : This module tests the operation of **/
|
||||||
|
/** the SCOTCH_dgraphBand() routine. **/
|
||||||
|
/** **/
|
||||||
|
/** DATES : # Version 6.0 : from : 21 feb 2012 **/
|
||||||
|
/** to 23 sep 2014 **/
|
||||||
|
/** **/
|
||||||
|
/************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** The defines and includes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <mpi.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H))
|
||||||
|
#include <stdint.h>
|
||||||
|
#endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include "ptscotch.h"
|
||||||
|
|
||||||
|
#define errorProg SCOTCH_errorProg
|
||||||
|
#define errorPrint SCOTCH_errorPrint
|
||||||
|
|
||||||
|
/*********************/
|
||||||
|
/* */
|
||||||
|
/* The main routine. */
|
||||||
|
/* */
|
||||||
|
/*********************/
|
||||||
|
|
||||||
|
int
|
||||||
|
main (
|
||||||
|
|
||||||
|
int argc,
|
||||||
|
char * argv[])
|
||||||
|
{
|
||||||
|
MPI_Comm proccomm;
|
||||||
|
int procglbnbr; /* Number of processes sharing graph data */
|
||||||
|
int proclocnum; /* Number of this process */
|
||||||
|
SCOTCH_Num vertglbnbr;
|
||||||
|
SCOTCH_Num vertlocnbr;
|
||||||
|
SCOTCH_Num vertlocnum;
|
||||||
|
SCOTCH_Num * partloctab;
|
||||||
|
SCOTCH_Num baseval;
|
||||||
|
SCOTCH_Dgraph srcgrafdat;
|
||||||
|
SCOTCH_Dgraph dstgrafdat;
|
||||||
|
FILE * file;
|
||||||
|
int procnum;
|
||||||
|
#ifdef SCOTCH_PTHREAD
|
||||||
|
int thrdlvlreqval;
|
||||||
|
int thrdlvlproval;
|
||||||
|
#endif /* SCOTCH_PTHREAD */
|
||||||
|
|
||||||
|
errorProg (argv[0]);
|
||||||
|
|
||||||
|
#ifdef SCOTCH_PTHREAD
|
||||||
|
thrdlvlreqval = MPI_THREAD_MULTIPLE;
|
||||||
|
if (MPI_Init_thread (&argc, &argv, thrdlvlreqval, &thrdlvlproval) != MPI_SUCCESS)
|
||||||
|
errorPrint ("main: Cannot initialize (1)");
|
||||||
|
if (thrdlvlreqval > thrdlvlproval)
|
||||||
|
errorPrint ("main: MPI implementation is not thread-safe: recompile without SCOTCH_PTHREAD");
|
||||||
|
#else /* SCOTCH_PTHREAD */
|
||||||
|
if (MPI_Init (&argc, &argv) != MPI_SUCCESS)
|
||||||
|
errorPrint ("main: Cannot initialize (2)");
|
||||||
|
#endif /* SCOTCH_PTHREAD */
|
||||||
|
|
||||||
|
if (argc != 2) {
|
||||||
|
errorPrint ("main: invalid number of parameters");
|
||||||
|
exit (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
proccomm = MPI_COMM_WORLD;
|
||||||
|
MPI_Comm_size (proccomm, &procglbnbr); /* Get communicator data */
|
||||||
|
MPI_Comm_rank (proccomm, &proclocnum);
|
||||||
|
|
||||||
|
fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ());
|
||||||
|
|
||||||
|
#ifndef SCOTCH_CHECK_AUTO
|
||||||
|
if (proclocnum == 0) { /* Synchronize on keybord input */
|
||||||
|
char c;
|
||||||
|
|
||||||
|
printf ("Waiting for key press...\n");
|
||||||
|
scanf ("%c", &c);
|
||||||
|
}
|
||||||
|
#endif /* SCOTCH_CHECK_AUTO */
|
||||||
|
|
||||||
|
if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */
|
||||||
|
errorPrint ("main: cannot communicate");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphInit (&srcgrafdat, proccomm) != 0) { /* Initialize source graph */
|
||||||
|
errorPrint ("main: cannot initialize source graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
if (SCOTCH_dgraphInit (&dstgrafdat, proccomm) != 0) { /* Initialize destination graph */
|
||||||
|
errorPrint ("main: cannot initialize destination graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
file = NULL;
|
||||||
|
if ((proclocnum == 0) &&
|
||||||
|
((file = fopen (argv[1], "r")) == NULL)) {
|
||||||
|
errorPrint ("main: cannot open graph file");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphLoad (&srcgrafdat, file, -1, 0) != 0) {
|
||||||
|
errorPrint ("main: cannot load source graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (file != NULL)
|
||||||
|
fclose (file);
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphCheck (&srcgrafdat) != 0) {
|
||||||
|
errorPrint ("main: invalid source graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */
|
||||||
|
errorPrint ("main: cannot communicate");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
SCOTCH_dgraphData (&srcgrafdat, NULL, &vertglbnbr, &vertlocnbr, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
if ((partloctab = malloc (vertlocnbr * sizeof (SCOTCH_Num))) == NULL) {
|
||||||
|
errorPrint ("main: cannot allocate frontier array");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (vertlocnum = 0; vertlocnum < vertlocnbr; vertlocnum ++) /* Create packs of 3 vertices each */
|
||||||
|
partloctab[vertlocnum] = (vertlocnum / 3) % procglbnbr;
|
||||||
|
|
||||||
|
if (SCOTCH_dgraphRedist (&srcgrafdat, partloctab, NULL, -1, -1, &dstgrafdat) != 0) {
|
||||||
|
errorPrint ("main: cannot compute redistributed graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
SCOTCH_dgraphExit (&dstgrafdat);
|
||||||
|
SCOTCH_dgraphExit (&srcgrafdat);
|
||||||
|
free (partloctab);
|
||||||
|
|
||||||
|
MPI_Finalize ();
|
||||||
|
exit (0);
|
||||||
|
}
|
||||||
132
scotch_6.0.3/src/check/test_scotch_graph_color.c
Normal file
132
scotch_6.0.3/src/check/test_scotch_graph_color.c
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
/* Copyright 2012 IPB, Universite de Bordeaux, INRIA & CNRS
|
||||||
|
**
|
||||||
|
** This file is part of the Scotch software package for static mapping,
|
||||||
|
** graph partitioning and sparse matrix ordering.
|
||||||
|
**
|
||||||
|
** This software is governed by the CeCILL-C license under French law
|
||||||
|
** and abiding by the rules of distribution of free software. You can
|
||||||
|
** use, modify and/or redistribute the software under the terms of the
|
||||||
|
** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
|
||||||
|
** URL: "http://www.cecill.info".
|
||||||
|
**
|
||||||
|
** As a counterpart to the access to the source code and rights to copy,
|
||||||
|
** modify and redistribute granted by the license, users are provided
|
||||||
|
** only with a limited warranty and the software's author, the holder of
|
||||||
|
** the economic rights, and the successive licensors have only limited
|
||||||
|
** liability.
|
||||||
|
**
|
||||||
|
** In this respect, the user's attention is drawn to the risks associated
|
||||||
|
** with loading, using, modifying and/or developing or reproducing the
|
||||||
|
** software by the user in light of its specific status of free software,
|
||||||
|
** that may mean that it is complicated to manipulate, and that also
|
||||||
|
** therefore means that it is reserved for developers and experienced
|
||||||
|
** professionals having in-depth computer knowledge. Users are therefore
|
||||||
|
** encouraged to load and test the software's suitability as regards
|
||||||
|
** their requirements in conditions enabling the security of their
|
||||||
|
** systems and/or data to be ensured and, more generally, to use and
|
||||||
|
** operate it in the same conditions as regards security.
|
||||||
|
**
|
||||||
|
** The fact that you are presently reading this means that you have had
|
||||||
|
** knowledge of the CeCILL-C license and that you accept its terms.
|
||||||
|
*/
|
||||||
|
/************************************************************/
|
||||||
|
/** **/
|
||||||
|
/** NAME : test_scotch_graph_color.c **/
|
||||||
|
/** **/
|
||||||
|
/** AUTHOR : Francois PELLEGRINI **/
|
||||||
|
/** **/
|
||||||
|
/** FUNCTION : This module tests the operation of **/
|
||||||
|
/** the SCOTCH_graphColor() routine. **/
|
||||||
|
/** **/
|
||||||
|
/** DATES : # Version 6.0 : from : 06 jan 2012 **/
|
||||||
|
/** to 26 sep 2012 **/
|
||||||
|
/** **/
|
||||||
|
/************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** The defines and includes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H))
|
||||||
|
#include <stdint.h>
|
||||||
|
#endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "scotch.h"
|
||||||
|
|
||||||
|
/*********************/
|
||||||
|
/* */
|
||||||
|
/* The main routine. */
|
||||||
|
/* */
|
||||||
|
/*********************/
|
||||||
|
|
||||||
|
int
|
||||||
|
main (
|
||||||
|
int argc,
|
||||||
|
char * argv[])
|
||||||
|
{
|
||||||
|
FILE * fileptr;
|
||||||
|
SCOTCH_Graph grafdat;
|
||||||
|
SCOTCH_Num baseval;
|
||||||
|
SCOTCH_Num vertnbr;
|
||||||
|
SCOTCH_Num vertnum;
|
||||||
|
SCOTCH_Num colonbr;
|
||||||
|
SCOTCH_Num colonum;
|
||||||
|
SCOTCH_Num * colotab;
|
||||||
|
SCOTCH_Num * cnbrtab;
|
||||||
|
|
||||||
|
SCOTCH_errorProg (argv[0]);
|
||||||
|
|
||||||
|
if (SCOTCH_graphInit (&grafdat) != 0) { /* Initialize source graph */
|
||||||
|
SCOTCH_errorPrint ("main: cannot initialize graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((fileptr = fopen (argv[1], "r")) == NULL) {
|
||||||
|
SCOTCH_errorPrint ("main: cannot open file");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_graphLoad (&grafdat, fileptr, -1, 0) != 0) { /* Read source graph */
|
||||||
|
SCOTCH_errorPrint ("main: cannot load graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose (fileptr);
|
||||||
|
|
||||||
|
SCOTCH_graphSize (&grafdat, &vertnbr, NULL);
|
||||||
|
|
||||||
|
if ((colotab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) {
|
||||||
|
SCOTCH_errorPrint ("main: out of memory (1)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((cnbrtab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) {
|
||||||
|
SCOTCH_errorPrint ("main: out of memory (1)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
memset (cnbrtab, 0, vertnbr * sizeof (SCOTCH_Num));
|
||||||
|
|
||||||
|
if (SCOTCH_graphColor (&grafdat, colotab, &colonbr, 0) != 0) {
|
||||||
|
SCOTCH_errorPrint ("main: cannot color graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf ("Number of colors: %ld\n", (long) colonbr);
|
||||||
|
|
||||||
|
for (vertnum = 0; vertnum < vertnbr; vertnum ++) /* Sum-up color histogram */
|
||||||
|
cnbrtab[colotab[vertnum]] ++;
|
||||||
|
|
||||||
|
for (colonum = 0; colonum < colonbr; colonum ++)
|
||||||
|
printf ("Color %5ld: %ld\n",
|
||||||
|
(long) colonum,
|
||||||
|
(long) cnbrtab[colonum]);
|
||||||
|
|
||||||
|
free (cnbrtab);
|
||||||
|
free (colotab);
|
||||||
|
SCOTCH_graphExit (&grafdat);
|
||||||
|
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
243
scotch_6.0.3/src/check/test_scotch_graph_map.c
Normal file
243
scotch_6.0.3/src/check/test_scotch_graph_map.c
Normal file
@ -0,0 +1,243 @@
|
|||||||
|
/* Copyright 2014 IPB, Universite de Bordeaux, INRIA & CNRS
|
||||||
|
**
|
||||||
|
** This file is part of the Scotch software package for static mapping,
|
||||||
|
** graph partitioning and sparse matrix ordering.
|
||||||
|
**
|
||||||
|
** This software is governed by the CeCILL-C license under French law
|
||||||
|
** and abiding by the rules of distribution of free software. You can
|
||||||
|
** use, modify and/or redistribute the software under the terms of the
|
||||||
|
** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
|
||||||
|
** URL: "http://www.cecill.info".
|
||||||
|
**
|
||||||
|
** As a counterpart to the access to the source code and rights to copy,
|
||||||
|
** modify and redistribute granted by the license, users are provided
|
||||||
|
** only with a limited warranty and the software's author, the holder of
|
||||||
|
** the economic rights, and the successive licensors have only limited
|
||||||
|
** liability.
|
||||||
|
**
|
||||||
|
** In this respect, the user's attention is drawn to the risks associated
|
||||||
|
** with loading, using, modifying and/or developing or reproducing the
|
||||||
|
** software by the user in light of its specific status of free software,
|
||||||
|
** that may mean that it is complicated to manipulate, and that also
|
||||||
|
** therefore means that it is reserved for developers and experienced
|
||||||
|
** professionals having in-depth computer knowledge. Users are therefore
|
||||||
|
** encouraged to load and test the software's suitability as regards
|
||||||
|
** their requirements in conditions enabling the security of their
|
||||||
|
** systems and/or data to be ensured and, more generally, to use and
|
||||||
|
** operate it in the same conditions as regards security.
|
||||||
|
**
|
||||||
|
** The fact that you are presently reading this means that you have had
|
||||||
|
** knowledge of the CeCILL-C license and that you accept its terms.
|
||||||
|
*/
|
||||||
|
/************************************************************/
|
||||||
|
/** **/
|
||||||
|
/** NAME : test_scotch_graph_map.c **/
|
||||||
|
/** **/
|
||||||
|
/** AUTHOR : Francois PELLEGRINI **/
|
||||||
|
/** **/
|
||||||
|
/** FUNCTION : This module tests the operation of **/
|
||||||
|
/** the SCOTCH_graphMap*() routines. **/
|
||||||
|
/** **/
|
||||||
|
/** DATES : # Version 6.0 : from : 12 aug 2014 **/
|
||||||
|
/** to 20 sep 2014 **/
|
||||||
|
/** **/
|
||||||
|
/************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** The defines and includes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <math.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H))
|
||||||
|
#include <stdint.h>
|
||||||
|
#endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "scotch.h"
|
||||||
|
|
||||||
|
#define ARCHNBR 4
|
||||||
|
#define STRANBR 2
|
||||||
|
|
||||||
|
#define COORD(x,y) ((y) * xdimsiz + (x))
|
||||||
|
|
||||||
|
/*********************/
|
||||||
|
/* */
|
||||||
|
/* The main routine. */
|
||||||
|
/* */
|
||||||
|
/*********************/
|
||||||
|
|
||||||
|
int
|
||||||
|
main (
|
||||||
|
int argc,
|
||||||
|
char * argv[])
|
||||||
|
{
|
||||||
|
SCOTCH_Mapping mappdat; /* Mapping to compute */
|
||||||
|
SCOTCH_Mapping mapodat; /* Old mapping */
|
||||||
|
FILE * fileptr;
|
||||||
|
SCOTCH_Graph grafdat;
|
||||||
|
SCOTCH_Num xdimsiz;
|
||||||
|
int archnum;
|
||||||
|
SCOTCH_Arch archtab[ARCHNBR];
|
||||||
|
SCOTCH_Strat stratab[STRANBR];
|
||||||
|
int stranum;
|
||||||
|
int typenum;
|
||||||
|
SCOTCH_Num baseval;
|
||||||
|
SCOTCH_Num vertnbr;
|
||||||
|
SCOTCH_Num vertnum;
|
||||||
|
SCOTCH_Num * parttab;
|
||||||
|
SCOTCH_Num * parotab;
|
||||||
|
SCOTCH_Num * vmlotab;
|
||||||
|
SCOTCH_Num * vmloptr; /* vmlotab or NULL */
|
||||||
|
|
||||||
|
SCOTCH_errorProg (argv[0]);
|
||||||
|
|
||||||
|
if (SCOTCH_graphInit (&grafdat) != 0) { /* Initialize source graph */
|
||||||
|
SCOTCH_errorPrint ("main: cannot initialize graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((fileptr = fopen (argv[1], "r")) == NULL) { /* Read a square 2D grid graph */
|
||||||
|
SCOTCH_errorPrint ("main: cannot open file (1)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_graphLoad (&grafdat, fileptr, -1, 0) != 0) { /* Read source graph */
|
||||||
|
SCOTCH_errorPrint ("main: cannot load graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose (fileptr);
|
||||||
|
|
||||||
|
SCOTCH_graphSize (&grafdat, &vertnbr, NULL);
|
||||||
|
xdimsiz = (SCOTCH_Num) sqrt ((double) vertnbr);
|
||||||
|
if (vertnbr != (xdimsiz * xdimsiz)) {
|
||||||
|
SCOTCH_errorPrint ("main: graph is not a square grid");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (((parttab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) ||
|
||||||
|
((parotab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) ||
|
||||||
|
((vmlotab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL)) {
|
||||||
|
SCOTCH_errorPrint ("main: out of memory");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (vertnum = 0; vertnum < vertnbr; vertnum ++) /* Fill vertex migration load array */
|
||||||
|
vmlotab[vertnum] = vertnum % 3;
|
||||||
|
|
||||||
|
for (stranum = 0; stranum < STRANBR; stranum ++) { /* Initialize mapping strategies */
|
||||||
|
if (SCOTCH_stratInit (&stratab[stranum]) != 0) {
|
||||||
|
SCOTCH_errorPrint ("main: cannot initialize strategy");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SCOTCH_stratGraphMapBuild (&stratab[0], SCOTCH_STRATRECURSIVE, 4, 0.05);
|
||||||
|
SCOTCH_stratGraphMapBuild (&stratab[1], SCOTCH_STRATDEFAULT, 4, 0.05);
|
||||||
|
|
||||||
|
for (archnum = 0; archnum < ARCHNBR; archnum ++) { /* Initialize architectures */
|
||||||
|
if (SCOTCH_archInit (&archtab[archnum]) != 0) {
|
||||||
|
SCOTCH_errorPrint ("main: cannot initialize architecture");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SCOTCH_archCmplt (&archtab[0], 5);
|
||||||
|
SCOTCH_archMesh2 (&archtab[1], 2, 2);
|
||||||
|
SCOTCH_archMesh2 (&archtab[2], xdimsiz * 2, xdimsiz * 2); /* Oversized architecture */
|
||||||
|
SCOTCH_archVhcub (&archtab[3]);
|
||||||
|
|
||||||
|
if ((fileptr = tmpfile ()) == NULL) { /* Open temporary file for resulting output */
|
||||||
|
SCOTCH_errorPrint ("main: cannot open file (2)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (stranum = 0; stranum < STRANBR; stranum ++) {
|
||||||
|
for (archnum = 0; archnum < ARCHNBR; archnum ++) {
|
||||||
|
SCOTCH_Num archsiz;
|
||||||
|
|
||||||
|
if (SCOTCH_graphMapInit (&grafdat, &mappdat, &archtab[archnum], parttab) != 0) { /* Initialize new mapping */
|
||||||
|
SCOTCH_errorPrint ("main: cannot initialize mapping (1)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
if (SCOTCH_graphMapInit (&grafdat, &mapodat, &archtab[archnum], parotab) != 0) { /* Initialize old mapping */
|
||||||
|
SCOTCH_errorPrint ("main: cannot initialize mapping (2)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
archsiz = SCOTCH_archSize (&archtab[archnum]);
|
||||||
|
|
||||||
|
for (typenum = 0; typenum < 6; typenum ++) {
|
||||||
|
int i;
|
||||||
|
int o;
|
||||||
|
|
||||||
|
memset (parttab, ~0, xdimsiz * xdimsiz * sizeof (SCOTCH_Num)); /* Assume all vertices are not fixed */
|
||||||
|
if (archnum < 2) { /* For fixed-size architectures */
|
||||||
|
for (i = 0; i < (xdimsiz - 1); i ++) { /* Place fixed vertices at all four sides */
|
||||||
|
parttab[COORD (0, i)] = 0;
|
||||||
|
parttab[COORD (i + 1, 0)] = 1;
|
||||||
|
parttab[COORD (xdimsiz - 1, i + 1)] = archsiz - 2;
|
||||||
|
parttab[COORD (i, xdimsiz - 1)] = archsiz - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else { /* For variable-sized architectures */
|
||||||
|
for (i = 0; i < (xdimsiz - 1); i ++) { /* Place fixed vertices at all four sides */
|
||||||
|
parttab[COORD (0, i)] = vertnbr - 2;
|
||||||
|
parttab[COORD (i + 1, 0)] = vertnbr - 1;
|
||||||
|
parttab[COORD (xdimsiz - 1, i + 1)] = vertnbr;
|
||||||
|
parttab[COORD (i, xdimsiz - 1)] = vertnbr + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
printf ("Strat %d, arch %d, type %d\n", stranum, archnum, typenum);
|
||||||
|
|
||||||
|
vmloptr = vmlotab;
|
||||||
|
switch (typenum) {
|
||||||
|
case 0 : /* Plain mapping */
|
||||||
|
o = SCOTCH_graphMapCompute (&grafdat, &mappdat, &stratab[stranum]);
|
||||||
|
memcpy (parotab, parttab, vertnbr * sizeof (SCOTCH_Num)); /* Use plain mapping as old mapping in the following */
|
||||||
|
break;
|
||||||
|
case 1 : /* Plain mapping with fixed vertices */
|
||||||
|
o = SCOTCH_graphMapFixedCompute (&grafdat, &mappdat, &stratab[stranum]);
|
||||||
|
break;
|
||||||
|
case 2 : /* Remapping without vertex migration load array */
|
||||||
|
vmloptr = NULL;
|
||||||
|
case 3 : /* Remapping with vertex migration load array */
|
||||||
|
o = SCOTCH_graphRemapCompute (&grafdat, &mappdat, &mapodat, 0.2, vmloptr, &stratab[stranum]);
|
||||||
|
break;
|
||||||
|
case 4 : /* Remapping with fixed vertices and without vertex migration load array */
|
||||||
|
vmloptr = NULL;
|
||||||
|
case 5 : /* Remapping with fixed vertices and with vertex migration load array */
|
||||||
|
o = SCOTCH_graphRemapFixedCompute (&grafdat, &mappdat, &mapodat, 0.2, vmloptr, &stratab[stranum]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (o != 0) {
|
||||||
|
SCOTCH_errorPrint ("main: cannot compute mapping");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SCOTCH_graphMapSave (&grafdat, &mappdat, fileptr);
|
||||||
|
|
||||||
|
SCOTCH_graphMapExit (&grafdat, &mapodat);
|
||||||
|
SCOTCH_graphMapExit (&grafdat, &mappdat);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (archnum = 0; archnum < ARCHNBR; archnum ++)
|
||||||
|
SCOTCH_archExit (&archtab[archnum]);
|
||||||
|
|
||||||
|
for (stranum = 0; stranum < STRANBR; stranum ++)
|
||||||
|
SCOTCH_stratExit (&stratab[stranum]);
|
||||||
|
|
||||||
|
free (vmlotab);
|
||||||
|
free (parotab);
|
||||||
|
free (parttab);
|
||||||
|
SCOTCH_graphExit (&grafdat);
|
||||||
|
|
||||||
|
fclose (fileptr);
|
||||||
|
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
168
scotch_6.0.3/src/check/test_scotch_graph_order.c
Normal file
168
scotch_6.0.3/src/check/test_scotch_graph_order.c
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
/* Copyright 2014 IPB, Universite de Bordeaux, INRIA & CNRS
|
||||||
|
**
|
||||||
|
** This file is part of the Scotch software package for static mapping,
|
||||||
|
** graph partitioning and sparse matrix ordering.
|
||||||
|
**
|
||||||
|
** This software is governed by the CeCILL-C license under French law
|
||||||
|
** and abiding by the rules of distribution of free software. You can
|
||||||
|
** use, modify and/or redistribute the software under the terms of the
|
||||||
|
** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
|
||||||
|
** URL: "http://www.cecill.info".
|
||||||
|
**
|
||||||
|
** As a counterpart to the access to the source code and rights to copy,
|
||||||
|
** modify and redistribute granted by the license, users are provided
|
||||||
|
** only with a limited warranty and the software's author, the holder of
|
||||||
|
** the economic rights, and the successive licensors have only limited
|
||||||
|
** liability.
|
||||||
|
**
|
||||||
|
** In this respect, the user's attention is drawn to the risks associated
|
||||||
|
** with loading, using, modifying and/or developing or reproducing the
|
||||||
|
** software by the user in light of its specific status of free software,
|
||||||
|
** that may mean that it is complicated to manipulate, and that also
|
||||||
|
** therefore means that it is reserved for developers and experienced
|
||||||
|
** professionals having in-depth computer knowledge. Users are therefore
|
||||||
|
** encouraged to load and test the software's suitability as regards
|
||||||
|
** their requirements in conditions enabling the security of their
|
||||||
|
** systems and/or data to be ensured and, more generally, to use and
|
||||||
|
** operate it in the same conditions as regards security.
|
||||||
|
**
|
||||||
|
** The fact that you are presently reading this means that you have had
|
||||||
|
** knowledge of the CeCILL-C license and that you accept its terms.
|
||||||
|
*/
|
||||||
|
/************************************************************/
|
||||||
|
/** **/
|
||||||
|
/** NAME : test_scotch_graph_order.c **/
|
||||||
|
/** **/
|
||||||
|
/** AUTHOR : Francois PELLEGRINI **/
|
||||||
|
/** **/
|
||||||
|
/** FUNCTION : This module tests the operation of **/
|
||||||
|
/** the SCOTCH_graphOrderCompute*() **/
|
||||||
|
/** routines. **/
|
||||||
|
/** **/
|
||||||
|
/** DATES : # Version 6.0 : from : 05 aug 2014 **/
|
||||||
|
/** to 29 aug 2014 **/
|
||||||
|
/** **/
|
||||||
|
/************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** The defines and includes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H))
|
||||||
|
#include <stdint.h>
|
||||||
|
#endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "scotch.h"
|
||||||
|
|
||||||
|
/*********************/
|
||||||
|
/* */
|
||||||
|
/* The main routine. */
|
||||||
|
/* */
|
||||||
|
/*********************/
|
||||||
|
|
||||||
|
int
|
||||||
|
main (
|
||||||
|
int argc,
|
||||||
|
char * argv[])
|
||||||
|
{
|
||||||
|
FILE * fileptr;
|
||||||
|
SCOTCH_Graph grafdat;
|
||||||
|
SCOTCH_Ordering ordedat;
|
||||||
|
SCOTCH_Strat stradat;
|
||||||
|
SCOTCH_Num baseval;
|
||||||
|
SCOTCH_Num vertnbr;
|
||||||
|
SCOTCH_Num vertnum;
|
||||||
|
SCOTCH_Num listnbr;
|
||||||
|
SCOTCH_Num listnum;
|
||||||
|
SCOTCH_Num * listtab;
|
||||||
|
|
||||||
|
SCOTCH_errorProg (argv[0]);
|
||||||
|
|
||||||
|
if (SCOTCH_graphInit (&grafdat) != 0) { /* Initialize source graph */
|
||||||
|
SCOTCH_errorPrint ("main: cannot initialize graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((fileptr = fopen (argv[1], "r")) == NULL) {
|
||||||
|
SCOTCH_errorPrint ("main: cannot open file (1)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_graphLoad (&grafdat, fileptr, -1, 0) != 0) { /* Read source graph */
|
||||||
|
SCOTCH_errorPrint ("main: cannot load graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose (fileptr);
|
||||||
|
|
||||||
|
SCOTCH_graphData (&grafdat, &baseval, &vertnbr, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
listnbr = (vertnbr + 1) / 2; /* Only keep half of the vertices in induced graph */
|
||||||
|
if ((listtab = malloc (listnbr * sizeof (SCOTCH_Num))) == NULL) {
|
||||||
|
SCOTCH_errorPrint ("main: out of memory (1)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
for (listnum = 0, vertnum = baseval + (listnbr / 4); /* Keep only middle half of the vertices */
|
||||||
|
listnum < listnbr; listnum ++, vertnum ++)
|
||||||
|
listtab[listnum] = vertnum;
|
||||||
|
|
||||||
|
if ((fileptr = tmpfile ()) == NULL) { /* Open temporary file for resulting output */
|
||||||
|
SCOTCH_errorPrint ("main: cannot open file (2)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_stratInit (&stradat) != 0) { /* Initialize ordering strategy */
|
||||||
|
SCOTCH_errorPrint ("main: cannot initialize strategy");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_graphOrderInit (&grafdat, &ordedat, NULL, NULL, NULL, NULL, NULL) != 0) { /* Initialize ordering */
|
||||||
|
SCOTCH_errorPrint ("main: cannot initialize ordering (1)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_graphOrderCompute (&grafdat, &ordedat, &stradat) != 0) {
|
||||||
|
SCOTCH_errorPrint ("main: cannot order graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_graphOrderCheck (&grafdat, &ordedat) != 0) {
|
||||||
|
SCOTCH_errorPrint ("main: invalid ordering (1)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
SCOTCH_graphOrderSave (&grafdat, &ordedat, fileptr); /* Test ordering data output routines */
|
||||||
|
SCOTCH_graphOrderSaveMap (&grafdat, &ordedat, fileptr);
|
||||||
|
SCOTCH_graphOrderSaveTree (&grafdat, &ordedat, fileptr);
|
||||||
|
|
||||||
|
SCOTCH_graphOrderExit (&grafdat, &ordedat); /* Free computed ordering */
|
||||||
|
|
||||||
|
if (SCOTCH_graphOrderInit (&grafdat, &ordedat, NULL, NULL, NULL, NULL, NULL) != 0) { /* Initialize ordering again */
|
||||||
|
SCOTCH_errorPrint ("main: cannot initialize ordering (2)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_graphOrderComputeList (&grafdat, &ordedat, listnbr, listtab, &stradat) != 0) {
|
||||||
|
SCOTCH_errorPrint ("main: cannot order induced graph");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCOTCH_graphOrderCheck (&grafdat, &ordedat) != 0) {
|
||||||
|
SCOTCH_errorPrint ("main: invalid ordering (2)");
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
SCOTCH_graphOrderSave (&grafdat, &ordedat, fileptr); /* Test ordering data output routines */
|
||||||
|
SCOTCH_graphOrderSaveMap (&grafdat, &ordedat, fileptr);
|
||||||
|
SCOTCH_graphOrderSaveTree (&grafdat, &ordedat, fileptr);
|
||||||
|
|
||||||
|
free (listtab);
|
||||||
|
SCOTCH_stratExit (&stradat);
|
||||||
|
SCOTCH_graphOrderExit (&grafdat, &ordedat);
|
||||||
|
SCOTCH_graphExit (&grafdat);
|
||||||
|
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user