Les utilisateurs de grilles ayant besoin d’accéder à une grande variété d’infrastructures utilisant des intergiciels hétérogènes, il est nécessaire de leur fournir des interfaces uniformes et standardisées. L’OGF (Open Grid Forum) est un consortium dont la mission est de créer et de promouvoir des standards ouverts pour les grilles et autres systèmes distribués (cloud computing…). Les groupes de travail de cette organisation, dédiés à des domaines particuliers, se rencontrent régulièrement lors de colloques.
L’un des standards de l’OGF, SAGA (Simple API for Grid Application) définit une spécification permettant aux applications d’accéder de façon simple et transparente aux ressources (calcul, stockage) de différentes grilles. Le Centre de Calcul de l’IN2P3 / CNRS (CC-IN2P3) propose une implémentation de ce standard utilisable en Java (JSAGA), et une couche d’adaptation en Python (JPySAGA).
Le groupe de travail chargé de définir ce standard s’est réuni à l’occasion de trois sessions à OGF30, qui s’est déroulé à Bruxelles du 25 au 28 octobre 2010, conjointement à la conférence Grid2010. Les membres du groupe SAGA ont montré, au travers de démos, la faisabilité et la facilité pour une application cliente d’utiliser plusieurs infrastructures de grilles simultanément. A cette occasion, le CC-IN2P3 a présenté une démo dont l’objectif était de montrer qu’il est possible de faire cohabiter plusieurs implémentations de SAGA, de manière à les utiliser conjointement au sein d’une même application et avec un même code source. Cette démo montrait ainsi une application Java utilisant les implémentations JSAGA et JavaSAGA [1], puis des applications Python utilisant les implémentations JSAGA et SAGA-C++ [2]. L’intérêt de telles cohabitations est de permettre à une application d’accéder à un nombre encore plus important d’infrastructures de grille et de fonctionnalités (voir schéma ci-dessous). Les modifications de la spécification proposées par le CC-IN2P3 afin de permettre ces cohabitations ont été accueillies favorablement par le groupe de travail.
Cette démo a par ailleurs été rejouée lors d’une session du groupe de travail GIN (Grid Interoperability Now). L’objectif de ce groupe est de sélectionner les standards à implémenter pour obtenir des composants interopérables. Suite aux discussions au sein de cette session, il a été décidé d’inclure SAGA comme un des éléments essentiels de cette interopérabilité. SAGA permet en effet de proposer une interface uniforme aux différents composants de grille, que ceux-ci implémentent une interface standard ou non. De plus, il n’est pas envisageable, ni à court ni à long terme, que tous les intergiciels de toutes les grilles (académiques/industrielles, internationales/régionales…) et autres systèmes distribués (clusters, grilles de type RPC, grilles de bureau, clouds et les technologies à venir…) implémentent les mêmes interfaces. Les groupes GIN et SAGA ont par ailleurs décidé de collaborer sur la mise en place de démonstrations d’interopérabilité, dont la première aura lieu lors de la prochaine conférence Super Computing en Louisiane.
D’autres groupes de travail, tels que GRAAP (Grid Resource Allocation Agreement Protocol) et GLUE (Grid Laboratory for a Uniform Environment), ont discuté des rapprochements possibles avec le standard SAGA, comme cela avait déjà été le cas dans le passé, notamment avec les standards DRMAA (Distributed Resource Management Application API) et GridRPC (Grid Remote Procedure Call). SAGA a également été mentionné en session plénière [3] et dans la conférence Grid 2010.
Enfin, l’intégration de SAGA dans les intergiciels de la grille américaine de supercalculateurs (Teragrid) et de la grille japonaise (NAREGI) a été évoquée, et le centre de calcul japonais KEK a manifesté son intérêt pour utiliser JPySAGA et JSAGA conjointement à l’implémentation C++ de SAGA.
Julien DEVÉMY, Sylvain REYNAUD, Lionel SCHWARZ