ASCI Course A14: Advanced Grid Programming Models
- Thilo Kielmann, Jason Maassen, Frank Seinstra, Niels Drost (VU)
- Dick Epema, Ozan Sonmez, Hashim Mohamed, Alexandru Iosup (TUD)
- Fabrice Huet (INRIA, Sophia-Antipolis, France)
Dr. Thilo Kielmann, firstname.lastname@example.org
Time and Location
- Introduction and Ibis, 11 May 2009 (VU Amsterdam),
- ProActive, 12 May 2009 (VU Amsterdam),
- Koala, 13 May 2009 (TU Delft),
To help us organize the events, all participants have to register in advance
ASCI course registration site. Members of the VL-e project and of
GridForum Nederland may register without payment when using the key they have
received via their organisation's announcement.
This special course will survey and present the state-of-the-art in grid
Structure of the course
Three days, including lab work. Each day covers one topic, the first day will
also contain an introduction to grid programming environments.
- Introduction to grid programming environments
The Ibis grid programming environment
The Simple API for Grid Applications (SAGA)
- The ProActive grid programming environment
- The Koala grid scheduling system
Programming experience in Java, some knowledge about parallel
and distributed systems.
During the lecture days, participants are expected to bring their own laptop
computers to perform the exercises while in class.
Slides, papers, to be announced here.
By doing a practical grid programming exercise.
Choose one of the three topics:
Submit your software and a short report about it:
- by email to
- Niels Drost (niels_AT_cs_DOT_vu_DOT_nl), if you do Ibis
- Fabrice Huet (Fabrice_DOT_Huet_AT_sophia_DOT_inria_DOT_fr), if you do ProActive
- Dick Epema (D_DOT_H_DOT_J_DOT_Epema_AT_ewi_DOT_tudelft_DOT_nl), if you do Koala
- no later than July 31, 2009
Detailed course contents
Introduction to grid programming environments, the Ibis project
Grid middleware is both maturing and becoming more widely
deployed. Still, deploying real-world applications regularly remains a
challenging task. One important reason for this is the lack
of a suitable programming interface (API) for such applications, that
is simple, stable, and available across the major middleware systems
like Globus, G-Lite, or Unicore.
Within the Open Grid Forum (OGF), such an API is currently being
standardized. The Simple API for Grid Applications (SAGA) strives to
be simple by addressing the needs of applications (only), while being
independent and thus uniform and stable across the different grid
middleware systems and their versions. It hides several intricate
aspects of grid environments from the end user, such as complexity,
heterogeneity, and dynamicity of grid platforms.
This course will give insight in the design of Grid
APIs in general, and will, in a tutorial style, provide
an introduction into the use of the SAGA API.
Hands-on exercises, using the Java SAGA implementation,
will be an integral part of of the class.
Reference for SAGA:
The Ibis communication library is specifically designed for usage in a
grid environment. Its run-anywhere property and support for fault
tolerance, malleability, and high-speed networks make it an easy to use
and reliable grid communication infrastructure. The Ibis project offers a
wide range of programming models designed for parallel and distributed
programming in both Grid and (more traditional) cluster environments.
The Ibis part of the course will start by giving an overview of the design
and implementation of the Ibis communication library. Next, we describe
the programming models and show for which application domains they are
best suited. We will also show how Ibis applications can be deployed in
grid and cluster environments. Finally, the participants of the course
will get hands-on experience with the use of Ibis on the DAS.
Object technology and middleware are increasingly used within Grid
computing. At the same time, components are becoming a very effective
tool for the composition and deployment of applications. The lecture
objectives are to explain the main principles of objects for the Grid,
and to illustrate the concepts and ideas with an effective Open Source
The lecture will include concrete applications.
ProActive is a Grid Java library (Source code under LGPL license) for
parallel, distributed, and concurrent computing, also featuring mobility
and security in a uniform framework. ProActive aimed at simplifying the
programming of applications that are distributed on Local Area Network
(LAN), on cluster of workstations, or on the Grid. Interactive and
graphical GUI and tools will also be presented.
This lecture will explain how Distributed Objects can be used in practical
middleware in order to implement in a safe way various services and
non-functional aspects (asynchronous and typed first-class futures,
typed asynchronous groups, mobility, checkpointing, ...).
In order to be really useful, grids need schedulers that
take care of finding suitable resources for the jobs submitted
by ordinary users, and for launching these jobs on these resources.
In the KOALA part of the course, we will first give a general
overview of scheduling and resource management in grids. Second,
we will present the design and implementation of the KOALA grid
scheduler, which has as one of its special features support for
co-allocation of processors in multiple locations to single
applications. Finally, the participants of the course will
get hands-on experience with the use of KOALA on the DAS.