Vous êtes sur la page 1sur 11

Pas darithmetique able ` able au mode darrondi sans acces

Christoph Lauter & Valerie Menissier-Morain


Pierre et Marie Curie - Paris 6 Universite LIP6 - Departement CALSCI

RAIM 2012

` able au mode darrondi - Christoph Lauter & Valerie Pas darithmetique able sans acces Menissier-Morain - UPMC 1/9

Pouvoir choisir le mode darrondi est necessaire


Arithmetique dintervalles Utilise massivement les arrondis diriges. Par exemple [a, b] + [c, d] = [ (a + b), (c + d)]. Arithmetique compensee La plupart des algorithmes necessitent de travailler en arrondi au ` plus pres. CADNA ` la base du logiciel Le principe meme de la methode CESTAC a CADNA est dexecuter plusieurs fois une instruction avec des modes darrondi differents pour en determiner la stabilite.

` able au mode darrondi - Christoph Lauter & Valerie Pas darithmetique able sans acces Menissier-Morain - UPMC 2/9

` quoi ressemble un logiciel numerique A typique


Un logiciel numerique est bien souvent un enchevetrement de code utilisant divers logiciels ou langages :
Sage

Versoft

Mathematica

GAP

Maple

Magma

IntLab

Matlab

Implementation BLAS/LAPACK

MPC

MPFI

Linbox

MKL

Calcul symbolique-numerique

Eventuellement pour MPFR NTL BLAS/LAPACK/ScaLAPACK certaines fonctionnalites Systematique pour GMP C/C++/Fortran certaines fonctionnalites

` able au mode darrondi - Christoph Lauter & Valerie Pas darithmetique able sans acces Menissier-Morain - UPMC 3/9

` quoi ressemble un logiciel numerique A typique


Un logiciel numerique est bien souvent un enchevetrement de code utilisant divers logiciels ou langages :
Sage

Versoft

Mathematica

GAP

Maple

Magma

IntLab

Matlab

Implementation BLAS/LAPACK

MPC

MPFI

Linbox

MKL

Calcul symbolique-numerique

Eventuellement pour MPFR NTL BLAS/LAPACK/ScaLAPACK certaines fonctionnalites Systematique pour GMP C/C++/Fortran certaines fonctionnalites

` able au mode darrondi - Christoph Lauter & Valerie Pas darithmetique able sans acces Menissier-Morain - UPMC 3/9

MKL
La plupart de ces logiciels utilisent MKL (Intel Math Kernel Library) sans que lutilisateur en ait conscience Points forts Implementation la plus efcace de BLAS, LAPACK, ScaLAPACK1 ` Solver de systemes peu denses FFT ementaires Fonctions el vectorisees clustering) Parallelisation automatique (multi-threade, Interface C et Fortran Redistribuable gratuitement (malheureusement vu comme une bo te noire)

` able au mode darrondi - Christoph Lauter & Valerie Pas darithmetique able sans acces Menissier-Morain - UPMC 4/9

Des operations de base au calcul vectoriel


ecier Calcul vectoriel : utiliser MKL pour ben de ses algorithmes optimises.

MKL ne permet pas de modier le mode darrondi On voudrait


set roundingmode ... call MKL set roundingmode ...

a ` un raisonnement de haut niveau, retrouver par et dans MKL grace exemple pour un calcul de matrice A = (Aij ) un resultat ([ (Aij ), (Aij )]). Des astuces telles que celles pour eviter les changements de mode darrondi dans larithmetique de base sur les intervalles : (a + b) = ((a) + (b)), etc.

` able au mode darrondi - Christoph Lauter & Valerie Pas darithmetique able sans acces Menissier-Morain - UPMC 5/9

Des operations de base au calcul vectoriel


ecier Calcul vectoriel : utiliser MKL pour ben de ses algorithmes optimises.

MKL ne permet pas de modier le mode darrondi On voudrait


set roundingmode ... call MKL set roundingmode ...

a ` un raisonnement de haut niveau, retrouver par et dans MKL grace exemple pour un calcul de matrice A = (Aij ) un resultat ([ (Aij ), (Aij )]). Des astuces telles que celles pour eviter les changements de mode darrondi dans larithmetique de base sur les intervalles : (a + b) = ((a) + (b)), etc. ` Mais on essaie de faire cela en faisant des hypotheses sur un code inconnu !
` able au mode darrondi - Christoph Lauter & Valerie Pas darithmetique able sans acces Menissier-Morain - UPMC 5/9

Choix du mode darrondi ? Comportement multi-threads et en cluster


Assembleur fldcw/fstcw en x87, ldmxcsr/stmxcsr avec les instructions SSE : jouent sur 2 registres differents C99 fesetround : garantit la synchronisation des 2 registres detre Matlab : il faut sinterfacer avec fesetround, pas prevu directement (system dependent ("setround",Inf) ajoute non documente) de la meme Un meme code MKL nest pas compile fac on selon la longueur dun mot, selon la marque du processeur, sur x87, avec les instructions SSE, etc. ? en cluster ? Comportement multi-threade

` able au mode darrondi - Christoph Lauter & Valerie Pas darithmetique able sans acces Menissier-Morain - UPMC 6/9

Le mode darrondi nest pas pour moi !

Le code de printf et de scanf ne consulte jamais le mode darrondi, la conversion decimal binaire est toujours faite en ` quel que soit le mode darrondi courant arrondi au plus pres,

ementaires exp et dautres fonctions el (glibc bug report/x ` 3976, 29/2/12) rendent des resultats completement faux pour les ` modes darrondis autres que larrondi au plus pres

` able au mode darrondi - Christoph Lauter & Valerie Pas darithmetique able sans acces Menissier-Morain - UPMC 7/9

Variation du mode darrondi au cours dun calcul ?


eric Goualard (Mailing list Reliable Computing) Assertion Fred Le mode darrondi en Matlab peut changer au cours dun calcul sans quon intervienne Exemple :
fesetround(FE_DOWNWARD) 2*pow2(2-eps,1023) 2*realmax realmax=pow2(2-eps,1023) 2*pow2(2-eps,1023)

sur Matlab 2012a, pas dautre appel Comportement normal observe ` fesetround detect que le notre a e mais precision excessive du resultat (55 bits de mantisse) menace pour une arithmetique able. ` labri dune desynchronisation On nest evidemment pas a des deux pour registres de mode darrondi mais nous navons rien constate linstant dans nos experimentations.
` able au mode darrondi - Christoph Lauter & Valerie Pas darithmetique able sans acces Menissier-Morain - UPMC 8/9

Conclusion
On a besoin au moins : que chaque composant qui modie le mode darrondi le signale dans sa documentation que chaque composant signale sil tient compte ou non du mode darrondi courant pour pouvoir mettre en place deventuels contournements. ` ` En soi ce nest pas un probleme scientique, cest un probleme technique et documentaire, par exemple pour scanf et printf un a ` code qui permet de tenir compte du mode darrondi courant a dej e ecrit et (stage Olga Kupriianova)

` able au mode darrondi - Christoph Lauter & Valerie Pas darithmetique able sans acces Menissier-Morain - UPMC 9/9