[Beowulf] Using Autoparallel compilers or Multi-Threaded
libraries with MPI
Hakon.Bugge at scali.com
Mon Dec 3 01:11:51 PST 2007
At Sat, 1 Dec 2007 15:15:31,Greg Lindahl <lindahl at pbm.com> wrote:
> > The SPEC HPG (High Performance Group) is having discussions about using
> > a hybrid of MPI and thread-level parallelism on the SPEC MPI2007
> > benchmark suite.
>I'd find it useful to debunk the notion that hybrid programming
>actually gives a speedup. That's probably not what HPG has in mind,
>but it'd be useful to the community.
I have a slightly different view. Hybrid
programming is used for performance reasons, but
only in cases where parallelization (to the same
level) is impossible/impractical using the pure
MPI mode, or the parallelization yields low
efficiency. So, if you're able to achieve your
performance with MPI, you probably will. But
there are cases where you cannot; a) the
"decomposition parallel efficiency" is not good
enough or b) the processes need a huge (shared) table.
As to a), in the past I worked with a synthetic
aperture radar application where I ended up with
the hybrid model. The problem could only be
decomposed in one dimension, and each process had
33% overhead. Obviously, the hybrid model was a good choice in this case.
As to b), it might be more economic to size the
memory on each node the the size of a single
table and share it through shared memory. It is
of course possible to share it from several MPI
processes as well, but implementors might find
their reason for using a hybrid model here.
Relevance to the SPEC MPI2007? To my knowledge,
the applications here do not have any of the
constraints above, so I would be severely
surprised if anyone uses the hybrid model on them.
More information about the Beowulf