... | @@ -53,26 +53,38 @@ the recommended version. |
... | @@ -53,26 +53,38 @@ the recommended version. |
|
|=======
|
|
|=======
|
|
| **Name** | **minimum Version** | **recommended Versions** | **Notes**
|
|
| **Name** | **minimum Version** | **recommended Versions** | **Notes**
|
|
|
|
|
|
| C++ Compiler | C++ 11 | C++ 17 | version is minimum/recommended C++ standard. For further instructions see section below.
|
|
| C/C++ Compiler | |
|
|
|
|
| must support C++ 11 or better. For further instructions see section below.
|
|
|
|
|
|
| cmake | 3.0.0 | 3.11.4 or newer |
|
|
| Fortran Compiler | |
|
|
1.With some version prior to 3.11.4 we had problems configuring HDF5 and Boost. +
|
|
| optional, must support Fortan 95 or better.
|
|
|
|
|
|
|
|
| cmake | 3.0.0 | 3.11.4 or newer
|
|
|
|
| 1.With some version prior to 3.11.4 we had problems configuring HDF5 and Boost. +
|
|
2. For compiling CMake version 3.11.4 and newer a C++ compiler supporting C++11 is required.
|
|
2. For compiling CMake version 3.11.4 and newer a C++ compiler supporting C++11 is required.
|
|
|
|
|
|
| Open MPI | 3.1.2 | 3.1.6 | as alternative MPICH can be used
|
|
| Open MPI | 3.1.2 | 3.1.6
|
|
|
|
| as alternative MPICH can be used
|
|
|
|
|
|
|
|
| zlib | 1.2.11 | 1.2.11
|
|
|
|
| use system zlib if available (`libz.a` or `libz.so`)
|
|
|
|
|
|
| hdf5 | 1.8.18 | 1.10.6 | A parallel version is required.
|
|
| hdf5 | 1.8.18 | 1.10.6
|
|
|
|
| A parallel version is required.
|
|
|
|
|
|
|
|
| GNU Scientific Library | 2.5 | 2.6
|
|
|
|
|
|
|
|
|
|
|
| GNU Scientific Library | 2.5 | 2.6 |
|
|
| VTK | 7.1.1 | 9.0.1
|
|
|
|
| optional: required if you want to compile H5hut with the VTK to H5hut mesh converter.
|
|
|
|
|
|
| H5hut | 2.0.0rc6 | 2.0.0rc6 | A parallel version is required.
|
|
| H5hut | 2.0.0rc6 | 2.0.0rc6
|
|
|
|
| A parallel version is required.
|
|
|
|
|
|
| boost | 1.66.0 | 1.73.0
|
|
| boost | 1.66.0 | 1.73.0
|
|
| The following boost libraries are required: `chrono`, `filesystem`,
|
|
| The following boost libraries are required: `chrono`, `filesystem`,
|
|
`iostreams`, `regex`, `serialization`, `system`
|
|
`iostreams`, `regex`, `serialization`, `system`
|
|
|
|
|
|
| google-test | 1.7.0 | 1.10.0 or newer | optional: Required to run the unit-tests
|
|
|
|
|
|
|
|
| ParMETIS | 4.0.0 | 4.0.3
|
|
| ParMETIS | 4.0.0 | 4.0.3
|
|
| optional: required for OPAL compiled with SAAMG solver.
|
|
| optional: required for OPAL compiled with SAAMG solver.
|
|
|
|
|
... | @@ -82,33 +94,38 @@ the recommended version. |
... | @@ -82,33 +94,38 @@ the recommended version. |
|
| trilinos | 12.10.1
|
|
| trilinos | 12.10.1
|
|
| 12.12.1 (macOS) +
|
|
| 12.12.1 (macOS) +
|
|
12.18.1 (Linux)
|
|
12.18.1 (Linux)
|
|
| +
|
|
| 1. optional: required for OPAL compiled with SAAMG solver. +
|
|
1. optional: required for OPAL compiled with SAAMG solver. +
|
|
|
|
2. Version `12.18.1` does not compile on macOS.
|
|
2. Version `12.18.1` does not compile on macOS.
|
|
|
|
|
|
| VTK | 7.1.1 | 9.0.1
|
|
|
|
| optional: required of you want to compile H5hut with the VTK to H5hut mesh converter.
|
|
|
|
|
|
|
|
| AMReX | 18.07 | 18.07
|
|
| AMReX | 18.07 | 18.07
|
|
| optional: required for OPAL compiled with AMR solvers.
|
|
| optional: required for OPAL compiled with AMR solvers.
|
|
|
|
|
|
|
|
| google-test | 1.7.0 | 1.10.0 or newer
|
|
|
|
| optional: Required to run the unit-tests
|
|
|
|
|
|
|=======
|
|
|=======
|
|
|
|
|
|
=== Compiler
|
|
=== Compiler
|
|
|
|
|
|
==== GNU Compiler Collection
|
|
==== GNU Compiler Collection
|
|
|
|
|
|
The GNU Compiler Collection (GCC) is the recommended compiler for OPAL on a Linux system and for the Windows Services for Linux. If you want to use GCC
|
|
The GNU Compiler Collection (GCC) is the recommended compiler for OPAL
|
|
on macOS, it is strongly recommended to use GCC provided by Macports, Homebrew, Fink or another software package manager.
|
|
on a Linux system and on Windows with the Windows Services for
|
|
|
|
Linux. If you want to use GCC on macOS, it is strongly recommended to
|
|
|
|
use GCC provided by Macports, Homebrew, Fink or another software
|
|
|
|
package manager.
|
|
|
|
|
|
> **NOTE:** If you do not want to use the compilers provided by the system (Linux distribution, Xcode,...), make sure that the commands `cc` and `c++` call the right binary.
|
|
> **NOTE:** If you do not want to use the compilers provided by the
|
|
|
|
system (Linux distribution, Xcode,...), make sure that the
|
|
|
|
commands `cc` and `c++` are calling the right binary. At least
|
|
|
|
with GCC from Macports `cc` and `c++` are not set with `port select`.
|
|
|
|
|
|
[width="100%",options="header"]
|
|
[width="100%",options="header"]
|
|
|=======
|
|
|=======
|
|
| **Name** | **minimum Version** | **recommended Version** | **Notes**
|
|
| **Name** | **minimum Version** | **recommended Version** | **Notes**
|
|
|
|
|
|
| GNU Compiler Collection | 7.3.0 | 7.5.x,8.4.x, 9.3.x |
|
|
| GNU Compiler Collection | 7.3.0 | 7.5.x,8.4.x, 9.3.x |
|
|
1. For the time being GCC 10.x is not recommended. There are issues with the Fortran code in AMReX. +
|
|
1. For the time being GCC 10.1 is not recommended. GCC 10.1 fails to compile AMReX.
|
|
1. Compiling GCC on macOS doesn't always work out of the box.
|
|
|
|
|=======
|
|
|=======
|
|
|
|
|
|
If you want to compile GCC, you have to compile the following libraries first with an already available GCC:
|
|
If you want to compile GCC, you have to compile the following libraries first with an already available GCC:
|
... | @@ -128,9 +145,13 @@ If you want to compile GCC, you have to compile the following libraries first wi |
... | @@ -128,9 +145,13 @@ If you want to compile GCC, you have to compile the following libraries first wi |
|
|
|
|
|
==== Clang/LLVM (macOS only)
|
|
==== Clang/LLVM (macOS only)
|
|
|
|
|
|
Clang is the recommended compiler for OPAL on macOS - as long as you do not need AMR. If you want to compile OPAL with AMR a Fortran compiler is required. In this case it is recommended to use GCC.
|
|
Clang is the recommended compiler for OPAL on macOS - as long as you
|
|
|
|
do not need AMR. If you want to compile OPAL with AMR, a Fortran
|
|
|
|
compiler is required. In this case you can either use the new Flang
|
|
|
|
front-end of LLVM or GCC from one of the package managers.
|
|
|
|
|
|
> *Note:* A Fortran front-end "Flang" has been added to LLVM 11, but this is not included in Xcode 11.
|
|
> *Note:* The LLVM Fortran front-end Flang is not included in
|
|
|
|
Xcode. You have to compile it yourself.
|
|
|
|
|
|
[width="100%",options="header"]
|
|
[width="100%",options="header"]
|
|
|=======
|
|
|=======
|
... | @@ -147,36 +168,101 @@ Clang is the recommended compiler for OPAL on macOS - as long as you do not need |
... | @@ -147,36 +168,101 @@ Clang is the recommended compiler for OPAL on macOS - as long as you do not need |
|
|
|
|
|
=== Linux @PSI
|
|
=== Linux @PSI
|
|
|
|
|
|
The easiest and recommended solution is to use the **Pmodules** environment available at PSI. Please link:Pmodules[read this wiki-page] if you are not using a PSI Linux distribution or you do not know whether the Pmodules are installed on your system.
|
|
The easiest and recommended solution is to use the **Pmodules**
|
|
|
|
environment available at PSI. Please link:Pmodules[read this
|
|
'''
|
|
wiki-page] if you are not using a PSI Linux distribution or you do not
|
|
|
|
know whether the Pmodules are installed on your system.
|
|
|
|
|
|
==== Load the OPAL tool-chain
|
|
Instead of loading each single module, you can use the meta-modules
|
|
|
|
available in the directory
|
|
|
|
`/afs/psi.ch/project/amas/modulefiles/OPAL`. To make these
|
|
|
|
meta-modules available, run the command:
|
|
|
|
|
|
----
|
|
----
|
|
module use /afs/psi.ch/project/amas/modulefiles/OPAL
|
|
module use /afs/psi.ch/project/amas/modulefiles/OPAL
|
|
----
|
|
----
|
|
|
|
|
|
**For OPAL 2.0**
|
|
==== Compiling on Merlin6
|
|
|
|
|
|
|
|
On Merlin6 special version of the modules should be used. These
|
|
|
|
modules provide a better integration with the SLURM batch system. The
|
|
|
|
recommended modules are:
|
|
|
|
|
|
----
|
|
----
|
|
module load toolchain/2.0
|
|
cmake/3.15.5
|
|
|
|
gcc/8.4.0
|
|
|
|
openmpi/3.1.6_slurm
|
|
|
|
hdf5/1.10.6_slurm
|
|
|
|
gsl/2.6
|
|
|
|
H5hut/2.0.0rc6_slurm
|
|
|
|
boost/1.70.0_slurm
|
|
|
|
amrex/18.07_3d_slurm
|
|
|
|
OpenBLAS/0.3.10
|
|
|
|
parmetis/4.0.3_slurm
|
|
|
|
trilinos/12.18.1_slurm
|
|
|
|
gtest/1.10.0
|
|
----
|
|
----
|
|
|
|
|
|
**For OPAL 2.2**
|
|
To load these modules, load the toolchain `master_slurm`:
|
|
----
|
|
----
|
|
module load toolchain/2.2
|
|
module load toolchain/master_slurm
|
|
----
|
|
----
|
|
|
|
|
|
**For OPAL master**
|
|
> **Note:** This toolchain can be used to compile OPAL 2.2.x, OPAL
|
|
|
|
2.4.x and the current master branch.
|
|
|
|
|
|
|
|
'''
|
|
|
|
|
|
|
|
==== Other Linux Systems
|
|
|
|
|
|
|
|
**To compile OPAL 2.0.x or 2.2.x**
|
|
|
|
Use the modules:
|
|
|
|
----
|
|
|
|
cmake/3.10.3
|
|
|
|
gcc/7.3.0
|
|
|
|
openmpi/3.1.3
|
|
|
|
boost/1.68.0
|
|
|
|
hdf5/1.10.4
|
|
|
|
H5hut/2.0.0rc5
|
|
|
|
gsl/2.5
|
|
|
|
trilinos/12.12.1
|
|
|
|
OpenBLAS/0.2.20
|
|
|
|
----
|
|
|
|
To load these modules, load the toolchain `2.0` or `2.2`:
|
|
|
|
----
|
|
|
|
module load toolchain/2.0
|
|
----
|
|
----
|
|
module load opal-toolchain/master
|
|
or
|
|
----
|
|
----
|
|
or on Merlin6:
|
|
module load toolchain/2.2
|
|
|
|
----
|
|
|
|
**To compile OPAL 2.4.x or master**
|
|
|
|
Use the modules:
|
|
|
|
----
|
|
|
|
cmake/3.15.5
|
|
|
|
gcc/8.4.0
|
|
|
|
openmpi/3.1.6
|
|
|
|
hdf5/1.10.6
|
|
|
|
gsl/2.6
|
|
|
|
H5hut/2.0.0rc6
|
|
|
|
boost/1.70.0
|
|
|
|
amrex/18.07_3d
|
|
|
|
OpenBLAS/0.3.10
|
|
|
|
parmetis/4.0.3
|
|
|
|
trilinos/12.18.1
|
|
|
|
gtest/1.10.0
|
|
|
|
----
|
|
|
|
To load these modules, load the toolchain `2.4` or `master`:
|
|
----
|
|
----
|
|
module load opal-toolchain/master_slurm
|
|
module load toolchain/2.4
|
|
|
|
----
|
|
|
|
or
|
|
|
|
----
|
|
|
|
module load toolchain/master
|
|
----
|
|
----
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=== Build everything from scratch
|
|
=== Build everything from scratch
|
|
|
|
|
|
We provide recipes to build all required software. These recipes can be used on Linux, macOS and Windows Services for Linux. They are tested with:
|
|
We provide recipes to build all required software. These recipes can be used on Linux, macOS and Windows Services for Linux. They are tested with:
|
... | @@ -366,4 +452,4 @@ CC=mpicc CXX=mpicxx cmake \ |
... | @@ -366,4 +452,4 @@ CC=mpicc CXX=mpicxx cmake \ |
|
-D ENABLE_SAAMG_SOLVER=TRUE \
|
|
-D ENABLE_SAAMG_SOLVER=TRUE \
|
|
"${SRC_DIR}/OPAL/src"
|
|
"${SRC_DIR}/OPAL/src"
|
|
--------------------------------------
|
|
--------------------------------------
|
|
''' |
|
''' |
|
\ No newline at end of file |
|
|