Interesting question; I too would like to hear about it from the experts in
this forum. However, off the top of my head, I have the following advise for
Yes, you could share the memory between processes using the shm_xxx system
calls of unix. However, it would be a lot easier if you used a thread
programming paradigm like pthread. A lot of these overhead would be handled
for you by the library itself.
In general, there is not a lot of performance gains by oversubscribing your
processors (i.e. number of processes > number of CPUs), unless your
processes are I/O bound and are blocked for a significant amount of time. I
don't know what your application is, but in the HPC world, such problems are
In general, processes on a shared memory node (i.e. an SMP machine) have a
significantly higher memory bandwidth and reduced latency, than those across
a node, even when the interconnect network is RDMA capable (such as
On 11/7/06, Chevchenkovic Chevchenkovic <chevchenkovic_at_[hidden]> wrote:
> I had the following setup:
> Rank 0 process on node 1 wants to send an array of particular
> size to Rank 1 process on same node.
> 1. What are the optimisations that can be done/invoked while running
> mpirun to perform this memory to memory transfer efficiently?
> 2. Is there any performance gain if 2 processes that are exchanging data
> arrays are kept on the same node rather than on different nodes connected by
> Awaiting a reply,
> users mailing list
Devil wanted omnipresence;
He therefore created communists.