TY - JOUR
T1 - Accelerating Polyhedral Discrete Element Method with CUDA
AU - Wen, Tongge
AU - Zeng, Xiangyuan
N1 - Publisher Copyright:
© 2023. The Author(s). Published by the American Astronomical Society.
PY - 2023/11/1
Y1 - 2023/11/1
N2 - This paper presents an efficient CUDA-based implementation of a nonspherical discrete element method where irregular particles are described by using polyhedrons. Two strategies are employed to exploit the parallelism of the numerical method. One is to perform contact detection based on the contact pair level instead of the traditional particle level. The second is to reduce the computational burden of each kernel function by allocating thread blocks reasonably. Contact detection between potential contact pairs is the most complicated, time-consuming, and essential process for the polyhedral discrete element method. The linear bounding volume hierarchies are introduced to fix this issue. The hierarchies of the bounding volume tree are organized in a spatially coherent way. Such a structure can minimize branch divergence and is very suitable for parallel implementation with GPU. Two numerical examples are presented to show the performance of the code. It is found from the scenario of two sphere collision that improving the mesh resolution of polyhedral particles can reduce the computational error while slowing down the computational speed correspondingly. A trade-off must be made between accuracy and efficiency. The other example of self-gravitating aggregation demonstrates the code is convergent, stable, and highly efficient. Particularly, with a mainstream GPU, the proposed method easily performs hundreds of times faster than the serial CPU code that does the same function.
AB - This paper presents an efficient CUDA-based implementation of a nonspherical discrete element method where irregular particles are described by using polyhedrons. Two strategies are employed to exploit the parallelism of the numerical method. One is to perform contact detection based on the contact pair level instead of the traditional particle level. The second is to reduce the computational burden of each kernel function by allocating thread blocks reasonably. Contact detection between potential contact pairs is the most complicated, time-consuming, and essential process for the polyhedral discrete element method. The linear bounding volume hierarchies are introduced to fix this issue. The hierarchies of the bounding volume tree are organized in a spatially coherent way. Such a structure can minimize branch divergence and is very suitable for parallel implementation with GPU. Two numerical examples are presented to show the performance of the code. It is found from the scenario of two sphere collision that improving the mesh resolution of polyhedral particles can reduce the computational error while slowing down the computational speed correspondingly. A trade-off must be made between accuracy and efficiency. The other example of self-gravitating aggregation demonstrates the code is convergent, stable, and highly efficient. Particularly, with a mainstream GPU, the proposed method easily performs hundreds of times faster than the serial CPU code that does the same function.
UR - http://www.scopus.com/inward/record.url?scp=85175634209&partnerID=8YFLogxK
U2 - 10.3847/1538-3881/acfc46
DO - 10.3847/1538-3881/acfc46
M3 - Article
AN - SCOPUS:85175634209
SN - 0004-6256
VL - 166
JO - Astronomical Journal
JF - Astronomical Journal
IS - 5
M1 - 194
ER -