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/17.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 ""