Star-CCM+/fr: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
No edit summary
Tags: Mobile edit Mobile web edit
(Updating to match new version of source page)
 
(34 intermediate revisions by 2 users not shown)
Line 8: Line 8:
Vous pouvez acheter une licence POD (<i>Power On Demand</i>) directement de [https://www.plm.automation.siemens.com/global/en/buy/ Siemens]. Autrement, vous pouvez utiliser une licence locale hébergée par votre établissement pourvu que le pare-feu permette à la grappe où les tâches seront exécutées d'y accéder.
Vous pouvez acheter une licence POD (<i>Power On Demand</i>) directement de [https://www.plm.automation.siemens.com/global/en/buy/ Siemens]. Autrement, vous pouvez utiliser une licence locale hébergée par votre établissement pourvu que le pare-feu permette à la grappe où les tâches seront exécutées d'y accéder.


<div class="mw-translate-fuzzy">
== Utilisation de votre propre serveur de licence ==
== Utilisation de votre propre serveur de licence ==
Afin de configurer votre compte pour utiliser votre propre serveur de licence, créez le fichier  <code>$HOME/.licenses/starccm.lic</code> qui contient
Afin de configurer votre compte pour utiliser un serveur de licence, créez le fichier  <code>$HOME/.licenses/starccm.lic</code> comme suit&nbsp;:
{{File|name=starccm.lic|contents=SERVER IP ANY PORT
{{File|name=starccm.lic|contents=SERVER IP ANY PORT
USE_SERVER}}
USE_SERVER}}
où <code>IP</code> et <code>PORT</code> sont remplacés par l'adresse IP et le port de votre serveur de licence.
où <code>IP</code> et <code>PORT</code> sont remplacés par l'adresse IP et le port statique starccm est utilisé par le serveur.
</div>


=== Fichier pour une licence POD ===
=== Fichier pour une licence POD ===


Si vous disposez d'une licence POD de [https://www.plm.automation.siemens.com/global/en/buy/ Siemens] configurez le fichier <code>$HOME/.licenses/starccm.lic</code> sur la ou les grappes où les tâches seront exécutées.
<div class="mw-translate-fuzzy">
Si vous disposez d'une licence POD de [https://www.plm.automation.siemens.com/global/en/buy/ Siemens] configurez le fichier de licence sur une grappe comme suit&nbsp;:
{{File|name=starccm.lic|contents=SERVER flex.cd-adapco.com ANY 1999
{{File|name=starccm.lic|contents=SERVER flex.cd-adapco.com ANY 1999
USE_SERVER}}
USE_SERVER}}
</div>


= Soumettre des tâches en lot sur nos grappes =  
= Soumettre des tâches en lot sur nos grappes =  
Sélectionnez l’un des modules disponibles, selon vos besoins :
Sélectionnez l’un des modules disponibles, selon vos besoins :
* <code>starccm</code> pour le format double précision,
* <code>starccm</code> pour le format double précision, soit <code>module load starccm/19.04.007-R8</code>
* <code>starccm-mixed</code> pour le format précision mixte.
* <code>starccm-mixed</code> pour le format précision mixte, soit <code>module load starccm-mixed/19.04.007</code>.


Vous devrez aussi configurer votre environnement pour l’utilisation de votre licence. Cette opération est plutôt simple si vous utilisez le serveur CD-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.  
<div class="mw-translate-fuzzy">
Quand vous soumettez des tâches sur une grappe pour la première fois, vous devrez configurer votre environnement pour l’utilisation de votre licence. Si vous utilisez le serveur CD-adapco qui vous permet de payer uniquement pour votre consommation, créez simplement un fichier <code>~/.licenses/starccm.lic</code> comme décrit ci-dessus dans <i>Fichier pour une licence POD</i>.
Par contre, si vous utilisez un serveur de licence interne, créez d'abord le fichier <code>~/.licenses/starccm.lic</code> et soumettez un billet d'assistance au [[Technical support/fr|soutien technique]].  Nous vous aiderons à coordonner les modifications ponctuelles du pare-feu réseau nécessaires pour y accéder. Si vous rencontrez toujours des problèmes pour faire fonctionner la licence, essayez de supprimer ou de renommer le fichier <code>~/.flexlmrc</code> car les chemins de recherche et/ou les paramètres précédents du serveur de licence peuvent y être stockés et entrer en conflit avec vos paramètres <code>starccm.lic</code> actuels. Notez que les fichiers des versions précédentes peuvent avoir accumulé une quantité importante d'espace disque dans des répertoires cachés nommés <code>.star-version_number</code> si vous avez exécuté de nombreuses tâches longues par le passé en utilisant des scripts slurm plus anciens ou si vous exécutez régulièrement starccm+ en mode graphique. Ceux-ci peuvent être supprimés périodiquement en exécutant soigneusement <code>rm -ri ~/.starccm*</code> et en répondant <i>oui</i> à l'affichage de l'invite.
</div>


Sur [[Niagara/fr|Niagara]], les nœuds de calcul configurent le système de fichiers <code>$HOME</code> en lecture seule (<i>read only</i>). Il est donc important de définir la variable d'environnement <code>$STARCCM_TMP</code> et de la diriger vers <code>$SCRATCH</code>, ce qui est unique à la version de StarCCM+. Autrement, StarCCM+ tente de créer le répertoire dans <code>$HOME</code> et se termine de façon anormale.
Sur [[Niagara/fr|Niagara]], les nœuds de calcul configurent le système de fichiers <code>$HOME</code> en lecture seule (<i>read only</i>). Il est donc important de définir la variable d'environnement <code>$STARCCM_TMP</code> et de la diriger vers <code>$SCRATCH</code>, ce qui est unique à la version de StarCCM+. Autrement, StarCCM+ tente de créer le répertoire dans <code>$HOME</code> et se termine de façon anormale.


<tabs>
<tabs>
Line 37: Line 43:
|contents=
|contents=
#!/bin/bash
#!/bin/bash
#SBATCH --account=def-group  # indiquez le nom du compte
#SBATCH --account=def-group  # indiquez le nom du compte
#SBATCH --time=00-01:00      # indiquez la limite de temps (jj-hh:mm)
#SBATCH --time=00-01:00      # indiquez la limite de temps (jj-hh:mm)
Line 44: Line 51:
#SBATCH --ntasks-per-node=1  # ne pas modifier
#SBATCH --ntasks-per-node=1  # ne pas modifier


module load StdEnv/2020       # ne pas modifier
#module load StdEnv/2020     # Versions < 18.06.006
module load StdEnv/2023
 
#module load starccm/18.06.006-R8
module load starccm-mixed/18.06.006


# chargez le module starccm/18.04.008-R8
# chargez le module starccm/18.04.008-R8
module load starccm-mixed/18.04.008
module load starccm-mixed/18.04.008


<div class="mw-translate-fuzzy">
export LM_PROJECT='YOUR CD-ADAPCO PROJECT ID GOES HERE'
export LM_PROJECT='YOUR CD-ADAPCO PROJECT ID GOES HERE'
export CDLMD_LICENSE_FILE="1999@flex.cd-adapco.com"
export CDLMD_LICENSE_FILE="1999@flex.cd-adapco.com"
</div>


<div class="mw-translate-fuzzy">
export STARCCM_TMP="${SCRATCH}/.starccm-${EBVERSIONSTARCCM}"
export STARCCM_TMP="${SCRATCH}/.starccm-${EBVERSIONSTARCCM}"
mkdir -p "$STARCCM_TMP"
mkdir -p "$STARCCM_TMP"
</div>


<div class="mw-translate-fuzzy">
slurm_hl2hl.py --format STAR-CCM+ > $STARCCM_TMP/machinefile-$SLURM_JOB_ID
slurm_hl2hl.py --format STAR-CCM+ > $STARCCM_TMP/machinefile-$SLURM_JOB_ID
</div>


NCORE=$((SLURM_NNODES * SLURM_CPUS_PER_TASK * SLURM_NTASKS_PER_NODE))
<div class="mw-translate-fuzzy">
 
# supprimez <i>-power -podkey $LM_PROJECT</i> si vous utilisez un serveur de licence de votre établissement
# supprimez <i>-power -podkey $LM_PROJECT</i> si vous utilisez un serveur de licence de votre établissement
starccm+ -batch -power -podkey $LM_PROJECT -np $NCORE -licpath $CDLMD_LICENSE_FILE -machinefile $STARCCM_TMP/machinefile-$SLURM_JOB_ID $PWD/your-file.sim
starccm+ -batch -power -podkey $LM_PROJECT -np $NCORE -licpath $CDLMD_LICENSE_FILE -nbuserdir $SLURM_TMPDIR -machinefile $STARCCM_TMP/machinefile-$SLURM_JOB_ID $PWD/your-file.sim
</div>


}}</tab>
<div class="mw-translate-fuzzy">
<tab name="Cedar" >
{{File
|name=starccm_job.sh
|lang="bash"
|contents=
#!/bin/bash
#SBATCH --account=def-group  # indiquez le nom du compte
#SBATCH --account=def-group  # indiquez le nom du compte
#SBATCH --time=00-01:00      # indiquez la limite de temps (jj-hh:mm)
#SBATCH --time=00-01:00      # indiquez la limite de temps (jj-hh:mm)
Line 75: Line 86:
#SBATCH --mem=0              # demandez toute la mémoire par nœud
#SBATCH --mem=0              # demandez toute la mémoire par nœud
#SBATCH --ntasks-per-node=1  # ne pas modifier
#SBATCH --ntasks-per-node=1  # ne pas modifier
</div>


module load StdEnv/2020       # ne pas modifier
#module load StdEnv/2020     # Versions < 18.06.006
module load StdEnv/2023


# chargez le module starccm/18.04.008-R8
#module load starccm/18.06.006-R8
module load starccm-mixed/18.04.008
module load starccm-mixed/18.06.006


<div class="mw-translate-fuzzy">
export LM_PROJECT='YOUR CD-ADAPCO PROJECT ID GOES HERE'
export LM_PROJECT='YOUR CD-ADAPCO PROJECT ID GOES HERE'
export CDLMD_LICENSE_FILE="1999@flex.cd-adapco.com"
export CDLMD_LICENSE_FILE="1999@flex.cd-adapco.com"
</div>


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


slurm_hl2hl.py --format STAR-CCM+ > $STARCCM_TMP/machinefile-$SLURM_JOB_ID
slurm_hl2hl.py --format STAR-CCM+ > machinefile-$SLURM_JOB_ID


NCORE=$((SLURM_NNODES * SLURM_CPUS_PER_TASK * SLURM_NTASKS_PER_NODE))
<div class="mw-translate-fuzzy">
export STARCCM_TMP="${SCRATCH}/.starccm-${EBVERSIONSTARCCM}"
mkdir -p "$STARCCM_TMP"
</div>


<div class="mw-translate-fuzzy">
# supprimez <i>-power -podkey $LM_PROJECT</i> si vous utilisez un serveur de licence de votre établissement
# supprimez <i>-power -podkey $LM_PROJECT</i> si vous utilisez un serveur de licence de votre établissement
starccm+ -batch -power -podkey $LM_PROJECT -np $NCORE -licpath $CDLMD_LICENSE_FILE -machinefile $STARCCM_TMP/machinefile-$SLURM_JOB_ID $PWD/your-file.sim -mpi intel -fabric psm2
starccm+ -batch -power -podkey $LM_PROJECT -np $NCORE -licpath $CDLMD_LICENSE_FILE -nbuserdir $SLURM_TMPDIR -machinefile $STARCCM_TMP/machinefile-$SLURM_JOB_ID $PWD/your-file.sim -mpi intel -fabric psm2
</div>


}}</tab>
<div class="mw-translate-fuzzy">
<tab name="Graham" >
{{File
|name=starccm_job.sh
|lang="bash"
|contents=
#!/bin/bash
#SBATCH --account=def-group  # indiquez le nom du compte
#SBATCH --account=def-group  # indiquez le nom du compte
#SBATCH --time=00-01:00      # indiquez la limite de temps (jj-hh:mm)
#SBATCH --time=00-01:00      # indiquez la limite de temps (jj-hh:mm)
#SBATCH --nodes=1            # indiquez 1 ou plusieurs nœuds
#SBATCH --nodes=1            # indiquez 1 ou plusieurs nœuds
#SBATCH --cpus-per-task=32    # (ou 44) demandez tous les cœurs par nœud
#SBATCH --cpus-per-task=32    # (ou 44) demandez tous les cœurs par nœud
#SBATCH --mem=0              # demandez tous les cœurs par nœud
#SBATCH --mem=0              # demandez toute la mémoire par nœud
#SBATCH --ntasks-per-node=1  # ne pas modifier
#SBATCH --ntasks-per-node=1  # ne pas modifier
</div>


module load StdEnv/2020       # ne pas modifier
#module load StdEnv/2020     # Versions < 18.06.006
module load StdEnv/2023


# chargez le module starccm/18.04.008-R8
#module load starccm/18.06.006-R8
module load starccm-mixed/18.04.008
module load starccm-mixed/18.06.006


<div class="mw-translate-fuzzy">
export LM_PROJECT='YOUR CD-ADAPCO PROJECT ID GOES HERE'
export LM_PROJECT='YOUR CD-ADAPCO PROJECT ID GOES HERE'
export CDLMD_LICENSE_FILE="1999@flex.cd-adapco.com"
export CDLMD_LICENSE_FILE="1999@flex.cd-adapco.com"
</div>


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


slurm_hl2hl.py --format STAR-CCM+ > $STARCCM_TMP/machinefile-$SLURM_JOB_ID
slurm_hl2hl.py --format STAR-CCM+ > machinefile-$SLURM_JOB_ID


NCORE=$((SLURM_NNODES * SLURM_CPUS_PER_TASK * SLURM_NTASKS_PER_NODE))
<div class="mw-translate-fuzzy">
slurm_hl2hl.py --format STAR-CCM+ > $SLURM_TMPDIR/machinefile
</div>


<div class="mw-translate-fuzzy">
# supprimez <i>-power -podkey $LM_PROJECT</i> si vous utilisez un serveur de licence de votre établissement
# supprimez <i>-power -podkey $LM_PROJECT</i> si vous utilisez un serveur de licence de votre établissement
starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -power -podkey $LM_PROJECT -np $NCORE -licpath $CDLMD_LICENSE_FILE -machinefile $STARCCM_TMP/machinefile-$SLURM_JOB_ID $PWD/your-file.sim -mpi intel -fabric psm2
starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -power -podkey $LM_PROJECT -np $NCORE -nbuserdir -licpath $CDLMD_LICENSE_FILE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_TMPDIR/machinefile $SLURM_SUBMIT_DIR/your-file.sim -mpi intel -fabric psm2
</div>


}}</tab>
<tab name="Narval" >
{{File
|name=starccm_job.sh
|lang="bash"
|contents=
#!/bin/bash
#SBATCH --account=def-group  # indiquez le nom du compte
#SBATCH --account=def-group  # indiquez le nom du compte
#SBATCH --time=00-01:00      # indiquez la limite de temps (jj-hh:mm)
#SBATCH --time=00-01:00      # indiquez la limite de temps (jj-hh:mm)
Line 140: Line 155:
#SBATCH --ntasks-per-node=1  # ne pas modifier
#SBATCH --ntasks-per-node=1  # ne pas modifier


module load StdEnv/2020       # ne pas modifier
#module load StdEnv/2020     # Versions < 18.06.006
module load StdEnv/2023


# chargez le module starccm/18.04.008-R8
#module load starccm/18.06.006-R8
module load starccm-mixed/18.04.008
module load starccm-mixed/18.06.006


<div class="mw-translate-fuzzy">
export LM_PROJECT='YOUR CD-ADAPCO PROJECT ID GOES HERE'
export LM_PROJECT='YOUR CD-ADAPCO PROJECT ID GOES HERE'
export CDLMD_LICENSE_FILE="1999@flex.cd-adapco.com"
export CDLMD_LICENSE_FILE="1999@flex.cd-adapco.com"
</div>


<div class="mw-translate-fuzzy">
export STARCCM_TMP="${SCRATCH}/.starccm-${EBVERSIONSTARCCM}"
export STARCCM_TMP="${SCRATCH}/.starccm-${EBVERSIONSTARCCM}"
mkdir -p "$STARCCM_TMP"
mkdir -p "$STARCCM_TMP"
</div>


<div class="mw-translate-fuzzy">
slurm_hl2hl.py --format STAR-CCM+ > $STARCCM_TMP/machinefile-$SLURM_JOB_ID
slurm_hl2hl.py --format STAR-CCM+ > $STARCCM_TMP/machinefile-$SLURM_JOB_ID
</div>


<div class="mw-translate-fuzzy">
NCORE=$((SLURM_NNODES * SLURM_CPUS_PER_TASK * SLURM_NTASKS_PER_NODE))
NCORE=$((SLURM_NNODES * SLURM_CPUS_PER_TASK * SLURM_NTASKS_PER_NODE))
</div>


<div class="mw-translate-fuzzy">
# supprimez <i>-power -podkey $LM_PROJECT</i> si vous utilisez un serveur de licence de votre établissement
# supprimez <i>-power -podkey $LM_PROJECT</i> si vous utilisez un serveur de licence de votre établissement
starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -power -podkey $LM_PROJECT -np $NCORE -licpath $CDLMD_LICENSE_FILE -machinefile $STARCCM_TMP/machinefile-$SLURM_JOB_ID $PWD/your-file.sim -mpi openmpi
starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -power -podkey $LM_PROJECT -np $NCORE -licpath $CDLMD_LICENSE_FILE -nbuserdir $SLURM_TMPDIR -machinefile $STARCCM_TMP/machinefile-$SLURM_JOB_ID $PWD/your-file.sim -mpi openmpi
</div>


}}
<div class="mw-translate-fuzzy">
</tab>
#SBATCH --account=def-group  # indiquez le nom du compte
<tab name="Niagara" >
#SBATCH --time=00-01:00       # indiquez la limite de temps (jj-hh:mm)
{{File
|name=starccm_job.sh
|lang="bash"
|contents=
#!/bin/bash
 
#SBATCH --time=0-00:30        # indiquez la limite de temps (jj-hh:mm)
#SBATCH --nodes=1            # indiquez 1 ou plusieurs nœuds
#SBATCH --nodes=1            # indiquez 1 ou plusieurs nœuds
#SBATCH --cpus-per-task=40    # demandez tous les cœurs par nœud
#SBATCH --cpus-per-task=40    # demandez tous les cœurs par nœud
#SBATCH --mem=0              # demandez toute la mémoire par nœud
#SBATCH --ntasks-per-node=1  # ne pas modifier
#SBATCH --ntasks-per-node=1  # ne pas modifier
#SBATCH --mail-type=BEGIN
#SBATCH --mail-type=BEGIN
#SBATCH --mail-type=END
#SBATCH --mail-type=END
   
   
cd $SLURM_SUBMIT_DIR
module load CCEnv
</div>
 
#module load StdEnv/2020      # Versions < 18.06.006
module load StdEnv/2023
 
#module load starccm/18.06.006-R8
module load starccm-mixed/18.06.006


ssh nia-gw -L 1999:flex.cd-adapco.com:1999 -L 2099:flex.cd-adapco.com:2099 -N -f
<div class="mw-translate-fuzzy">
export LM_PROJECT='YOUR CD-ADAPCO PROJECT ID GOES HERE'
export LM_PROJECT='YOUR CD-ADAPCO PROJECT ID GOES HERE'
export CDLMD_LICENSE_FILE="1999@127.0.0.1"
export CDLMD_LICENSE_FILE="1999@127.0.0.1"
   
</div>
module load CCEnv
 
module load StdEnv/2018.3
# Comment the next line when using an institutional license server
module load starccm/13.06.012-R8
LM_PROJECT='my22digitpodkey' # Specify your Siemens Power on Demand (PoD) Key
 
# These settings are used instead of your ~/.licenses/starccm.lic
# (settings shown will use the cd-adapco pod license server)
FLEXPORT=1999                    # Specify server static flex port
VENDPORT=2099                    # Specify server static vendor port
LICSERVER=flex.cd-adapco.com    # Specify license server hostname


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
cd $SLURM_SUBMIT_DIR
slurm_hl2hl.py --format STAR-CCM+ > $SLURM_SUBMIT_DIR/machinefile_$SLURM_JOB_ID
slurm_hl2hl.py --format STAR-CCM+ > $SLURM_SUBMIT_DIR/machinefile_$SLURM_JOB_ID
   
   
NCORE=$((SLURM_NTASKS * SLURM_CPUS_PER_TASK))
NCORE=$((SLURM_NNODES * SLURM_CPUS_PER_TASK * SLURM_NTASKS_PER_NODE))
   
   
# nous contournons les problèmes de licence  
# Solution en cas d'échec de la licence :
# en lançant Star-CCM+ jusqu'à ce que le code de sortie soit égal à 0 (ici, au plus 5 fois)
# jusqu'à ce que l'état en sortie soit égal à zéro, nous tentons de lancer Star-CCM+ (ici, au moins 5 fois)
i=1
i=1
RET=-1
RET=-1
Line 196: Line 230:
         [ $i -eq 1 ] {{!}}{{!}} sleep 5
         [ $i -eq 1 ] {{!}}{{!}} sleep 5
         echo "Attempt number: "$I
         echo "Attempt number: "$I
         # supprimez <i>-power -podkey $LM_PROJECT</i> si vous utilisez un serveur de licence de votre établissement
         # si vous utilisez un serveur de licence de votre établissement, supprimez "-power -podkey $LM_PROJECT"
        starccm+ -batch -power -podkey $LM_PROJECT -np $NCORE -machinefile $SLURM_SUBMIT_DIR/machinefile_$SLURM_JOB_ID $SLURM_SUBMIT_DIR/your-simulation-file.java $SLURM_SUBMIT_DIR/your-simulation-file.sim > $SLURM_JOB_ID.results
      starccm+ -batch -power -podkey $LM_PROJECT -np $NCORE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_SUBMIT_DIR/machinefile_$SLURM_JOB_ID $SLURM_SUBMIT_DIR/your-simulation-file.java $SLURM_SUBMIT_DIR/your-simulation-file.sim > $SLURM_JOB_ID.results
         RET=$?
         RET=$?
         i=$((i+1))
         i=$((i+1))
Line 206: Line 240:
</tabs>
</tabs>
</div>
</div>
<div class="mw-translate-fuzzy">
ssh nia-gw -L 1999:flex.cd-adapco.com:1999 -L 2099:flex.cd-adapco.com:2099 -N -f
</div>
slurm_hl2hl.py --format STAR-CCM+ > $SLURM_TMPDIR/machinefile
NCORE=$((SLURM_NNODES * SLURM_CPUS_PER_TASK * SLURM_NTASKS_PER_NODE))
# Workaround for license failures:
# until the exit status is equal to 0, we try to get Star-CCM+ to start (here, for at least 5 times).
i=1
RET=-1
while [ $i -le 5 ] && [ $RET -ne 0 ]; do
        [ $i -eq 1 ] {{!}}{{!}} sleep 5
          echo "Attempt number: "$I
          if [ -n "$LM_PROJECT" ]; then
          # Siemens PoD license server
          starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -power -podkey $LM_PROJECT -np $NCORE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_TMPDIR/machinefile $JAVA_FILE $SIM_FILE
        else
          # Institutional license server
          starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -np $NCORE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_TMPDIR/machinefile $JAVA_FILE $SIM_FILE
        fi
        RET=$?
        i=$((i+1))
done
exit $RET
}}
</tab>
</tabs>


