Newsgroups: comp.parallel.mpi,comp.parallel.pvm
From: Edwin Vollebregt <pcedwin@pa.twi.tudelft.nl>
Subject: Re: Why explicit message passing??
Organization: VORtech Computing
Date: Fri, 17 Apr 1998 14:24:09 +0200
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <353749E9.4BCF@pa.twi.tudelft.nl>

William T. Rankin wrote:
> 
> This thread began (a
> while back) with a poster claiming (in essence) that explicit
> message-passing was stone age technology and that DSM was the
> One True Way.

That is correct. It was claimed that programming was made easier
by having a DSM. The response was that this is not always the case,
many problems can be programmed nicely using message-passing, and
that performance necessitates message-passing in many cases.
 
> > Therefore having a good DSM, with negligible latency, would
> > allow loop parallelization or HPF+ or similar approaches, which
> > could be programmed much more easily.
> 
> doesn't the 'D' in 'DSM' almost require that you have some
> ammount of latency inherent in any system?  and this must
> therefore be taken into account in any actual implementation?
> we're talking NUMA instead of UMA, right?

That is correct too. However, if the N is made smaller and smaller,
more and more problems can be programmed as if the system is UMA
and neglect the NUMA behaviour.

> which is what I believe is Greg's major point.  as you tune DSM
> codes for better performance and scalability, their structure
> quckly starts looking more and more like explicit message
> passing simply because you take steps to assure data locality and
> minimize non-local references.

That is correct. However, as you tune DSM codes more and more
towards a message-passing abstraction, you lose the advantage of
programmability. I would like to know counter-examples: for which
problems is the actual message passing pain, and not the management
of multiple processes each working on a restricted set (`own') data ?

> so, do both approaches eventually lead you to some common
> "middle-ground"?

I would like to speak about `process-channel' and `shared data'
paradigms instead of `message passing' and `shared memory' in order
to abstract away from the underlying programming model. The former
term is used for separate computing processes with at each time
instance an `owner' for each data item, the latter for a shared
pool of data items not owned by any process.

Edwin.
-- 
 ______________________________________________________________________
|                                 |                          |         |
| Dr.ir. Edwin A.H. Vollebregt    |                          |   0---0 |
|                                 | phone +31(0)15-2785805   |  /|  /| |
| VORtech Computing               | fax   +31(0)15-2787209   | 0---0 | |
| Postbus 260                     | edwin@pa.twi.tudelft.nl  | | 0-|-0 |
| 2600 AG  Delft, the Netherlands |                          | |/  |/  |
|         http://ta.twi.tudelft.nl/PA/VORtech/VORtech.html   | 0---0   |
|_________________________________|__________________________|_________|
  Reguliere post kunt u vanaf nu sturen naar onze postbus, zie boven.

