Task Scheduling using Effects in Joelle

This thesis presents the design and implementation of a library for scheduling messages in parallel at runtime. This library is the future backend of Joelle, an extension of Java for parallel programming. Joelle uses this library for implementing active objects. Active objects execute in parallel an...

Full description

Bibliographic Details
Main Author: Brandauer, Stephan
Format: Others
Language:English
Published: Uppsala universitet, Institutionen för informationsteknologi 2013
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-195826
Description
Summary:This thesis presents the design and implementation of a library for scheduling messages in parallel at runtime. This library is the future backend of Joelle, an extension of Java for parallel programming. Joelle uses this library for implementing active objects. Active objects execute in parallel and communicate asynchronously through message passing. They convert a method call to messages which they store internally. They execute those messages as soon as possible. Joelle allows a programmer to partition active objects in disjoint memory regions and to annotate methods with which regions they read or write, their effects. Joelle uses effects to allow messages with disjoint effects to run in parallel while avoiding data races. This thesis has three key contributions: first, it derives requirements for the library from the available body of research; second, it attempts to summarize this research in a single document, thereby making it useful as an entry point for readers interested in Joelle; third, it develops a novel data structure  that guarantees safe, efficient parallelism. In order to check the solution's feasibility, it compares the implementation's performance to the message passing frameworks Erlang and Akka. The thesis concludes that Joelle performs well overall.