Newsgroups: comp.parallel.mpi,comp.parallel.pvm
From: Kamran Karimi <kamran@wallybox.cei.net>
Subject: Re: Why explicit message passing??
Organization: World Lynx, Inc.
Date: Thu, 2 Apr 1998 03:02:31 +0000
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Message-ID: <Pine.LNX.3.96.980402030201.29801B-100000@wallybox.cei.net>


Richard Procassini wrote:

>    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 gen
>erate
>serious income for their owners/developers, in the scientific and engineering f
>ields?

 I understand, but continuing to develop new code won't be of much help.
People still maintain COBOL code, but fortunately few write new programs in
it. But I guess the rules bend when we enter the distributed programming's
domain?

>    Until recently, parallelizing compilers that automatically generated parall
>el 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 wil
>l
>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 b
>y
>many to be irrelevant programming models?

 I don't have enough information to comment on the above, but I think if the
amount of energy that was/is spent on improving things in explicit message
passing systems was devoted to improving DSM systems, then things might
have been better.

>>  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 :^)

 Sorry. I did not mean it as an insult to any one.

>> 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 cod
>e 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 o
>r
>parallel programming paradigms.  I'm not suggesting that we want to still progr
>am 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.

 My point exactly! CS is supposed to make things easier for the people in
other branches of science. It would be a pitty if these people do not start
to use newer, simpler methods of distributed program developmet. Transparent
DSM _is_ easier to use than explicit message passing, even if it may not be
suitable for some applications.

>    Having said that, many of use have invested in learning explicit message pa
>ssing
>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 appe
>ared
>and become widely available (MPI-1 and MPI-2).

 I don't think it will be very difficult for experienced people like you to
switch to other programming models, provided you are convinced that it will
benefit you.

>>  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 nearlypar
>amount (following
>only accuracy) to most developers of scientific and
>engineering codes!

 Things would be much more efficient if every program was written in assembly,
but then where do you think the CS would be now?

 I guess there could be some useful distributed programs that could get away
with a bit less efficiency.

>    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 work
>ed 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 fi
>t 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.

 I can't think how using OO methods would hinder numerical programming, but
I take your word for it. There are two points here:

1) This is not about being perfect, but being better.
2) Maybe if more people showed willingness in using OOP, then language
   designers would pay more attention to numerical computing issues. Some
   one has to break this cycle.

>>  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 o
>fknocking idealism
>down to size.  I hope that this has helped in answering your
>questions.  Ciao...

 A lot of people can start writing small/medium sized (I am being cautious)
distributed programs right now and very easily, by using DSM. This _is_ the
reality.

 Thank you for your answers.


-Kamran


