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