BZDEV: Parallel Blitz

From: Todd Veldhuizen (tveldhui@oonumerics.org)
Date: Thu Jun 11 1998 - 12:46:09 EST


I'm now settled down in New Mexico after a couple months of
general life craziness. I'm in the process of sorting through
all my blitz-related mail and figuring out where things ought to go.
This will mean a small flood of mail to blitz-dev over the
next few days, so apologies in advance.

First issue: parallel blitz

Dirk Grunwald (grunwald@cs.colorado.edu) has expressed interest
in working on a parallel version of Blitz++. One of his PhD students
(Suvas Vajracharya) implemented a runtime system for handing out pieces
of array operations to threads in such a way as to maximize cache reuse etc.
The system is called DUDE, and documentation can be found at:

http://www.cs.colorado.edu/homes/suvas/public_html/dude.html

Suvas has now moved to the Advanced Computing Laboratory at
Los Alamos Nat'l Lab, where I am for the summer-- convenient.
He is continuing his work with a system called SMARTS (Shared Memory
Asynchronous RunTime System). SMARTS is built on top of another C++
library called TULIP, which provides portable primitives for parallel
computing (e.g. global pointers). TULIP was written by Pete Beckman
(mostly? all?) and was born out of the now-apparently-defunct HPC++
effort.

SMARTS is currently running on SGI SMP boxes, and their intent
is to have it running on clusters of SMPs and other architectures
soon. The POOMA people at LANL intend to use SMARTS for their
parallel arrays. POOMA is a C++ framework/library that provides
parallel arrays based on expression templates; we've been
collaborating loosely. POOMA also provides a lot of stuff to
support specific applications: particle-in-cell, hydrodynamics, etc.
More information at:

http://www.acl.lanl.gov/PoomaFramework/

I've been keen on the idea of parallel blitz for a while, although
there are some issues:
- I don't have a strong background in parallel computing (I wrote
  my first MPI program a few weeks ago)
- Parallel computing can be a quagmire for the unwary
- The majority of users are interested in sequential only (parallel
  computer users are a minority, although growing)
- As Bernd Mohr pointed out, it would probably be more useful to
  have a fully functional sequential library than a flakey library
  that did both sequential and parallel.

For these reasons I decided not to spend the summer implementing
parallel arrays as originally planned. However, if Dirk
decides to go ahead with a DUDE/Blitz combo I'd be quite happy;
and I'll also take a day or two to play with SMARTS while I'm
here this summer.

The alternative to something like TULIP/SMARTS would be to build
directly on top of MPI (or MPI-2, which has official C++ bindings).
Going this route would require duplicating some of the functionality
of TULIP/SMARTS, but would eliminate the risk of relying on another
package which might go unsupported at some point in the future.

Thoughts welcome.

Cheers,
Todd
--------------------- blitz-dev list --------------------------------
* To subscribe/unsubscribe: mail to majordomo@oonumerics.org, with
"subscribe blitz-dev" or "unsubscribe blitz-dev" in the body of the message
* Blitz++ web page: http://oonumerics.org/blitz/



This archive was generated by hypermail 2b29 : Wed Feb 20 2002 - 04:30:04 EST