ASCI Course A14: Advanced Grid Programming Models



Dr. Thilo Kielmann,

Time and Location

  1. Introduction and Ibis, 11 May 2009 (VU Amsterdam), (detailed programme)
  2. ProActive, 12 May 2009 (VU Amsterdam), (detailed programme)
  3. Koala, 13 May 2009 (TU Delft), (detailed programme)


To help us organize the events, all participants have to register in advance via the 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 programming environments.

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.

Course contents

  1. Introduction to grid programming environments
    The Ibis grid programming environment
    The Simple API for Grid Applications (SAGA)
  2. The ProActive grid programming environment
  3. The Koala grid scheduling system


Programming experience in Java, some knowledge about parallel and distributed systems.

Lab work

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:

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 LGPL environment. 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, ...). References:


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.