• Aucun résultat trouvé

LinBox: Pr´esentation g´en´erale et Solutions g´en´eriques pour l’alg`ebre lin´eaire Projet LinBox

N/A
N/A
Protected

Academic year: 2022

Partager "LinBox: Pr´esentation g´en´erale et Solutions g´en´eriques pour l’alg`ebre lin´eaire Projet LinBox"

Copied!
21
0
0

Texte intégral

(1)

Projet LinBox

Pascal Giorgi

Laboratoire de l’informatique du parall´elisme ENS Lyon - CNRS - INRIA

(2)

• Projet LinBox :

- 29 chercheurs ( USA, Canada, France) .

E.Kaltofen [NCSU], D.Saunders [Delaware], M.Giesbrecht [Waterloo], G.Villard [ENSL]. - Financ´e par NSF, NSERC, CNRS et ENSL.

- Site web: http://www.linalg.org et http://www.linalg.net

• Biblioth`eque C++, avec licence GPL, (40000 lignes de code).

Principaux int´erˆets:







- Alg`ebre Lin´eaire.

- Matrices boˆıtes noires.

- G´en´ericit´e sur les domaines de calcul.

- Solutions pour diff´erents probl`emes d’alg`ebre lin´eaire.

(3)

Plan de l’expos´e

I) Pr´esentation de la biblioth`eque LinBox.

II) G´en´ericit´e Algorithmes/Interfaces.

III) Polynˆome minimal: implantation g´en´erique.

(4)

I) Pr´ esentation de la biblioth` eque LinBox

(5)

Structure de LinBox

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

Algorithms Inputs Black box Plug in

Matrices

Coefficient Domains

• Matrices boˆıtes noires & domaines de coefficients respectent leurs interfaces.

• Interface= classe C++ virtuelle, template archetype:







- d´efinit l’interface commune aux objets.

- fournit une instance de code compil´e.

- contrˆole l’explosion de code.

- utilisation optionnelle.

(6)

Structure des corps finis (domaine des coefficients)

• Encapsulation des types :El´ements, G´en´erateur al´eatoire d’´el´ements.

• El´ements: aucune information sur le corps d’appartenance.

• Corps: m´ethodes affectation, ´egalit´e, arithm´etique, IO pour les ´el´ements:

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)

• Int´egration : LinBox directement, biblioth`eques externes (au travers de wrappers).

(7)

Structure des matrices boˆıtes noires (Blackbox)

x

A F

Fm Black Box A

y y Fn

n m

• Mod`ele des Blackbox param´etr´e par une classe de vecteurs (domaine d’application).

• Domaine de calcul pass´e comme param`etre ou specifi´e comme attribut.

• Seule l’application `a un vecteur est autoris´ee :

x = Ay : A.apply(x,y)

x = ATy : A.applyTranspose(x,y)

• R´ecup´eration des dimensions de la matrice:

A.rowdim() A.coldim()

(8)

Algorithme dans LinBox

• Bas´es sur des corps finis :

∗ Algorithmes probabilistes et heuristiques (V´erification, Las-Vegas, Monte-Carlo).

∗ Polynˆome minimal (Wiedemann/Lanczos, m´ethodes par blocs).

∗ Pr´econditionnement (Rang , D´eterminant).

∗ Comparaison avec l’´elimination de Gauss.

(9)

• M´ethodes disponibles pour les nombres rationnels et les entiers:

∗ Th´eor`eme des restes chinois avec les corps finis.

∗ Reconstruction P-adique.

∗ Forme normale de Smith (GAP package).

∗ Syst`emes lin´eaires diophantiens.

• Implantations disponibles:

∗ Arithm´etique sp´ecialis´ee des corps finis (extensions, tables, polynomiales).

∗ Solutions :











- Syst`eme lin´eaire.

- Rang.

- D´eterminant.

- (Polynˆome caract´eristique).

- Polynˆome minimal.

∗ Conditionneurs (Toeplitz, butterfly, creuse, diagonale).

∗ Formes normales de matrices.

(10)

II) G´ en´ ericit´ e Algorithmes/Interfaces

(11)

Int´erˆets de la g´en´ericit´e ?

• Utilisation de biblioth`eques externes efficaces (int´egration facile)

• Evolution dynamique de la biblioth`eque

• Modularit´e au niveau des solutions propos´ees

Performances pr´eserv´ees !

(12)

Quelle g´en´ericit´e ?

• Corps Finis : Op´erations arithm´etiques de base

• Vecteurs : Acc`es aux donn´ees (interface= STL)

• BlackBox : Produits matrices-vecteurs

• Matrices : Op´erations de base + ...

• Algorithmes : Objets

 

 

 

Matrices

BlackBox

Vecteurs

Corps Finis

(13)

Interfaces des Corps Finis

Timings for different LinBox field levels (arith. op)

Library Z/pZ loop Directly Wrapper

NTL::ZZ p 1978146594666 100.000 0.24 s 0.24 s

// // 1.000.000 2.45 s 2.45 s

NTL::zz p 553 300.000 0.16 s 0.17 s

