[ Be prepared | Mésocentre | Lectures | Training sessions ]
High Performance Computing
Be prepared for the training sessions
You will need your own laptop to write and test the code implemented during the training sessions. Once tested locally, you will able to run your codes on high performance computing plaforms kindly put at CEMRACS' disposal by
Aix-Marseille University mésocentre.
On your a laptop, you need to have
- a C/C++ compiler with OpenMP support;
- the OpenMPI library;
- CMake;
- the PNL library.
You will find below some explanations on how to get it done on Linux and Mac OS X systems.
Linux
Use the package manager of your distribution to install
- A C compiler with OpenMP support: either
gcc/g++
or Clang ≥ 3.7
(the package may be called LLVM
).
- The openMPI library. This library may be split in two parts depending on your distribution:
openmpi-bin
and openmpi-dev
. Note that the library may be called libopenmpi
rather than openmpi
.
- CMake >= 3.0.
For the installation of PNL see
below.
Mac OS X
First, you need to install a recent version of
XCode
from the
Apple Store. Then, open a Terminal and run
xcode-select --install
to install the
Command Line Tools.
To get the other functionalities, we recommend you to use the
Homebrew package manager. If you already have
MacPorts, skip this part and go to the
MacPorts section.
Homebrew
Install
Homebrew as explained on
Homebrew homepage.
- To install the GNU compiler collection (gcc/g++), run
brew install gcc
As of now, it installs version 7 of the GNU compiler collection. The C compiler is gcc-7
and the C++ compiler is g++-7
. They both have support for openMP.
- To install openMPI, run
brew install openmpi
- To install CMake, run
brew install cmake
For the installation of PNL see
below.
MacPorts
Install
MacPorts as explained on
MacPorts homepage.
For the installation of PNL see
below.
Installing PNL on Mac OS X or Linux
The PNL library is hosted on github:
https://github.com/pnlnum/pnl.
To get the library, you can either clone the Git repository
git clone https://github.com/jlelong/pnl.git
or directly download a zip file:
pnl-master.zip. Unzipping the file will create a
pnl-master
repository.
To compile the library, just run the following commands
mkdir pnl-build
cd pnl-build
cmake -DCMAKE_BUILD_TYPE=Debug /relative/path/to/pnl
make
make install
If you installed a specific compiler to have the OpenMP support, you need to compile PNL with it by running CMake as
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=<name_of_C_compiler> -DCMAKE_CXX_COMPILER=<name_of_C++_compiler> /relative/path/to/buil-dir
Working on the machines of the mesocentre
Front-end connection:
$ ssh user@login.ccamu.u-3mrs.fr
user@login's password:
To change your password, use the command
passwd.
You will need a password free SSH access using SSH keys. First, generate a pair of keys or jump to the next step if you already have SSH keys
ssh-keygen -t rsa
Pick up the passphrase of your choice.
Then, copy the public key on the front-end
ssh-copy-id user@login.ccamu.u-3mrs.fr
Development environment
The environment modules is used to define libraries and/or path to compilers.
- available modules: module avail
- the compiler gcc 4.7.3 can be loaded with: module load gcc/4.7.3
- The loaded modules are available with: module list
- To unload a module: module unload gcc/4.7.3
The following modules will be used for the training sessions:
openmpi/gcc47/1.6.3, LAPACK/gcc47/3.4.0, ATLAS/gcc47/3.8.4, gcc/4.7.3, cmake/3.5.2.
Environment for MPI on the cluster of the mesocentre
To write and execute MPI's program, load de modules:
module load gcc/4.7.3
module load openmpi/gcc47/1.6.3
Job scheduler: OAR
To submit jobs, you must use the job scheduler
OAR.
Basic commands are:
- oarsub -I: interactive submission;
- oarsub -S ./mon_script.oar : OAR script submission;
- oarstat: show the submitted jobs (see also Monika);
- oarsub -C JOB_ID : to connect to compute nodes being used.
The JOB_ID can be obtained with oarstat.
- On the master node, it is possible to connect to other nodes by achieving the command oarsh name_node where name_node can be obtained with: cat $OAR_NODEFILE;
- oardel JOB_ID: delete the job. The JOB_ID can be obtained with oarstat.
To know more
Lectures
Training sessions
Sponsors