Parallélisation OpenMP de l'algorithme de convection ALE.
Pour bénéficier de cette amélioration, il faut compiler Metafor avec l'option METAFOR_USE_OPENMP
(c'est fait par défaut) et lancer un calcul ALE sur plusieurs CPUs grâce à l'option “-j nCPU” en ligne de commande. Il n'est actuellement pas possible de lancer un calcul parallèle par l'interface graphique (à moins de lancer l'interface graphique en ligne de commande).
Link correct vis à vis d'OpenMP sous Windows: la version précédente mélangeait OpenMP de Visual Studio et OpenMP d'Intel (à travers la lib MKL).
Je vous encourage à utiliser le DSSolver en parallele lorsque les machines sont peu utilisées. D'après mes premiers essais, le gain peut être important.
Possibilité de compiler avec le compilateur Intel sur spring et thorgal en utilisant les fichiers spring-icc.cmake
et thorgal-icc.cmake
. Si vous compilez une version pour faire du calcul intensif, il est conseillé d'utiliser ce compilateur. L'exécutable produit est généralement plus rapide que celui fourni par gcc
.
Le script launch.py
possède maintenant de nouvelles options pour lancer les calculs parallèles. Il est possible de spécifier le nombre de coeurs voulus. Il est également possible de spécifier explicitement les numéros des coeurs (affinité) pour éviter les problèmes liés à l'architecture NUMA et l'hyperthreading sur les Xeons.
Petit détail: il est maintenant possible d'utiliser le TAB pour completer la recherche de l'exécutable Metafor (en bref, pour les initiés, l'auto-completion fonctionne)
Copiez donc toolbox/launch.py
dans un endroit accessible sur votre compte (généralement à coté de comp.py
dans votre ~/bin
.
L'import Bacon a été légèrement modifié pour pouvoir supporter Samcef Field V7.2-01 dont j'ai récupéré les CDs. Si vous le désirez, vous pouvez désinstaller l'ancien Samcef et utiliser cette version plus récente.
J'ai uniformisé l'affichage des lignes et des surfaces. La fonction getResolution
qui était utilisée à la fois pour la visu et pour les projections a été dupliquée en getGridResolution
(projection) et getDisplayResolution
(visu). On peut ainsi changer le nombre de segments qui composent une nurbs par exemple sans perturber la projection de points sur celle-ci.
Je compte d'ici peu ajouter un facteur pour pouvoir affiner l'affichage des courbes et des surfaces directement dans VizWin
)
Correction d'un warning repéré par Luc.
Ajout d'une map globale nommée GlobalTimers
contenant des chronomètres pouvant être utilisés partout dans le code. Ces chronomètres (utilisés actuellement dans l'ALE) sont écrits en fin de calcul dans le workspace (fichier gtimers.txt
). Ceuw-xi pourront servir à optimiser le code. Vous pouvez les utiliser facilement dans vos routines dans le cas où vous voudriez optimiser votre code.
J'ai ajouté une classe permettant d'exporter des maillages au format “Nastran Bulk” (objet NatsranBulkWriter
dans toolbox.nas2py
). L'intérêt est de pouvoir utiliser Samcef for Machining pour créer des listes de sélection de noeuds.
L'import Bacon peut maintenant être utilisé lorsque le “.dat” contient des commandes INPUT
(inclusions d'autres fichiers, comme par exemple, des sélections de noeuds venant de Samcef for Machining). Les fichiers dont dépend le .dat sont copiés dans le workspace et un mécanisme de dépendance a été mis au point (si un de ces fichiers changent, on re-baconne le tout).
— Romain BOMAN 2010/09/09 08:57