[Dune] Scalability of parallel grid construction
Christian Engwer
christian.engwer at uni-muenster.de
Mon Dec 5 16:02:16 CET 2016
Actually the solution is independent from the dimension.
The interface allows you to communicate vertex data. Thus you can
communicate the rank via the grid commincate method on all
vertices. In the gather you store all ranks and afterwards you have
the set of all neighboring ranks stored for each vertex.
Obvisously the efficiency of this approach depends on the
implementation of your grid.
Christian
On Mon, Dec 05, 2016 at 03:35:05PM +0100, Aleksejs Fomins wrote:
> Dear Dune,
>
> I have recently been working on the Curvilinear Grid documentation, and noticed, that we still have the problem with high parallel scalability of the construction procedure. I am sorry if the question has already been answered, it has been quite some time ago.
>
> Namely, the question is how to determine the neighboring processes for each shared entity on a 3D grid, namely, the neighboring processes containing the shared vertices, edges and faces. Currently, our algorithm requires to communicate the process boundary vertices from all to all processes, such that each process can determine its neighbors by comparing received vertex global indices with its own.
>
> Clearly, all-to-all communication does not scale with growing process number. However, I could not figure out a good algorithm at the time. Since there has been much effort directed to parallel scalability within the Dune community, I would assume that this problem might already be solved for other unstructured grid managers. If possible, it would be great if somebody could share the algorithm, or point me to a publication.
More information about the Dune
mailing list