Babel : la bibliothèque ESSL

Description

ESSL est la bibliothèque scientifique IBM, optimisée pour les processeurs PowerPC 450D. Elle fournit un ensemble de sous-programmes séquentiels et quelques sous-programmes parallèles de type SMP :

  • les sous-programmes BLAS,
  • quelques sous-programmes LAPACK,
  • résolution de système d'algèbre linéaire (dense, bande, creux),
  • valeurs et vecteurs propres,
  • transformées de Fourier,
  • interpolation,
  • recherche et tri,
  • génération de nombre aléatoires,

Utilisation

Bibliothèques Édition de liens Mode numérique Nom des sous-programmes Mode d'adressage
séquentielle $ module load essl $ mpixlf90_r call_essl.f I4S4 S… / C… 32
I4D8 D… / Z…
parallèle SMP $ module load esslsmp $ mpixlf90_r call_essl.f I4S4 S… / C… 32
I4D8 D… / Z…

En C et C++, vous devez spécifier #include <essl.h> dans chaque fichier source appelant la bibliothèque.

Certains sous-programmes sont également parallèles de type SMP (multithreadé). Pour les utiliser, lancez l'édition de liens avec le compilateur ré-entrant et l'option -lesslsmpbg. Attention, l'utilisation de ces sous-programmes SMP n'a de sens que dans les modes d'exécution DUAL et SMP.

Exemple

$ cat essl.f90

...
INTEGER                         :: init, inc1x, inc2x, inc1y, inc2y, n, m, &amp;
                                   isign, naux1, naux2
DOUBLE PRECISION                :: scale
REAL(kind=8), DIMENSION(naux1)  :: aux1
REAL(kind=8), DIMENSION(naux2)  :: aux2
COMPLEX(kind=8), DIMENSION(n,m) :: x, y
...
! Transformée de Fourier complexe
CALL dcft (init, x, inc1x, inc2x, y, inc1y, inc2y, n, m, isign, scale, aux1, &amp;
           naux1, aux2, naux2)

* Exemple 1 : édition de liens avec la bibliothèque séquentielle :
  $ module load essl
  $ mpixlf90_r essl.f90
  • Exemple 2 : édition de liens avec la bibliothèque parallèle SMP :
  $ module load esslsmp
  $ mpixlf90_r essl.f90

Documentation

Guide d'utilisation et de reférence IBM en HTML