• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

MATLAB/H03-May-2022-1,3291,122

Make.inc/H03-May-2022-2,3601,966

PORD/H10-May-2011-9,5055,914

SCILAB/H10-May-2011-1,8961,561

doc/H07-May-2022-

examples/H10-May-2011-457333

include/H10-May-2011-2,1801,659

lib/H10-May-2011-

libseq/H03-May-2022-2,0261,544

src/H03-May-2022-260,427253,823

ChangeLogH A D10-May-201118.3 KiB437396

LICENSEH A D10-May-20112 KiB4533

MakefileH A D03-May-20221.9 KiB8054

READMEH A D10-May-201111.3 KiB291220

VERSIONH A D10-May-201142 32

README

1===========================================
2MUMPS version 4.10.0
3===========================================
4
5(Quick note on upgrading from a previous version: please
6 check if Makefiles have changed (see old and new Makefiles
7 in Make.inc/ and be aware that all codes that use MUMPS
8 include files must be recompiled).
9
10
11MUMPS 4.10.0 solves a sparse system of linear equations A x = b
12using Gaussian elimination. Please read this README file and
13the documentation (in ./doc/) for a complete list of
14functionalities. Documentation and publications related to
15MUMPS can also be found at http://mumps.enseeiht.fr/
16or at http://graal.ens-lyon.fr/MUMPS
17
18For installation problems, bug reports, and to report your
19experience/feedback with the package, please subscribe the
20MUMPS Users's mailing list.
21
22
23  This version of MUMPS is provided to you free of charge. It is public
24  domain, based on public domain software developed during the Esprit IV
25  European project PARASOL (1996-1999). Since this first public domain
26  version in 1999, research and developments have been supported by the
27  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
28  INRIA, and University of Bordeaux.
29
30  The MUMPS team at the moment of releasing this version includes
31  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
32  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
33  Ucar and Clement Weisbecker.
34
35  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
36  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
37  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
38  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
39  have been contributing to this project.
40
41  Up-to-date copies of the MUMPS package can be obtained
42  from the Web pages:
43  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
44
45
46   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
47   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
48
49
50  User documentation of any code that uses this software can
51  include this complete notice. You can acknowledge (using
52  references [1] and [2]) the contribution of this package
53  in any scientific publication dependent upon the use of the
54  package. You shall use reasonable endeavours to notify
55  the authors of the package of this publication.
56
57   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
58   A fully asynchronous multifrontal solver using distributed dynamic
59   scheduling, SIAM Journal of Matrix Analysis and Applications,
60   Vol 23, No 1, pp 15-41 (2001).
61
62   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
63   S. Pralet, Hybrid scheduling for the parallel solution of linear
64   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
65
66
67
68Contents of the distribution :
69----------------------------
70
71ChangeLog  LICENSE    README     VERSION    Makefile    Make.inc/
72doc/       src/       lib/       include/   libseq/     examples/
73PORD/      MATLAB/    SCILAB/
74
75doc      contains the users' guide in postscript and pdf formats.
76
77src      contains the source files (for all arithmetics 's','d','c' or 'z')
78         necessary to generate the MUMPS library.
79
80lib      is the place where the MUMPS libraries libxmumps.a
81         (x='s','d','c' or 'z') are generated.
82
83include  contains xmumps_struc.h, xmumps_root.h and xmumps_c.h (where x is one
84         of 'd','c','s','z' depending on the arithmetic desired),
85         mumps_c_types.h and mumps_compat.h. The first two files must be
86         available at compile time in order to use MUMPS from external FORTRAN
87         programs. The three others for C programs.
88
89libseq   contains a sequential MPI library used by the purely sequential
90         version of MUMPS.
91
92examples contains illustrative test programs showing how MUMPS can be used.
93
94PORD     contains the PORD package (not part of MUMPS) from University
95         of Paderborn. See PORD/README for more info.
96
97MATLAB   contains a MATLAB interface to the sequential version of MUMPS
98
99SCILAB   contains a SCILAB interface to the sequential version of MUMPS
100
101
102Pre-requisites
103--------------
104
105If you only want to use the sequential version, you need to install:
106-> BLAS library
107
108If you want to use the parallel version, you need to install:
109-> MPI
110-> BLAS library
111-> BLACS library
112-> ScaLAPACK library
113
114For performance (time and memory issues) we also strongly recommend to install:
115-> SCOTCH and/or METIS for the sequential version
116-> PT-SCOTCH and/or ParMetis for the parallel version
117
118
119Installation
120------------
121
122The following steps can be applied.
123
124% tar zxvf MUMPS_4.10.0.tar.gz
125% cd MUMPS_4.10.0
126
127You then need to build a file called Makefile.inc corresponding
128to your achitecture. Various examples are available in the
129directory Make.inc :
130
131 Makefile.SGI.SEQ : default Makefile.inc for an Origin, sequential version.
132 Makefile.SGI.PAR : default Makefile.inc for an Origin, parallel version.
133 Makefile.SUN.SEQ : default Makefile.inc for a SUN, sequential version.
134 Makefile.SUN.PAR : default Makefile.inc for a SUN, parallel version.
135 Makefile.SP.SEQ : default for SP (32 bits), sequential version.
136 Makefile.SP.PAR : default for SP (32 bits), parallel version.
137 Makefile.SP64.SEQ : default for SP (64 bits), sequential version.
138 Makefile.SP64.PAR : default for SP (64 bits), parallel version.
139 Makefile.INTEL.SEQ : default for PC (linux, intel compiler, lam), sequential.
140 Makefile.INTEL.PAR : default for PC (linux, intel compiler, lam), parallel.
141 Makefile.ALPHA_linux.SEQ : default for ALPHA linux (compiler:fort), sequential.
142 Makefile.ALPHA_linux.PAR : default for ALPHA linux (compiler:fort), parallel.
143 Makefile.ALPHA_true64.SEQ : default for ALPHA true 64 (compiler:f90), sequential.
144 Makefile.ALPHA_true64.PAR : default for ALPHA true 64 (compiler:f90), parallel.
145 Makefile.WIN.MS-Intel.SEQ : default for Windows with Intel compiler, sequential, with GNU make.
146 Makefile.WIN.MS-G95.SEQ : default for Windows with g95 compiler, sequential, with GNU make.
147
148
149For a parallel version of MUMPS on a 64-bit IBM SP machine, copy
150Make.inc/Makefile.SP64.PAR into Makefile.inc
151
152% cp Make.inc/Makefile.SP64.PAR ./Makefile.inc
153
154In most cases, Makefile.inc should be adapted to fit with your
155architecture, libraries and compiler (see comments in the
156Makefile.inc.generic or Makefile.inc.generic.SEQ for details).  The
157variables LIBBLAS (BLAS library), SCALAP (ScaLAPACK library), INCPAR
158(include files for MPI), LIBPAR (library files for MPI) are concerned.
159
160By default, only the double precision version of MUMPS will be
161installed. make <ARITH> will build the version for a specific
162arithmetic, where <ARITH> can be one of 'd','c','s','z'.
163"make all" will compile versions of MUMPS for all 4 arithmetics.
164
165After issuing the command
166% make
167, ./lib will contain the mumps libraries libxmumps.a (with x = 'd', 'c',
168's' or 'z') and libmumps_common.a. Both must be included at link time in
169an external program.
170
171A simple Fortran test driver in ./examples (see ./examples/README) will
172also be compiled as well as an example of using MUMPS from a C main
173program.
174
175
176Preprocessing constants (Makefile.inc)
177--------------------------------------
178
179-DMAIN_COMP:
180Note that some Fortran runtime libraries define the "main" symbol.
181This can cause problems when using MUMPS from C if Fortran is used
182for the link phase. One approach is to use a specific flag (such
183as -nofor_main for Intel ifort compiler). Another approach is to
184use the C linker (gcc, etc...) and add manually the Fortran runtime
185libraries (that should not define the symbol "main"). Finally, if
186the previous approaches do not work, compile the C example with
187"-DMAIN_COMP". This might not work well with some MPI implementations
188(see options in Makefiles and FAQ
189at http://graal.ens-lyon.fr/MUMPS and
190http://mumps.enseeiht.fr/).
191
192-DAdd_ , -DAdd__ and -DUPPER:
193These options are used for defining the calling
194convention from C to Fortran or Fortran to C.
195
196-DALLOW_NON_INIT:
197This option can be used to speed up the code for
198symmetric matrices by allowing non initialization of
199data area that will modified but are not significant
200for the computation.
201
202Some other preprocessing options correspond to default
203architectures and are defined in specific Makefiles.
204
205
206Sequential version
207------------------
208
209You can use the parallel MPI version of MUMPS on a single
210processor. If you only plan to use MUMPS on a uniprocessor
211machine, and do not want to install parallel libraries
212such as MPI, ScaLAPACK, etc... then it might be more convenient
213to use one of the Makefile.<ARCH>.SEQ to build a sequential
214version of MUMPS instead of a parallel one.
215
216For that, a dummy MPI library (available in ./libseq) defining
217all symbols related to parallel libraries is used at the link
218phase.
219
220Note that you should use 'make clean' before building the
221MUMPS sequential library if you had previously built a parallel
222version. And vice versa.
223
224
225Compiling and linking your program with MUMPS
226---------------------------------------------
227
228Basically, ./lib/libxmumps.a and ./lib/libmumps_common.a constitute the
229MUMPS library and ./include/*.h are the include files. Also, some BLAS,
230ScaLAPACK, BLACS, and MPI are needed. (Except for the sequential version
231where ./libseq/libmpiseq.a is used.) Please refer to the Makefile
232available in the directory ./examples for an example of how to link your
233program with MUMPS. We advise to use the same compiler alignment options
234for compiling your program as were used for compiling MUMPS. Otherwise
235some derived datatypes may not match.
236
237
238Platform dependencies
239---------------------
240
241Versions of MUMPS have been tested on CRAY, IBM, SGI, COMPAQ, and Linux
242systems. We could potentially generate versions for any other platform
243with Fortran 90, MPI, BLACS, and ScaLAPACK installed, but the code has
244only been tested on the above-mentionned platforms.
245
246* IBM SP
247  ------
248On SP machines, use of PESSL, BLACS, MPI and ESSL is made.
249
250Note that MUMPS requires PESSL release 2 or greater. The version
251of MUMPS based on PESSL release 1.1 (that used descriptors of
252size 8) is no longer available. If PESSL release 2 is not
253available on your system, the public domain version of
254ScaLAPACK should be used instead. PESSL usually does not
255include single precision versions of the ScaLAPACK routines
256required by MUMPS. If the single precision or single
257complex versions of MUMPS are needed, then ScaLAPACK should
258then be used in place of PESSL.
259
260* INTEL Compilers
261  ---------------
262Some users have reported problems (wrong results) with
263Intel compilers version 10.x when using default compiler
264optimization (-O).
265
266* COMPAQ
267  ------
268The option -nopipeline is required, otherwise, the version of the
269compiler we have used performs software pipeline over iterations of
270loops with potential dependencies. Also the option -O3 should not be
271used on xmumps_static_mapping.F as it seems to create erroneous code.
272
273* LAM
274  ---
275lam version 6.5.6 or later is required for the double complex
276version of MUMPS to work correctly.
277
278* MPICH
279  -----
280MUMPS has been tested and works correctly with various versions of MPICH.
281The double complex version does not work correctly with MPICH2 v 1.0.3,
282due to truncated messages when using double complex types.
283
284* CRAY
285  ----
286On the CRAY, we recommend to link with the standard BLACS
287library from netlib, based on MPI. We observed problems
288(deadlock) when using the CRAY BLACS in host-node mode or
289when MUMPS is used on a subcommunicator of MPI_COMM_WORLD
290of more than 1 processor.
291