Parallel IT · Parallel Task

Parallel Task — About

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

ParaTask is designed for desktop applications, with the unique feature of supporting graphical user interface (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 can multi-thread GUI applications, programmers can use it to improve the interactivity and responsiveness of their applications — even when the application runs on a single processor. The ParaTask tasking model is much easier to use than Java’s threading model, and it allows applications to scale automatically on multi-core processors.

Features supported by ParaTask include:

  • A tasking model — better performance and easier to use than the threading model.
  • An object-oriented approach, promoting code reuse, encapsulation, decoupling, and inheritance.
  • Integration of different tasking concepts into one model: one-off tasks (compute-intensive), multi-tasks (executed multiple times, with group awareness), and I/O tasks (I/O-bound computations that replace the need for threads).
  • Support for multi-threaded GUI applications, adhering to the restrictions imposed by GUI toolkits such as Java Swing.
  • An intuitive dependency-handling mechanism.
  • Non-blocking notification of task completion and of partial results.
  • Exception-handling support.
  • Pluggable runtime scheduling: work-stealing (fairness), work-stealing (recursive parallelism), and a mixed mode combining work-stealing and work-sharing.
  • An Eclipse plugin (syntax highlighting, code auto-completion, task viewer, error handling, behind-the-scenes source-to-source compiling).

More information can be found in the publications section.

Getting started

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