Computer Algebra Patterns : vers une architecture efficace, générique et pérenne de logiciels mathématiques

English

Séminaire Modèles et Algorithmes Déterministes: CASYS

19/01/2012 - 09:45 Salle 1 - Tour IRMA

Développer un logiciel mathématique généraliste, performant et pérenne, nécessite plusieurs niveaux de développement.
Il faut bien sûr des algorithmes efficaces adaptés à des données particulières, mais si cette structure particulière n'est pas connue à l'avance, un logiciel généraliste doit pouvoir s'adapter automatiquement aux données et utiliser de manière efficace toute une batterie d'algorithmes mis à sa disposition.
De la même manière, et en particulier sur les nouvelles architectures multi-coeurs, les ressources disponibles ne sont pas non plus forcément connues à l'avance, et donc le logiciel doit pouvoir également s'adapter aux ressources de calcul découvertes pendant la résolution.
Nous présenterons un cadre générique et des patrons de conceptions spécifiques et réutilisables, des "computer algebra patterns" permettant une adaptation automatique aux ressources et aux données ainsi que leur utilisation au sein de la bibliothèque LinBox pour toutes les techniques de type modulaire/évaluation/interpolation.
Enfin, il appert que dans le calcul intensif le facteur limitant est souvent la mémoire disponible et non le temps de calcul. Nous présenterons un nouveau modèle de gestion de mémoire adapté aux structures du calcul formel et aux architectures multi-processeurs, plus efficace, mais plus restrictif que les gestionnaires de type ramasse-miettes ou comptage de références. Ses performances et le passage à l'échelle sur multi-processeurs seront illustrées sur l'exemple de la multiplication rapide de matrices dans des corps finis.