COMSOL

De Wiki de Calcul Québec
Aller à : Navigation, rechercher
Autres langues :anglais 100% • ‎français 100%

Note : Cette documentation a été testée sur Colosse. Certaines instructions pourraient être différentes sur d'autres serveurs.

Sommaire

Description

COMSOL est un outil logiciel de simulation en ingénierie qui facilite le processus de modélisation à tous les niveaux - définition de la géométrie, maillage, spécification de la physique, optimisation, et visualisation des résultats.

COMSOL est une application commerciale, chaque groupe de recherche désirant l'utiliser à Calcul Québec doit donc fournir sa propre licence. L'installation du logiciel est généralement faite dans le répertoire de groupe, et peut être effectuée par l'équipe technique de Calcul Québec ou par l'un des membres du groupe.

Particularités

Clés et configuration ssh

COMSOL est une application dite loose integrated, cela signifie que l'usager est responsable du lancement des différents processus sur chacun des nœuds alloués via le script de lancement. Il faut donc qu'il existe un moyen de communication entre les nœuds de calcul, et dans le cas présent nous utilisons SSH.

Comme aucune information ne peut être entrée par l'usager lors des communications entre les nœuds, il peut être nécessaire de générer des clés SSH. Sur certains serveurs, cette étape est effectuée automatiquement. Pour tester si c'est le cas, vous pouvez utiliser la commande

[nom@serveur $] ssh localhost


La connexion ssh devrait fonctionner sans demander aucune action de votre part. Si ce n'est pas le cas, vous devrez générer des clés SSH.


Comment lancer COMSOL sur plusieurs nœuds

Configuration du modèle

Pour permettre la distribution des calculs de COMSOL sur plusieurs nœuds, il faut d'abord configurer la section « Study » du modèle de manière à activer soit l'exécution en « batch » ou le calcul distribué « cluster computing ».

Les options de calcul « batch » et « cluster computing » ne sont pas visibles par défaut.

  • Il faut donc d'abord activer la vue de ces options. Dans la section « Model Builder », cliquer sur le bouton « Show ». Il s'agit du 4e bouton à partir de la gauche se trouvant immédiatement sous l'onglet « Model Builder ».
    Bouton Show dans le section « Model Builder ».
  • Cochez ensuite l'option « Advanced Study Options ».
    Options avancés de la section « Study ».
  • Vous aurez par la suite accès à l'option « Cluster computing » et « Batch » en cliquant avec le bouton droit sur la section « Study » de votre modèle.
Option « Cluster Computing » du menu « Étude/Study ».
  • Ensuite, pour que COMSOL distribue le ou les paramètres de la simulation, il faut cocher cochant l'option « Distribute parametric sweep » disponible dans le menu « Cluster Computing »
Option « Cluster Computing » du menu « Étude/Study ».
  • Il ne vous reste plus qu'à lancer votre script sur le serveur de calcul.

Fichier de soumission

Voici un exemple des exemples de fichiers de soumission permettant de lancer COMSOL sur quatre nœuds avec Moab en fonction des versions de COMSOL.

COMSOL 4.2

Fichier : submit_comsol_moab.sh
#!/bin/bash
 
#####################################
# Options obligatoires #
#####################################
 
 
#PBS -N give_a_name	     # Le nom de la tâche.
#PBS -A aaa-111-aa 	     # Projet auquel la tâche est assignée.
#PBS -l nodes=4:ppn=8       # Nombre de nœuds et de cœurs par nœud.
#PBS -l walltime=15:00:00    # Durée maximale de la tâche (ici quinze heures)
 
 
#####################################
# Options facultatives #
#####################################
 
# List of users to which the server that executes the job has to send mail
#PBS -M john@doe.ca
 
# Under which circumstances mail is to be sent?
# "b" = when job begins
# "e" = when job ends
# "a" = when job aborts
 
#PBS -m bea
 
# Execute the job from the current working directory.
cd "${PBS_O_WORKDIR}"
 
module load /rap/aaa-111-aa/modulefiles/comsol/4.x
 
# Command to run
 
# Creating the hostfile
/clumeq/bin/moabhl2hl.py --format HP-MPI > hosts.txt
# Count the number of nodes available
NN=$(wc -l < hosts.txt)
 
# Initialize mpd
comsol -nn ${NN} mpd boot -f hosts.txt -mpirsh ssh
 
# Launch the COMSOL job
comsol -nn ${NN} batch -inputfile /home/USER/model.mph -outputfile /home/USER/results.mph -batchlog /home/USER/model.log -tmpdir /scratch/aaa-111-aa/
 
# Kill all instances of mpd once finished
comsol mpd allexit
 
# Delete the hostfile
rm hosts.txt


Note : ce script de soumission utilise le fichier hosts.txt qui est généré grâce à l'outil moabhl2hl.py, disponible sur Colosse. Pour générer ce fichier sur d'autres serveurs, contactez-nous.

COMSOL 4.3a

Fichier : submit_comsol_moab.sh
#!/bin/bash
 
#####################################
# Options obligatoires #
#####################################
 
 
#PBS -N give_a_name	     # Le nom de la tâche.
#PBS -A aaa-111-aa 	     # Projet auquel la tâche est assignée.
#PBS -l nodes=4:ppn=8        # Nombre de nœuds et de cœurs par nœud.
#PBS -l walltime=15:00:00    # Durée maximale de la tâche (ici quinze heures)
 
 
#####################################
# Options facultatives #
#####################################
 
# List of users to which the server that executes the job has to send mail
#PBS -M john@doe.ca
 
# Under which circumstances mail is to be sent?
# "b" = when job begins
# "e" = when job ends
# "a" = when job aborts
 
#PBS -m bea
 
# Execute the job from the current working directory.
cd "${PBS_O_WORKDIR}"
 
module load /rap/aaa-111-aa/modulefiles/comsol/4.x
 
# Command to run
# Launch the COMSOL job
comsol -clustersimple batch -inputfile /home/USER/model.mph -outputfile /home/USER/results.mph -batchlog /home/USER/model.log -tmpdir /scratch/aaa-111-aa/


Résultats (sur Colosse)

Pour voir si COMSOL tirait correctement partie de Colosse, plusieurs tests ont été faits. Notamment, une même tâche a été lancée successivement sur Colosse, avec différents nombre de cœurs. La simulation consiste en le calcul de la réponse acoustique d'un objet, et consiste en fait en la résolution du champ de pression et vitesse en réponse à une excitation à une certaine fréquence. La fréquence d'excitation varie de 0 à 7000Hz, avec un pas de 10Hz, et donc la simulation totale consiste en fait en 700 simulations indépendantes. Les durées de simulation sont ensuite extraites grâce au fichier de log de COMSOL. La courbe bleue du graphique ci-dessous montre les résultats. Sur le même graphique, la courbe rouge nous permet de vérifier que COMSOL distribue correctement les différentes fréquences : avec 80 cœurs, le temps de simulation est environ divisé par 10 par rapport au cas à huit cœurs.

Evolution de la durée de simulation en fonction du nombre de cœurs (courbe bleue) et comparaison avec le résultat attendu (courbe rouge).
Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Ressources de Calcul Québec
Outils
Partager