From: bangerth This documentation describes the compilation process
of MUMPS and its dependencies starting with
BLACS and following
@@ -30,14 +30,14 @@
walk-through mentioning the most important parameters needed for
successful compliation and linking.
The compilation scheme involves repeating the same three steps
for each piece of software we want installed: (i) Selecting an
appropriate makefile; (ii) Modifying symbols in this makefile to
suit the environment; and (iii) running make to actually compile
the software.
Note: If you are using a system, which provides
Intel's MKL, you should only have to compile
MUMPS, since BLACS and
@@ -47,9 +47,9 @@
considered. Otherwise start right below with the installation
of BLACS.
The BLACS library
provides basic linear algebra routines together with a
communication model such that they can be used in parallel. The
@@ -57,7 +57,7 @@
and software used and we can only give a general guide through
the configuration process.
The library can be found on the
official BLACS
webpage. We require the three
@@ -71,19 +71,19 @@
conventional: We start by opening Bamke.inc in our favourite text editor and
taking a look at the following three sections:
-
+
Interfacing deal.II
to MUMPS
-
+
1. BLACS
-
+
Bmake.XXX-YYY
,
where XXX
stands for the message passing software
of your system
- (eg.. MPI, PVM)
+ (e.g. MPI, PVM)
and
- YYY
for the system architecture (eg. LINUX,
+ YYY
for the system architecture (e.g. LINUX,
SUN4, SUN4SOL). Pick the corresponding file for your combination
of message passing software and system architecture, copy it to
the root directory of BLACS, and rename it
Bmake.inc
. Now that we have the correct makefile,
we have to adapt it to the system we are using.
- SECTION 1: PATHS AND LIBRARIES
set the
MPI environment correctly by changing the
@@ -91,9 +91,9 @@
MPI installation is located
in. Furthermore you will probably have to adjust the
variables MPILIBdir
,
- MPIINCdir
and MPILIB
.
+ MPIINCdir
and MPILIB
.
SECTION 2: BLACS INTERNALS
the most important variables are INTFACE
and
TRANSCOMM
. If you are using OpenMPI, then set
@@ -104,12 +104,12 @@
webpage for details on how to set these values
correctly.
SECTION 3:
Compilers
. Here we set the
variables F77
and CC
to
correspond to the MPI Fortran and CC
- compiler respectively, eg.
+ compiler respectively, e.g.
mpif77
and mpicc
. An important
issue here are the variables F77FLAGS
and CCFLAGS
. It is absolutely vital to add the
@@ -119,15 +119,15 @@
libraries are enabled.
Assuming we have done all of that correctly, we go back to
the BLACS root directory and compile the
library with the command make mpi
.
The SCALAPACK
library provides high-performance linear algebra routines for
distributed-memory message-passing MIMD
@@ -136,15 +136,15 @@
webpage. We require the
file scalapack.tgz
version <= 1.8.0 only.
After extracting the file and changing to the directory which
was created, we find a file
called SLmake.inc.example
and rename it
to SLmake.inc
. In this file we have to set a few
parameters as we did before with BLACS'
own Bmake.inc
.
-
-
home
. Here you have to take care, that
this points to the SCALAPACK directory
@@ -154,14 +154,14 @@
variable SMPLIB
to the MPI
library.
BLACSFINIT
,
BLACSCINIT
, and
- BLACSLIB
.
-
+ BLACSLIB
.
+
BLACSFINIT
has to point to your
F77init-library of BLACS. Check the
@@ -178,7 +178,7 @@
F77
and CC
should point to
your MPI Fortran and CC compiler
@@ -189,7 +189,7 @@
variable INTFACE
in the configuration
file Bmake.inc
in BLACS.
BLAS
and
LAPACK
point to your BLAS
@@ -198,19 +198,19 @@
If all variables are set correctly we can go ahead and compile
the SCALAPACK library with the
command make
.
Now we come to the main program for which we are doing all this. We want to install the parallel sparse direct solver MUMPS.
- + After downloading the solver from its
official webpage,
extracting it, and changing to the directory which was created, we
@@ -228,20 +228,20 @@
the MUMPS root directory and rename it
as Makefile.inc
.
As before, we open the makefile Makefile.inc
in
our favourite text editor and start modifying variables:
-
+
CC
should point to
your MPI CC
- compiler, eg. mpicc
. The
+ compiler, e.g. mpicc
. The
variables FC
and FL
should both
point to your MPI Fortran90 compiler,
- eg. mpif90
.
+ e.g. mpif90
.
SCALAP
. This one should point to your
SCALAPACK0 and BLACS
@@ -255,7 +255,7 @@
variable INCPAR
should point to
the MPI include directory.
LIBPAR
which
should contain the same value as the
variable SCALAP
plus a pointer to
@@ -267,10 +267,10 @@
variable LIBBLAS
points to your BLAS
installation. The variable
CDEFS
has to contain the same value as the variable
- INTFACE
of
+ INTFACE
of
BLACS' own Bmake.inc
. If you
are using OpenMPI this should be the
- value -DAdd_
.
+ value -DAdd_
.
-fPIC
to the
@@ -282,14 +282,14 @@
Now we are done with configuration and can
compile MUMPS with the
command make
.
To be able to use the interface of deal.II for the MUMPS solver we then configure deal.II with the following @@ -302,7 +302,7 @@
- +Note: Throughout this description of the compilation process of MUMPS we have emphasised adding the