Where is Time Spent in Message-Passing and Shared-Memory Programs?
Message passing and shared memory are two techniques parallel programs
use for coordination and communication. This paper studies the
strengths and weaknesses of these two mechanisms by comparing
equivalent, well-written message-passing and shared-memory programs
running on similar hardware. To ensure that our measurements are
comparable, we produced two carefully tuned versions of each program
and measured them on closely-related simulators of a message-passing
and a shared-memory machine, both of which are based on same
underlying hardware assumptions.
We examined the behavior and performance of each program carefully.
Although the cost of computation in each pair of programs was similar,
synchronization and communication differed greatly. We found that
message-passing's advantage over shared-memory is not clear-cut.
Three of the four shared-memory programs ran at roughly the same speed
as their message-passing equivalent, even though their communication
patterns were different.
- This technical paper has been published as
- Where is Time Spent in Message-Passing and Shared-Memory
Satish Chandra, James R. Larus and Anne Rogers, Proc. of the Sixth
Internat. Conference on Architectural Support for
Programming Languages and Operating Sytems, San
Jose, California (1994).