Parallel Task - About


Parallel Task (ParaTask for short) aims at helping the programmer develop parallel programs with as little change to the familiar development process of object-oriented applications.

ParaTask is designed for desktop applications, with the unique feature of of including support for graphical user interfaces (GUI) applications. It consists of a source-to-source compiler that parses PTJava files (*.ptjava) into multi-threaded Java code, and a supporting runtime library to manage the tasks.

Because ParaTask has the unique feature of multi-threading GUI applications, programmers may use this to improve the interactivity and responsiveness of their applications (even if the application will run on a single processor). The ParaTask tasking model is a lot easier to use than Java's threading model, and it allows the applications to automatically scale when executed on multi-core processors.

Some of the features supported by ParaTask include:

  • Based on a tasking model (better performance and  easier to use than the threading model)
  • An object-oriented approach (promoting code re-use, encapsulation, decoupling, inheritance, ...)
  • Integrating different tasking concepts into the same model:
    • one-off tasks (for compute-intensive tasks)
    • multi-tasks (for tasks that need to be executed multiple times, with group awareness)
    • I/O tasks (for I/O bound computations, replaces the need for threads)
  • Support for multi-threaded GUI applications (adheres to restrictions imposed by GUI toolkits, namely Java Swing)
  • An intuitive dependency handling mechanism
  • Non-blocking notification of task completion (allows for responsive applications)
  • Non-blocking notification of partial results (great for tasks that publish intermediate results)
  • Exception handling support
  • Pluggable runtime scheduling, currently supporting:
    • work-stealing (great for fairness)
    • work-stealing (great for resursive parallelism)
    • mixed (combines work-stealing and work-sharing together for the best of both worlds)
  • An Eclipse plugin (syntax highlighting, code auto-completion, task viewer, error handling, behind-the-scenes source-to-source compiling, ...)

More information on ParaTask may be found in the publications section.

Getting started

        Download the compiler and take a look at the Quick Start guide.