Comment installer et utiliser mpi sur les clusters de calcul

Posted on Tue 07 July 2020 in tutoriels • 1 min read

Avec Guix

# Rendre guix disponible
$ source /applis/site/guix-start.sh
# installer un compilateur et openmpi
$ guix install -p $GUIX_USER_PROFILE_DIR/test-mpi gcc-toolchain openmpi
# Update profile
$ export GUIX_PROFILE="$GUIX_USER_PROFILE_DIR/test-mpi"
$ . "$GUIX_PROFILE/etc/profile"
# test
$ which mpic++
/var/guix/profiles/per-user/perignon/ced/bin/mpic++
$ mpic++ --showme
g++ -I/gnu/store/73wwf1k9zk0zlm34kwy8qfq2a5ni8mhn-openmpi-4.0.3/include -pthread -L/gnu/store/73wwf1k9zk0zlm34kwy8qfq2a5ni8mhn-openmpi-4.0.3/lib -lmpi
$ which g++
/var/guix/profiles/per-user/perignon/ced/bin/g++

Exemple de fichier oar

#!/bin/bash
# -- Choisir un nom pour le job --
#OAR -n nom_du_job
# -- Préciser un projet --
#OAR --project formation-ced-calcul
# -- Demander des ressources --
#OAR -l /nodes=2/cpu=1/core=2,walltime=00:30:00

# Activation de guix
source /applis/site/nix.sh

# Nombres de coeurs attribués par oar
# (i.e. le nombre de ligne du fichier $OAR_NODE_FILE)
nbcores=`cat $OAR_NODE_FILE|wc -l`

# Le nom de l'exécutable à faire tourner (chemin absolu !)
EXEFILE=/home/$USER/mes_simus/mon_prog
# Lancement du calcul sur nbcores processus
# La liste des noeuds est lue dans $OAR_NODE_FILE
mpirun -np $nbcores --machinefile $OAR_NODE_FILE -mca plm_rsh_agent "oarsh" --prefix $GUIX_PROFILE $EXEFILE