Documents | API |  Download Software | Contact

Version 1.3.2 released on July 16th 2009

Granules is a lightweight streaming-based runtime for cloud computing. The runtime supports deploying applications on a cloud of computers and orchestrating their completion. Granules splits the datasets that a monolithic application would operate on, and ensures that application instances managed by Granules operate on these smaller datasets to ensure concurrent processing and faster executions.  It also includes support for the Map-Reduce paradigm.

Using Granules it is easy to set up different execution profiles. Executions can be recursive, iterative, at fixed intervals, when datasets are available, or any combination thereof. Granules can harness the availability of new machines within the cloud, and manages the location/number of machines that are utilized for a given application.

A broad class of compute and data intensive applications can benefit from the capabilities available in Granules. Any application where the processing can broken down into smaller chunks (either through splitting datasets or processing stages) can benefit from this runtime. Some of the application domains that Granules is currently deployed in include information retrieval, clustering algorithms such as k-means,  and bio-informatics (mRNA sequencing). Ongoing efforts include activities to incorporate it in sensor network settings (environmental monitoring), chemical informatics (drug discovery) and Multi Dimensional Scaling algorithms.

Salient features include support for:

1. Streaming datasets in addition to static files

2. The basic Map-Reduce framework

3. Variants of the Map-Reduce framework: iterative, periodic, data-driven & recursions

4. Creation of execution graphs with cycles

5. Cloning entire (or portions of) execution pipelines for redundancy

6. Interleaving thousands of computations on a single resource.




ŠThe Granules Project