From: young Date: Mon, 10 May 2010 06:59:24 +0000 (+0000) Subject: Documentation and change-log that accompany the previous commit. NB. both this and... X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5dfe8b7f95d803de8778e45781610018a5fc7239;p=dealii-svn.git Documentation and change-log that accompany the previous commit. NB. both this and previous patch were written by Markus Buerg. git-svn-id: https://svn.dealii.org/trunk@21111 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/doc/external-libs/mumps.html b/deal.II/doc/external-libs/mumps.html new file mode 100644 index 0000000000..468f2f8674 --- /dev/null +++ b/deal.II/doc/external-libs/mumps.html @@ -0,0 +1,302 @@ + + + + + The deal.II Readme on interfacing to PETSc and Trilinos + + + + + + + + + +

Interfacing deal.II + to MUMPS

+ +

This documentation describes the compilation process + of MUMPS and its dependencies starting with + BLACS and following + with SCALAPACK. The compilation + of MUMPS and its dependencies is not as + straightforward is we would like, however, it is not so + difficult that we can not talk about it. That said, we cannot + discuss every possible choice of parameters, because this is too + involved and we would much rather be doing something productive + with the interface in deal.II. Thus we give + only a short 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 + SCALPACK are already included in the + MKL. Therefore you can jump directly to + section 3, where the compilation of MUMPS is + considered. Otherwise start right below with the installation + of BLACS. +

+ +

1. BLACS

+ +

The BLACS library + provides basic linear algebra routines together with a + communication model such that they can be used in parallel. The + compilation of this library is highly dependent on the system + 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 + files mpiblacs.tgz, + mpiblacs-patch03.tgz, and + blacstester.tgz. After extraction of these + three files in the same directory, we find a subfolder + named BMAKES in that directory. Inside this + subfolder there are lots of different Bmake-files for + different architectures. The naming of the files are + conventional: Bmake.XXX-YYY, + where XXX stands for the message passing software + of your system + (eg.. MPI, PVM) + and + YYY for the system architecture (eg. 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. +

+ +

We start by opening Bamke.inc in our favourite text editor and + taking a look at the following three sections: + +

+

+ +

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. +

+ +

2. SCALAPACK

+ +

The SCALAPACK + library provides high-performance linear algebra routines for + distributed-memory message-passing MIMD + computers. The library can be found on the + official SCALAPACK + webpage. We require the + file scalapack.tgz 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. + +

+

+ +

If all variables are set correctly we can go ahead and compile + the SCALAPACK library with the + command make. +

+ +

3. MUMPS

+ +

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 + find a subfolder named + Make.inc where there are bunch of different + Makefiles for different machine architecture. Here it is + important to realize that for each architecture there are two + different files — one with the ending .SEQ + and one without. The makefiles with the extension + .SEQ are the ones required for the sequential + version of MUMPS. Since we want to use MUMPS + in parallel, we take the file + without this extension which looks suitable for the + architecture we are building on and copy this into + 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: + +

+

+ +

Now we are done with configuration and can + compile MUMPS with the + command make. +

+ +

4. Linking with deal.II

+ +

To be able to use the interface of deal.II + for the MUMPS solver we then + configure deal.II with the following + additional options: +

+	--with-mumps=path/to/mumps
+	  --with-blacs=path/to/blacs
+	  --with-scalapack=path/to/scalpack
+	
+      
+

+ + + diff --git a/deal.II/doc/news/changes.h b/deal.II/doc/news/changes.h index 9afaefa2ca..607fa3ac4a 100644 --- a/deal.II/doc/news/changes.h +++ b/deal.II/doc/news/changes.h @@ -427,6 +427,15 @@ inconvenience this causes.

lac

    +
  1. +

    + New: A class SparseDirectMumps that provides an interface to + the MUltifrontal Massively Parallel sparse direct Solver (MUMPS). +

    +
    + (Markus Buerg 2010/05/10) +
  2. +
  3. Fixed: BlockSparsityPattern::copy_from accidentally only copied diff --git a/deal.II/doc/readme.html b/deal.II/doc/readme.html index ba75003a21..92f4952307 100644 --- a/deal.II/doc/readme.html +++ b/deal.II/doc/readme.html @@ -723,6 +723,17 @@ this page. + +

    MUltifrontal Massively Parallel sparse direct Solver (MUMPS)
    +
    + It is possible to make use some subroutines that make use of the + MUltifrontal Massively Parallel sparse direct Solver + (MUMPS). For a detailed description of how to compile MUMPS (and + some dependencies) and linking with deal.II, see + this page. +
    +
    FunctionParser