Table of Contents Author Guidelines Submit a Manuscript
Scientific Programming
Volume 7, Issue 3-4, Pages 289-302

Integrated Task and Data Parallel Support for Dynamic Applications

James M. Rehg,1 Kathleen Knobe,1 Umakishore Ramachandran,2 Rishiyur S. Nikhil,1 and Arun Chauhan3

1Cambridge Research Laboratory, Compaq Computer Corporation, Cambridge, MA 02139, USA
2College of Computing, Georgia Institute of Technology, Atlanta GA 30332, USA
3Computer Science Department, Rice University, Houston, TX 77005, USA

Copyright © 1999 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.


There is an emerging class of real‐time interactive applications that require the dynamic integration of task and data parallelism. An example is the Smart Kiosk, a free‐standing computer device that provides information and entertainment to people in public spaces. The kiosk interface is computationally demanding: It employs vision and speech sensing and an animated graphical talking face for output. The computational demands of an interactive kiosk can vary widely with the number of customers and the state of the interaction. Unfortunately this makes it difficult to apply current techniques for integrated task and data parallel computing, which can produce optimal decompositions for static problems. Using experimental results from a color‐based people tracking module, we demonstrate the existence of a small number of distinct operating regimes in the kiosk application. We refer to this type of program behavior as constrained dynamism. An application exhibiting constrained dynamism can execute efficiently by dynamically switching among a small number of statically determined fixed data parallel strategies. We present a novel framework for integrating task and data parallelism for applications that exhibit constrained dynamism. Our solution has been implemented using Stampede, a cluster programming system developed at the Cambridge Research Laboratory.