about sh-mem mechanism
Jose Luis Gordillo Ruiz
jlgr at super.unam.mx
Wed Oct 30 07:17:10 EST 2002
> > how can i disable shared mem communications between process in
> > a SMP node?
> >
> > by the way, why mpiexec uses shmem by default in SMP nodes? i think
> > most people uses sockets. indeed, i think there is no performance
> > gain by using shmem vs. sockets (a parallel program is as fast as its
> > slowest process).
>
> That's interesting to hear.
>
> I thought the consensus was that you want to use shmem inside an SMP,
> but have not done any performance tests myself. Show me some plots
> sometime, if you can motivate someone to do the data collection.
>
well, i don't have plots or data, but think about this:
performance in a parallel program is afected by several factors, but
2 of the most important are load balancing and comm time. Obviosly,
shmem comms are faster than sockets comms in a SMP, but shmem can't be
used outside the SMP, so sockets comms are always present and they
represent the dominant comm time. It is possible obtain a certain gain
by using shmem, but this imply redesign the load balancing of the
parallel algorithm. Because clusters of SMP are not (yet) the standard,
most parallel programas not take shmem into account. also there is
another approach to this, using an hibrid paradimg (OpenMP inside the SMP
and MPI-sockets outside) but, again, there is no proof that this is
better that pure MPI or MPI-shmem with MPI-sockets.
> You can rebuild your mpich-p4 to turn this off, then recompile mpiexec
> so it doesn't try to tell p4 to do shmem jobs:
>
> ./configure --with-default-comm=p4 --disable-p4-shmem
>
> Unfortunately there seems to be no way dynamically to tell mpich how
> to start up the code. So you as sys admin have to decide and compile
> both mpich and mpiexec so that they match.
what you mean about "dynamically tell mpich how to start up the code"?
More information about the mpiexec
mailing list