Newsgroups: comp.parallel.mpi,comp.parallel.pvm
From: Richard Procassini <spike@llnl.gov>
Subject: Re: Why explicit message passing??
Organization: Lawrence Livermore National Laboratory
Date: Wed, 01 Apr 1998 09:56:34 -0800
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <35227FD2.5432BE33@llnl.gov>

Kamran Karimi wrote:

> Hi Everybody,
>
>  Could I ask the people in this newsgroup why they use (or are interested in)
> explicit message passing systems and continue to use FORTRAN?

    Do you have any idea of the number of lines of FORTRAN (ANSWER: many,
many millions) that exist in "legacy" codes that are still widely used, and generate
serious income for their owners/developers, in the scientific and engineering fields?

> What are the
> reasons of using PVM or MPI instead of distributed shared memory or
> distributed object oriented systems?

    Until recently, parallelizing compilers that automatically generated parallel codefor use on
DSM systems have been woefully inadequate when it came to producing
efficient parallel code.  Take as an example the CRAFT compiler on the Cray T3D/T3E
machines:  Have you ever known anyone who obtained good parallel performance on
a large code using it?

    In addition, there are several type of codes in scientific and engineering  (such as
finite element codes which utilize indirect memory addressing due to the use of
unstrctured meshes) where explicit domain decomposition and message passing will
be more efficient than having a compiler parallelize loops or other sections of code for
use on a DSM machine.  If the "simple" concepts of data parallelism that exist in
languages such as HPF or CRAFT were sufficient, then why are these considered by
many to be irrelevant programming models?

>  Explicit message passing belongs to the stone age of the computer science.

    I didn't realize that I was so closely related to Cro Magnon man :^)

> It is analogous to using machine language, and writing one's own hardware
> drivers instead of relying on general purpose operating systems. Most other
> branches of computer science have long left those times, but some distributed
> programmers seems to enjoy living in the past.
>

    The first thing to note here is that there are people who write lost of code in thescientific
and engineering fields that are NOT computer scientists.  Many of us don't
have the time to stay on the "bleeding edge" of  CS by learning new languages or
parallel programming paradigms.  I'm not suggesting that we want to still program in FORTRAN IV or
PL/1 on PDP-8s, but we view many of these CS issues as secondary
to our main tasks:  writing codes to solve scientific and engineering problems.

    Having said that, many of use have invested in learning explicit message passing
techniques over the past several years and would like to get some real mileage out
of them, especially in light of the fact that standards have only recently appeared
and become widely available (MPI-1 and MPI-2).

>  The trend in software has been to simplify the development work, even if
> that means sacrifycing some efficiency (high level languages produce bigger
> and slower code, and operating systems do have overhead). But few care about
> such things now.

    As others have already alluded to, efficiency and performance are nearlyparamount (following
only accuracy) to most developers of scientific and
engineering codes!

> This has resulted in countless useful applications being developed all over the

> world, by people who otherwise could not do it. Every one has benefitted.

    While object-oriented programnming techniques have proved invaluable to
many areas of computing, their value to scientific and engineering applications
is less certain.  I do not say this as an uninformed dinosaur.  I recently worked as a
member of a team that was developing a several-hundred-thousand-line C++
astrophysics code.  After a couple of years of flailing about, attempting to fit our
numerical models to an OO paradigm, most of us on the team readily admit that
our development schedule has been hindered by the use of OO techniques.

>
>
>  Systems like PVM or MPI make it difficult for many people to enter the
> distributed programming era. We should adapt new standards for distributed
> programming, even if that means leaving a lot of legacy code behind. After
> all if this had happened sooner, there would be less such code, and less
> people would have spend their time learning to use them.

    Your idealism in this area is laudable.  However, reality has a nasty way ofknocking idealism
down to size.  I hope that this has helped in answering your
questions.  Ciao...

>
>
> Regards,
>         Kamran Karimi



>
>                                                                      Dr. Richard Procassini
>                                 B-Division Code Group
>                                 Defense Sciences Department
>                                 Lawrence Livermore National Laboratory
>                                 Mail Stop L-170
>                                 P.O. Box 808
>                                 Livermore, CA  94551
>
>                                 (510)424-4095
>
>                                 spike@llnl.gov




