• Aucun résultat trouvé

linbox PascalGiorgi 20d´ecembre2004 Algorithmiqueetarithm´etiquepourl’alg`ebrelin´eaireexacte`apartirdelabiblioth`eque

N/A
N/A
Protected

Academic year: 2022

Partager "linbox PascalGiorgi 20d´ecembre2004 Algorithmiqueetarithm´etiquepourl’alg`ebrelin´eaireexacte`apartirdelabiblioth`eque"

Copied!
80
0
0

Texte intégral

(1)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque LinBox

Pascal Giorgi sous la direction de

Gilles Villard

LIP, UMR 5668, CNRS, ENS Lyon, INRIA, UCB Lyon

ECOLE NORMALE SUPERIEURE DE LYON

20 d´ ecembre 2004

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque

linbox

Pascal Giorgi

LIP, UMR 5668, CNRS, ENS Lyon, INRIA, UCB Lyon

20 d´ ecembre 2004

ECOLE NORMALE SUPERIEURE DE LYON

(2)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Motivations

L’alg` ebre lin´ eaire exacte est un outil de calcul r´ epandu.

Applications en calcul formel :

I bases de Gr¨ obner [Faug` ere LIP6] , rang, triangularisation

I cryptographie [Thom´ e 2003] ,

syst` emes lin´ eaires creux (1.033.593 × 766.150)

I combinatoire, topologie alg´ ebrique [Dumas 2000] , forme de Smith (376.320 × 117.600)

I programmation lin´ eaire [contact EDF] ,

syst` emes lin´ eaires diophantiens (50.000 × 50.000)

I ...

(3)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Diversit´ e des probl` emes

A =

−289 236 79 −268

108 −33 −211 309

−489 104 −24 −25

308 99 −108 66

 , b =

−131 321 147 43

 .

solution sur Z 1009 solution sur Q solution sur Z

x =

 593 313 130 187

, x =

−9591197817 95078 131244

47539 2909895

665546 2909895

665546

, x =

−106495695463

−2208888459779

−4204431397194

−3069666048124

A peut ˆ etre creuse (seulement O(n) ´ el´ ements non nuls) probl` eme d’optimisation (emploi du temps) 3202 × 4048, ≈ 19000 coeff. non nuls.

Aujourd’hui, il existe des algorithmes efficaces pour r´ esoudre certains

probl` emes d’alg` ebre lin´ eaire exacte

(4)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Diversit´ e des probl` emes

A =

−289 236 79 −268

108 −33 −211 309

−489 104 −24 −25

308 99 −108 66

 , b =

−131 321 147 43

 .

solution sur Z 1009

solution sur Q solution sur Z

x =

 593 313 130 187

 ,

x =

−9591197817 95078 131244

47539 2909895

665546 2909895

665546

, x =

−106495695463

−2208888459779

−4204431397194

−3069666048124

A peut ˆ etre creuse (seulement O(n) ´ el´ ements non nuls) probl` eme d’optimisation (emploi du temps) 3202 × 4048, ≈ 19000 coeff. non nuls.

Aujourd’hui, il existe des algorithmes efficaces pour r´ esoudre certains

probl` emes d’alg` ebre lin´ eaire exacte

(5)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Diversit´ e des probl` emes

A =

−289 236 79 −268

108 −33 −211 309

−489 104 −24 −25

308 99 −108 66

 , b =

−131 321 147 43

 .

solution sur Z 1009 solution sur Q

solution sur Z

x =

 593 313 130 187

, x =

−9591197817 95078 131244

47539 2909895

665546 2909895

665546

 ,

x =

−106495695463

−2208888459779

−4204431397194

−3069666048124

A peut ˆ etre creuse (seulement O(n) ´ el´ ements non nuls) probl` eme d’optimisation (emploi du temps) 3202 × 4048, ≈ 19000 coeff. non nuls.

Aujourd’hui, il existe des algorithmes efficaces pour r´ esoudre certains

probl` emes d’alg` ebre lin´ eaire exacte

(6)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Diversit´ e des probl` emes

A =

−289 236 79 −268

108 −33 −211 309

−489 104 −24 −25

308 99 −108 66

 , b =

−131 321 147 43

 .

solution sur Z 1009 solution sur Q solution sur Z

x =

 593 313 130 187

, x =

−9591197817 95078 131244

47539 2909895

665546 2909895

665546

, x =

−106495695463

−2208888459779

−4204431397194

−3069666048124

A peut ˆ etre creuse (seulement O(n) ´ el´ ements non nuls) probl` eme d’optimisation (emploi du temps) 3202 × 4048, ≈ 19000 coeff. non nuls.

Aujourd’hui, il existe des algorithmes efficaces pour r´ esoudre certains

probl` emes d’alg` ebre lin´ eaire exacte