• Interface:

objet `a part enti`ere

validations des corps finis

´evite la r´e´ecriture (template)

LinBox Bibliothèques

Externes

Directement Wrappers

Instanciation Respect

objet compilable

Corps finis corps finis Interface des

(14)

Interfaces des BlackBox

• Interface: purement virtuelle

• Param´etr´ee par un type de vecteur (compatible STL)

• Vecteurs: d´efinis sur un type d’´el´ement

• LinBox fournit 3 types de vecteurs : - Dense vector

- Sparse sequence vector - Sparse map vector

Blackbox

Héritage Respect

objet virtuel

Interface des

LinBox Bibliothèques

Externes

Wrappers Directement

Blackbox

Type Vecteurs

Type Vecteurs Type

Corps

(15)

LinBox: Implantation g´en´erique des Algorithmes

Instanciation héritage

Bibliothèques

Externes LinBox

Blackbox Interface Algorithmes

Corps Finis Interface

Type Type

Vecteurs

Corps Vecteurs

compatibles STL

(16)

III) Polynˆ ome minimal : implantation g´ en´ erique

(17)

Calcul du polynˆ ome minimal.

Approche Wiedemann pour une matrice A ∈ Kn×n :

• Etape I: Calcul de la suite S = {UAiV}0≤i≤2n, U et V vecteurs aleatoires.

• Etape II: Calcul de G(x) = polynˆome g´en´erateur de S (Berlekamp/Massey).

• Polynˆome minimal = polynˆome miroir de G(x) (forte probabilit´e).

G´en´ericit´e :

Etape II: Op´erations de base sur les ´el´ements de K.

Etape I: Produits Matrice×Vecteur (Blackbox).

(18)

Polynˆ ome minimal par blocs

Mˆeme approche que pour le cas scalaire.

• Etape I: Calcul de la suite S = {UAiV}0≤i≤N, U ∈ Kp×n et V ∈ Kn×q des blocs vectoriel al´eatoires.

• Etape II: Calcul de G(x) = polynˆome matriciel g´en´erateur de S.

• Polynˆome minimal = polynˆome miroir de G(x) (forte probabilit´e).

G´en´ericit´e:

- Etape II: Op´erations sur des matrices.

Probl´ematique:

- Etape I: Produits Matrice×Bloc vectoriel, Bloc vectoriel×Bloc vectoriel (probl`eme g´en´ericit´e/efficacit´e).

(19)

Solutions: Approche Blackbox (parall´elisme)

Soient Ai une Blackbox et Si une matrice.

• Version 1 (basique):

U, V blocs vectoriels (type vecteur de vecteurs).

V = AiV : produits Blackbox-vecteur.

Si = UW : produits Vecteurs×Vecteurs + construction matrice.

• Version 2 (rapide):

U, V matrices (extraction colonne)+ synchronisation avec les vecteurs de A.

V = AiV : produits Blackbox×Colonne.

Si = UW : produit de matrices.

(20)

Solutions: Approche Matbox (produit de matrices rapide)

• Matbox = extension des Blackbox aux matrices :

→ Seule l’application `a une matrice est autoris´ee.

• Soient Ai une Matbox et U, V,Si des matrices.

V = AiV : produit Matbox-matrice.

Si = UW : produit de matrices.

(21)

Conclusion

• LinBox: r´eponse `a une demande des utilisateurs.

• Traitement sp´ecifique de probl`eme concret (forme de Smith, Trefethen).

• La g´en´ericit´e dans LinBox est fortement d´efinie par les interfaces.

Perspective

• Polynˆome minimal par blocs: Comparaison avec d’autres implantations (ex:

E.Thom´e).

• Validaton du mod`ele matriciel.

• Interfaces g´en´eriques (projet Roxane).

Références

Documents relatifs

Poursuite de l’analyse macro´ economie d´ ebut´ ee en premi` ere ann´ ee, ` a travers l’´ etude de mod` eles de r´ ef´ erence.. A la fin du semestre, vous

[Indication : quelles applications lin´eaires du plan connaissez-vous en plus des rotations ?...] Rappelez- vous que la question de d´epart ´etait matricielle, on souhaite donc

Le proc´ed´e de Gram-Schmidt nous assure l’existence d’une base orthonormale pour tout espace vectoriel de dimension finie muni d’un produit scalaire.. Nous pouvons par

Il s’agit de montrer qu’ils sont premiers entre eux dans K[X], c’est-` a-dire que leurs seuls diviseurs communs dans K[X ] sont les constantes (´ el´ ements de K).. Appliquons

2.5.1 Proposition et d´ efinition. Simple v´erification, laiss´ee au lecteur. Le premier produit est dans H puisque H est un sous-groupe, et le second est dans K puisque K est

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

public Node(IState state, Node parent, String action, int costChemin, int depth) {}. public Node(IState

Cette matrice est diagonalisable dans une base orthonorm´ ee B ; cela signifie qu’il existe une matrice orthogonale P telle que P −1 BP soit diagonale... D´ efinition