LAPACK
# LAPACK

LAPACK (pour Linear Algebra Package) est une bibliothèque logicielle écrite en Fortran, dédiée comme son nom l'indique à l'algèbre linéaire numérique. Elle a été développée initialement par l'université du Tennessee, le Courant Institute of Mathematical Sciences, le Numerical Algorithms Group, l'université Rice et les laboratoires d'Argonne et Oak Ridge.

Cette bibliothèque fournit notamment des fonctions pour la résolution de systèmes d'équations linéaires, le calcul de valeurs propres et les décompositions de matrices (LU, QR, SVD, Cholesky).

LAPACK dépend de la bibliothèque BLAS (Basic Linear Algebra Subprograms). Elle est disponible sur Netlib.

## Objectifs

L'objectif premier de LAPACK est de rendre l'EISPACK plus facilement utilisable et ainsi être plus largement utilisée. De plus, elle permet d'utiliser la bibliothèque LINPACK. Elle fonctionne relativement efficacement avec un ordinateur ayant une mémoire partagée et utilisant un processeur vectoriel. Sur certaines machines, LINPACK et EISPACK sont malheureusement inefficaces car leurs accès à la mémoire ne respectent pas la hiérarchie de mémoire des ordinateurs. En effet, les machines prennent trop de temps pour déplacer les données au lieu de faire des calculs en virgule flottante.

## Résolution du problème avec les processeurs multi-cœurs

LAPACK a résolu le problème des processeurs multi-cœurs en réorganisant les algorithmes à utiliser pour les opérations matricielles par blocs, comme la multiplication. Ces dernières peuvent être optimisées pour chaque architecture afin de tenir compte de la hiérarchie mémoire de chaque machine. Ainsi, elle atteint un rendement élevé sur les machines modernes, la plupart étant justement multi-cœurs.

