I developed my MPI based parallel code for clusters, but now I use it on
multicore/manycore computers (PCs) as well. How to justify (in some
thesis/publication) the use of a distributed memory code (in MPI) on a
shared memory (multicore) machine. I guess to explain two reasons:
(1) Plan is to use several hunderds processes in future. So MPI like stuff
is necessary. To maintain code uniformity and save cost/time for developing
shared memory solution (using OpenMP, pthreads etc), I use the same MPI
code on shared memory systems (like multicore PCs). MPI based codes give
reasonable performance on multicore PCs, if not the best.
(2) The latest MPI implementations are intelligent enough that they use
some efficient mechanism while executing MPI based codes on shared memory
(multicore) machines. (please tell me any reference to quote this fact).
Please help me in formally justifying this and comment/modify above two
justifications. Better if I you can suggent me to quote some reference of
any suitable publication in this regard.