adda
adda copied to clipboard
Changing the order of FFT transforms in matvec.c
Currently the FFTs in matvec are performed as x-z-y and grids along x and z are
divided among processors in parallel mode (at different steps).
If z and y FFTs are interchanged, then computing reflected interaction can be
optimized. It will require only additional fftZ (now fftY and fftZ) and
somewhat smaller additional memory. Also then the grids along x and y will be
divided among processors. This is good for the typical situation of particles
near surfaces, like large particulate slabs, which have the smallest dimension
along z.
However, division of dipoles along z is also used in several other parts of the
code - so it has to be changed to e.g. division over x.
Overall, this may change the behavior (performance but not results) of existing
MPI simulation settings (execution scripts, shape files, etc.) so this change
should probably be discussed with users before-hand.
Original issue reported on code.google.com by yurkin
on 25 Sep 2013 at 9:30
- Blocking: #174
If such memory rearrangement is performed, we can also try to fix issue 174.
Original comment by yurkin
on 25 Sep 2013 at 9:49
Original comment by yurkin
on 25 Sep 2013 at 9:55
- Now blocking: #174
It is easier to address this issue first for OpenCL mode alone - see comments
under r1344.
r1344 - e0e060f35ac01ec517244032266a3994a0964c9e
Original comment by yurkin
on 29 May 2014 at 5:06
/cc @mapclyps