|
|
|
# Reprises : calcul reproductible pour la physique
|
|
|
|
|
|
|
|
<img src="/uploads/1fa38e1196ae62b6ff50aa11783aab77/logo-reprises.png" align="left" width="40" hspace="10">
|
|
|
|
<img src="/uploads/04900d606aecf88c1de6051adeb47a50/logo-reprises.png" align="left" width="40" hspace="10">
|
|
|
|
Les nouvelles architectures matérielles posent un défi majeur aux applications de nos communautés, dont la durée de vie est très longue (10 à 20 ans typiquement) alors que chaque génération de matériel (tous les 2 ans) apporte de nouvelles optimisations qu’il faut utiliser pour bénéficier des améliorations de performance. Jusqu’à maintenant, cela a été un frein majeur à l’adoption de ces nouveaux matériels, en dehors de quelques domaines précis ou le bénéfice semble évident (GPUs pour le Deep Learning). Encore plus particulièrement dans notre institut, l'utilisation des grilles de calcul, assemblage de matériel hétéroclie (par opposition aux super-calculateurs), constitue un défi supplémentaire pour la portabilité du code, ses performances, mais aussi pour la reproductibilité des résultats.
|
|
|
|
|
|
|
|
<img src="/uploads/1fa38e1196ae62b6ff50aa11783aab77/logo-reprises.png" align="left" width="40" hspace="10">
|
|
|
|
<img src="/uploads/04900d606aecf88c1de6051adeb47a50/logo-reprises.png" align="left" width="40" hspace="10">
|
|
|
|
|
|
|
|
Ce projet se propose d’explorer tous les moyens techniques qui prétendent concilier **performance**, **portabilité** (sur les différents matériels d'une grille) **et pérennité** (possibilité de s'adapter au matériel à venir). Il s'agit généralement d'utiliser une représentation assez abstraite du calcul à réaliser, par exemple en s'appuyant sur un langage dédié à une problématique donnée (Domain Specific Language), et d'en déduire automatiquement des implémentations efficaces pour les architectures ciblées. Cela peut aussi s'obtenir par le biais de standards tels qu'OpenCL, par de la generation de code, ou de la méta-programmation à base de templates.
|
|
|
|
|
| ... | ... | @@ -11,7 +11,7 @@ Dans nos disciplines, il pourrait être approprié d'avoir un langage source Pyt |
|
|
|
|
|
|
|
Par ailleurs, avant de pouvoir écrire des codes "métamorphique", il faut acquérir un certain savoir-faire sur les architectures matérielles de dernière génération et la meilleure façon de les exploiter : GPU, Knight Landing, FPGA, etc. Tous les collègues qui veulent construire et partager ce savoir-faire sont les bienvenus.
|
|
|
|
|
|
|
|
<img src="/uploads/1fa38e1196ae62b6ff50aa11783aab77/logo-reprises.png" align="left" width="40" hspace="10">
|
|
|
|
<img src="/uploads/04900d606aecf88c1de6051adeb47a50/logo-reprises.png" align="left" width="40" hspace="10">
|
|
|
|
|
|
|
|
Nous souhaitons également éviter des calculs trop précis, ou des itérations inutiles. Depuis trop longtemps, on pratique la double précision par défaut, sans évaluer son utilité, et cette question devient encore plus prégnante avec les accélérateurs de calcul moderne, qui peuvent être radicalement plus efficaces en simple précision.
|
|
|
|
|
| ... | ... | |
| ... | ... | |