Aller au contenu principal

Fluent

Licence Fluent/Abaqus

Les utilisateurs du logiciel Fluent/Abaqus sur EXPLOR doivent utiliser le nombre de licences dans leurs scripts de soumission. Le nombre de licences requises doit être en accord avec le nombre de processus MPI à exécuter par les scripts. Pour EXPLOR, nous avons un nombre maximum de licences actives qui a été ajusté à 320 processus MPI. Ce nombre maximum de licences actives est partagé pour tous les utilisateurs d’EXPLOR. Le nombre de licences est désormais une ressource qui sera prise en compte par SLURM pour allouer les JOBs des utilisateurs. Les processus exécutés sans le « TAG » des licences de ces logiciels (Fluent/Abaqus) peuvent être supprimés de l’exécution – sans aucun avertissement.

Fluent – max license: 320 Abaqus – max license: 320

Ex. JOB fluent avec 64 MPI processus

#SBATCH –licenses=fluent:64

ou

#SBATCH -L fluent:64

Ex. JOB abaqus avec 128 MPI processus

#SBATCH –licenses=abaqus:128

ou

"SBATCH -L abaqus:128

Lors de la soumission d’un JOB avec le TAG de licence, le processus peut ne pas être exécuté immédiatement même s’il y a des nœuds disponibles. Cela signifie que toutes les licences logicielles Fluent/Abaqus sont déjà utilisées. Dans ce cas, le JOB de l’utilisateur attendra la ressource dans le système, qui dans ce cas est le numéro de licence demandé par le JOB via la licence TAG. L’utilisateur peut vérifier le nombre de licences via les commandes

scontrol show lic fluent

LicenseName=fluent

Total=320 Used=0 Free=320 Reserved=0 Remote=no
scontrol show lic abaqus

LicenseName=abaqus

Total=320 Used=0 Free=320 Reserved=0 Remote=no

Exemple de script de job de Fluent

#!/bin/bash

#SBATCH --account=<group>
#SBATCH --partition=std
#SBATCH --job-name=Test
#SBATCH --output=slurm-%x.%N.%j.out
#SBATCH --error=slurm-%x.%N.%j.err
#SBATCH --nodes=1
#SBATCH --ntasks=16
#SBATCH --ntasks-per-node=16
#SBATCH --cpus-per-task=1
#SBATCH --time=04:00:00
#SBATCH --license=fluent:16

env | grep -i slurm

echo ""
echo " JOB started: $(date) "
echo ""

cd $SLURM_SUBMIT_DIR

# Creating temporary directory
# do not run your JOB in the HOME or $SLURM_SUBMIT_DIR
WORKDIR="$SCRATCHDIR/job.$SLURM_JOB_ID.$USER"
mkdir -p $WORKDIR

echo ""
echo " WORKDIR: $WORKDIR"
echo ""

module purge
module load ansys/24.2

export OMP_NUM_THREADS=1
export MKL_NUM_THREADS=1

ulimit -s unlimited

unset I_MPI_PMI_LIBRARY

srun hostname -s | sort -V > $WORKDIR/hosts.file

cp $SLURM_SUBMIT_DIR/* $WORKDIR

cd $WORKDIR

# you may change the executable 3ddp
# you may change the input.jou and/out output.jou names
# for the other options, they are necessary to run in parallel: do not touch them
# unless you really need
fluent 2ddp -g -mpi=intel -cnf=$WORKDIR/hosts.file -t$SLURM_NTASKS -i input.jou > output.jou

cp $WORKDIR/* $SLURM_SUBMIT_DIR

cd $SLURM_SUBMIT_DIR

# removing the $WORKDIR
rm $WORKDIR/*
rmdir $WORKDIR

echo ""
echo " JOB finished: $(date) "
echo ""