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