COMSOL

From CC Doc
Jump to: navigation, search
This page is a translated version of the page COMSOL and the translation is 32% complete.

Outdated translations are marked like this.
Other languages:
English • ‎français

Introduction

COMSOL est une plateforme logicielle d'usage général pour la modélisation en ingénierie. Calcul Canada remercie COMSOL Inc. pour l'entente spéciale d'hébergement de son application.

Logo comsol blue 1571x143.png

Avant d'utiliser COMSOL avec nos grappes, nous vous recommandons de consulter l'aide sous File > Help > Documentation. Vous pouvez aussi consulter les manuels de base.

Votre licence

Calcul Canada est fournisseur d'hébergement pour COMSOL. Dans ce contexte, COMSOL est installée sur nos grappes, mais nous n'avons pas une licence générique fournissant l'accès à tous nos utilisateurs. Cependant, plusieurs établissements, facultés et départements possèdent des licences qui peuvent être utilisées sur nos grappes. Les chercheurs peuvent aussi acheter une licence auprès de CMC pour une utilisation au Canada. Il est aussi possible d'acheter une licence flottante pour votre groupe que vous pourrez utiliser sur les grappes de Calcul Canada via un serveur de licence Sharcnet; voir https://www.comsol.com/products/licensing.

En ce qui a trait à l'aspect technique, nos nœuds de calcul doivent pouvoir communiquer avec votre serveur de licence. Si ce n'est déjà fait, notre équipe technique coordonnera ceci avec votre gestionnaire de licence; dans le cas de CMC, ce travail a été effectué . Quand tout sera en place, vous pourrez charger le module COMSOL qui localisera de lui-même la licence. En cas de difficulté, contactez le soutien technique.

Configuration de votre fichier de licence

Le module COMSOL cherche l'information en rapport avec la licence à différents endroits, dont votre répertoire personnel (home). Si vous avez votre propre serveur de licence, vous pouvez y accéder avec le fichier

File : comsol.lic

SERVER <server> ANY <port>
USE_SERVER


Enregistrez ce fichier dans le répertoire $HOME/.licenses/. Les coupe-feu des deux parties doivent être configurés; pour ce faire, faites parvenir les renseignements sur le port de service et l'adresse IP de votre serveur de licence au soutien technique.

Licence CMC

Si vous détenez une licence CMC, utilisez les valeurs suivantes dans votre fichier comsol.lic :

  • sur Béluga, SERVER 132.219.136.89 ANY 6601
  • sur Graham, SERVER 199.241.162.97 ANY 6601
  • sur Cedar, SERVER 172.16.121.25 ANY 6601

     Pour utiliser des modules graphiques optimisés qui sont installés localement :


File : comsol.lic

SERVER <server> ANY <port>
USE_SERVER


Enregistrez ce fichier dans $HOME/.licenses/. Les coupe-feu des deux parties doivent être modifiés; faites parvenir l'information sur le port de service et l'adresse IP de votre serveur de licence flottante COMSOL par courriel au soutien technique. Les détenteurs d'une licence CMC devraient utiliser

  • sur Béluga SERVER 132.219.136.89 ANY 6601
  • sur Cedar SERVER 172.16.121.25 ANY 6601
  • sur Graham SERVER 199.241.162.97 ANY 6601

Exécution sur un seul nœud

