用于粒子单元代码的具有增强的共享存储器并行性的动态负载平衡
Dynamic load balancing with enhanced shared-memory parallelism for particle-in-cell codes
摘要:
为了进一步理解当今等离子体物理中的许多有趣问题-包括基于等离子体的加速和由于量子电动力学效应而产生的对的磁重联-需要使用粒子单元(PIC)代码进行大规模动力学模拟。然而,这些模拟是非常苛刻的,要求当代PIC代码的设计,以有效地使用一个新的舰队的exascale计算架构。为此,必须解决跨计算节点的并行负载平衡的关键问题。我们通过将模拟空间划分为许多小的、自包含的区域或“瓦片”以及共享内存(例如,OpenMP)并行性。负载平衡算法可以用于三种不同的拓扑结构,包括两个空间填充曲线。我们在代码OSIRIS中测试了此实现,并在均匀负载和严重负载不平衡的模拟上显示了较低的开销和与OpenMP线程数相关的可扩展性。与其他负载平衡技术相比,我们的算法提供了一个数量级的改进,在模拟与严重的负载不平衡问题的并行可扩展性。
英文摘要:
Furthering our understanding of many of today's interesting problems in plasma physics---including plasma based acceleration and magnetic reconnection with pair production due to quantum electrodynamic effects---requires large-scale kinetic simulations using particle-in-cell (PIC) codes. However, these simulations are extremely demanding, requiring that contemporary PIC codes be designed to efficiently use a new fleet of exascale computing architectures. To this end, the key issue of parallel load balance across computational nodes must be addressed. We discuss the implementation of dynamic load balancing by dividing the simulation space into many small, self-contained regions or "tiles," along with shared-memory (e.g., OpenMP) parallelism both over many tiles and within single tiles. The load balancing algorithm can be used with three different topologies, including two space-filling curves. We tested this implementation in the code OSIRIS and show low overhead and improved scalability with OpenMP thread number on simulations with both uniform load and severe load imbalance. Compared to other load-balancing techniques, our algorithm gives order-of-magnitude improvement in parallel scalability for simulations with severe load imbalance issues.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。