[gmx-developers] gromacs software development
Erik Lindahl
lindahl at cbr.su.se
Sun Jul 1 23:38:00 CEST 2007
Hi,
"I'm back", as certain governators would say :-)
First, I think we should separate the issue of domain decomposition
from FFT, so the first task would be to create a truly parallel 3D FFT.
Currently, the algorithm I implemented is essentially the same as
used in FFTW2, where the grid is only decomposed along the x-axis.
This is bad for two reasons: (i) it limits the number of nodes we can
use for PME, and (ii) even when the direct-space system has beautiful
balanced domain decomposition they have to send coordinates to a more
or less orthogonal x-axis decomposition in fourier space.
What we'd like is simply an algorithm that decomposed FFTs in 1D/2D/
3D. This is not rocket science in terms of mathematics, but requires
a bit of juggling with data and communication to make sure things end
up in the right place. There is a pretty good but superficial paper
by Eleftheriou that describes the high-level approach, but
essentially it's a matter of:
1. Starting with a 3D domain decomposed grid
2. Communicate so each node has whole arrays e.g. along the z axis
3. Do 1D FFTs
4. Communicate/transponse so each node has arrays e.g. along the y axis
3. Do 1D FFTs
4. Communicate/transponse so each node has arrays along the last axis
5. Don't communicate more, do the convolution in transposed coordinates
6. Repeat everything backwards.
I do think the "2 weeks" estimate is very optimistic, though - I'd
guess a month for the basic implementation, and a bit more time for
tweaking to minimize communication!
Cheers,
Erik
On Jun 29, 2007, at 3:08 PM, David van der Spoel wrote:
> Carsten Kutzner wrote:
>> Hi,
>> I would be happy to contribute to any of the projects, especially
>> if they address
>> the scaling of mdrun. In this respect the 3D FFT decomposition
>> seems most promising
>> to me (apart from the fast multipole solver ;) David, could you
>> expand a bit on
>> the 3d FFT topic? I guess you refer to a Daresbury/DAFT-style
>> algorithm?
>
> I think Erik knows a bit more about this, but he's traveling. It
> would be an algorithm that does a true 3d decomposition of the PME
> grid, to allow for using more PME nodes (right now this is limited
> to the number of grid cells in the x dimension, which means you can
> not use more than three or four times this number of nodes).
>> Another question that I have is, we need an extra option in the
>> pull code which
>> allows us to rotate a group of atoms around a given axis. I would
>> now start to
>> implement this unless some code is already around that we could use.
> I am not aware of this. Maybe Berk or Justin knows?
>
>> Carsten
>> _______________________________________________
>> gmx-developers mailing list
>> gmx-developers at gromacs.org
>> http://www.gromacs.org/mailman/listinfo/gmx-developers
>> Please don't post (un)subscribe requests to the list. Use the www
>> interface or send it to gmx-developers-request at gromacs.org.
>
>
> --
> David.
> ______________________________________________________________________
> __
> David van der Spoel, PhD, Assoc. Prof., Molecular Biophysics group,
> Dept. of Cell and Molecular Biology, Uppsala University.
> Husargatan 3, Box 596, 75124 Uppsala, Sweden
> phone: 46 18 471 4205 fax: 46 18 511 755
> spoel at xray.bmc.uu.se spoel at gromacs.org http://folding.bmc.uu.se
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++
> _______________________________________________
> gmx-developers mailing list
> gmx-developers at gromacs.org
> http://www.gromacs.org/mailman/listinfo/gmx-developers
> Please don't post (un)subscribe requests to the list. Use the www
> interface or send it to gmx-developers-request at gromacs.org.
More information about the gromacs.org_gmx-developers
mailing list