(7)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Diversit´ e des probl` emes

A =

−289 236 79 −268

108 −33 −211 309

−489 104 −24 −25

308 99 −108 66

 , b =

−131 321 147 43

 .

solution sur Z 1009 solution sur Q solution sur Z

x =

 593 313 130 187

, x =

−9591197817 95078 131244

47539 2909895

665546 2909895

665546

, x =

−106495695463

−2208888459779

−4204431397194

−3069666048124

A peut ˆ etre creuse (seulement O(n) ´ el´ ements non nuls) probl` eme d’optimisation (emploi du temps) 3202 × 4048, ≈ 19000 coeff. non nuls.

Aujourd’hui, il existe des algorithmes efficaces pour r´ esoudre certains

probl` emes d’alg` ebre lin´ eaire exacte

(8)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Diversit´ e des probl` emes

A =

−289 236 79 −268

108 −33 −211 309

−489 104 −24 −25

308 99 −108 66

 , b =

−131 321 147 43

 .

solution sur Z 1009 solution sur Q solution sur Z

x =

 593 313 130 187

, x =

−9591197817 95078 131244

47539 2909895

665546 2909895

665546

, x =

−106495695463

−2208888459779

−4204431397194

−3069666048124

A peut ˆ etre creuse (seulement O(n) ´ el´ ements non nuls) probl` eme d’optimisation (emploi du temps) 3202 × 4048, ≈ 19000 coeff. non nuls.

Aujourd’hui, il existe des algorithmes efficaces pour r´ esoudre certains

probl` emes d’alg` ebre lin´ eaire exacte

(9)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

De r´ eelles attentes...

Les gains algorithmiques r´ ecents sont importants (gains lin´ eaires, algorithmes optimaux).

Des logiciels g´ en´ eralistes comme maple ou mathematica ne sont plus dominants.

Existence de biblioth` eques sp´ ecialis´ ees tr` es performantes :

I gmp : arithm´ etiques multipr´ ecisions (entiers, rationnels, flottants).

I ntl : arithm´ etiques des polynˆ omes, des corps finis.

I blas / lapack : alg` ebre lin´ eaire num´ erique.

algorithmes r´ ecents + biblioth` eques de calcul sp´ ecialis´ ees

⇒ calcul en alg` ebre lin´ eaire exacte de hautes performances.

(10)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

De r´ eelles attentes...

Les gains algorithmiques r´ ecents sont importants (gains lin´ eaires, algorithmes optimaux).

Des logiciels g´ en´ eralistes comme maple ou mathematica ne sont plus dominants.

Existence de biblioth` eques sp´ ecialis´ ees tr` es performantes :

I gmp : arithm´ etiques multipr´ ecisions (entiers, rationnels, flottants).

I ntl : arithm´ etiques des polynˆ omes, des corps finis.

I blas / lapack : alg` ebre lin´ eaire num´ erique.

algorithmes r´ ecents + biblioth` eques de calcul sp´ ecialis´ ees

⇒ calcul en alg` ebre lin´ eaire exacte de hautes performances.

(11)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

D´ eveloppement logiciel

Points cl´ es :

• Diversit´ e des composantes pour le calcul exact.

I arithm´ etiques :

corps finis, grands entiers, polynˆ omes, corps de fractions, extensions alg´ ebriques, ...

I algorithmiques :

m´ ethodes d’´ elimination, m´ ethodes it´ eratives, restes chinois, d´ eveloppements p-adiques, ...

• Meilleurs algorithmes souvent probabilistes (Monte Carlo, Las Vegas).

• Sp´ ecifications informatiques : repr´ esentation et typage des donn´ ees.

• Interaction avec des biblioth` eques sp´ ecialis´ ees.

(12)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

D´ eveloppement logiciel

Points cl´ es :

• Diversit´ e des composantes pour le calcul exact.

I arithm´ etiques :

corps finis, grands entiers, polynˆ omes, corps de fractions, extensions alg´ ebriques, ...

I algorithmiques :

m´ ethodes d’´ elimination, m´ ethodes it´ eratives, restes chinois, d´ eveloppements p-adiques, ...

• Meilleurs algorithmes souvent probabilistes (Monte Carlo, Las Vegas).

• Sp´ ecifications informatiques : repr´ esentation et typage des donn´ ees.

• Interaction avec des biblioth` eques sp´ ecialis´ ees.

(13)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

D´ eveloppement logiciel

Points cl´ es :

• Diversit´ e des composantes pour le calcul exact.

I arithm´ etiques :

corps finis, grands entiers, polynˆ omes, corps de fractions, extensions alg´ ebriques, ...

I algorithmiques :

m´ ethodes d’´ elimination, m´ ethodes it´ eratives, restes chinois, d´ eveloppements p-adiques, ...

• Meilleurs algorithmes souvent probabilistes (Monte Carlo, Las Vegas).

• Sp´ ecifications informatiques : repr´ esentation et typage des donn´ ees.

• Interaction avec des biblioth` eques sp´ ecialis´ ees.

(14)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

D´ eveloppement logiciel

Points cl´ es :

• Diversit´ e des composantes pour le calcul exact.

I arithm´ etiques :

corps finis, grands entiers, polynˆ omes, corps de fractions, extensions alg´ ebriques, ...

I algorithmiques :

m´ ethodes d’´ elimination, m´ ethodes it´ eratives, restes chinois, d´ eveloppements p-adiques, ...

• Meilleurs algorithmes souvent probabilistes (Monte Carlo, Las Vegas).

• Sp´ ecifications informatiques : repr´ esentation et typage des donn´ ees.

• Interaction avec des biblioth` eques sp´ ecialis´ ees.

