On the utility of threads for data parallel programming

Threads provide a useful programming model for asynchronous behavior because of their ability to encapsulate units of work that can then be scheduled for execution at runtime, based on the dynamic state of a system. Recently, the threaded model has been applied to the domain of data parallel scientific codes, and initial reports indicate that the threaded model can produce performance gains over non-threaded approaches, primarily through the use of overlapping useful computation with communication latency. However, overlapping computation with communication is possible without the benefit of threads if the communication system supports asynchronous primitives, and this comparison has not been made in previous papers. This paper provides a critical look at the utility of lightweight threads as applied to data parallel scientific programming.

[1]  Henri E. Bal,et al.  Orca: A Language For Parallel Programming of Distributed Systems , 1992, IEEE Trans. Software Eng..

[2]  Matthew Haines,et al.  An Overview of the Opus Language and Runtime System , 1994, LCPC.

[3]  Charles Koelbel,et al.  Compiling Global Name-Space Parallel Loops for Distributed Execution , 1991, IEEE Trans. Parallel Distributed Syst..

[4]  Vance Faber,et al.  Modeling the performance of hypercubes: a case study using the particle-in-cell application , 1988, Parallel Comput..

[5]  Matthew Haines,et al.  On the design of Chant: a talking threads package , 1994, Proceedings of Supercomputing '94.

[6]  Edward W. Felten,et al.  Improving the performance of message-passing applications by multithreading , 1992, Proceedings Scalable High Performance Computing Conference SHPCC-92..

[7]  Anthony Skjellum,et al.  Extending the message passing interface (MPI) , 1994, Proceedings Scalable Parallel Libraries Conference.

[8]  Nathan E. Doss,et al.  Inter-communicator Extensions to MPI in the MPIX ( MPI eXtension ) Library , 1994 .

[9]  Jonathan Walpole,et al.  A user-level process package for PVM , 1994, Proceedings of IEEE Scalable High Performance Computing Conference.

[10]  Prithviraj Banerjee,et al.  Compilation of scientific programs into multithreaded and message driven computation , 1994, Proceedings of IEEE Scalable High Performance Computing Conference.

[11]  K. Mani Chandy,et al.  Fortran M: A Language for Modular Parallel Programming , 1995, J. Parallel Distributed Comput..