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: Wed, 8 Apr 1998 15:14:17 +0000
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Message-ID: <Pine.LNX.3.96.980408151343.11848B-100000@wallybox.cei.net>

Hi Rob,

Rob Neely wrote:

>I don't think it's so much that people on this group are disagreeing
>with you as much as some of us believe that you're simplifying things
>a little too much.  The distributed objects, etc... methods that
>you describe are excellent choices for a subset of problems - like
>say, distributed transaction processing, or the java based poker games
>at play.yahoo.com.  However, they're simply not sufficient (at least
>yet) for a large set of programming problems.  And most everyone here
>will agree that making DSM good enough to completely throw away
>message passing is a VERY hard problem - which many people have been
>working on for a long time with limited success.

 Sometimes problems are solved in an indirect way. Dr. A could spend a lot
of time and devise many clever methods (including the use of explicit message
passing) to make a program run 5% faster, just to see that Mr. B has bought
some new hardware and managed to run it 10% faster. How many Dr. A's can we
find in the world? Such people should spend their time better than that.

 The main advantage of explicit message passing is its better usage of the
networking resources. Some people mentioned programs that had to run for 8
months. How much of this time is spent in actually transferring data around?
Tera-Bit networks are coming. No current CPU can not feed such a link! If
tolerating some overhead due to the usage of a DSM system is not possible
right now, it will be in the (I hope near) future. We'd better be prepared
for it.

 BTW, Java is not a distributed programming system out of the box (you have
to use RMI, HORB, etc. for that), but when it becomes one, then I hope the
same people who are now writing toy applications will start developing more
serious (numerical?) ones. 

>Many people in the MPI/PVM world would probably consider themselves in
>the field of "High Performance Computing" - so you've stepped into a
>forum where performance and scalability will almost always come before
>the latest unproven CS solutions, for better or worse.

 My main concern is, who will test these unproven solutions? It seems that
everybody is waiting for others to do that. Could I ask the people who have
experimented with both DSM and EMP (Explicit Message Passing) to write a bit
about why they decided EMP was more usable? Was is just because of
performance reasons? What hardware were they using? How much overhead was
generated due to the use of DSM? Has anyone any benchmark results showing the
differences?

>I used to make the "message passing is the assembly language of
>distributed programming" argument myself - but especially with the
>advent of MPI, (and more experience), I've backed off that statement.
>A better analogy might be to compare using an interpreted language
>versus a compiled language - say Lisp vs C.  Lisp fans will argue to
>the death the advantages of functional programming, the flexibility of
>interpreted languages, etc. And they'll scoff at you for using a
>language that supports goto and global variables and doesn't do
>garbage collection, and they'll think you're old fashioned and just
>haven't "seen the light" - but the fact is, C is just plain better for
>writing an operating system.

 I think it would be better if you compared C with a language like Pascal.
C and LISP are used for different purposes. They have rather clear domains
of application. This is not true for DSM and EMP. They are both supposed
to transfer data over a network. Once a lot of programmers start using DSM,
then _maybe_ there will be a partition in the kind of work done with EMP and
DSM, But this has not happened yet.

>All that said - rest assured that there are a great number of us out
>there that agree with your sentiments in spirit - but we've used both
>message passing and DSM languages/systems, and the fact is that message
>passing isn't really as awful as everyone likes to think, and DSM
>solutions aren't always as spiffy as they seem - and can sometimes
>make things more difficult (like debugging, or getting good locality).

 I totally agree that a single solution is not fit for all problems. However,
I have difficulty with the statement that DSM systems have already been
tried (and rejected). Can you please tell me some examples of DSMs that were
used?

>We can probably all agree with you that more research needs to be done
>in the area -- but I think that there's a good deal (enough?!) of that
>going on as we speak.  In the meantime, I thank the MPI developers for
>giving me a tool today that saved me ALOT of time in development and
>porting.

 The first page-based DSM system was developed over a decade ago (in Yale, I
think). This is very old by CS standards. How many such systems have appeared
in commercial OSs? The majority of people can not use the results of such
research even to write a toy application.

>If I were to teach a distributed programming class today, I would
>teach both shared and distrubuted memory - as both programming models
>have their places in the big picture.

 Certainly a very good thing to do. However this is not what is happening
now. First, Distributed Programming is a graduate course in most universities.
Second, even if they "mention" DSM in the class, nearly all the practical
training is done on EMP systems.

>(Keep in mind your audience here - you're more likely to find someone
>in this group writing a large supernova simulation than you are to
>find someone writing an internet groupware app.  I don't know what
>newsgroup those folks hang out at.)

 Yes I know, and that is why I posted to these newsgroups. Many people on
these newsgroups are very influential. Some of them train the next generation
of distributed programmers in universities. Others have a lot of money and
equipment for research work. I do believe things will change in the favour of
DSM, but if such people start considering the alternatives, then the changes
will come much sooner.


-Kamran



