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.