About neighboring proc for comm tiled?

Dear Dr. Axel

As I read the comm.h, there is an array which store the 6 neighbors of a processor: procneigh[3][2]. For “comm_style tiled”, the neighboring processors is larger than 6 as can be shown in the figure from the “fix balance” command. I am wondering is there another array to store the neighboring processor for comm_style tiled. Thanks very much!

Hao

Dear Dr. Axel

As I read the original paper from Steve, the communication for uniform grid is along the three directions, up-down, north-south and east-west. I am wondering how you do the communication for comm_tiled as in the north direction there can be several processors to communicate. Thanks very much!

Hao

Comm brick does the 6-neighbor communication. Comm tiled does it differently.

Obviously it’s more complicated. See these sections in comm_tiled.h which

store the needed info:

// forward/reverse comm info, proc lists include self
// exchange comm info, proc lists do not include self

Steve

Thanks very much, Steve. I am wondering if there is some paper like the LAMMPS paper which describe how the communication works for “comm_style tiled”. Thanks. Hao

You probably want to read about the RCB (Recursive Coordinate Bisection) Algorithm. A small explanation with some links here: http://www.cs.sandia.gov/zoltan/dev_html/dev_rcb.html

Thanks, Diaz, Adrian. I think that RCB is the algorithm for balancing the load of each processor. Do you know how they communicate with each other after the balance work is done? Hao

Thanks, Diaz, Adrian. I think that RCB is the algorithm for balancing the
load of each processor. Do you know how they communicate with each other
after the balance work is done? Hao

​as steve already pointed out, you have to read through the comm_tiled.cpp
file to see how this is done.​ if you want to know things at this level of
detail, there is no way around reading the source code and the comments and
tracking what is happening with a piece of paper and a pen.

​axel.​

Thanks, Axel.