Message passing: from parallel computing to the grid

Over the past decades, the computational science community has debated the best architecture for parallel computing. However, experience has found there is an almost irreconcilable difference between the way users would like to write their software and the way machines must be instructed to run efficiently. The use of message passing in parallel computing is a reasonable decision, because the resultant code probably runs well on all architectures. This choice is not a trivial decision: it requires substantial work over and above that needed in the sequential case.