Le script suivant soumet une tâche utilisant 8 cœurs sur un seul nœud de calcul. {{File |name=mysub1.sh |lang="bash" |contents=

  1. !/bin/bash
  2. SBATCH --account=def-account # Specify
  3. SBATCH --time=0-01:00 # d-hh:mm
  4. SBATCH --mem=3G # Change
  5. SBATCH --cpus-per-task=8 # Change
  6. SBATCH --nodes=1 # Do not change
  7. SBATCH --ntasks-per-node=1 # Do not change

module load comsol/5.5 NCORE=$((SLURM_NTASKS * SLURM_CPUS_PER_TASK))


File : mysub1.sh

#!/bin/bash
#SBATCH --account=def-account     # Specify
#SBATCH --time=0-01:00            # d-hh:mm
#SBATCH --mem=3G                  # Change
#SBATCH --cpus-per-task=8         # Change
#SBATCH --nodes=1                 # Do not change
#SBATCH --ntasks-per-node=1       # Do not change
module load comsol/5.5
NCORE=$((SLURM_NTASKS * SLURM_CPUS_PER_TASK))

FILENAME="MyModel.mph"            # Specify (inputfile filename)

# Uncomment a version to use
#module load StdEnv/2016.4 comsol/5.5
#module load StdEnv/2020 comsol/5.6

<div class="mw-translate-fuzzy">
comsol batch -np $NCORE -inputfile FILENAME.mph -outputfile solved_out.mph


Selon la complexité de la simulation, il est possible que COMSOL n'utilise pas efficacement plusieurs cœurs. Il est donc suggéré de vérifier la scalabilité de la simulation en augmentant le nombre de cœurs dans #SBATCH --cpus-per-task=X de X=1 jusqu'au plus grand nombre de cœurs sur la grappe que vous utilisez. Si vous obtenez toujours une bonne accélération avec un nœud entier, considérez l'exécution de la tâche avec plusieurs nœuds entiers en ajustant le script ci-dessous.

Exécution sur plusieurs nœuds

Le script suivant soumet une tâche utilisant 8 cœurs et distribuée également sur deux nœuds de calcul.

File : mysub2.sh

#!/bin/bash
#SBATCH --account=def-account     # Specify
#SBATCH --time=00-06:00           # dd-hh:mm
#SBATCH --mem=3G                  # Change (set to 0 for full nodes)
#SBATCH --nodes=2                 # Change
#SBATCH --cpus-per-task=4         # Change (set to max cores for full nodes)
#SBATCH --ntasks-per-node=1       # Recommended to not change
module load comsol/5.5
</div>

FILENAME="MyModel.mph"            # Specify (inputfile filename)

module load StdEnv/2020
module load comsol/5.6

SCRTMP=/scratch/$USER/comsol/tmpdir
SCRREC=/scratch/$USER/comsol/recoverydir
mkdir -p $SCRTMP $SCRREC

cp -f ${EBROOTCOMSOL}/bin/glnxa64/comsolbatch.ini comsolbatch.ini
cp -f ${EBROOTCOMSOL}/mli/startup/java.opts java.opts

comsol batch -inputfile $FILENAME -outputfile solved_out.mph -recover \
 -nn $SLURM_NTASKS -nnhost $SLURM_NTASKS_PER_NODE -np $SLURM_CPUS_PER_TASK \
 -recoverydir $SCRREC -tmpdir $SCRTMP -comsolinifile comsolbatch.ini -alivetime 15


To increase the java heap add the following sed lines immediately after the cp -f commands:

sed -i 's/-Xmx2g/-Xmx4g/g' comsolbatch.ini
sed -i 's/-Xmx768m/-Xmx2g/g' java.opts

For further information please see the Comsol Out of Memory article. </tab></tabs>

Mode graphique

Le mode graphique peut être utilisé interactivement sur une grappe ou sur gra-vdi.

Sur une grappe

Suitable use: A) interactively run computationally intensive test jobs requiring upto all cores or memory on a single cluster node.

  1. Connectez-vous à un nœud de calcul avec TigerVNC (durée maximale de 3 heures).
  2. module load comsol/5.5     (COMSOL Multiphysics 5.5 Build:292)
  3. comsol

Sur gra-vdi

Suitable use: A) create or modify simulation input files B) post process or visualize data C) interactively run a single test job with upto 8cores.

  1. Connectez-vous à gra-vdi avec TigerVNC (aucune limite de temps).
  2. module load CcEnv StdEnv
  3. module load comsol/5.5     (COMSOL Multiphysics 5.5 Build:292)
  4. comsol
  1. Connectez-vous à gra-vdi avec TigerVNC (aucune limite de temps).
  2. module load SnEnv
  3. module load comsol/5.3.1.348     (COMSOL Multiphysics 5.3a Build:348)
  4. comsol

1) Connect to gra-vdi (no time limit) with TigerVNC
2) Start COMSOL Multiphysics 5.3.1.348
module load SnEnv
module load comsol/5.3.1.348
comsol

Parameter Sweeps

Batch Sweep

When working interactively in the Comsol GUI parametric problems maybe solved using the Batch Sweep approach. Multiple parameter sweeps maybe carried out as shown in this Comsol video. Speedup due to Task Parallism maybe also be realized.

Cluster Sweep

To run a parameter sweep on a cluster, a job must be submitted to the schedular from the command line using "sbatch slurmscript". For a detailed discussion regarding additional required comsol arguments see a and b for details. Support for submitting parametric simulations to the cluster queue from the Comsol graphical interface using a Cluster Sweep node is not available at this time.