Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] 3D domain decomposition with MPI
From: Cole, Derek E (derek.e.cole_at_[hidden])
Date: 2010-03-11 12:44:01


I am replying to this via the daily-digest message I got. Sorry it wasn't sooner... I didn't realize I was getting replies until I got the digest. Does anyone know how to change it so I get the emails as you all send them?

>>Unless your computation is so "embarrassingly parallel" that each process can operate from start to end totally independent from the others, you should expect such an overlap, but you didn't tell what computation you want to do.

I am doing a Red-black Gauss-Seidel algorithm. The ghost points are what I was trying to figure for moving this into the 3rd dimension. Thanks for adding some concrete-ness to my idea of exactly how much overhead is involved. The test domains I am computing on are on the order of 100*50*50 or so. This is why I am trying to limit the overhead of the MPI communication. I am in the process of finding out exactly how big the domains may become, so that I can adjust the algorithm accordingly.

>> PS - The same book "MPI the complete reference" has a thorough description of MPI types in Chapter 3.
You may want to create and use a MPI_TYPE_VECTOR with the appropriate count, blocklength, and stride, to exchange all the "0..Z" overlap slices in a single swoop.
(If I understood right, this is your main concern.)

This is exactly what I was trying to do before, but I soon discovered you have to have your arrays tightly packed for this to work. Using a static array it is fine, but for dynamically sized arrays, there has to be a separate malloc() in C for the space, and then an array of pointers to that defined space to be able to use three-bracket notation. Tricky that it works like that (at least it was to me).

>>Also, I wonder why you want to decompose on both X and Y ("pencils"), and not only X ("books"), which may give you a smaller/simpler domain decomposition and communication footprint.
Whether you can or cannot do this way depends on your computation, which I don't know about.

If I understand what you mean by pencils versus books, I don't think that will work for these types of calculations will it? Maybe a better explanation of what you mean by a pencil versus a book. If I was going to solve a sub-matrix of the XY plane for all Z-values, what is that considered? My plan was to share the appropriate top, bottom, left, and right neighbors (w.r.t. to the XY plane) but NOT the above/below neighbors (since I am calculating from 0..Z completely, in order).