Fluidity sur MESO@LR
Fluidity est un logiciel disponible en téléchargement à l’adresse suivante : https://fluidityproject.github.io/
(L’image mise en avant sur cette page est disponible en téléchargement à partir de : https://github.com/FluidityProject/fluidityproject.github.com/tree/master/images)
L’exemple choisi est celui d’un test «Stokes_slab_detachment_10My» modifié d’après une suite de tests (https://github.com/FluidityProject/fluidity/tree/main/tests) fournie avec l’installation du code Fluidity.
Dans le shell de muse, pour lancer un job, on se place d’abord dans son répertoire scratch (par exemple : /lustre/nom_user/), on créé un répertoire où sera copié l’exemple de Fluidity, puis on se place à l’intérieur. Par exemple :
[nom_user@muse-login01]$mkdir Stokes_slab_detachment_10My
[nom_user@muse-login01]$cd Stokes_slab_detachment_10My
On copie ensuite le fichier de configuration de fluidity.flml et le fichier de maillage :
[nom_user@muse-login01]$cp /nfs/work/geodyn/fluidity-singularity/fluidity-tests/fluidity-test-others/Stokes_slab_detachment_10My/Slab-detachment.flml .
[nom_user@muse-login01]$cp /nfs/work/geodyn/fluidity-singularity/fluidity-tests/fluidity-test-others/Stokes_slab_detachment_10My/sb_mesh .
Pour lancer le test fluidity, on peut passer par un ficher sbatch qu’on nommera job.slurm (https://meso-lr.umontpellier.fr/documentation-utilisateurs/).
Exemple en série :
#!/bin/sh
#SBATCH --job-name=Sldt-s
#SBATCH --time=00-02:00:00
#SBATCH --partition=gm_base
#SBATCH --account=gm-divers
#SBATCH --mem=5GB
###---- Load singularity module
module purge
module load singularity/3.6.3
###--- Declare some variables
path_to_image="/nfs/work/geodyn/fluidity-singularity" ## Path to fluidity image and environment file
flmlfile="Slab-detachment" ## Name of flml-Input file
###########################################################
###--- Commands to Run fluidity through singularity ---###
###########################################################
###--- Define commands
exec1="fluidity ${flmlfile}.flml" ## to run fluidity (serial)
##---- Running them
export SINGULARITY_CACHEDIR="/lustre/$USER/singularity/cache"
singularity exec --env-file $path_to_image/myenvf $path_to_image/fluidity_hpc_072022.sif $exec1
Exemple en parallèle (exemple avec 8 CPUs) :
#!/bin/sh
#SBATCH --job-name= Sldt-p
#SBATCH --time=00-02:00:00
#SBATCH --partition=gm_base
#SBATCH --account=gm-divers
#SBATCH --ntasks=8
#SBATCH --mem=5GB
###---- Load singularity module
module purge
module load singularity/3.6.3
###--- Declare some variables
path_to_image="/nfs/work/geodyn/fluidity-singularity" ## Path to fluidity image and environment file
flmlfile="Slab-detachment" ## Name of flml-Input file
###########################################################
###--- Commands to Run fluidity through singularity ---###
###########################################################
###--- Define commands
exec1="mpirun flredecomp flredecomp -i 1 -o ${SLURM_NTASKS} ${flmlfile} para_${flmlfile}" ## To decompose the mesh
exec2="mpirun fluidity para_${flmlfile}.flml" ## To run fluidity (in parallel)
##---- Running them
export SINGULARITY_CACHEDIR="/lustre/$USER/singularity/cache"
singularity exec --env-file $path_to_image/myenvf $path_to_image/fluidity_hpc_072022.sif $exec1
singularity exec --env-file $path_to_image/myenvf $path_to_image/fluidity_hpc_072022.sif $exec2
Que ce soit en série ou en parallèle, la commande pour soumettre un job est :
[nom_user@muse-login01]$sbatch job.slurm