language: en

Coir: A Thread-Model for Supporting Task- and Data- Parallelism in Object-Oriented Parallel Languages

Neelakantan Sundaresan Dennis Gannon
nsundare@cs.indiana.edu gannon@cs.indiana.edu
Computer Science Department
215 Lindley Hall
Indiana University
Bloomington, IN 47405

Abstract Data- and task-parallelism are two important parallel programming models. Object-oriented paradigm in parallelism provides a good way of abstracting out various aspects of computations and computing resources. Using an object-oriented language like C++, one can compose data and control representations into a single active object. We propose a thread model of parallelism that addresses both data and task parallelism. Computation and communication can be overlapped by suspending a thread of computation which is waiting for an event and running an eligible thread of computation in its place. Threads naturally subsume task-parallelism. Threads are encapsulated into thread objects may be grouped into rope objects [22, 20], that span the parallel machine domain, for collective computation and communication. Thus data-parallelism can be supported. Since rope objects are parallel objects, they can be customized, interestingly, in a serial or a parallel manner. Spatial transparency of objects is achieved by global pointer templates. We present results from a prototype system running on the SGI Challenge and the Intel Paragon.

keywords: task-parallelism, data-parallelism, thread, rope, object-oriented paradigm