Projet de recherche doctoral numero :3484

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