En développant cette bibliothèque, nous nous sommes efforcés de favoriser les critères suivants :
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.
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.
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.