
OpenFOAM n’accélère pas automatiquement toute une simulation sur GPU. Un solveur linéaire externe peut accélérer une partie du calcul, selon l’intégration, le matériel et le cas étudié. Cette page présente les points à vérifier avant un essai ; elle ne fournit pas de procédure d’installation universelle ni de garantie de performance.
Voies d’intégration à valider pour votre version
Développements spécifiques ou expérimentaux
Points à vérifier
Choisissez une configuration adaptée à votre cas et vérifiez la compatibilité des versions avant de lancer vos essais. Conservez une référence CPU et sauvegardez les résultats hors de l’instance.
system/fvSolution, sans les traduire.Compilation : suivre les instructions de la version choisie
La documentation GPU de PETSc distingue la compilation et le choix des types de matrices et de vecteurs à l’exécution. Vérifiez ces deux étapes. Aucun jeu d’options générique ne suffit à démontrer que le solveur OpenFOAM utilise le GPU.
Dictionnaires OpenFOAM : utiliser un exemple compatible
Reprenez un cas de test du module choisi et comparez-le à votre référence CPU. Vérifiez le chargement de la bibliothèque, le solveur sélectionné et les critères d’arrêt dans les journaux. N’inventez pas de noms de bibliothèques ou de mots-clés pour remplacer un exemple incompatible.
Les opérations prises en charge dépendent du backend PETSc et du préconditionneur. Profilez aussi les transferts de données : un solveur accéléré peut rester limité par les copies entre CPU et GPU.
Vérifier le chargement et les données transmises
Contrôlez la conversion de la matrice, la précision et les résidus renvoyés à OpenFOAM. Une bibliothèque chargée sans erreur ne prouve pas que les résultats, les critères d’arrêt et le fonctionnement avec MPI sont corrects.
Configuration AmgX : conserver les identifiants d’origine
Partez d’un fichier de configuration livré avec la version retenue. Ne traduisez ni les clés JSON ni les identifiants de solveur. Vérifiez d’abord la syntaxe, puis faites lire le fichier par la bibliothèque ; un JSON valide peut encore contenir des options incompatibles.
Sur un petit cas de référence, comparez les champs calculés, les résidus, les itérations et la convergence avec le résultat CPU. Répétez ces contrôles après chaque changement de solveur ou de préconditionneur avant de mesurer les performances.
De bons candidats
Des candidats médiocres
Consignez le solveur, la physique, le maillage, les conditions aux limites et les critères de convergence. Mesurez l’initialisation, l’assemblage, les résolutions, les transferts observables, les entrées/sorties et le temps total. Après un échauffement, répétez les essais et indiquez leur dispersion, ainsi que le pic de VRAM et les écarts à la référence CPU.
Coût par cas convergé
À tarif constant, le coût de calcul d’une exécution correspond au tarif horaire multiplié par sa durée facturée en heures. Pour comparer deux déploiements, comptabilisez aussi les essais de compilation, les réglages et les exécutions échouées, ainsi que les autres frais applicables.
Conservez les versions exactes, les commits, les fichiers de configuration et les journaux avec les résultats. Ils permettent de distinguer un gain mesuré d’un changement de méthode.
GPU visible, mais peu utilisé
Vérifiez le backend réellement sélectionné, puis identifiez les phases dominantes. L’assemblage sur CPU, les transferts ou un préconditionneur non exécuté sur GPU peuvent limiter le gain.
Mémoire GPU insuffisante
Mesurez la mémoire utilisée par les matrices, les vecteurs, le préconditionneur et les espaces de travail. Réduisez le cas pour le diagnostic seulement ; choisissez ensuite une capacité ou une méthode adaptée au cas à comparer.
Solveur inconnu ou bibliothèque manquante
Vérifiez les chemins et la compatibilité entre la distribution OpenFOAM, le compilateur, MPI et les dépendances utilisés à la compilation et à l’exécution. Reprenez les instructions de la version du module, sans traduire ses identifiants.
Convergence différente de la référence CPU
Vérifiez les algorithmes, les tolérances et les critères d’arrêt. Examinez les champs et les grandeurs physiques, pas seulement le dernier résidu affiché. Ne retenez pas un gain de temps avant d’avoir expliqué les écarts.
Matériel : CPU, nombre de processus, GPU, VRAM, mémoire hôte et interconnexion.
Logiciels : distribution OpenFOAM, versions ou commits du module et des dépendances, compilateur, MPI, pilote et toolkit.
Cas : données d’entrée, maillage, physique, conditions aux limites et critères de convergence.
Configuration : fichiers réellement utilisés, sans identifiants traduits ni options supposées universelles.
Résultats : temps total et par phase, répétitions, résidus, champs comparés, mémoire maximale et coût. Cette liste est un relevé de méthode, pas un fichier de configuration exécutable.
Modélisation scientifique sur les GPU cloud : choisir les cas à tester
Vérifiez la configuration disponible et sa compatibilité avec votre pile OpenFOAM avant de réserver une instance. Les modèles personnalisés permettent de réutiliser une configuration de conteneur, sans garantir la compatibilité de ses logiciels. Sauvegardez vos fichiers hors de l’instance. Selon la documentation de démarrage et d’arrêt, le redémarrage dépend des ressources disponibles et une instance arrêtée au-delà du délai de conservation indiqué dans cette documentation est automatiquement supprimée, avec ses données.
Choisissez une charge de travail d’IA, de calcul ou de stockage à tester sur Hivenet, ou échangez avec notre équipe sur sa mise en production.