[Beowulf] multi-threading vs. MPI

richard.walsh at comcast.net richard.walsh at comcast.net
Fri Dec 7 14:15:25 PST 2007

-------------- Original message -------------- 
From: "Toon Knapen" <toon.knapen at gmail.com> 

How come there is almost unanimous agreement in the beowulf-community while the rest is almost unanimous convinced of the opposite ? Are we just tapping ourselves on the back or is MP not sufficiently dissiminated or ... ? 

Mmm ... I think the answer to this is that the rest of world (non-HPC world) is in a time
warp.  HPC went through its SMP-threads phase in the early-mid 1990s with OpenMP, and then we needed more a more scalable approach (MPI).  Now that multi-core and multi-socket has brought parallelism to the rest of the Universe, SMP-based parallelism has had a resurgence ... this has also naturally caused some in HPC to revisit the question as nodes have fattened.  

The allure of a programming model that is intuitive, expressive, symbolically light-weight,
and provides a way to manage the latency variance across memory partitions is irresistable.

I kind of like the CAF extension to Fortran and the concept of co-arrays.  The co-array is
and array of identical normal arrays, but one per active image/process.  They are defined as such:

          real, dimension (N) [*] ::  X, Y

If the program is run on 8 cores/processors/images the * becomes 8.  8, 1D arrays of size
N are created on each processor. In any references to the locale component of the co-array
(the image on the processor referencing it), you can drop the []s ... all other references (remote)
must include it.  This is symbolically light, but reminds the programmer of every costly non-
local reference with the presence of the []s in the assignment or operation.  There is much
more to it than that of course, but as the performance gap between carefully constructed
MPI applications and CAF compiled code shrinks I can see the later gaining some traction
for purely programming elegance related reasons.  If you accept that notion that most MPI
programs are written at a B- level in terms of efficiency then the idea of gap closing may not
be so far fetched.  CAF is supposed to be include in the Fortran 2008 standard.



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

Niels Bohr 


Richard Walsh 
Thrashing River Consulting-- 
5605 Alameda St. 
Shoreview, MN 55126 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.beowulf.org/pipermail/beowulf/attachments/20071207/6ca9dd9b/attachment.html>
-------------- next part --------------
An embedded message was scrubbed...
From: "Toon Knapen" <toon.knapen at gmail.com>
Subject: [Beowulf] multi-threading vs. MPI
Date: Fri, 7 Dec 2007 20:07:32 +0000
Size: 721
URL: <http://www.beowulf.org/pipermail/beowulf/attachments/20071207/6ca9dd9b/attachment.mht>

More information about the Beowulf mailing list