Description
Date depot: 1 janvier 1900
Titre: Méthodes et outils pour l'implantation de bibliothèques mathématiques (libm) paramétrées
Directeur de thèse:
Jean-Claude BAJARD (IMJ)
Encadrant :
Christoph LAUTER (LIP6)
Domaine scientifique: Sciences et technologies de l'information et de la communication
Thématique CNRS : Non defini
Resumé:
Pendant longtemps, seuls quelques spécialistes ont eu le savoir-faire
nécessaire pour l'implantation de fonctions mathématiques comme exp(x)
ou sin(x) dans les bibliothèques systèmes mathématiques (libm). Pour
des raisons de performance, le code de celles-ci combine souvent des
approximations bien choisies avec des manipulations de la
représentation des flottants au niveau bit [1,2].
Cette méthodologie de conception a des inconvénients. Tout d'abord, le
coût de développement d'une libm est extrêmement élevé: on compte à
peu près un homme-mois par fonction. Ce coût est principalement dû à
la nécessité d'analyser la fonction à la main et au codage final
pénible [2,8].
A cause de ces difficultés, les libms ont rarement été terminées par
une seule équipe [8,12]. En conséquence, les libms Open Source sont
actuellement composées d'un mélange de codes venant de différents
auteurs. Le savoir-faire nécessaire pour les maintenir a été perdu
[12].
Tous ces codes libm représentent un compromis entre la rapidité de
calcul, la précision et la portabilité. Les fonctions ne sont que
rarement correctement arrondies [1,8]. Ceci ne convient pas à tous
les utilisateurs. Idéalement, pour chaque combinaisons des objectifs
spécifiques comme la précision, la rapidité du calcul ou la
vectorisation, une implantation serait fournie par la libm. Mais comme
une seule implantation était déjà chère, en fournir des dizaines a
longtemps été inconcevable.
Les avancées récentes dans les domaine de l'optimisation automatique
d'approximations polynomiales par rapport aux contraintes de
l'arithmétique flottante [4] et la génération de code optimisé pour
des séquences d'opérations typiques aux libms [3] indiquent qu'il
devrait être maintenant possible d'implanter les bibliothèques
mathématiques de façon complètement paramétrée. La génération du code
final serait ainsi laissé à la machine, qui instantierait ces
paramètres.
Ce projet de thèse s'intéresse à ce point qui est de développer les
méthodes et les outils nécessaires pour des implantations paramétrées
de bibliothèques mathématiques. Les approches proposées seront
validées par une démonstration de leur fonctionnement sur un ensemble
de fonctions mathématiques typiques.
Avancées potentielles:
* Augmentation de la qualité logicielle des bibliothèques
mathématiques pour une meilleure maintenance du code et une
documentation complète.
* Plus de choix pour les utilisateurs des bibliothèques mathématiques
en termes de précision et rapidité des calculs.
* Une meilleure compréhension algorithmique de problèmes de
transformation de tâches comme 'implante f' en des codes
efficaces. Ceci est également une clef pour aborder des
problématiques comme l'optimisation numérique de certaines
fonctions-noyaux utilisées en calcul scientifique.
* Des implantations correctement arrondies des fonctions libm,
comme elles sont recommandées par la section 9.1. de la norme
IEEE754-2008.
* Une ouverture envers des futures recherches sur la génération en-vol
de codes numériques, y compris pour les fonction composites comme
exp(sin(x)). Ainsi, les compilateurs pourraient optimiser les
séquences d'appels des fonctions mathématiques, en enlevant le code
pour traiter des cas extrêmes qui ne peuvent pas se produire. Dans
l'exemple, exp(x) ne peut pas faire de dépassement de capacité
puisque sin(x) restera borné par 1.
Doctorant.e: Kupriianova Olga