Why can MPI-only applications be memory inefficient?
Typically MPI applications require ‘extra’ memory, above what N copies of a serial code would require, for several reasons: • There is a significant amount of serial code in an MPI application, all of which must be replicated. • Grid-based codes need memory to hold “ghost cells” for each MPI task. • Communication buffers are required within the code. For example, to store the ‘ghost cells’ in a finite difference algorithm, or to provide space for packing and unpacking of messages.