The advocates of grid computing promise a world where large, shared, scientific research instruments, experimental data, numerical simulations, analysis tools, research and development platforms, as well as people, are closely coordinated and integrated in `virtual organizations'. Still, relatively few grid-enabled applications exist that exploit the full potential of grid environments. This must be largely attributed to the difficulties faced by application developers in trying to master the complex interplay of the various components like resource reservation, security, accounting, and communication. Moreover, grid middleware like Globus, Condor-G, and Unicore are still undergoing many changes, with new software releases appearing frequently.
Dealing with complex and changing programming interfaces is one problem. Another is making applications grid aware. Unlike single, homogeneous parallel machines or clusters, grid environments are heterogeneous and dynamically changing. To run efficiently, grid applications need to be scheduled and then executed in such a manner that the differences of the resources which are actually used are properly taken into account.
Ideally grid applications would discover required grid services at run time, and use them as needed, independent of the particular interfaces used by the application programmer.
The SAGA concept (very similar to its predessessor the Grid Application Toolkit - GAT) provides the missing link between the application level and the various grid middleware packages. The core idea of SAGA is similar to that of the well established MPI message passing standard, but at a much higher (grid) level. SAGA has the following properties:
- Simplicity: easy to use, install, administer and maintain
- Uniformity: provides support for different application programming languages
- Genericity: adds support for different grid middleware, even concurrent ones
- Transparency: contains mechanisms for the same application (source) code to run on a variety of systems ranging from laptops to HPC resources
- Adaptability: orientation towards dynamic and adaptive grid-aware applications
- Modularity: provides a framework easily extendable
SAGA (which stands for Simple API for Grid Applications) is a set of simple, coordinated and generic application programming interfaces (APIs) for accessing Grid services from generic application codes, portals, data managements systems. It is a standard developed by the Global Grid Forum (GGF) as a basis for a widely available and supported interface usable by application programmers enabling Grid functionality in their applications.
SAGA is designed in a modular plug-and-play manner, such that tools developed anywhere can be plugged into SAGA. The place of the GAT in the Gridlab architecture The above figure, SAGA/GAT and the corresponding API sits between Grid applications and numerous types of grid middleware. SAGA/GAT lift the burden of grid application programmers by providing them with a uniform interface to numerous types of grid middleware. As a result, grid application programmers need only learn a single API, to obtain access to the entire grid, which simplifies the application programming for the Grid.
The grid middleware-dependent code (Globus, Condor, Unicore, etc.) still exists in our solution, but it is hidden from the application programmer inside the SAGA libraries. Adjustable parameters are automatically optimized, based on available information on the current environment. Overall, SAGA provides an easy and high-level application programming interface for programming grid-aware applications.
The SAGA development effort is tightly integrated into the standardization process lead by the Global Grid Forum (GGF) SAGA-RG and SAGA-WG.
CCT develops and maintains the GAT and SAGA engines (C/C++ versions) to interact with the various grid and web services needed to deliver robust, reliable, quality of service to different projects, such as SCOOP, UCOMS and GridChem.
Tom Goodale, Shantenu Jha, Hartmut Kaiser, Thilo Kielmann, Pascal Kleijer, Gregor von Laszewskik, Craig Lee, André Merzky, Hrabri Rajic, John Shalf, Computational Methods in Science and Technology, submitted 2006, Link
Gabrielle Allen, Kelly Davis, Tom Goodale, Andrei Hutanu, Hartmut Kaiser, Thilo Kielmann, André Merzky, Rob van Nieuwpoort, Alexander Reinefeld, Florian Schintke, Thorsten Schütt, Ed Seidel, Brygg Ullmer, The Grid Application Toolkit: Towards Generic and Easy Application Programming Interfaces for the Grid, Proceedings of the IEEE, 93(3), pp 534-550, (2005) link.
Gabrielle Allen, Tom Goodale, Hartmut Kaiser, Thilo Kielmann, Archit Kulshrestha, André Merzky, Rob V. van Nieuwpoort, A Day in the Life of a Grid-Enabled Application: Counting on the Grid, Proceedings of the Workshop on Grid Application Programming Interfaces, GGF12, Brussels, September 20th 2004, (2004) link.
- Dr. Edward Seidel (CCT/Physics)
- Dr. Gabrielle Allen (CCT/CS)
- Dr. Hartmut Kaiser (CCT)
- Stephan Hirmer (CCT)
- Tom Goodale (CCT and Cardiff University, UK)
- Shantenu Jha (CCT and University College, UK)
- Official Saga Wiki
- SAGA + Grid Superscalar Paper
- SAGA Strawman (TXT)
- SAGA Strawman (PDF)
- SAGA Use Cases (PDF)
- SAGA Use Cases(TXT)
- SAGA Cookbook
- SAGA CVS Details
- GridLab Project
For more information about the SAGA project at CCT please contact Dr. Hartmut Kaiser.