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: Thu, 16 Apr 1998 09:27:26 +0200
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <3535B2DE.3B7F@pa.twi.tudelft.nl>

Greg Lindahl wrote:
> 
> So it's fair to say that certain classes of programs with easy
> message-passing algorithms are now easy to program. That's a big
> win. The challenge is to make more complicated algorithms easy to
> program.
> 
>   ...
> 
> I'd like to end this post with a challenge for everyone: describe a
> problem to me that you think requires shared memory, and I'll try to
> give you back an abstraction which solves it cleanly and is
> message-passing at its core. This probably isn't the best place to
> ask; I should go repeat this challenge on comp.parallel...

In my opinion this is the wrong question to ask, because in real
life applications there is much more to the choice of programming
model and tools than what is the most suited one. Industrial codes
tend to have a very large portion of I/O facilities, data-management
facilities, error handling, which all must remain intact for the
parallelization to be accepted. Also non-functional requirements
are added such as the wide-spread acceptance and availability of
the tool, such that the approach does not become obsolete in a year
from now. The conformance to programming standards and the re-use
or extension of existing code are other examples.

The wrong aspect about the question is that it suggests that all
problems can be solved neatly using message passing. In my opinion
everyone should choose the approach and tools that suit his/her
problem best.

Still I'll give you an example where a good DSM system would be
desirable. We are working on a large finite difference code, an
``industrial'' code for coastal water simulation. This code is
very intricate because of, e.g., irregularly bounded domains,
drying and flooding, barriers and sluices, ..., all kinds of
irregularities that necessitate various inter-related indirect
addressing schemes. Indeed, we have solved the parallelization
cleanly using message passing. However, the calculations are
essentially data parallel. Therefore having a good DSM, with
negligible latency, would allow loop parallelization or HPF+ or
similar approaches, which could be programmed much more easily.

We have reached good parallel performance because we could partition
the inter-related data structures and computations in a consistent
way. We believe this cannot be done by any compiler system without
much help from the programmer. Therefore a compiler system can only
achieve good performance if the consistent partitioning of inter-
related data structures is not needed, if the retrieval of `remote'
data is not more expensive than of `local' data, if the DSM has
low latency.

Regards,
	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.

