STM is one of the promising concepts that aim to enable developers to write safe concurrent code. Several promising open source JVM-based implementations have appeared recently - (http://multiverse.codehaus.org/overview.html, http://code.google.com/p/deuce/, http://akkasource.org/). As an initial part of the assignment the existing options should be investigated in order to build a suitable STM strategy for the GPars project. A second part of the assignment would be to implement a Groovy wrapper around the chosen solution, integrating smoothly STM into Groovy and the GPars library as well as providing an intuitive API or a set of DSLs.
All the GPars concurrency abstractions currently target single-box programming. An increasing demand for distributed concurrency has been observed among GPars users. Specifically, users would like to be able to distribute actors and agents on different boxes as well as allow dataflow channels to communicate across the network. As part of this assignment the contributor would:
With the gradually increasing adoption of GPars and concurrent programming in general among mainstream developers, we've been constantly hitting the knowledge and terminology barrier, which prevents developers from fully leveraging the powerful concurrency concepts and leaves them with only partial awareness of the available options and their best use. The GPars project would greatly benefit from clear and understandable documentation, including a set of topical tutorials, how-to's as well as an improved User Guide and code samples. Writing these documents as well as coming up with good ways to communicate the principles and their practical use to the GPars users is the main focus of this assignment.