Exhibits, Demos & Posters
An Overview of the Granules Runtime for Cloud Computing
- Shrideep Pallickara, Community Grids Lab at Indiana University
- Jaliya Ekanayake, Community Grids Lab at Indiana University
- Geoffrey Fox, Community Grids Lab and School of Informatics, Indiana University
Here we present an overview of Granules, which is a lightweight streaming based runtime for cloud computing. Granules orchestrates the concurrent execution of applications on multiple computational resources.
Granules manages the execution of an application through various stages of its lifecycle. During the deployment of an application, Granules initializes both the state and the datasets that these applications process. This initialization process can involve consuming streams, configuring locks on networked files, and accessing databases. Application instances also specify an execution profile that governs their lifetime and scheduling strategy. At a given computational resource, these execution profiles are used by Granules to manage the concurrent execution of multiple application instances. Components can also register for diagnostic messages related to task executions and the accompanying lifecycle transitions.
The MapReduce programming model enables concurrent processing of large datasets. Implementations of MapReduce are predominantly file-based. Granules includes a streaming-based implementation of the MapReduce framework. By eliminating the need to do time consuming disk IO, which are necessary in file-based schemes, the streaming MapReduce implementation in Granules provides better performance. We have also incorporated support for variants of the MapReduce that are particularly useful for scientific applications.