Distributed Real time Processing of Data Streams

Granules supports the processing of data streams over a distributed collection of processing elements. Such streams can be generated in settings involving observational and monitoring equipment, simulations, and computational workflows. Salient features in Granules include support for :

Project NewsGranules v3.0.0 will be released in June, 2016.

Long running, stateful computations with multiple rounds of execution

Expressing computations as directed graphs that have cycles in them

Execution graphs span multiple machines and can be recursive, data driven, or periodic.

Scheduling computations based on data stream activity, periodicity, or a combination thereof

Interleaving hundreds of computations on a single resource

Management of the lifecycle and finite state machine associated with computations

Abstracting the complexities of doing such I/O and the vagaries of execution in distributed setting

Scientific extensions to the basic MapReduce framework

A broad class of compute and data intensive applications can benefit from the capabilities available in Granules. Some of the application domains that Granules is currently deployed in include brain computer interfaces, epidemiological modeling, handwriting recognition, high-dimensional data clustering algorithms, and bio-informatics (mRNA sequencing). More information can be found in this short overview of Granules.