Much research has been focused on developing programming models in which programmers simply annotate portions of work that may be done concurrently and allow the system to determine how the work can be executed efficiently and correctly [1].
Further, to ensure the correctness of parallel program, it is important that threads of execution do not interfere with each other while sharing data in the memory (data-race). Atomic Sets for Java (AJ) introduced a data-centric approach for synchronization [2]. Here, the user simply groups fields of objects into atomic sets to specify that these objects must always be updated atomically. However, there is no open-sourced implementation of AJ [3].
AJWS is a new open-srouced system that draws together the benefits of work-stealing and AJ, allowing the application programmer to conveniently and succinctly expose the parallelism inherent in their Java program. We have implemented AJWS by using JastAdd [4] meta-compilation system.
AJWS source code and sample testcases are available at github for download.
[1] http://vivkumar.github.io/javatrycatchws.html
[2] http://www.franktip.org/pubs/toplas2012.pdf
[3] https://www.cs.purdue.edu/sss/projects/aj/
[4] http://jastadd.org/web/