Alsacalcul

This document is under active development and discussion!

If you find errors or omissions in this document, please don’t hesitate to submit an issue or open a pull request with a fix. We also encourage you to ask questions and discuss any aspects of the project on the Feel++ Gitter forum. New contributors are always welcome!

Mesocenter of Strasbourg

Alsacalcul is the supercomputer of Université de Strasbourg.

For more information see the official web page of Alsacalcul.

1. Prerequisites

  • You have to own an account on the machine. See the cluster documentation for the first step on the cluster.

  • To learn how to use the cluster, we recommend reading the cluster documentation

  • To use different libraries version that match your need, the cluster uses environment modules Learning the basics of environment modules is recommanded in order to know how to load specific softwares.

  • The cluster uses slurm job supervisor. You should be familiar with job creation and job submission before going further.

2. Feel++ usage

2.1. Using singularity container

Singularity is officially ready on the cluster. The document is here hpc.pages.unistra.fr/singularity/singularity.html

load module singularity/singularity    (1)
mpirun singularity run <feelpp image>  (2)
1 load the singularity module
2 use singularity to run the feelpp image

The document of feelpp singularity images is here Feel++ singularity container.

To use the container on multi-nodes, be aware that performance may depend on network interfaces. In particular, pay attention to infiniband and omnipath (the drivers are already packaged in our containers).

The cluster use different network communication standard to interoperate between computing nodes. Two main high performance solution are used Infiniband (Mellanox) and Omnipath (intel). Due to proprietary reason, the current Feel++ images provide only infiniband driver, therefore the unistra cluster gives the possibility to add constraints in order to only use computing nodes that are either infiniband or omnipath interconnected only. To obtain high performances with Feel++ singularity containers, you slurm script must contain the following constraint:

# omnipath: opa ; infiniband: ib
#SBATCH --constraint=ib
Then see an example of slurm job based on source and singularity container.

2.2. From source

Work in progress

To compile Feel++ on the cluster, you have to load the following required modules:

module purge
module load batch/slurm
module load cmake/cmake-3.4.1
module load libs/boost-1.63.gnu63
module load libs/hdf5-1.8.16.gnu63
module load petsc/petsc-3.8.4.g63
module load mesh/gmsh-3.0.1.g63
module load compilers/intel17
module load compilers/clang5
module load mpi/openmpi-2.0.2.gcc63
module load languages/python-3.5.0
If Feel++ does not compile using these modules, please post an issue on github.

An example of a cmake command to use :

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DFEELPP_ENABLE_FFTW=OFF <path to feelpp>
Then see an example of a slurm job based on source and singularity container.

3. Visualization

To visualize your results, you can use a visualiztion node, see X2GO documentation.