On Feb 6, 2007, at 6:59 AM, Tim Prince wrote:
> aidaros.dev_at_[hidden] wrote:
>> Dear All
>> I have a simple question.
>> I got confused about when we should use MPI.
>> MPI use in clusters, means there is no shared memory. Processors
>> need to
>> communicate other processors in different node by send/recieve
>> mpi-functions.
>> In Semmetric multiprocessor (SMP) computer, no cluster, it is shared
>> memory,
>> since it is shared memory (Single address space), processors need
>> NOT to
>> communicate with other processors by send/receive mpi-function. So
>> what is
>> the advantages using MPI on SMP?
>
> I think your personal wording of the distinction between MPI
> communication in shared memory and between nodes is confusing. It is
> quite common for an optimized MPI application to out-perform an
> equivalent OpenMP version, when running on an SMP platform. In such
> cases, the development effort for the MPI version is likely to be
> larger.
> A lot would depend on how easy it is to optimize the two versions you
> are comparing.
> For lam-mpi, the default scheme for message passing on little-endian
> platforms involves a slow method for byte-reversing the messages.
> Shared memory communication can be speeded up greatly with one of the
> options, but lam is often judged by its defaults.
While this used to be true, LAM/MPI 7.0 and later makes the decision
on whether to put all communication in network byte order (big
endian) on a per-job basis, and only do it if all processes don't
report the same architecture. By the way, for Open MPI, the decision
is made per-peer, so shared memory communication isn't slowed down if
the job is running on heterogeneous machines.
Brian
--
Brian Barrett
LAM/MPI developer and all around nice guy
Have a LAM/MPI day: http://www.lam-mpi.org/
|