11.10.1.7 : Problématique de la précision
Calculer vite ne suffit pas, il faut aussi produire un résultat juste. Hélas, l'approche utilisée pour répondre à ce besoin a souvent été d'avoir recours systématiquement au calcul en double précision, et de ne réfléchir aux questions de stabilité numérique que lorsqu'un résultat éminemment faux était observé durant la phase de validation. Un résultat passant cette validation est ensuite considéré comme exacte, et toute modification du code résultant en une modification de celui-ci, fût-ce d'un millionième de pourcent, est donc supposée introduire une erreur de calcul.
Cette stratégie de développement est problématique pour plusieurs raisons~:
- Si la double précision est la forme de calcul flottant la plus précise dont on peut espérer une bonne portabilité entre matériels, elle est aussi la plus lente, et la plus gourmande en ressources mémoires.
- Certains matériels récents, comme les FPGA, ne possèdent pas de support natif de la double précision, et ne peuvent émuler celle-ci qu'à un coût prohibitif. D'autres, comme les GPUs, la pratiquent nativement mais avec un surcoût très important.
- À l'inverse, le matériel support de précisions réduites se développe, poussé par l'expansion rapide du Deep Learning. L'applicabilité de ces précisions aux calculs de physique est une question ouverte, que l'absence de cahier des charges clair sur la précision désirée en sortie d'un calcul ne permet pas d'explorer.
- La recherche d'une reproductibilité exacte des résultats de calcul parallèles par rapport aux résultats séquentiels passe souvent par des coûts de développements élevés, une consommation de ressources plus importante, et un passage à l'échelle moins bon, alors que ces calculs produisent en réalité souvent des résultats plus précis que leurs homologues séquentiels.
- La qualité de la physique produite repose intégralement sur celle de procédures de validation basées sur le test, alors que le test peut uniquement prouver la présence d'erreur, et pas leur absence.
Pour toutes ces raisons, une réflexion sur la précision numérique, ainsi que sur les problématiques liées à la reproductibilité numérique comme la génération de nombres aléatoires, doit être engagée à l'IN2P3 en collaboration avec les personnels chercheurs.