Streaming CnC : Concurrent Collections extension for streaming parallelism, Dragos Sbirlea

The Concurrent Collections (CnC) model is a promising model to take parallel programming to the mainstream. The current implementation though, takes advantage only of the task based parallelism, like many other parallel programming models. The streaming model, on the other hand, promises large increases of performance for applications that process large streams of data formed from items with limited lifetime. While CnC can express streaming programs as parallel tasks, this is a very inefficient implementation.

Integration of the two models would allow taking the best of both worlds: the general purpose performance of task-based programming models and the ease-of-use of Cnc, together with the performance streaming can offer to particular kinds of applications.

Our work consists of defining of an extension of the CnC model that allows us to take advantage of streaming, implementing a runtime for it, verifying the performance increase and proposing algorithms for transforming an application from the standard Concurrent Collections to our Streaming variant.