Star-CCM+/fr: Difference between revisions
No edit summary |
(Updating to match new version of source page) |
||
Line 22: | Line 22: | ||
*[https://software.intel.com/en-us/intel-mpi-library Intel MPI] est indiquée avec l'option <tt>-mpi intel</tt>. | *[https://software.intel.com/en-us/intel-mpi-library Intel MPI] est indiquée avec l'option <tt>-mpi intel</tt>. | ||
<div class="mw-translate-fuzzy"> | |||
É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 <tt>slurm_hl2hl.py</tt> qui, lancé avec l’option <tt>--format STAR-CCM+</tt> fournira cette liste; copiez la liste dans un fichier qui pourra ensuite être lu par STAR-CCM+. | É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 <tt>slurm_hl2hl.py</tt> qui, lancé avec l’option <tt>--format STAR-CCM+</tt> 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 <tt>--ntasks-per-node=1</tt> et <tt>--cpus-per-task=32</tt> lorsque vous soumettez vos tâches. | En raison de l’intégration limitée de MPI avec Slurm, il faut aussi utiliser les options <tt>--ntasks-per-node=1</tt> et <tt>--cpus-per-task=32</tt> lorsque vous soumettez vos tâches. | ||
</div> | |||
<div class="mw-translate-fuzzy"> | |||
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 [[Technical support/fr|soutien technique]] pour obtenir de l'aide. | 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 [[Technical support/fr|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. | 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. | ||
</div> | |||
Sur [[Niagara/fr|Niagara]], les noeuds de calcul configurent le système de fichiers <tt>$HOME</tt> en lecture seule (''read only''). Il est donc important de définir la variable d'environnement <tt>$STARCCM_TMP</tt> et de la diriger vers <tt>$SCRATCH</tt>, ce qui est unique à la version de StarCCM+. Autrement, StarCCM+ tente de créer le répertoire dans <tt>$HOME</tt> et se termine de façon anormale. | Sur [[Niagara/fr|Niagara]], les noeuds de calcul configurent le système de fichiers <tt>$HOME</tt> en lecture seule (''read only''). Il est donc important de définir la variable d'environnement <tt>$STARCCM_TMP</tt> et de la diriger vers <tt>$SCRATCH</tt>, ce qui est unique à la version de StarCCM+. Autrement, StarCCM+ tente de créer le répertoire dans <tt>$HOME</tt> et se termine de façon anormale. | ||
Line 37: | Line 41: | ||
|contents= | |contents= | ||
#!/bin/bash | #!/bin/bash | ||
#SBATCH --time= | #SBATCH --account=def-group # specify some account | ||
#SBATCH --time=00-01:00 # Time limit: dd-hh:mm | |||
#SBATCH --nodes=2 # Specify 1 or more nodes | #SBATCH --nodes=2 # Specify 1 or more nodes | ||
#SBATCH --cpus-per-task=32 # Request all cores per node | #SBATCH --cpus-per-task=32 # Request all cores per node | ||
Line 43: | Line 48: | ||
#SBATCH --ntasks-per-node=1 # Do not change this value | #SBATCH --ntasks-per-node=1 # Do not change this value | ||
# Pick an appropriate STARCCM | # Pick an appropriate STARCCM version and precision | ||
# module load starccm/ | # module load starccm/14.06.013-R8 | ||
module load starccm-mixed/ | module load starccm-mixed/14.06.013 | ||
export LM_PROJECT='YOUR ADAPCO PROJECT ID GOES HERE' | export LM_PROJECT='YOUR ADAPCO PROJECT ID GOES HERE' | ||
Line 66: | Line 71: | ||
|contents= | |contents= | ||
#!/bin/bash | #!/bin/bash | ||
#SBATCH --time= | #SBATCH --account=def-group # specify some account | ||
#SBATCH --nodes=2 | #SBATCH --time=00-01:00 # Time limit: dd-hh:mm | ||
# | #SBATCH --nodes=2 # Specify 1 or more nodes | ||
#SBATCH --cpus-per-task=48 | #SBATCH --cpus-per-task=48 # or 32 for smaller full nodes | ||
#SBATCH --mem=0 # Request all | #SBATCH --mem=0 # Request all memory per node | ||
#SBATCH --ntasks-per-node=1 # Do not change this value | |||
# Pick an appropriate STARCCM module/version and precision; | # Pick an appropriate STARCCM module/version and precision; | ||
# module load starccm/12.04.011-R8 | # module load starccm/12.04.011-R8 | ||
module load starccm-mixed/ | module load starccm-mixed/14.06.013 | ||
export LM_PROJECT='YOUR ADAPCO PROJECT ID GOES HERE' | export LM_PROJECT='YOUR ADAPCO PROJECT ID GOES HERE' | ||
Line 95: | Line 101: | ||
|contents= | |contents= | ||
#!/bin/bash | #!/bin/bash | ||
#SBATCH --time= | #SBATCH --account=def-group # specify some account | ||
#SBATCH --nodes=2 | #SBATCH --time=00-01:00 # Time limit: dd-hh:mm | ||
# | #SBATCH --nodes=2 # Specify 1 or more nodes | ||
#SBATCH --cpus-per-task=40 # or 80 to use HyperThreading | #SBATCH --cpus-per-task=40 # or 80 to use HyperThreading | ||
#SBATCH --mem=0 # Request all | #SBATCH --mem=0 # Request all memory per node | ||
#SBATCH --ntasks-per-node=1 # Do not change this value | |||
cd $SLURM_SUBMIT_DIR | cd $SLURM_SUBMIT_DIR | ||
Line 106: | Line 113: | ||
module load CCEnv | module load CCEnv | ||
module load StdEnv | module load StdEnv | ||
module load starccm/ | module load starccm/14.06.013-R8 | ||
export LM_PROJECT='YOUR ADAPCO PROJECT ID GOES HERE' | export LM_PROJECT='YOUR ADAPCO PROJECT ID GOES HERE' |
Revision as of 20:19, 25 March 2020
STAR-CCM+ est une suite logicielle de simulation utilisée dans plusieurs disciplines de génie. Elle permet la modélisation dans des domaines variés dont l'acoustique, la dynamique des fluides, le transfert thermique, la rhéologie, l'écoulement polyphasique, le flux de particules, la mécanique des solides, les fluides réactifs, l'électrochimie et l'électromagnétisme.
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
SERVER IP ANY PORT
USE_SERVER
où IP et PORT sont l'adresse IP et le port de votre serveur de licence.
Soumettre des tâches en lot sur nos grappes
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.
Sur Niagara, les noeuds de calcul configurent le système de fichiers $HOME en lecture seule (read only). Il est donc important de définir la variable d'environnement $STARCCM_TMP et de la diriger vers $SCRATCH, ce qui est unique à la version de StarCCM+. Autrement, StarCCM+ tente de créer le répertoire dans $HOME et se termine de façon anormale.
#!/bin/bash
#SBATCH --account=def-group # specify some account
#SBATCH --time=00-01:00 # Time limit: dd-hh:mm
#SBATCH --nodes=2 # Specify 1 or more nodes
#SBATCH --cpus-per-task=32 # Request all cores per node
#SBATCH --mem=0 # Request all memory per node
#SBATCH --ntasks-per-node=1 # Do not change this value
# Pick an appropriate STARCCM version and precision
# module load starccm/14.06.013-R8
module load starccm-mixed/14.06.013
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 -podkey $LM_PROJECT -licpath $CDLMD_LICENSE_FILE -machinefile $SLURM_SUBMIT_DIR/machinefile -batch /path/to/your/simulation/file
#!/bin/bash
#SBATCH --account=def-group # specify some account
#SBATCH --time=00-01:00 # Time limit: dd-hh:mm
#SBATCH --nodes=2 # Specify 1 or more nodes
#SBATCH --cpus-per-task=48 # or 32 for smaller full nodes
#SBATCH --mem=0 # Request all memory per node
#SBATCH --ntasks-per-node=1 # Do not change this value
# Pick an appropriate STARCCM module/version and precision;
# module load starccm/12.04.011-R8
module load starccm-mixed/14.06.013
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 -podkey $LM_PROJECT -licpath $CDLMD_LICENSE_FILE -machinefile `pwd`/machinefile -mpi intel -batch `pwd`/your-simulation-file.sim
#!/bin/bash
#SBATCH --account=def-group # specify some account
#SBATCH --time=00-01:00 # Time limit: dd-hh:mm
#SBATCH --nodes=2 # Specify 1 or more nodes
#SBATCH --cpus-per-task=40 # or 80 to use HyperThreading
#SBATCH --mem=0 # Request all memory per node
#SBATCH --ntasks-per-node=1 # Do not change this value
cd $SLURM_SUBMIT_DIR
module purge --force
module load CCEnv
module load StdEnv
module load starccm/14.06.013-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"
# ln -s $STARCCM_TMP $HOME ### only the first time you run the script
slurm_hl2hl.py --format STAR-CCM+ > machinefile
NCORE=$((SLURM_NTASKS * SLURM_CPUS_PER_TASK))
starccm+ -power -np $NCORE -podkey $LM_PROJECT -machinefile $SLURM_SUBMIT_DIR/machinefile -batch /path/to/your/simulation/file