490 likes | 494 Views
This training session in Lyon focuses on grid calculation frameworks, examples, interoperability, and standards related to grid architectures. It includes discussions on the SAGA specification and JSAGA implementation, as well as applications and perspectives. The session also covers security, data management, resource management, and execution management in grid environments.
E N D
Grilles de Calcul - Formation utilisateurs Lyon, 19 octobre 2010 Sylvain Reynaud
Plan • Contexte • exemples de grilles • interopérabilité : motivations • Standards de grille • Open Grid Forum • la spécification SAGA • JSAGA : une implémentation de SAGA • Applications utilisant JSAGA • Perspectives JSAGA
GOS NAREGI Quelques grilles dans le monde middleware infrastructures JSAGA
Quelques grilles dans le monde middleware GOS NAREGI infrastructures JSAGA
N Quelques grilles en Europe middleware GOS NAREGI infrastructures JSAGA
Quelques grilles en Europe middleware GOS NAREGI infrastructures JSAGA
N Quelques grilles en France JSAGA
cluster Interopérabilité : motivations j'ai besoin de beaucoup de ressources batch SSH JSAGA
cluster Interopérabilité : motivations certains de mes jobs ont besoin de logiciels ou services particuliers batch SSH JSAGA
cluster Interopérabilité : motivations certains de mes jobs doivent tourner sur un supercalculateur batch SSH JSAGA
cluster Interopérabilité : motivations je n'utilise la grille que pour absorber des pics de charge batch SSH JSAGA
cluster Interopérabilité : motivations je veux éviter l'overhead de la grille pour certains jobs batch SSH JSAGA
cluster Interopérabilité : motivations je débugue en local avant de soumettre sur la grille fork batch SSH JSAGA
Standards de grille • Besoins et concepts communs • Une communauté d'industriels et de chercheurs définit des standards • pour l'architecture globale d'une grille (Open Grid Service Architecture) • pour chaque composant d'un middleware de grille JSAGA
Sécurité grid-proxy-init VOMS CE, SE… Authentification Autorisation (décision partagée) Interopérer avec les infrastructures de sécurité locales (sans les compromettre) Délégation Négociation Isolation des utilisateurs Traçabilité, détection d’intrusion LCAS / LCMAPS JSAGA Source: The Open Grid Services Architecture, Version 1.5
Servicediscovery Loadbalancing Problemdetermination Executionmanagement Accounting Resourcereservation Applicationmonitoring Systèmes d'information Architectures et interfaces dépendent de… type d'information (fréquence de rafraîchissement, durée de vie des infos) type d'utilisation (critères de QoS différents) BDII InformationServices Registry Asynchronous notification Consumers Producers Retrieval • Reliable • Secure • Efficient Logger APEL LB JSAGA Source: Hiro Kishimoto
SRM Data Resources Managed Storage Serviceinterface Resourceinterface Gestion des données LFC, AMGA FTS Non-OGSA client APIs & other services Gestion de stockage Accès aux données Gestion de réplicats Catalogues de méta- -données Transfert de données Gestion de cache Transfer Lookup Transfer Registries Sink/ Source Description Data Management Other Data Services Storage Storage Management Access Access Description Sink/ Source Data Resources Transfer Protocols GridFTP JSAGA Source: The Open Grid Services Architecture, Version 1.5
? ? ? Information Service WMS Gestion de l'exécution Description du job Sélection de la ressource Soumission, suivi et contrôle du job Déploiement JDL Application Contents Service Config Desc, Deployment & Lifecycle Mgmt JSDL LCG-CE, CREAM-CE JSDL Job Manager Basic Execution Service resource user BDII Resource Selection Service JSAGA Source: Keisuke Fukui (ACS-WG)
Interface utilisateur gLite-UI VOMS, MyProxy user WMS, LCG-CE, CREAM-CE SRM, gsiftp LFC, AMGA BDII JSAGA Source: S Jha, T Kielmann, A Merzky
SAGA est une interface standard spécification de l' orientée objet simple pour 80% des besoins, 20% des fonctionnalités suffisent intégrée "look & feel" commun à tous les packages de l'API high-level les détails du fonctionnement du middleware sont cachés indépendant du middleware même interface pour tous les middlewares indépendant du langage Java C++ python (wrappers) stable spécification SAGA 1.0 (15 janvier 2008) extensible Service Discovery, Message… Simple API for Grid Applications JSAGA
Simple API for Grid Applications • Exemple de code en Java (data management) Session session = SessionFactory.createSession(true); URL url = URLFactory.createURL("gsiftp://cclcgseli01.in2p3.fr/tmp/"); // instanciation de l'objet SAGA à l'aide d'une fabrique NSDirectory dir = NSFactory.createNSDirectory(session, url); // utilisation de l'objet SAGA List<URL> result = dir.list(); for (URL r : result) System.out.println(r); liste le contenu du répertoire gsiftp://… JSAGA
Simple API for Grid Applications • Exemple de code en Java (execution management) Session session = SessionFactory.createSession(true); URL url = URLFactory.createURL("wms://lapp-wms02.in2p3.fr/…"); // instanciation de l'objet SAGA à l'aide d'une fabrique JobService svc = JobFactory.createJobService(session, url); // utilisation de l'objet SAGA Job job = svc.runJob("/bin/date --utc"); job.waitFor(); System.out.println(job.getState()); soumet un job et attend la fin de son exécution JSAGA
monitor protocol control security Simple API for Grid Applications Execution Data Security JSAGA
The JSAGA implementation • a Java implementation of the SAGA specification • focuses on • uniform usage of middleware…. (beyond what they natively support) • ease of extension………………. • efficiency and scalability………. • control of the API behavior........ (configure binding rather than trying) • operating-system independency (tested on ) • Under LGPL license (thanks to the design of adaptor interfaces) JSAGA
out.txt out.txt JSAGA GridFTP Example – uniform usage SAGA job SAGA job user applications WMS gsiftp Gatekeep. Globus VOMS JSAGA
DGrid proxy adapt + translate submit job receive status transfer to any protocol EGEE proxy + attributes translate submit job poll status delegate transfer out.txt out.txt EGEE D-Grid JSAGA Example – what happens behind SAGA job user applications modified job wrapper script WMS gsiftp Gatekeep. Globus VOMS JDL RSL VOMS WMS GridFTP Globus GK Unicore LCG-CE CREAM-CE JSAGA
JSAGA interface Layered software architecture implementation JSAGA
Used by end users web portals, GUI, CLI… Used by application developers a single uniform interface object oriented, high-level Implemented by adaptors each "way" to implement a given feature has 1 interface service oriented, low-level Implemented by middleware each technology has its own interfaces SAGA Java binding core engine JSAGA adaptors interfaces JSAGA adaptors JSAGA interface Layered software architecture implementation user applications middleware APIs JSAGA
JSAGA adaptor interfaces adaptor adaptor GridFTP Globus GK Layered software architecture • Used by end users • web portals, GUI, CLI… • Used by application developers • a single uniform interface • object oriented, high-level • Implemented by adaptors • each "way" to implement a given feature has 1 interface • service oriented, low-level • Implemented by middleware • each technology has its own interfaces user applications transfer output listen status changes JSAGA core engine upload data get output get status JSAGA
adaptor adaptor Layered software architecture • Used by end users • web portals, GUI, CLI… • Used by application developers • a single uniform interface • object oriented, high-level • Implemented by adaptors • each "way" to implement a given feature has 1 interface • service oriented, low-level • Implemented by middleware • each technology has its own interfaces user applications transfer output listen status changes JSAGA core engine JSAGA adaptor interfaces GridFTP Globus GK upload data get output get status JSAGA
adaptor adaptor Layered software architecture • Middleware API can be used more efficiently • engine selects best interface for each user request • Developing new adaptors is easier • just wrap functionalities supported by middleware API user applications transfer output listen status changes JSAGA core engine JSAGA adaptor interfaces GridFTP Globus GK upload data get output get status JSAGA
As many interfaces as ways to implement each functionality Example: ways to monitor jobs API mode poll job status listen to notifications about job status changes API granularity individual jobs list of jobs jobs filter (e.g. by user, by date, by tag…) done construction planned SAGA adaptors interfaces JSAGA Design of adaptors interfaces getState waitFor query status for individual job listen status for individual job query status for filtered jobs Job monitoring gatekeeper gLite-WMS wsgram unicore6 cream naregi ssh local JSAGA
Optional interfaces for optimization Example: ways to copy a file data read/write methods either stream methods or get/put methods data copy e.g. enable third-party transfer delegated transfer done construction planned SAGA adaptors interfaces JSAGA Design of adaptors interfaces copy data reader data writer data copy Physical rbyteio gsiftp srm srb irods http https sftp ftp file zip cache JSAGA
Minimal dependencies on external libraries external tools e.g. no gLite-UI operating system tested on done construction planned gatekeeper gLite-WMS wsgram unicore6 cream naregi ssh local InMemCred Globus G. Legacy G. RFC820 MyProxy VOMS JKS SSH Login / pwd X509 Supported technologies Grid techno. Others Execution Grid techno. Others Data Logical Physical rns lfn srb irods catalog rbyteio gsiftp srm srb irods http https sftp ftp file zip cache Grid techno. Others Security JSAGA
Adaptors validated by a middleware-independent SAGA test suite maven 'archetype' to generate skeleton of new adaptor project Automated build process download and install build tools external libraries generate source code execute test-suites unitary tests integration tests generate project web site documentation reports generate installer GUI extract library dependencies from maven project description Software quality # SAGA protocols test-suite configuration gsiftp.base=gsiftp://ccrugceli01.in2p3.fr/tmp/ gsiftp.base2=gsiftp://agena.c-s.fr/grid/tmp/ gsiftp.context=OpenPlast_proxy https.base=http://grid.in2p3.fr/html/Private/ https.context=Web_X509 file.base=file:///c:/tmp/ file.base2=file:///c:/ JSAGA
Installer GUI JSAGA
LGPL license for the core engine and for most adaptors Optional licenses for adaptors having external dependencies, which license is not compatible with LGPL then, end-user must… either accept the terms of the license agreement, or go back to previous screen and uncheck the adaptor(s) Licenses JSAGA
Essayer tous les contextes attractif pour les débutants problème d'efficacité gaspillage de temps gaspillage de ressources (risque d'échec à la fin du job) problème de fiabilité risque de créer les fichiers avec le mauvais propriétaire risque de bloquer un compte (si trop de tentatives échouent) Associer les URL aux contextes contrôle du comportement nécessite qq. connaissances sur les infrastructures utilisées la configuration de JSAGA Le nouveau moteur de configuration permet configuration dynamique supporte 1 configuration/session détecte les conflits à la config. Simplicité versus contrôle JSAGA
X509 N Démonstration Contextes de sécurité utilisés Password: **** VO Rhône-Alpes VO dteam CA allemande CA perso SSH iRods SRB https JSAGA
Coexistence of SAGA implementations • several implementations • different languages (sometimes) • different engines • different context selection mechanisms (trying / configuring) • different adaptor interfaces (high-level / low-level interfaces) • … • different supported technologies (i.e. adaptors) • how to use all these technologies from a grid application ? Application Application S A G A C++ Bindings SAGA Java Bindings for SAGA SAGA-C++ JSAGA Java SAGA JSAGA
C Python Jython Coexistence of SAGA implementations Application Application S A G A Python Bindings for SAGA (PySAGA) CppySAGA JPySAGA JySAGA C++ Bindings SAGA Java Bindings for SAGA SAGA-C++ JSAGA Java SAGA JSAGA
DIRAC (Distributed Infrastructure with Remote Agent Control) the pilot jobs system of LHCb experiment Pandora Gateway the grid platform of the company a Grid/Cloud Computing Business Services Provider JUX (Java Universal eXplorer) a multi-protocols extensible file explorer Example applications JSAGA
Elis@ web portal for industrial and academic production grids JJS (Java Job Submission) tools for submitting jobs to EGI resource selection based on QoS observed while submitting jobs SimExplorer software for simulation experiment management includes a workflow engine that uses JSAGA to run simulations on grids jCAE(Java CAE) Computer Aided Engineering with support for distributed computing facilities / Example applications JSAGA
data management jsaga-cat jsaga-cp jsaga-ls jsaga-mkdir jsaga-mv jsaga-rm jsaga-rmdir jsaga-stat jsaga-test jsaga-logical Example applications • JSAGA provides command line interfaces for… • security • jsaga-context-init • jsaga-context-info • jsaga-context-destroy • execution management • jsaga-job-run • jsaga-job-status • jsaga-job-cancel • jsaga-job-output • Also useful as code examples to start with SAGA JSAGA
Develop new plug-ins NorduGrid middleware ARC plug-in in progress… LRMS (DRMAA-based) Grid Engine LRMS (CLI-based/ssh) torque Grid Engine Develop API extensions Grid-RPC (from SAGA core) Service Discovery API (a SAGA extension) with plug-ins for technologies BDII with plug-ins for schemas GLUE CIM Perspectives JSAGA
Job submission principle describe user's job submit it to the grid middleware select the execution host OGF standards BES, DRMAA, SAGA examples Remote Procedure Call (RPC) principle deploy user's service on grid call a procedure middleware select the service instance OGF standards Grid-RPC, SAGA examples Perspectives job Grid-RPC JSAGA
Questions ? JSAGA