= Visualisation à distance =
= Visualisation à distance =
Line 235: Line 298:
== Nœuds VDI ==
== Nœuds VDI ==


Connectez-vous à gra-vdi avec [[VNC/fr#Nœuds_VDI|TigerVNC]] et ouvrez une fenêtre de terminal (<i>Applications-->Systems Tools-->Mate Terminal</i>), puis
Connectez-vous à gra-vdi avec [[VNC/fr#Nœuds_VDI|TigerVNC]] et connectez-vous. Quand le bureau distant est affiché, cliquez sur
: <b>STAR-CCM+ 15.04.010 (ou versions plus récentes)</b>
ouvrez une fenêtre de terminal (<i>Applications-->Systems Tools-->Mate Terminal</i>) pour ouvrir une fenêtre de terminal et indiquez la version de Star-CCM que vous voulez charger (voir ci-dessous). Si vous avez déjà chargé un StdEnv, vous pouvez faire afficher les versions disponibles avec la commande <code>module avail starccm-mixed</code>. Présentement, seulement l'implémentation MESA de OpenGL peut être utilisée sur gra-vdi avec starccm en raison de problèmes avec virtualgl qui offre l'accélération des GPU locaux pour les graphiques OpenGL.
: <b>STAR-CCM+ 18.04.008 (ou versions plus récentes)</b>
:: <code>module load CcEnv StdEnv/2023</code>
:: <code>module load starccm-mixed/18.04.008</code> **OR** <code>starccm/18.04.008-R8</code>
:: starccm+ -mesa
: <b>STAR-CCM+ 15.04.010</b> --> <b>18.02.008 (de version X jusqu'à  version Y)</b>
:: <code>module load CcEnv StdEnv/2020</code>
:: <code>module load CcEnv StdEnv/2020</code>
:: <code>module load starccm-mixed/17.02.007</code> **OU** <code>starccm/17.02.007-R8</code>
:: <code>module load starccm-mixed/15.04.010</code> **OR** <code>starccm/15.04.010-R8</code>
:: starccm+ -clientldpreload /usr/lib64/VirtualGL/libvglfaker.so
:: starccm+ -mesa
: <b>STAR-CCM+ 14.06.013 (pour cette version)</b>
:: <code>module load CcEnv StdEnv/2016</code>
:: <code>module load starccm-mixed/14.06.013</code> **OU** <code>starccm/14.06.013-R8</code>
::  starccm+ -clientldpreload /usr/lib64/VirtualGL/libvglfaker.so
: <b>STAR-CCM+ 13.06.012 (ou versions moins récentes)</b>
: <b>STAR-CCM+ 13.06.012 (ou versions moins récentes)</b>
:: <code>module load CcEnv StdEnv/2016</code>
:: <code>module load CcEnv StdEnv/2016</code>
:: <code>module load starccm-mixed/13.06.012 </code> **OU** <code>starccm/13.06.012-R8</code>
:: <code>module load starccm-mixed/13.06.012 </code> **OR** <code>starccm/13.06.012-R8</code>
::  starccm+ -mesa
::  starccm+ -mesa

Latest revision as of 18:03, 31 October 2024

Other languages:

STAR-CCM+ est une suite logicielle de simulation utilisée dans plusieurs spécialités 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 utilisation générale; vous devez donc posséder votre propre licence. Vous pouvez acheter une licence POD (Power On Demand) directement de Siemens. Autrement, vous pouvez utiliser une licence locale hébergée par votre établissement pourvu que le pare-feu permette à la grappe où les tâches seront exécutées d'y accéder.

Utilisation de votre propre serveur de licence

Afin de configurer votre compte pour utiliser un serveur de licence, créez le fichier $HOME/.licenses/starccm.lic comme suit :

File : starccm.lic

SERVER IP ANY PORT
USE_SERVER


IP et PORT sont remplacés par l'adresse IP et le port statique starccm est utilisé par le serveur.

Fichier pour une licence POD

Si vous disposez d'une licence POD de Siemens configurez le fichier de licence sur une grappe comme suit :

File : starccm.lic

SERVER flex.cd-adapco.com ANY 1999
USE_SERVER


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, soit module load starccm/19.04.007-R8
  • starccm-mixed pour le format précision mixte, soit module load starccm-mixed/19.04.007.

Quand vous soumettez des tâches sur une grappe pour la première fois, vous devrez configurer votre environnement pour l’utilisation de votre licence. Si vous utilisez le serveur CD-adapco qui vous permet de payer uniquement pour votre consommation, créez simplement un fichier ~/.licenses/starccm.lic comme décrit ci-dessus dans Fichier pour une licence POD. Par contre, si vous utilisez un serveur de licence interne, créez d'abord le fichier ~/.licenses/starccm.lic et soumettez un billet d'assistance au soutien technique. Nous vous aiderons à coordonner les modifications ponctuelles du pare-feu réseau nécessaires pour y accéder. Si vous rencontrez toujours des problèmes pour faire fonctionner la licence, essayez de supprimer ou de renommer le fichier ~/.flexlmrc car les chemins de recherche et/ou les paramètres précédents du serveur de licence peuvent y être stockés et entrer en conflit avec vos paramètres starccm.lic actuels. Notez que les fichiers des versions précédentes peuvent avoir accumulé une quantité importante d'espace disque dans des répertoires cachés nommés .star-version_number si vous avez exécuté de nombreuses tâches longues par le passé en utilisant des scripts slurm plus anciens ou si vous exécutez régulièrement starccm+ en mode graphique. Ceux-ci peuvent être supprimés périodiquement en exécutant soigneusement rm -ri ~/.starccm* et en répondant oui à l'affichage de l'invite.

Sur Niagara, les nœuds 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.

File : starccm_job.sh

#!/bin/bash

#SBATCH --account=def-group   # indiquez le nom du compte
#SBATCH --time=00-01:00       # indiquez la limite de temps (jj-hh:mm)
#SBATCH --nodes=1             # indiquez 1 ou plusieurs nœuds
#SBATCH --cpus-per-task=40    # demandez tous les cœurs par nœud
#SBATCH --mem=0               # demandez toute la mémoire par nœud
#SBATCH --ntasks-per-node=1   # ne pas modifier

#module load StdEnv/2020      # Versions < 18.06.006
module load StdEnv/2023

#module load starccm/18.06.006-R8
module load starccm-mixed/18.06.006

# chargez le module starccm/18.04.008-R8
module load starccm-mixed/18.04.008

<div class="mw-translate-fuzzy">
export LM_PROJECT='YOUR CD-ADAPCO PROJECT ID GOES HERE'
export CDLMD_LICENSE_FILE="1999@flex.cd-adapco.com"
</div>

<div class="mw-translate-fuzzy">
export STARCCM_TMP="${SCRATCH}/.starccm-${EBVERSIONSTARCCM}"
mkdir -p "$STARCCM_TMP"
</div>

<div class="mw-translate-fuzzy">
slurm_hl2hl.py --format STAR-CCM+ > $STARCCM_TMP/machinefile-$SLURM_JOB_ID
</div>

<div class="mw-translate-fuzzy">
# supprimez <i>-power -podkey $LM_PROJECT</i> si vous utilisez un serveur de licence de votre établissement
starccm+ -batch -power -podkey $LM_PROJECT -np $NCORE -licpath $CDLMD_LICENSE_FILE -nbuserdir $SLURM_TMPDIR -machinefile $STARCCM_TMP/machinefile-$SLURM_JOB_ID $PWD/your-file.sim
</div>

<div class="mw-translate-fuzzy">
#SBATCH --account=def-group   # indiquez le nom du compte
#SBATCH --time=00-01:00       # indiquez la limite de temps (jj-hh:mm)
#SBATCH --nodes=1             # indiquez 1 ou plusieurs nœuds
#SBATCH --cpus-per-task=48    # (ou 32) demandez tous les cœurs par nœud
#SBATCH --mem=0               # demandez toute la mémoire par nœud
#SBATCH --ntasks-per-node=1   # ne pas modifier
</div>

#module load StdEnv/2020      # Versions < 18.06.006
module load StdEnv/2023

#module load starccm/18.06.006-R8
module load starccm-mixed/18.06.006

<div class="mw-translate-fuzzy">
export LM_PROJECT='YOUR CD-ADAPCO PROJECT ID GOES HERE'
export CDLMD_LICENSE_FILE="1999@flex.cd-adapco.com"
</div>

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

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

<div class="mw-translate-fuzzy">
export STARCCM_TMP="${SCRATCH}/.starccm-${EBVERSIONSTARCCM}"
mkdir -p "$STARCCM_TMP"
</div>

<div class="mw-translate-fuzzy">
# supprimez <i>-power -podkey $LM_PROJECT</i> si vous utilisez un serveur de licence de votre établissement
starccm+ -batch -power -podkey $LM_PROJECT -np $NCORE -licpath $CDLMD_LICENSE_FILE -nbuserdir $SLURM_TMPDIR -machinefile $STARCCM_TMP/machinefile-$SLURM_JOB_ID $PWD/your-file.sim -mpi intel -fabric psm2
</div>

<div class="mw-translate-fuzzy">
#SBATCH --account=def-group   # indiquez le nom du compte
#SBATCH --time=00-01:00       # indiquez la limite de temps (jj-hh:mm)
#SBATCH --nodes=1             # indiquez 1 ou plusieurs nœuds
#SBATCH --cpus-per-task=32    # (ou 44) demandez tous les cœurs par nœud
#SBATCH --mem=0               # demandez toute la mémoire par nœud
#SBATCH --ntasks-per-node=1   # ne pas modifier
</div>

#module load StdEnv/2020      # Versions < 18.06.006
module load StdEnv/2023

#module load starccm/18.06.006-R8
module load starccm-mixed/18.06.006

<div class="mw-translate-fuzzy">
export LM_PROJECT='YOUR CD-ADAPCO PROJECT ID GOES HERE'
export CDLMD_LICENSE_FILE="1999@flex.cd-adapco.com"
</div>

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

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

<div class="mw-translate-fuzzy">
slurm_hl2hl.py --format STAR-CCM+ > $SLURM_TMPDIR/machinefile
</div>

<div class="mw-translate-fuzzy">
# supprimez <i>-power -podkey $LM_PROJECT</i> si vous utilisez un serveur de licence de votre établissement
starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -power -podkey $LM_PROJECT -np $NCORE -nbuserdir -licpath $CDLMD_LICENSE_FILE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_TMPDIR/machinefile $SLURM_SUBMIT_DIR/your-file.sim -mpi intel -fabric psm2
</div>

#SBATCH --account=def-group   # indiquez le nom du compte
#SBATCH --time=00-01:00       # indiquez la limite de temps (jj-hh:mm)
#SBATCH --nodes=1             # indiquez 1 ou plusieurs nœuds
#SBATCH --cpus-per-task=64    # demandez tous les cœurs par nœud
#SBATCH --mem=0               # demandez toute la mémoire par nœud
#SBATCH --ntasks-per-node=1   # ne pas modifier

#module load StdEnv/2020      # Versions < 18.06.006
module load StdEnv/2023

#module load starccm/18.06.006-R8
module load starccm-mixed/18.06.006

<div class="mw-translate-fuzzy">
export LM_PROJECT='YOUR CD-ADAPCO PROJECT ID GOES HERE'
export CDLMD_LICENSE_FILE="1999@flex.cd-adapco.com"
</div>

<div class="mw-translate-fuzzy">
export STARCCM_TMP="${SCRATCH}/.starccm-${EBVERSIONSTARCCM}"
mkdir -p "$STARCCM_TMP"
</div>

<div class="mw-translate-fuzzy">
slurm_hl2hl.py --format STAR-CCM+ > $STARCCM_TMP/machinefile-$SLURM_JOB_ID
</div>

<div class="mw-translate-fuzzy">
NCORE=$((SLURM_NNODES * SLURM_CPUS_PER_TASK * SLURM_NTASKS_PER_NODE))
</div>

<div class="mw-translate-fuzzy">
# supprimez <i>-power -podkey $LM_PROJECT</i> si vous utilisez un serveur de licence de votre établissement
starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -power -podkey $LM_PROJECT -np $NCORE -licpath $CDLMD_LICENSE_FILE -nbuserdir $SLURM_TMPDIR -machinefile $STARCCM_TMP/machinefile-$SLURM_JOB_ID $PWD/your-file.sim -mpi openmpi
</div>

<div class="mw-translate-fuzzy">
#SBATCH --account=def-group   # indiquez le nom du compte
#SBATCH --time=00-01:00       # indiquez la limite de temps (jj-hh:mm)
#SBATCH --nodes=1             # indiquez 1 ou plusieurs nœuds
#SBATCH --cpus-per-task=40    # demandez tous les cœurs par nœud
#SBATCH --mem=0               # demandez toute la mémoire par nœud
#SBATCH --ntasks-per-node=1   # ne pas modifier
#SBATCH --mail-type=BEGIN
#SBATCH --mail-type=END
 
module load CCEnv
</div>

#module load StdEnv/2020      # Versions < 18.06.006
module load StdEnv/2023

#module load starccm/18.06.006-R8
module load starccm-mixed/18.06.006

<div class="mw-translate-fuzzy">
export LM_PROJECT='YOUR CD-ADAPCO PROJECT ID GOES HERE'
export CDLMD_LICENSE_FILE="1999@127.0.0.1"
</div>

# Comment the next line when using an institutional license server
LM_PROJECT='my22digitpodkey'  # Specify your Siemens Power on Demand (PoD) Key

# These settings are used instead of your ~/.licenses/starccm.lic
# (settings shown will use the cd-adapco pod license server)
FLEXPORT=1999                    # Specify server static flex port
VENDPORT=2099                    # Specify server static vendor port
LICSERVER=flex.cd-adapco.com     # Specify license server hostname

<div class="mw-translate-fuzzy">
cd $SLURM_SUBMIT_DIR
slurm_hl2hl.py --format STAR-CCM+ > $SLURM_SUBMIT_DIR/machinefile_$SLURM_JOB_ID
 
NCORE=$((SLURM_NNODES * SLURM_CPUS_PER_TASK * SLURM_NTASKS_PER_NODE))
 
# Solution en cas d'échec de la licence : 
# jusqu'à ce que l'état en sortie soit égal à zéro, nous tentons de lancer Star-CCM+ (ici, au moins 5 fois)
i=1
RET=-1
while [ $i -le 5 ] && [ $RET -ne 0 ]; do
        [ $i -eq 1 ] || sleep 5
        echo "Attempt number: "$I
        # si vous utilisez un serveur de licence de votre établissement, supprimez "-power -podkey $LM_PROJECT"
       starccm+ -batch -power -podkey $LM_PROJECT -np $NCORE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_SUBMIT_DIR/machinefile_$SLURM_JOB_ID $SLURM_SUBMIT_DIR/your-simulation-file.java $SLURM_SUBMIT_DIR/your-simulation-file.sim > $SLURM_JOB_ID.results
        RET=$?
        i=$((i+1))
   done
exit $RET


ssh nia-gw -L 1999:flex.cd-adapco.com:1999 -L 2099:flex.cd-adapco.com:2099 -N -f

slurm_hl2hl.py --format STAR-CCM+ > $SLURM_TMPDIR/machinefile NCORE=$((SLURM_NNODES * SLURM_CPUS_PER_TASK * SLURM_NTASKS_PER_NODE))

  1. Workaround for license failures:
  2. until the exit status is equal to 0, we try to get Star-CCM+ to start (here, for at least 5 times).

i=1 RET=-1 while [ $i -le 5 ] && [ $RET -ne 0 ]; do

       [ $i -eq 1 ] || sleep 5
         echo "Attempt number: "$I
         if [ -n "$LM_PROJECT" ]; then
         # Siemens PoD license server
         starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -power -podkey $LM_PROJECT -np $NCORE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_TMPDIR/machinefile $JAVA_FILE $SIM_FILE
       else
         # Institutional license server
         starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -np $NCORE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_TMPDIR/machinefile $JAVA_FILE $SIM_FILE
       fi
       RET=$?
       i=$((i+1))

done exit $RET }} </tab> </tabs>

Visualisation à distance

Préparation

Configurez votre compte pour visualiser à distance :

  1. Créez le fichier de licence ~/.licenses/starccm.lic comme décrit ci-dessus.
  2. Si vous avez une licence POD (Power-on-demand),
configurez export LM_PROJECT='CD-ADAPCO PROJECT ID' et
ajoutez -power aux autres options ligne de commande, comme montré ci-dessous.

Nœuds de calcul

Connectez-vous à un nœud avec TigerVNC et ouvrez une fenêtre de terminal, puis

STAR-CCM+ 15.04.010 (ou versions plus récentes)
module load StdEnv/2020
module load starccm-mixed/17.02.007 **OU** starccm/16.04.007-R8
starccm+
STAR-CCM+ 14.06.010, 14.04.013, 14.02.012
module load StdEnv/2016
module load starccm-mixed/14.06.010 **OU** starccm/14.06.010-R8
starccm+
STAR-CCM+ 13.06.012 (ou versions moins récentes)
module load StdEnv/2016
module load starccm-mixed/13.06.012 **OU** starccm/13.06.012-R8
starccm+ -mesa

Nœuds VDI

Connectez-vous à gra-vdi avec TigerVNC et connectez-vous. Quand le bureau distant est affiché, cliquez sur ouvrez une fenêtre de terminal (Applications-->Systems Tools-->Mate Terminal) pour ouvrir une fenêtre de terminal et indiquez la version de Star-CCM que vous voulez charger (voir ci-dessous). Si vous avez déjà chargé un StdEnv, vous pouvez faire afficher les versions disponibles avec la commande module avail starccm-mixed. Présentement, seulement l'implémentation MESA de OpenGL peut être utilisée sur gra-vdi avec starccm en raison de problèmes avec virtualgl qui offre l'accélération des GPU locaux pour les graphiques OpenGL.

STAR-CCM+ 18.04.008 (ou versions plus récentes)
module load CcEnv StdEnv/2023
module load starccm-mixed/18.04.008 **OR** starccm/18.04.008-R8
starccm+ -mesa
STAR-CCM+ 15.04.010 --> 18.02.008 (de version X jusqu'à version Y)
module load CcEnv StdEnv/2020
module load starccm-mixed/15.04.010 **OR** starccm/15.04.010-R8
starccm+ -mesa
STAR-CCM+ 13.06.012 (ou versions moins récentes)
module load CcEnv StdEnv/2016
module load starccm-mixed/13.06.012 **OR** starccm/13.06.012-R8
starccm+ -mesa