Table of Contents Author Guidelines Submit a Manuscript
Scientific Programming
Volume 6, Issue 2, Pages 187-200

Data-Parallel Programming in a Multithreaded Environment

Matthew Haines,1 Piyush Mehrotra,2 and David Cronk2

1Computer Science Department, University of Wyoming, Laramie, WY 82071-3682, USA
2Institute for Computer Applications in Science and Engineering, NASA Langley Research Center, Mail Stop 132C, Hampton, VA 23681-0001, USA

Received 26 September 1995; Accepted 26 March 1996

Copyright © 1997 Hindawi Publishing Corporation. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.


Research on programming distributed memory multiprocessors has resulted in a well-understood programming model, namely data-parallel programming. However, data-parallel programming in a multithreaded environment is far less understood. For example, if multiple threads within the same process belong to different data-parallel computations, then the architecture, compiler, or run-time system must ensure that relative indexing and collective operations are handled properly and efficiently. We introduce a run-time-based solution for data-parallel programming in a distributed memory environment that handles the problems of relative indexing and collective communications among thread groups. As a result, the data-parallel programming model can now be executed in a multithreaded environment, such as a system using threads to support both task and data parallelism.