The overlapping grid technique can be used to solve partial differential equations defined on complex computational domains. However, large-scale realistic applications using overlapping grid technique under distributed memory systems are not easy. The grid points do not meet point by point and interpolation is needed. Applications with millions of grid points may consist of many blocks. A proper method that specifies the connectivity among so many blocks may be a challenge in large-scale simulations. Furthermore, a domain-decomposition method is always used in parallel computing. A proper communication schedule among a large number of subdomains may be another challenge.
In this talk, we describe a Communication Algorithm for Overlapping Grids Applications with patch-based data structure. Splitting overlapping grids into patches in order to lead to a more computationally balanced workload. The communication algorithm includes a grid mapping method and a communication schedule. Grid mapping method searches donor interpolating grid points based on patch. A tree with patch boxes as its nodes is designed in order to reduce searching cost. A ghost patch assignment strategy is used to facilitate messages pack/unpack routine. A coarse grained communication schedule is implemented in order to reduce communication latency.
According to our test results, applications based on this communication algorithm can be run efficiently on thousands of cores.