Babel : la bibliothèque BLAS

Description

BLAS est un ensemble de sous-programmes Fortran assurant des opérations vecteur-vecteur (niveau 1), matrice-vecteur (niveau 2), matrices-matrices (niveau 3).

Utilisation

Édition de liens Mode numérique Nom des sous-programmes Mode d'adressage
$ module load blas $ mpixlf90_r call_blas.f I4S4 S… / C… 32
I4D8 D… / Z…

Remarques

  • BLAS est incluse dans la bibliothèque ESSL.
  • On peut avoir accès à des sous-programmes BLAS parallélisés en faisant l'édition de liens avec la bibliothèque ESSL parallèle SMP.

Exemple

$ cat blas.f90

...
INTEGER            :: n, incx, incy
REAL               :: alpha
REAL, DIMENSION(n) :: x, y
...
!  y = alpha*x + y
CALL saxpy(n, alpha, x, incx, y, incy)

Compilation et édition de liens :

  • Mode numérique I4S4 :
  $ module load blas
  $ mpixlf90_r blas.f90
  • Mode numérique I4D8 (sans modifier le code) :
  $ module load blas
  $ mpixlf90_r -qrealsize=8 -qsuffix=cpp=f -WF,-Dsaxpy=daxpy blas.f90
  • L'option -qrealsize change le sous-type (KIND) par défaut des réels et des complexes : REAL → REAL(kind=8).
  • L'option -D indique au préprocesseur cpp qu'il doit faire la transformation saxpy → daxpy dans le source.

Documentation