From: Joe Landman <[EMAIL PROTECTED]>
> 
> 
> Greg Lindahl wrote:
> > On Fri, Jun 15, 2007 at 09:57:08AM -0400, Joe Landman wrote:
> > 
> >> First, shared memory is nice and simple as a programming model. 
> > 
> > Uhuh. You know, there are some studies going where students learning
> > parallel programming do the same algorithm with MPI and with shared
> > memory. Would you like to make a bet as to whether they found shared
> > memory much easier?
> 
> I don't know which "studies" you are referring to.  Having taught 
> multiple graduate level courses on MPI/OpenMP programming, I can tell 
> you what I observed from my students.  They largely just "get" OpenMP. 
> It won't get them great overall performance, as there aren't many large 
> multiprocessor SMPs around for them to work on.  Be that as it may, they 
> had little problem developing good code.  Compare this to MPI, and these 
> same exact students had a difficult time of it.

We did a study at the AHPCRC attempting to measure the "ease of programming"
of MPI versus UPC/CAF.   Having observed how it was done, the mix of experience
in the group looked at, and noting the complexity of measuring "ease of 
programming"
I would say the conclusions drawn were of nearly no value.  

Explicitness (MPI) tends to force one to think for carefully of the potential 
pits falls
and complexities of the coding problem (in some cases delivering better code), 
while
slowing you down in the short-run.  Implicitness (UPC,CAF, OpenMP) tends to 
speed
the initial development of the code, while allowing more novice programmers to 
make
both parallel programming and performance errors.  This tendency is reflected 
in the
design ideas behind UPC (more implicit shared memory references) and CAF (more
explicit shared memory references).  While both are small foot print, I tend to 
like the
CAF model better which reminds the programmer of every remote reference with a
square bracket at the end of its co-array expressions (Raffeinert es herr CAF, 
aber
boshaft es herr nicht ... ;-) ...)

I might add a point beyond ease-of-use related to granularity ... coding some 
algorithms
that have a natural fine-grained-ness can be prevented entirely by the 
cumbersomeness
explicit message passing models.  The algorithmic flexibiltiy provided by small 
foot-print shared
memory and PGAS models can be a liberating experience for the programmer, just 
like a very good
symbolism can be in mathematics.  Of course, across the spectrum of commodity 
resources
OpenMP does not scale, and UPC and CAF do not yet equal the performance of well-
written MPI code.  Although it would seem that much MPI code is not that 
"well-written".

As to how parallel programming will evolve in this context I think that my 
signature quote
below is relevant.

Regards,

rbw

--

"Making predictions is hard, especially about the future."

Niels Bohr

--

Richard Walsh
Thrashing River Consulting--
5605 Alameda St.
Shoreview, MN 55126

_______________________________________________
Beowulf mailing list, [email protected]
To change your subscription (digest mode or unsubscribe) visit 
http://www.beowulf.org/mailman/listinfo/beowulf

Reply via email to