On Jul 11, 2008, at 5:25 AM, Manoj Vaghela wrote:
> I have a small question regarding creating separate group for
> communication among the processes. If I create a new group and
> communicator to exchange data among, let say 4, processes out of
> total, let say 20, processes, instead of using all 20 processes for
> that data exchange, will there be any improvement in overall speed up
> or efficiency?? Does have this to deal with reduction of communication
> overhead?
This is probably implementation dependent, but for LAM/MPI, there will
be no difference in point-to-point performance if you create a
communicator which is smaller than MPI_COMM_WORLD for communication,
versus using MPI_COMM_WORLD itself.
For collectives, of course, the situation is different. If you only
need information broadcast to four of your peers, it's wasteful to
broadcast it to everyone else. Further, things like shared memory
collectives and processor layout can really change collectives
performance.
So the bottom line is that if sub-communicators make writing an
application easier, use them. If not, don't. As a feature of MPI,
they aren't going to make or break application scalability / efficiency.
Brian
--
Brian Barrett
LAM/MPI Developer
Make today a LAM/MPI day!
|