Send-Recv Considered Harmful? Myths and Truths about Parallel Programming

  • Authors:
  • Sergei Gorlatch

  • Affiliations:
  • -

  • Venue:
  • PaCT '01 Proceedings of the 6th International Conference on Parallel Computing Technologies
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

During the software crisis of the 1960s, Dijkstra's famous thesis "goto considered harmful" paved the way for structured programming, i.e. software development with well-defined and disciplined organization of control flow. In parallel programming, a new aspect - communication - has an important impact on the structure and properties of programs. This paper shows that many current difficulties of parallel programming are caused by complicated and poorly structured communication, which is a consequence of using low-level send-recv primitives. We argue that, like goto in sequential programs, send-recv should be avoided as far as possible and replaced by collective operations in the parallel setting. We argue against some widely held opinions about the apparent superiority of individual over collective communication and present substantial theoretical and empirical evidence to the contrary. The paper overviews some recent results on formal transformation rules for collective operations that facilitate systematic, performance-oriented design of parallel programs using MPI (Message Passing Interface).