(15)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

D´ eveloppement logiciel

Points cl´ es :

• Diversit´ e des composantes pour le calcul exact.

I arithm´ etiques :

corps finis, grands entiers, polynˆ omes, corps de fractions, extensions alg´ ebriques, ...

I algorithmiques :

m´ ethodes d’´ elimination, m´ ethodes it´ eratives, restes chinois, d´ eveloppements p-adiques, ...

• Meilleurs algorithmes souvent probabilistes (Monte Carlo, Las Vegas).

• Sp´ ecifications informatiques : repr´ esentation et typage des donn´ ees.

• Interaction avec des biblioth` eques sp´ ecialis´ ees.

(16)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

D´ eveloppement logiciel

Points cl´ es :

• Diversit´ e des composantes pour le calcul exact.

I arithm´ etiques :

corps finis, grands entiers, polynˆ omes, corps de fractions, extensions alg´ ebriques, ...

I algorithmiques :

m´ ethodes d’´ elimination, m´ ethodes it´ eratives, restes chinois, d´ eveloppements p-adiques, ...

• Meilleurs algorithmes souvent probabilistes (Monte Carlo, Las Vegas).

• Sp´ ecifications informatiques : repr´ esentation et typage des donn´ ees.

• Interaction avec des biblioth` eques sp´ ecialis´ ees.

(17)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Questions

Comment d´ evelopper une biblioth` eque de calcul de hautes performances en alg` ebre lin´ eaire exacte ?

Comment b´ en´ eficier des performances de biblioth` eques sp´ ecialis´ ees comme gmp , ntl ou blas ?

Quelle strat´ egie adopter pour profiter au mieux des ´ evolutions

futures dans le domaine ?

(18)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Plan de l’expos´ e

Projet linbox

Implantation g´ en´ erique des corps finis mod` ele de base et interface un exemple de ”plug-in”

Alg` ebre lin´ eaire dense sur un corps fini r´ eduction au produit de matrices paquetages fflas - ffpack performances

Syst` emes lin´ eaires diophantiens interface linbox pour la r´ esolution performances pour des syst` emes denses.

Conclusion et perspectives

(19)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

linbox en d´ etails

Projet international Canada-France-USA (NSF/CNRS).

I depuis 1997, 33 chercheurs = ⇒ alg` ebre lin´ eaire exacte

I biblioth` eque C++, licence GPL, 100.000 lignes de code, version d´ eveloppement 0.2.0 (juin 2004)

I site web : www.linalg.org Principaux d´ eveloppements :

I algorithmes (syst` emes lin´ eaires, formes normales, ...),

I matrices (boˆıtes noires, conteneurs),

I domaines de calcul (corps finis, entiers, rationnels),

I g´ en´ ericit´ e (plug&play).

Nos travaux :

recherche et implantation d’algorithmes,

d´ eveloppement, validation et maintenance de la biblioth` eque.

(20)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Solutions algorithmiques dans linbox

Sur les corps finis,

I Gauss par blocs (d´ eterministe) :

triangularisation, d´ eterminant, rang, inverse, syst` emes lin´ eaires, polynˆ omes minimal et caract´ eristique

I Elimination creuse (d´ ´ eterministe) : triangularisation, rang

I Krylov/Wiedemann [blocs], Lanczos [blocs] (probabliliste) : syst` emes lin´ eaires, polynˆ ome minimal, d´ eterminant, rang

Sur les entiers,

I Th´ eor` eme des restes chinois

I Forme de Smith

I Syst` emes lin´ eaires : solutions rationnelles, diophantiennes ;

certificat d’inconsistance, minimalit´ e.

(21)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Solutions algorithmiques dans linbox

Nos contributions

Sur les corps finis,

I Gauss par blocs (d´ eterministe) :

triangularisation, d´ eterminant, rang, inverse, syst` emes lin´ eaires, polynˆ omes minimal et caract´ eristique

I Elimination creuse (d´ ´ eterministe) : triangularisation, rang

I Krylov/Wiedemann [blocs], Lanczos [blocs] (probabliliste) : syst` emes lin´ eaires, polynˆ ome minimal, d´ eterminant, rang

Sur les entiers,

I Th´ eor` eme des restes chinois

I Forme de Smith

I Syst` emes lin´ eaires : solutions rationnelles, diophantiennes ;

certificat d’inconsistance, minimalit´ e.

(22)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

linbox en pratique...

• Challenge de Trefethen ” 100-Dollars, 100-Digit Challenge ” [SIAM 2002]

[Bornemann-Laurie-Wagon-Waldvogel] .

calculer A −1 (1, 1) avec A une matrice creuse 20000 × 20000.

A i,j =

i ` eme nb. premier si i = j

