Paladin: une bibliothèque parallèle orientée objets pour le calcul d'algèbre linéaire


English version
Afin de démontrer que l'approche que nous proposons dans le cadre du projet EPEE se prête parfaitement à la mise au point de bibliothèques de calcul pour machines parallèles, nous avons entrepris de développer une bibliothèque de démonstration baptisée Paladin, permettant d'effectuer des calculs d'algèbre linéaire sur machines parallèles à mémoire distribuée.

En développant cette bibliothèque, nous nous sommes efforcés de favoriser les critères suivants :

Extensibilité

Il doit à tout instant être possible d'enrichir la bibliothèque Paladin de nouveaux algorithmes ou d'y adjoindre de nouveaux << types >> de matrices et vecteurs, caractérisés par un nouveau format de représentation interne (e.g., matrices et vecteurs creux) ou par un nouveau schéma de distribution.

Transparence

Il s'agit avant tout d'assurer le confort du programmeur d'application, c'est à dire de l'utilisateur de la bibliothèque. À son niveau, les détails de mise en oeuvre -- et notamment ceux relatifs à la gestion des matrices et vecteurs distribués -- doivent être aussi transparents que possible. L'utilisateur se contente donc de spécifier, par exemple, les caractéristiques des matrices qu'il souhaite utiliser (denses ou creuses, distribuées ou non, etc.), et doit ensuite pouvoir manipuler toutes ces matrices de la même façon. Dans le cas des matrices distribuées, l'utilisateur devra ainsi spécifier le schéma de distribution désiré, mais n'aura pas à gérer explicitement cette distribution.

Performances et portabilité

Les performances de la bibliothèque doivent en faire une alternative intéressante aux autres approches actuelles, représentées notamment par les compilateurs-paralléliseurs semi-automatiques en cours de développement (e.g., SUPERB, Vienna Fortran, Pandore) et par les bibliothèques << clés en main >> telles que ScaLapack. Cependant la recherche de performances ne doit pas se faire au détriment de la portabilité. La bibliothèque devant pouvoir être aisément portée sur de nouvelles machines parallèles, elle doit être aussi indépendante que possible des caractéristiques de l'architecture sous-jacente.


Document Postscript disponible : F. Guidec, "Programmation par objets et parallélisme de données dans Paladin". Publication interne No 880, IRISA, octobre 1994. (Également disponible en rapport de recherche INRIA, no 13307.)


jezequel@irisa.fr (11 octobre 1995)