13 novembre 2017 -
Un des principaux résultats des efforts de recherche effectués par l’INRIA Bordeaux est de pouvoir maintenant modéliser avec le logiciel Hwloc-Netloc toute la complexité de l’infrastructure (nœuds de calcul et réseau d’interconnexion) d’une plateforme de calcul parallèle. Le modèle obtenu permet donc de visualiser la topologie de très grandes plateformes telles que la machine CURIE du GENCI (5000 nœuds de calcul et 800 connecteurs réseau) ou la machine Thianhe-2 (18432 nœuds et 577 connecteurs réseau). De plus, une interface (API) a été développée pour fournir les informations de topologie aux outils de gestion des ressources tels que SLURM (adapté pour cela par Bull) et de gestion des tâches tels que MPI qui, connaissant les volumes de données échangées entre tâches, peuvent placer ces tâches de façon optimale pour réduire le coût de ces échanges.
Une autre avancée remarquable a été la poursuite du développement par UVSQ et Dassault-Aviation (DA) du mécanisme ‘Divide & Conquer’, qui a permis de résoudre les problèmes de localité des données et de synchronisation des tâches parallèles, et ainsi d’augmenter grandement la ‘scalabilité’ du solveur CFD Aether de DA. De plus l’implémentation asynchrone des échanges de données en utilisant GasPI (Global Address Space Programming Interface) a permis de diviser d’un facteur deux à quatre le temps des communications dans l’algorithme MLFMM (Multilevel Fast Multipole Method) utilisé dans le logiciel de simulation électromagnétique de DA. Tous ces résultats ont été démontrés sur des cas d’usage de taille industrielle et parfois à la limite des moyens actuels de simulation de DA.
Au niveau de l’infrastructure, les défis du Big Data et de l’Exascale ont conduit Bull à développer les Proxy-IO, une nouvelle approche pour traiter les entrées-sorties massives. Ce mécanisme permet à la fois de réduire les activités d’entrée-sortie sur les nœuds de calcul, donc d’augmenter la puissance de calcul, d’agréger les données transférées, d’augmenter la ‘scalabilité’, de faire de l’encryptage et de la compression, et de réduire de façon significative le temps de reprise suite à un incident.
Par ailleurs, UVSQ a enrichi MAQAO, son logiciel d’analyse et d’optimisation de performance, pour permettre de faire des diagnostics plus précis sur les problèmes d’accès aux données : impact de la latence, impact des mécanismes ‘Out-of-Order’, etc.
Pour sa part, notre partenaire suédois ESI/Efield, qui développe des logiciels de CEM (simulation électromagnétique) a également pu valider et mettre à profit les avancées décrites ci-dessus ainsi que la plateforme commune du projet : il a réussi à réduire le temps d’exécution de son algorithme MLFMM de 60%, à multiplier par 3 la taille des problèmes traités, et l’application qui ne pouvait pas s’exécuter de façon efficace sur plus de 12 cœurs est maintenant capable d’exploiter une architecture distribuée de 240 cœurs. Des résultats similaires ont également pu être obtenus avec d’autres applications : possibilité de traiter des modèles 3 fois plus importants (30 millions d’inconnues) avec la méthode des éléments finis (FEM) pour la simulation d’un four micro-ondes destiné à polymériser des composites ; et réduction de 70% du temps d’exécution d’un calcul de FDTD (résolution d’équations différentielles pour la simulation d’antennes). Tous ces développements ont été intégrés ou sont sur le point de l’être dans la version commerciale du logiciel ‘CEM One’ qui reste ainsi très compétitive.
Autre défi posé par le comité ITEA : étendre les bénéfices des avancées du projet aux utilisateurs non-experts en HPC. C’est ce qu’a réussi à faire notre partenaire Scilab (intégré récemment au groupe ESI) en développant un Front-End web (une interface) qui permet aux utilisateurs qui utilisent le logiciel Scilab pour faire du calcul numérique de bénéficier via le Front-End des fonctions HPC du Scilab Cloud sans avoir à acquérir de compétences particulières en HPC. Ils peuvent ainsi par exemple facilement activer un logiciel de simulation de CFD, tirer profit du solveur MUMPS (voir mumps-solver.org) pour résoudre des problèmes complexes, et faire exécuter leurs calculs sur une plateforme parallèle puissante équipée de processeurs tels que les GPU via le module SciCUDA.
En résumé, le projet COLOC a permis de faire de grandes avancées dans la gestion de la localité des données, l’optimisation de l’usage des ressources des supercalculateurs, et l’efficacité des applications. Un nouveau pas a été franchi pour relever les défis de l’Exascale et des Big Data tout en facilitant l’accès de ces fonctions à un plus grand nombre d’utilisateurs.
|