11.7.5.2.2 : Contraintes et défis technologiques


Nous avons souhaité dès le début des développements, initialement réalisés sur la plate-forme GridCL notePlate-forme de développement, financée principalement par le LabEx P2IO, relever un certain nombre de défis techniques. Pour traiter de l'analyse du canal ttH par MEM dans des délais raisonnables, nous avons conçu l'application autour des standards portables MPI et OpenCL pour agréger, respectivement, la puissance de calcul des nœuds et celle des GPUs ou autres accélérateurs de calcul rattachés à chaque nœud. L'autre choix de conception consiste à déployer tous les calculs sur les cartes accélératrices ou GPUs pour minimiser les communications "host/devices". Cette stratégie nous a amené à développer une extension OpenCL/CUDA dans le générateur de code MadGraph~[30]MadGraph, qui engendre l'élément de matrice au cœur de la méthode sous la forme d'un code source. Ceci nous a conduit à manipuler des "kernels" noteTerme utilisé pour désigner les codes téléchargés sur l'accélérateur de calcul, une fois compilés allant de $10^4$ à $2\cdot 10^4$ lignes de code, caractéristique peu courante pour ces technologies, permettant ainsi d'éprouver la robustesse des compilateurs pour accélérateurs de calcul.

Plus récemment encore, notre participation à la Cellule de Veille Technologique (CVT) GENCI noteCellule de Veille Technologique (CVT) GENCI est en charge de préparer les communautés scientifiques françaises à l'émergence des prochaines générations de supercalculateurs, nous a mis face à une difficulté supplémentaire. Leur plate-forme pré-exascale noteLes architectures dites exascale désignent les futurs supercalculateurs qui disposeront d'une puissance de calcul supérieure à $10^{18}$ opérations en arithmétique flottante par seconde (ExaFlops) combine des processeurs IBM OpenPOWER à instructions non x86, et des cartes de génération Pascal, pour lesquelles NVIDIA ne fournit pas encore d'implémentation d'OpenCL. Soucieux de profiter des évolutions de CUDA et des outils NVIDIA (non accessibles depuis OpenCL), nous avons construit une passerelle OpenCL 1.1/CUDA, pérennisant ainsi nos développements OpenCL face aux aléas. Cette passerelle a été largement validée et exploitée sur GridCL, sur les GPUs Pascal P100 de l'IDRIS et sur la plate-forme GPU du CC-IN2P3.