1 si |i − j| est une puissance de 2 0 sinon

⇒ solution num´ erique avec un maximum de pr´ ecision.

Solution exacte avec linbox (nb. rationnel de 100000 chiffres) [Dumas, Turner, Wan 2002-2004]

4 jours (parall` ele)

quotient de deux d´ eterminants 180 processeurs ≈ 2 ans CPU Wiedemann + CRT 96 PIII-735Mhz, 6 PIII-1Ghz

20 4 × 250Mhz Sun Ultra-450

solution Ax = [1, 0, . . . , 0] T 12.5 jours (s´ equentiel)

p-adique (dense) + reconstruction Sun Sunfire 750Mhz Ultrasparc

solution Ax = [1, 0, . . . , 0] T 25 minutes (s´ equentiel)

semi-num´ erique ( blas / lapack ) Pentium 1.9Ghz

(23)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

linbox en pratique...

• Challenge de Trefethen ” 100-Dollars, 100-Digit Challenge ” [SIAM 2002]

[Bornemann-Laurie-Wagon-Waldvogel] .

calculer A −1 (1, 1) avec A une matrice creuse 20000 × 20000.

A i,j =

i ` eme nb. premier si i = j

1 si |i − j| est une puissance de 2 0 sinon

⇒ solution num´ erique avec un maximum de pr´ ecision.

Solution exacte avec linbox (nb. rationnel de 100000 chiffres) [Dumas, Turner, Wan 2002-2004]

4 jours (parall` ele)

quotient de deux d´ eterminants 180 processeurs ≈ 2 ans CPU Wiedemann + CRT 96 PIII-735Mhz, 6 PIII-1Ghz

20 4 × 250Mhz Sun Ultra-450

solution Ax = [1, 0, . . . , 0] T 12.5 jours (s´ equentiel)

p-adique (dense) + reconstruction Sun Sunfire 750Mhz Ultrasparc

solution Ax = [1, 0, . . . , 0] T 25 minutes (s´ equentiel)

semi-num´ erique ( blas / lapack ) Pentium 1.9Ghz

(24)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

La biblioth` eque linbox : principes de g´ en´ ericit´ e

Trois niveaux d’implantation (r´ eutilisation et reconfiguration)

boites noires matrices matrices

vecteurs algorithmes

paramètres coefficients corps finis

anneaux

D´ efinition par des classes (dissociation donn´ ees/manipulation)

G´ en´ ericit´ e : mod` eles de base et template.

⇒ int´ egration de codes externes via des adaptateurs (wrapper) Alternative au polymorphisme statique (arch´ etype ≈ interface Java) :

I fournit une instance de code compil´ e,

I contrˆ ole l’explosion de code,

I utilisation optionnelle.

(25)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

La biblioth` eque linbox : principes de g´ en´ ericit´ e

Trois niveaux d’implantation (r´ eutilisation et reconfiguration)

boites noires matrices matrices

vecteurs algorithmes

paramètres coefficients corps finis

anneaux

D´ efinition par des classes (dissociation donn´ ees/manipulation) G´ en´ ericit´ e : mod` eles de base et template.

⇒ int´ egration de codes externes via des adaptateurs (wrapper) Alternative au polymorphisme statique

(arch´ etype ≈ interface Java) :

I fournit une instance de code compil´ e,

I contrˆ ole l’explosion de code,

I utilisation optionnelle.

(26)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

La biblioth` eque linbox : principes de g´ en´ ericit´ e

Trois niveaux d’implantation (r´ eutilisation et reconfiguration)

boites noires matrices matrices

vecteurs algorithmes

paramètres coefficients corps finis

anneaux

D´ efinition par des classes (dissociation donn´ ees/manipulation) G´ en´ ericit´ e : mod` eles de base et template.

⇒ int´ egration de codes externes via des adaptateurs (wrapper) Alternative au polymorphisme statique (arch´ etype ≈ interface Java) :

I fournit une instance de code compil´ e,

I contrˆ ole l’explosion de code,

I utilisation optionnelle.

(27)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Projet linbox

Implantation g´ en´ erique des corps finis mod` ele de base et interface un exemple de ”plug-in”

Alg` ebre lin´ eaire dense sur un corps fini r´ eduction au produit de matrices paquetages fflas - ffpack performances

Syst` emes lin´ eaires diophantiens interface linbox pour la r´ esolution performances pour des syst` emes denses.

Conclusion et perspectives

(28)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Structure des corps finis

Corps finis ⇔ Domaines de calcul.

I ´ el´ ement : repr´ esentation (structure des donn´ ees),

I domaine : m´ ethode de calcul (lois math´ ematiques).

El´ ´ ements : aucune information sur le corps (gain m´ emoire).

Le domaine encapsule les types (´ el´ ements, g´ en´ erateurs al´ eatoires).

M´ ethodes du domaine : affectation, ´ egalit´ e, arithm´ etique, IO.

x = y : F.assign(x,y) x == y : F.areEqual(x,y) x = y + z : F.add(x,y,z) cout<< x : F.write(cout,x)

La plupart des implantations sont externes ` a la biblioth` eque

→ int´ egration par des wrappers

(29)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

linbox : implantations de corps finis.

Diverses biblioth` eques :

I givaro ( www-apache.imag.fr/software/givaro/ ),

I lidia ( www.informatik.tu-darmstadt.de/TI/LiDIA/ ),

I ntl ( www.shoup.net/ntl/ ),

I gmp ( www.swox.com/gmp/ ),

ou des implantations propres ` a linbox . Divers corps finis :

I corps premiers Z p ,

I extensions alg´ ebriques GF(2 k ), GF(p k ).

Utilisation maximale des pr´ ecisions machines

⇒ meilleures performances.

(30)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Abstraction du domaine de calcul via une interface g´ en´ erique : l’arch´ etype [Kaltofen, linbox ]

LinBox concrets

Corps finis

Bibliothèques externes

Wrappers Archetype

objet compilable

Abstract

Envelope classe virtuelle

classe template héritage

instanciation pointeur

conforme branchement

Interfaces des Corps Finis

Avantages :

I dissociation de l’interface dans les implantations

I gestion automatique des allocations de donn´ ees

I r´ eutilisation des codes g´ en´ eriques template

I g´ en´ ericit´ e des codes compil´ es ”plug-in”

(31)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Projet linbox

Implantation g´ en´ erique des corps finis mod` ele de base et interface un exemple de ”plug-in”

Alg` ebre lin´ eaire dense sur un corps fini r´ eduction au produit de matrices paquetages fflas - ffpack performances

Syst` emes lin´ eaires diophantiens interface linbox pour la r´ esolution performances pour des syst` emes denses.

Conclusion et perspectives

(32)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Des performances non sacrifi´ ees

Produit scalaire (ordre 1000)

implantation corps boucle direct wrapper arch´ etype GivaroZpz<Std32> Z 1009 10.000 0.41s 0.42s 0.79s

100.000 4.00s 4.01s 7.41s

NTL zz p Z 1009 10.000 1.97s 2.11s 2.30s

100.000 19.35s 20.97s 22.77s NTL ZZ pE GF(3 7 ) 10.000 272.11s 279.23s 280.31s

Coˆ ut de l’arch´ etype quasi constant

⇒ impact faible sur des calculs coˆ uteux (e.g. extension alg´ ebrique) Concept arch´ etype, domaine, wrapper valide pour les autres composantes de linbox (boˆıtes noires, matrices,...).

linbox : compromis performance/g´ en´ ericit´ e tr` es acceptable...

(33)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Projet linbox

Implantation g´ en´ erique des corps finis mod` ele de base et interface un exemple de ”plug-in”

Alg` ebre lin´ eaire dense sur un corps fini r´ eduction au produit de matrices paquetages fflas - ffpack performances

Syst` emes lin´ eaires diophantiens interface linbox pour la r´ esolution performances pour des syst` emes denses.

Conclusion et perspectives

(34)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Algorithmique

Depuis 1969, multiplication de matrices d’ordre n en moins de O(n 3 ) op´ erations arithm´ etiques.

[Strassen 1969] : O(n 2.81 ).

...

[Coppersmith-Winograd 1990] : O(n 2.37 )

Les meilleurs algorithmes se r´ eduisent ` a la multiplication de matrices (complexit´ e O(n ω )).

I inversion, syst` emes lin´ eaires, d´ eterminant [Strassen 1969]

I extension aux matrices non g´ en´ eriques [Bunch-Hopcroft 1974]

I matrices singuli` eres : lqup , rang, noyau [Ibarra-Moran-Hui 1982]

la multiplication de matrices est une op´ eration centrale

(35)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Algorithmique

Depuis 1969, multiplication de matrices d’ordre n en moins de O(n 3 ) op´ erations arithm´ etiques.

[Strassen 1969] : O(n 2.81 ).

...

[Coppersmith-Winograd 1990] : O(n 2.37 )

Les meilleurs algorithmes se r´ eduisent ` a la multiplication de matrices (complexit´ e O(n ω )).

I inversion, syst` emes lin´ eaires, d´ eterminant [Strassen 1969]

I extension aux matrices non g´ en´ eriques [Bunch-Hopcroft 1974]

I matrices singuli` eres : lqup , rang, noyau [Ibarra-Moran-Hui 1982]

la multiplication de matrices est une op´ eration centrale

(36)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Biblioth` eques blas

Calculs num´ eriques pour les op´ erations de base en alg` ebre lin´ eaire

I produit matrice-vecteur,

I r´ esolution de syst` emes lin´ eaires triangulaires,

I produit de matrices,

I ...

Collection de routines Fortran/C optimis´ ees.

tire partie de la hierarchisation m´ emoire des processeurs.

→ implantations tr` es performantes

Est-il possible de r´ eutiliser efficacement les routines blas pour des

calculs sur les corps finis ?

(37)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Biblioth` eques blas

Calculs num´ eriques pour les op´ erations de base en alg` ebre lin´ eaire

I produit matrice-vecteur,

I r´ esolution de syst` emes lin´ eaires triangulaires,

I produit de matrices,

I ...

Collection de routines Fortran/C optimis´ ees.

tire partie de la hierarchisation m´ emoire des processeurs.

→ implantations tr` es performantes

Est-il possible de r´ eutiliser efficacement les routines blas pour des

calculs sur les corps finis ?

(38)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Multiplication de matrices sur un corps finis

Multiplication de matrices sur Z p [Dumas-Gautier-Pernet 2002]

le calcul num´ erique doit rester exact : n(p − 1) 2 < 2 53

• conversion corps premier ⇒ nombres flottants (double)

• multiplication blas (routine dgemm)

• conversion nombres flottants ⇒ corps premier

Am´ elioration :

corps premiers en nombres flottants ( Modular<double> )

⇒ 69s pour des matrices d’ordre 5000 sur Z 101

temps de calcul tr` es proches de ceux de la biblioth` eque blas .

(39)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Multiplication de matrices sur un corps finis

Multiplication de matrices sur Z p [Dumas-Gautier-Pernet 2002]

le calcul num´ erique doit rester exact : n(p − 1) 2 < 2 53

• conversion corps premier ⇒ nombres flottants (double)

• multiplication blas (routine dgemm)

• r´ eduction modulo

Am´ elioration :

corps premiers en nombres flottants ( Modular<double> )

⇒ 69s pour des matrices d’ordre 5000 sur Z 101

temps de calcul tr` es proches de ceux de la biblioth` eque blas .

(40)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Syst` emes lin´ eaires triangulaires matriciels

Etant donn´ ´ ees A, B ∈ Z n×n p , A triangulaire.

Calculer X ∈ Z n×n p tel que AX = B.

Conditions d’utilision des blas sur Z p :

I les divisions doivent ˆ etre exactes.

I aucun d´ epassement de capacit´ e (max= 53 bits).

I utilisation limit´ ee (e.g. p = 2 → n ≤ 55).

Solution :

algorithme r´ ecursif par blocs + seuil de changement

⇒ diminution des dimensions , produit de matrices Deux b´ en´ efices apport´ es par la biblioth` eque blas :

produit de matrices → appels r´ ecursifs

r´ esolution num´ erique → derniers niveaux r´ ecursifs

(41)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Syst` emes lin´ eaires triangulaires matriciels

Etant donn´ ´ ees A, B ∈ Z n×n p , A triangulaire.

Calculer X ∈ Z n×n p tel que AX = B.

Conditions d’utilision des blas sur Z p :

I les divisions doivent ˆ etre exactes.

I aucun d´ epassement de capacit´ e (max= 53 bits).

I utilisation limit´ ee (e.g. p = 2 → n ≤ 55).

Solution :

algorithme r´ ecursif par blocs + seuil de changement

⇒ diminution des dimensions , produit de matrices Deux b´ en´ efices apport´ es par la biblioth` eque blas :

produit de matrices → appels r´ ecursifs

r´ esolution num´ erique → derniers niveaux r´ ecursifs

(42)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Implantations fflas - ffpack 1

Collaboration avec J-G. Dumas et C. Pernet (LMC-IMAG)

dépendance implantation bibliothèque BLAS

LQUP/LSP

RANG DETERMINANT INVERSE

FFPACK FFLAS

FGEMV FTRSV

FGEMM FTRSM FTRMM

I routines C++ g´ en´ eriques (corps finis).

I interface ` a la blas (tableau de donn´ ees, stride).

I minimisation espace m´ emoire (calcul en place).

I d´ ependances aux blas et au produit de matrices fgemm.

am´ eliorations blas et fgemm ⇒ meilleures routines

1 J.-G. Dumas, P. Giorgi and C. Pernet. FFPACK : Finite Field Linear Algebra

Package. In Proceedings of the 2004 International Symposium on Symbolic and Algebraic

Computation, ACM Press New York.

(43)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Implantations fflas - ffpack 1

Collaboration avec J-G. Dumas et C. Pernet (LMC-IMAG)

dépendance implantation bibliothèque BLAS

LQUP/LSP

RANG DETERMINANT INVERSE

FFPACK FFLAS

FGEMV FTRSV

FGEMM FTRSM FTRMM

I routines C++ g´ en´ eriques (corps finis).

I interface ` a la blas (tableau de donn´ ees, stride).

I minimisation espace m´ emoire (calcul en place).

I d´ ependances aux blas et au produit de matrices fgemm.

am´ eliorations blas et fgemm ⇒ meilleures routines

1 J.-G. Dumas, P. Giorgi and C. Pernet. FFPACK : Finite Field Linear Algebra

Package. In Proceedings of the 2004 International Symposium on Symbolic and Algebraic

Computation, ACM Press New York.

(44)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Exemple : code pour l’inversion

Inverse(A) :

d´ ecomposer A = LUP;

calculer T = L −1 ; r´ esoudre UX = T ; retourner XP t ;

template <class Field>

static typename Field::Element*

Invert(const Field &F, const size t N,

typename Field::Element * A, const size t lda, typename Field::Element * X, const size t ldx, int &nullity)

{

typename Field::Element one ; F.init(one,1) ;

size t *P = new size t[N] ; size t *Q = new size t[N] ;

nullity = N - LUdivine(F, FflasNonUnit, N, N, A, lda, P, FflapackLQUP, Q) ; delete[] Q ;

if (nullity > 0) return NULL ; else {

invL(F, N, A, lda, X, ldx) ;

ftrsm(F, FflasLeft, FflasUpper, FflasNoTrans, FflasNonUnit, N, N, one, A, lda , X, ldx) ; applyP(F, FflasLeft, FflasTrans, N, 0, N, X, ldx, P) ;

delete[] P ;

return X ;

}

}

(45)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Une interface d´ edi´ ee aux non experts...

BlasDomain BlasMatrix

FFLAS BLAS FFPACK LQUPMatrix

données triangularisation

calculs

est utilisé par gestion

Field F(p) ;

BlasMatrix<Field::Element> A(n,n), B(n,n), X(n,n) ;

TriangularBlasMatrix<Field::Element> L(n,n,BlasTag::low,BlasTag::unit) ; std::vector<Field::Element> b(n), x(n) ;

...

BlasMatrixDomain<Field> BMD(F) ; BMD.left solve(X,A,B) ; // AX=B BMD.left solve(x,A,b) ; // Ax=b BMD.left solve(X,L,B) ; // LX=B BMD.left solve(x,L,b) ; // Lx=b

BMD.right solve(X,A,B) ; // XA=B BMD.right solve(x,A,b) ; // xA=b BMD.right solve(X,L,B) ; // XL=B BMD.right solve(x,L,b) ; // xL=b BMD.mul(X,A,B) ; // X=A*B

BMD.mul(x,A,b) ; // x=A*b BMD.mul(X,L,B) ; // X=L*B int r = BMD.rank(A) ; int r = BMD.rankin(A) ; Element d = BMD.det(A) ; Element d = BMD.detin(A) ;

// r=rang(A)

// r=rang(A), calcul en place // d=d´ eterminant(A)

// d=d´ eterminant(A), calcul en place

(46)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Projet linbox

Implantation g´ en´ erique des corps finis mod` ele de base et interface un exemple de ”plug-in”

Alg` ebre lin´ eaire dense sur un corps fini r´ eduction au produit de matrices paquetages fflas - ffpack performances

Syst` emes lin´ eaires diophantiens interface linbox pour la r´ esolution performances pour des syst` emes denses.

Conclusion et perspectives

(47)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Performances (Pentium Xeon-2.66 Ghz, 1Go RAM)

FFLAS/FFPACK BLAS/LAPACK

101 multiplication

factorisation LU inversion multiplication

factorisation LU inversion

Comparaisons routines numériques / routines exactes Z

0 20 40 60

Temps en secondes

120 100 80

Dimension des matrices

1000 2000 3000 4000 5000

0

(48)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Performances (Pentium Xeon-2.66 Ghz, 1Go RAM)

n = 400 surcoût 19%

surcoût n = 1000 surcoût 10%

n = 700 14%

n = 2000 surcoût 0%

n = 3000 surcoût 0%

n = 5000 surcoût 0%

FFLAS/FFPACK BLAS/LAPACK

101

0 20 40 60

Temps en secondes

120 100 80

Dimension des matrices

1000 2000 3000 4000 5000

Comparaisons routines numériques / routines exactes Z

0

multiplication

multiplication

(49)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Performances (Pentium Xeon-2.66 Ghz, 1Go RAM)

BLAS/LAPACK FFLAS/FFPACK

n= 400 surcoût 134%

n = 700 surcoût 86%

n = 1000 surcoût

75% n = 2000

surcoût 50%

n = 3000 surcoût

37% n = 5000

surcoût 31%

101

0 20 40 60

Temps en secondes

120 100 80

Dimension des matrices

1000 2000 3000 4000 5000

Comparaisons routines numériques / routines exactes Z

0

factorisation LU factorisation LU

(50)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Performances (Pentium Xeon-2.66 Ghz, 1Go RAM)

BLAS/LAPACK FFLAS/FFPACK

n= 400 surcoût

n = 700 surcoût

n = 1000 surcoût

n = 2000 surcoût

n = 3000 surcoût

58%

52%

31%

18%

122%

101

−20%

n = 5000

0 20 40 60

Temps en secondes

120 100 80

Dimension des matrices

1000 2000 3000 4000 5000

Comparaisons routines numériques / routines exactes Z

0

inversion inversion

(51)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Comportement pratique des r´ eductions th´ eoriques

• coˆ ut th´ eorique LQUP/produit matrices (ω = 3)⇒ 1/3

n 400 700 1000 2000 3000 5000

LQUP 0.04s 0.20s 0.49s 2.85s 8.22s 34.13s fgemm 0.04s 0.24s 0.66s 4.44s 14.96s 69.19s

Ratio 1 0.83 0.74 0.64 0.55 0.49

• coˆ ut th´ eorique inversion/produit matrices (ω = 3) ⇒ 1

n 400 700 1000 2000 3000 5000

inv. 0.14s 0.53s 1.34s 7.93s 22.94s 95.19s fgemm 0.04s 0.24s 0.66s 4.44s 14.96s 69.19s

Ratio 3.5 2.2 2.03 1.78 1.53 1.37

Les ratios pratiques tendent vers les ratios th´ eoriques.

linbox : calcul de hautes performances...

(52)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Comportement pratique des r´ eductions th´ eoriques

• coˆ ut th´ eorique LQUP/produit matrices (ω = 3)⇒ 1/3

n 400 700 1000 2000 3000 5000

LQUP 0.04s 0.20s 0.49s 2.85s 8.22s 34.13s fgemm 0.04s 0.24s 0.66s 4.44s 14.96s 69.19s

Ratio 1 0.83 0.74 0.64 0.55 0.49

• coˆ ut th´ eorique inversion/produit matrices (ω = 3) ⇒ 1

n 400 700 1000 2000 3000 5000

inv. 0.14s 0.53s 1.34s 7.93s 22.94s 95.19s fgemm 0.04s 0.24s 0.66s 4.44s 14.96s 69.19s

Ratio 3.5 2.2 2.03 1.78 1.53 1.37

Les ratios pratiques tendent vers les ratios th´ eoriques.

linbox : calcul de hautes performances...

(53)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Projet linbox

Implantation g´ en´ erique des corps finis mod` ele de base et interface un exemple de ”plug-in”

Alg` ebre lin´ eaire dense sur un corps fini r´ eduction au produit de matrices paquetages fflas - ffpack performances

Syst` emes lin´ eaires diophantiens interface linbox pour la r´ esolution performances pour des syst` emes denses.

Conclusion et perspectives

(54)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Motivations

Probl` eme repr´ esentatif de l’alg` ebre lin´ eaire exacte :

I plusieurs niveaux de calcul (corps finis, entiers, rationnels),

I plusieurs m´ ethodes suivant le type du syst` eme (dense, structur´ e, creux),

I gestion de la singularit´ e des matrices, test d’inconsistance,

I approches probabilistes et nombreuses heuristiques de calcul.

⇒ Validation des briques de base d´ evelopp´ ees dans linbox .

(55)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Motivations

Probl` eme repr´ esentatif de l’alg` ebre lin´ eaire exacte :

I plusieurs niveaux de calcul (corps finis, entiers, rationnels),

I plusieurs m´ ethodes suivant le type du syst` eme (dense, structur´ e, creux),

I gestion de la singularit´ e des matrices, test d’inconsistance,

I approches probabilistes et nombreuses heuristiques de calcul.

⇒ Validation des briques de base d´ evelopp´ ees dans linbox .

(56)

Algorithmique et arithm´ etique pour l’alg` ebre lin´ eaire exacte ` a partir de la biblioth` eque linbox Pascal Giorgi

Projet linbox

Corps finis arch´ etype plug-in Alg` ebre lin´ eaire dense sur un corps fini

r´ eduction prod. matr fflas-ffpack performances Syst` emes lin´ eaires diophantiens

interface linbox performances Conclusion et perspectives

Probl` eme

Etant donn´ ´ es A ∈ Z m×n , b ∈ Z m .

I trouver x ∈ Z n tel que Ax = b,

I certifier qu’il n’existe pas de solution diophantienne.

• Approche classique : formes normales (Smith ou Hermite)

pas satisfaisante ≈ n 4 op´ erations binaires.

solutions rationnelles en ≈ n 3 log n [Dixon 1982, Wiedemann 1986]

• Approche probabiliste ≈ (n 3 log n) × log n [Giesbrecht 1997]

⇒ combiner des solutions rationnelles

De nombreuses ´ etudes algorithmiques :

[Giesbrecht, Lobo, Mulders, Saunders, Storjohann 1997-2004]

, → syst` emes creux/denses, inconsistance sur Z , solution minimale

Références

Documents relatifs

D´ emontrer que les projecteurs sur les sous-espaces propres g´ en´ eralis´ es de f (i.e. les projecteurs spectraux) sont des polynˆ omes en f. c) Enoncer le th´ ´ eor` eme

Quelle quantit´e de chacun de ces deux alliages devez vous fondre et m´elanger pour obtenir 100g d’un alliage contenant 50%

[r]

Donner les coordonn´ees du vecteur (x, y) dans cette

10.4.2. Soit E un espace vectoriel de dimension finie. D´ emontrer qu’il existe une base orthonormale de E dans laquelle la matrice de u est triangulaire. Soient E un espace

Un endomorphisme u est trigonalisable si et seulement s’il existe une base dans laquelle la matrice de u est triangulaire sup´ erieure..

Les ´el´ements inversibles d’un anneau forment un groupe multiplicatif.. Tout morphisme de corps

´ Ecrire la matrice de ϕ dans la base pr´ ec´ edente, donner la trace, le d´ eterminant et le polynˆ ome caract´ eristique de ϕ.. Donner son polynˆ ome caract´ eristique et