09.07.2015 Views

SAGA: A Simple API for Grid Applications High-Level Application ...

SAGA: A Simple API for Grid Applications High-Level Application ...

SAGA: A Simple API for Grid Applications High-Level Application ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>SAGA</strong> ET AL.: THE SIMPLE <strong>API</strong> FOR GRID APPLICATIONS 5Fig. 1.<strong>Application</strong>GAT <strong>API</strong>GAT EngineGAT Adaptors<strong>Grid</strong>Lab ServicesUnicore ServicesGlobus Services<strong>Grid</strong> Fabric LayerThe GAT framework software architecture.<strong>Application</strong> LayerGAT LayerService LayerCore Layeradaptors dynamically at runtime, whenever a certain serviceis needed. The GAT functionality is grouped into various, socalledsubsystems such as• The GAT Base Subsystem which defines general objectsand methods, supporting interaction with the GAT engine.• The Data Management Subsystem which covers threeareas: interprocess communication, remote file access,and file management.• The Resource Management Subsystem which dealswith grid (compute) resources. It provides functions <strong>for</strong>both resource discovery and job management.• The Event and Monitoring Subsystem which allowsapplications to send and receive events, such as eventsgenerated by a grid monitoring service.• The In<strong>for</strong>mation Management Subsystem which connectsto a generic grid in<strong>for</strong>mation system.• The Utility Subsystem which contains a number ofclasses providing general, convenience, and/or utilityorientedmethods.An engine may load multiple adaptors implementing thesame subsystem at the same time. For example, one adaptorcan give access to a local file system while another one givesaccess to files via <strong>Grid</strong>FTP [22], and a third one is using areplica catalog [27].While application and GAT together run in user space,the services are executed in the capability space, which canbe distributed across the machines of a Virtual Organization(VO [28]), including the one running the application. Thecapability space consists of the resources themselves, and themiddleware providing services to access them.The GAT <strong>API</strong> has been designed using an object-based approach,trying to avoid dependencies on any specific languagebinding [29]. However, <strong>for</strong> each supported application programminglanguage, a complete GAT layer has been provided,consisting of <strong>API</strong>, engine, and adaptors. Currently the GATsupports C, C++, Python and Java as target languages, whereUser Space Capability Spacethe C, C++ and Python implementations share the same engineand the same set of adaptors (regardless of the language theseare written in).The experience with the GAT showed, that the implemented<strong>API</strong> was partly too terse and too much oriented to synchronousoperation. The <strong>SAGA</strong> Strawman <strong>API</strong> tries to overcome thislimitation by defining a more complete set of functions dealingwith different aspects of grid related interfaces, such as fullernamespace support <strong>for</strong> file systems and by defining a dualinterface to all of the provided functionality, synchronouslyand asynchronously.B. Commodity <strong>Grid</strong>s (CoG) KitsThe Java CoG Kit [30] has over the years provided successfullyaccess to grid services through the Java framework. Componentsproviding client and limited server side capabilities areavailable. A subset of the Java CoG Kit is distributed with theGlobus Toolkit versions 3.0.2, 3.2, 3.9 and 4.0 as they use it.The Java CoG Kit significantly enhances the capabilities of theGlobus Toolkit by introducing grid workflows, control flows,and a task based programming model. A testing frameworkis available to conduct client side functionality tests. Portalsand Swing components are under development [4]. A Pythonversion of the CoG [31] does also exist, and has a significantuser base.The CoG kits have a very similar target user group as<strong>SAGA</strong>. Also, as the CoG kits are around and used sincea number of years by now, the accumulated feedback andexperience gathered by the projects is very valuable to the<strong>SAGA</strong> group. The group tries to include as much of thatknowledge as possible into its <strong>API</strong> design.C. Reality<strong>Grid</strong>Reality<strong>Grid</strong> is a UK e-Science pilot project that has usedgrid-based computational steering <strong>for</strong> a wide range of scientificapplications Computational steering as used by Reality<strong>Grid</strong>is defined as any mechanism that enables the control of theevolution of a computation, based upon the real time analysisand visualization of the status of a simulation, as opposed tothe post facto analysis and visualization of the output of acomputation. The functionality referred to as computationalsteering enables the user to influence the otherwise sequentialsimulation and analysis phases by merging and interspacingthem. The innovative use of computational steering andinteractive simulations on a grid of high-end resources hasshown to be effective in solving scientific problems [32], [33],which probably couldn’t be otherwise. The use of grid-basedcomputational steering <strong>for</strong> scientific problems has amongstthings raised a need <strong>for</strong> user-level control and thus <strong>API</strong>srelated to advanced reservations, co-allocation of resourcesand the interaction of grid-middleware with optical controlplanes.Providing <strong>for</strong> all of these needs is well outside of thescope of initial ef<strong>for</strong>ts of <strong>SAGA</strong> Strawman <strong>API</strong>, but a <strong>SAGA</strong>style look-and-feel <strong>API</strong> which does address these requirementswill eventually be required by the scientific grid-computationalscientist.DRAFT

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!