if you do not feel like reading technical stuff about problem distribution skip to the part "More important question".
Less important intro
I am working currently on the distributed version of pixi. Specifically, I am dealing with distributing the parts of simulation area to different nodes. There are two possibilities how to do this:
1) distributed data
- on one node we create the grid
- initialize the grid: call the Poisson solver + interpolator.interpolateChargedensity + particle.setChargeDensity
- create particles
- distribute parts of the grid and particles to other computing nodes
2) distributed area of responsibility
- on one node we determine which node will be responsible for which simulation area
- we distribute just the information about these areas
- each node creates the grid on its own
- particles still need to be created by a single node and distributed to other nodes (they are created with random)
Whereas Option 2 is more elegant (less communication) it is also more risky.
To help me decide which one to implement a question follows.
My question is: If we divide the grid into rectangular subgrids can we call the poisson solver on these subgrids and get the same result as if called on the entire grid?