270 likes | 428 Views
Providing uniform and standardised access to European grid middleware with SAGA. Steve Fisher, Shantenu Jha*, Andre Merzky , O Weidner, A Wilson http://saga.cct.lsu.edu EGEE-III INFSO-RI-222667. SAGA: In a nutshell. There exists a lack of programmatic approaches that:
E N D
Providing uniform and standardised access to European grid middleware with SAGA Steve Fisher, Shantenu Jha*, Andre Merzky, O Weidner, A Wilson http://saga.cct.lsu.edu EGEE-III INFSO-RI-222667
SAGA: In a nutshell • There exists a lack of programmatic approaches that: • Provide general-purpose, basic &common grid functionality for applications and thus hide underlying complexity, varying semantics.. • The building blocks upon which to construct “consistent” higher-levels of functionality and abstractions • Meets the need for a Broad Spectrum of Application: • Simple scripts, Gateways, Smart Applications and Production Grade Tooling, Workflow… • Simple, integrated, stable, uniform and high-level interface • Simple and Stable: 80:20 restricted scope and Standard • Integrated: Similar semantics & style across • Uniform: Same interface for different distributed systems • UMD: Components of gLite, ARC, UNICORE & globus
gLite CREAM Overview • CREAM = Computing Resource Execution And Management • Lightweight service for job management operation at the Computing Element (CE) level • CREAM can be used via: • gLite Workload Management System • the ICE service • a generic client (Java/C++ + command line interfaces available) • The Simple API for Grid Applications (SAGA).
gLite CREAM SAGA Adaptor • SAGA provides a prototype job adaptor to access gLite CREAM CEs • Implemented with the CREAM C++ API • Currently provides the following features: • job description (saga-jd to JDL mapping) • job control (run, submit, suspend, cancel, etc...) • listing of jobs associated with a CE • re-connection to running jobs • Encapsulates (hides) proxy delegation
SAGA/CREAM Getting Started • The adaptor code is available via SVN:https://svn.cct.lsu.edu/repos/saga-adaptors/glite/ • Due to the limitations of the CREAM/gLite build-system the adaptor only supports platforms that are supported by gLite (Scientific Linux, etc…) • But will be release with glite in near future • Please send comments and/or questions to: oweidner@cct.lsu.edu
SAGA BES Adaptor • SAGA BES adaptor based on bes++ • C reference implementation for HPC-BP by Chris Smith (Platform) et.al. • has been used for BES-HPCBP interop • uses gSoap • provides ’besclient’ and ’besserver’ • code is somewhat messy, as usual with gsoap based code
SAGA BES Adaptor (cont.) • C++ wrapper for bes++ client lib was added • simplifies adaptor code to (job::run) void job_cpi_impl::sync_run (saga::impl::void_t & ret) { if ( state_ != saga::job::New ) { SAGA_ADAPTOR_THROW ("can run only 'New' jobs", saga::IncorrectState); } job_epr_ = bes_.run (jsdl_); jobid_ = "[" + endpoint_url_.get_string () + "]-[" + job_epr_->str + "]"; { adaptor_data_typeadata (this); // scoped lock state_ = adata->get_saga_state (bes_.get_state (job_epr_)); } } • svn co https://svn.cct.lsu.edu/repos/saga-adaptors/ogf/trunk • license: GPL (due to gSoap)
SAGA example submit to BES SAGA BES Adaptor (cont.) #include <saga/saga.hpp> int main () { saga::sessions; saga::contextc; c.set_attribute (saga::attributes::context_username, “ogf”); c.set_attribute (saga::attributes::context_userpass, “ogf”); s.add_context (c); saga::job::servicejs (s, ep.url); saga::job::jobj = js.run_job_job (“/bin/sleep 10”); while ( j.get_state () == saga::job::Running ) { cout << "Running" << endl; ::sleep (1); } if (j.get_state () == saga::job::Done ) cout << "Done" << endl; else cout << "Failed" << endl; return j.get_state (); }
SAGA BES Adaptor (cont.) • funtional: • endpoint verification • certificate and username/pass auth • SAGA job description -> JSDL • JSDL -> SAGA job description • job submission • BES job state -> SAGA state • terminate job • not yet implemented • list backend jobs • reconnect to job based on job-id
SAGA BES Adaptor (cont.) • Interop Tests: • bes++: besserver with SAGA backend ;-) • fully functional • Unicore: https://zam1161v01.zam.kfa-juelich.de:8002/ • fully functional • GridSam: https://gridsam-endpoint.oerc.ox.ac.uk:18443/ • demo certificate expired • ARC: http://knowarc1.grid.niif.hu:50000/arex • demo CA expired • Planned Tests: • NAREGI, CREAM, Genesis-II, PBS-Pro, MS HPC Server • Please provide us with interop endpoints! :-)
DIANE INTEGRATION Diane without SAGA Diane with SAGA DIANE is an execution manager with support for pilot-jobs + worker agents (IDEAS Redux)
Lattice-QCD Applications on heterogeneous resources Federating resources! EGEE Conference (Apr’10) Payload distribution (Not in this demo: cloud resources, additional Grid infrastructures…) Master Application-aware (and resource-aware) scheduling Ganga/SAGA (to *) Ganga/SAGA (to TeraGrid) Ganga/gLite Agents scheduling Heterogeneous resources allocation (Ganga + Ganga/SAGA)
RENKEI Project Aims Osaka Univ. Tsukuba Univ. Middleware-independent service & application KEK Service & Applications Svc Apps Apps SAGA HEP Library RNS Yet Another FC service based on OGF standard Python Binding C++ Interface SAGA framework SAGA-Engine Adpt Adpt Adpt SAGA adaptors SRB iRODS NAREGI gLite Cloud LRMS LSF/PBS/SGE/… This activity is funded by MEXT as a part of RENKEI project which develops seamless linkage of resources in the Grids and the local one for e-Science.
BigJob: Infrastructure Independent Pilot-Job (Each sub-job is a MPI-based MD)
Service Discovery • This API (GFD.144) identifies URLs of services • Hides the GLUE-I ↔ GLUE-II transition from the user • saga-sd --sf "Site IN ('INFN-CNAF', 'RAL-LCG2')" --sa • Return details of all services you are authorized to use at INFN-CNAF and RAL-LCG2 • gLite adapter being added to UI and WN patches this week • NAREGI just starting work on an adapter • Hope to see it at next OGF in Chicago
Information System Navigator • ISN exposes the schema to allow navigation over any ER style schema • gLite adapter supports GLUE-I now. GLUE-II will be tested when data are available. • Available as experimental API in LSU SAGA implementation with CLI and gLite adapter • GUI portal to SD and ISN being tested. Will be made generally available soon.
SAGA: Available Adaptors • Job Adaptors • Fork (localhost), SSH, Condor, Globus GRAM2, OMII GridSAM, Amazon EC2, Platform LSF • File Adaptors • Local FS, GlobusGridFTP, Hadoop Distributed Filesystem (HDFS),CloudStore KFS, OpenCloud Sector-Sphere • Replica Adaptors • PostgreSQL/SQLite3, Globus RLS • Advert Adaptors • PostgreSQL/SQLite3, Hadoop H-Base, Hypertable • Other Adaptors • Default RPC / Stream / SD
SAGA-based Tools and ProjectsAdvantage of Standards • JSAGA from IN2P3 (Lyon) • http://grid.in2p3.fr/jsaga/index.html • gLite adaptors exist • JAVASAGA (Amsterdam) • Has a wide range of adaptors • JAVASAGA gets released by gLite (next few weeks) • NAREGI/KEK (Active) • http://www.ogf.org/OGF27/materials/1767/OGF27_SAGA_KEK.pdf • DEISA/DESHL • http://www.fz-juelich.de/nic-series/volume38/pringle.pdf ) • http://deisa-jra7.forge.nesc.ac.uk/ and http://www.ogf.org/OGF19/materials/501/SAGA-DEISA.ppt • XtreemOS • http://saga.cct.lsu.edu/index.php?option=com_content&task=view&id=95&Itemid=174
Summary.. • Power of well-defined, agreed upon interfaces • Tools, Gateways and Applications • Advantages across levels (close to the middleware, upto direct application level), and scales (single EGEE/EGI site, to largest TG resources) • SAGA provides application-level interoperability across different middleware and distributed resource types • Interoperability first step towards effective utilisationof DCI • IDEAS • http://www.cct.lsu.edu/~sjha/select_publications
Acknowledgements SAGA Team and DPA Team and the UK-EPSRC (UK EPSRC: DPA, OMII-UK , OMII-UK PAL), NSF (HPCOPS, Cybertools) and LA-BOR People: SAGA D&D: Hartmut Kaiser, Ole Weidner, Andre Merzky, Andre Luckow, Joohyun Kim, Lukasz Lacinski, JoãoAbecasis, Chris Miceli, Bety Rodriguez-Milla SAGA Users: Andre Luckow, Yaakoub el-Khamra, Kate Stamou, Cybertools (AbhinavThota, Jeff, N. Kim), OwainKenway Google SoC: Michael Miceli, SaurabhSehgal, MiklosErdelyi Collaborators and Contributors: Steve Fisher & Group, Sylvain Renaud (JSAGA), Go Iwai & Yoshiyuki Watase (KEK) DPA: Dan Katz, Murray Cole, Manish Parashar, Omer Rana, Jon Weissman