Benefits of using MPI on a UMA machine

What are the advantages of using MPI on a UMA machine. It seems to me that it would be wiser to use OpenMP with a UMA machine, because they both exchange memory. Where MPI makes more sense on a NUMA machine, since NUMA gives each process its own memory.

+3


source to share


1 answer


The implication when using a distributed memory programming model like MPI or Charm ++, even on nominally homogeneous shared memory hardware, is that it engenders much more conscious algorithm design and implementation. Even for a single core, memory access costs are uneven - assumptions about spatial and temporal location are deeply disguised in the design of common microprocessor memory hierarchies. Designing for distributed memory also means designing to work on local chunks of data rather than the entire working set at once.



Also, keep in mind that even a single-network multi-core system still has private caches for each core, and transferring data from one cache to another incurs communication costs that exceed the cost of accessing private data in the local cache. For an example of how this can be reproduced in applications, see Jetley and Calais, “Optimizing for Message-Driven Applications on Multicore Architectures,” published on HiPC 2011 .

+4


source







All Articles