Improving the numerical accuracy of parallel programs
Optimisation de la précision numérique des codes parallèles
Résumé
In high performance computing, nearly all the implementations and published experiments use foating-point arithmetic. However, since foating-point numbers are finite approximations of real numbers, it may result in hazards because of the accumulated errors.These round-off errors may cause damages whose gravity varies depending on the critical level of the application. Parallelism introduces new numerical accuracy problems due to the order of operations in this kind of systems. The proposed thesis subject concerns this last point: improving the precision of massively parallel scientific computing codes such as those found in the field of HPC (High Performance Computing).
Les nombres flottants sont utilisés à la place des nombres réels pour les calculs sur ordinateurs. L'utilisation de ces nombres introduit des erreurs d'arrondi qui sont en général acceptables dans la mesure où le résultat produit par la machine est proche de celui que l'on aurait obtenu en utilisant des nombres réels. Cependant, elles peuvent aussi être amplifiées par propagation, dénuant de sens le résultat d'un calcul, ce qui peut avoir des conséquences catastrophiques dans de nombreux domaines d'application comme par exemple l'aéronautique ou la finance. La précision des calculs en nombres flottants dépend de nombreux facteurs: types d'opérations effectuées, valeurs et types de données employés, ordinateurs utilisés. En outre, la précision des calculs dépend fortement de l'ordre dans lequel sont effectuées les opérations et le parallélisme démultiplie les ordonnancements possibles. Le sujet de thèse proposé concerne ce dernier point : améliorer la précision de codes de calcul scientifique massivement parallèles tels que ce que l'on trouve dans le domaine du HPC (High Performance Computing) Ces dernières années, des techniques automatiques ont été mises au point afin de valider et réécrire les codes de calcul scientifique afin de les rendre plus précis. Ces techniques rencontrent un vif intérêt tant scientifique qu'industriel. Cependant les techniques existantes acceptent uniquement des programmes séquentiels ce qui exclut les nombreux codes de calcul intensif développés dans le domaine du HPC. Or ces codes parallèles, utilisés pour réaliser des simulations numériques complexes dans de nombreux domaines scientifiques et techniques, sont particulièrement sujets aux erreurs introduites par les nombres flottants car le parallélisme modifie l'ordre dans lequel sont effectués les calculs, voire rend cet ordre aléatoire. Les résultats obtenus peuvent alors être altérés ou non reproductibles (plusieurs si mulations identiques donnant des résultats différents).
Origine | Version validée par le jury (STAR) |
---|