Cette école vous propose de découvrir les principales formes de parallélisme offertes par les architectures matérielles modernes. Vous explorerez la façon d'en tirer parti en combinant plusieurs technologies logicielles, à la recherche du bon compromis entre performance, portabilité́ et durabilité́ du code. La plupart des technologies présentées seront pratiquées à travers un exemple simplifié de simulation de collision de particules.
Dans les locaux de l'Ecole Polytechnique |
Pour l'édition 2016 de son école informatique, l'IN2P3 vous propose de revenir sur la programmation parallèle (ou concurrente). L'accent sera mis sur la diversité des matériels, et la diversité des technologies logicielles qu'il convient de combiner pour en tirer les meilleures performances. Trois thèmes principaux seront détaillés :
- Evolution de C++ vers le parallélisme : la bibliothèque de C++ 11/14 introduit une nouvelle interface asynchrone, exploitée et enrichie par le runtime HPX, qui préfigure des spécifications élargies en discussion pour C++ 17. Avec Thomas Heller, chercheur à l'Université Friedrich-Alexander d'Erlangen-Nuremberg.
- Utilisation combinée des standards portables OpenCL et MPI, le premier permettant d'exploiter tous les accélérateurs et coprocesseurs du marché, et le second de monter facilement en puissance en cumulant les noeuds d'un super-calculateur. Avec Gilles Grasseau, ingénieur de recherche au Laboratoire Leprince-Ringuet.
- Definition de DSLs (language spécifique à un domaine), et outillage Python pour les transformer en code parallèle performant et adapté au vol à toute sorte d'accélérateur ou d'architecture hétérogène. Avec Andreas Klockner, professeur assistant à l'Université de l'Illinois à Urbana-Champaign.
Avec le cluster GridCL |
Pour se confronter à ces technologies, les apprenants auront à disposition la plateforme GridCL (plusieurs noeuds multi-coeurs, enrichis d'accélérateurs NVidia K20/Titan, d'AMD FirePro, ou de coprocesseurs Intel PHI), ainsi que plusieurs incarnations d'un code de simulation "3 photons" emprunté à Vincent Lafage (IPNO).