Star-CCM+

From Alliance Doc
Revision as of 20:10, 20 August 2018 by FuzzyBot (talk | contribs) (Updating to match new version of source page)
Jump to navigation Jump to search
Other languages:

STAR-CCM+ est une solution logicielle qui fournit des technologies multidisciplinaires précises et efficientes dans un même environnement intégré; elle est développée par Siemens.

Limites de la licence

Les binaires STAR-CCM+ sont installés sur nos serveurs, mais nous n'avons pas de licence pour nos utilisateurs; ceux-ci doivent donc posséder leur propre licence.

Utilisation de votre propre serveur de licence

Afin de configurer votre compte pour utiliser votre propre serveur de licence avec le module Star-CCM+ de Calcul Canada, créez le fichier $HOME/.licenses/starccm.lic qui contient

File : starccm.lic

SERVER IP ANY PORT
USE_SERVER


IP et PORT sont l'adresse IP et le port de votre serveur de licence.

Exécuter STAR-CCM+ sur nos serveurs

Sélectionnez l’un des modules disponibles, selon vos besoins :

  • starccm pour le format double précision,
  • starccm-mixed pour le format précision mixte.

Deux distributions MPI peuvent être employées :

  • IBM Platform MPI est employée par défaut, mais n’est cependant pas compatible avec le réseau OmniPath sur Cedar;
  • Intel MPI est indiquée avec l'option -mpi intel.

Étant donné que ces implémentations MPI ne sont pas complètement intégrées avec l’ordonnanceur Slurm, il faut préparer un fichier contenant la liste des serveurs que vous voulez utiliser. Pour ce faire, vous pouvez utiliser le script slurm_hl2hl.py qui, lancé avec l’option --format STAR-CCM+ fournira cette liste; copiez la liste dans un fichier qui pourra ensuite être lu par STAR-CCM+. En raison de l’intégration limitée de MPI avec Slurm, il faut aussi utiliser les options --ntasks-per-node=1 et --cpus-per-task=32 lorsque vous soumettez vos tâches.

Vous devrez aussi configurer votre environnement pour l’utilisation de votre licence. Cette opération est plutôt simple si vous utilisez le serveur Adapco qui vous permet de payer uniquement pour votre consommation. Par contre, si vous utilisez un serveur de licence interne, contactez le soutien technique pour obtenir de l'aide. Voici un exemple d’un script de soumission pour une tâche qui demande une exécution sur deux nœuds pour une durée d’une heure.

Note that at Niagara the compute nodes mount the $HOME filesystem as "read-only". Therefore it is important to define the environment variable $STARCCM_TMP and point it to a location on $SCRATCH, which is unique to the version of StarCCM+. Otherwise StarCCM+ will try to create such a directory in the $HOME and crash in the process.

File : starccm_job.sh

#!/bin/bash
#SBATCH --time=0-01:00        # Time limit: d-hh:mm
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=32
#SBATCH --mem=0               # Request all available MEM on full nodes
module load starccm/12.04.011-R8

export LM_PROJECT='YOUR ADAPCO PROJECT ID GOES HERE'
export CDLMD_LICENSE_FILE="1999@flex.cd-adapco.com"

export STARCCM_TMP="${SCRATCH}/.starccm-${EBVERSIONSTARCCM}"
mkdir -p "$STARCCM_TMP"

slurm_hl2hl.py --format STAR-CCM+ > machinefile

NCORE=$((SLURM_NTASKS * SLURM_CPUS_PER_TASK))

starccm+ -power -np $NCORE -machinefile machinefile -batch  /path/to/your/simulation/file
File : starccm_job.sh

#!/bin/bash
#SBATCH --time=0-01:00        # Time limit: d-hh:mm
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=48
#SBATCH --mem=0               # Request all available MEM on full nodes
module load starccm/12.04.011-R8

export LM_PROJECT='YOUR ADAPCO PROJECT ID GOES HERE'
export CDLMD_LICENSE_FILE="1999@flex.cd-adapco.com"

export STARCCM_TMP="${SCRATCH}/.starccm-${EBVERSIONSTARCCM}"
mkdir -p "$STARCCM_TMP"

slurm_hl2hl.py --format STAR-CCM+ > machinefile

NCORE=$((SLURM_NTASKS * SLURM_CPUS_PER_TASK))

starccm+ -power -np $NCORE -machinefile machinefile -batch -mpi intel /path/to/your/simulation/file
File : starccm_job.sh

#!/bin/bash
#SBATCH --time=0-01:00        # Time limit: d-hh:mm
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=40    # or 80 to use HyperThreading
#SBATCH --mem=0               # Request all available MEM on full nodes
module purge --force
module load CCEnv
module load StdEnv
module load starccm/12.04.011-R8

export LM_PROJECT='YOUR ADAPCO PROJECT ID GOES HERE'
export CDLMD_LICENSE_FILE="1999@localhost"
ssh nia-gw -L 1999:flex.cd-adapco.com:1999 -L 2099:flex.cd-adapco.com:2099 -N -f

export STARCCM_TMP="${SCRATCH}/.starccm-${EBVERSIONSTARCCM}"
mkdir -p "$STARCCM_TMP"

slurm_hl2hl.py --format STAR-CCM+ > machinefile

NCORE=$((SLURM_NTASKS * SLURM_CPUS_PER_TASK))

starccm+ -power -np $NCORE -machinefile machinefile -batch /path/to/your/simulation/file