论文标题

动态载荷平衡与增强的共享内存并行性用于粒子中的代码

Dynamic load balancing with enhanced shared-memory parallelism for particle-in-cell codes

论文作者

Miller, Kyle G., Lee, Roman P., Tableman, Adam, Helm, Anton, Fonseca, Ricardo A., Decyk, Viktor K., Mori, Warren B.

论文摘要

进一步了解我们对血浆物理学中许多有趣的问题的理解 - 包括基于等离子体的加速度和磁重新连接,并通过量子电动力效应引起的配对产生 - - 需要使用粒子中的粒子(PIC)代码进行大规模的动力学模拟。但是,这些模拟极为苛刻,要求设计现代图片代码,以有效地使用新的Exascale计算体系结构。为此,必须解决跨计算节点的并行负载平衡的关键问题。我们通过将仿真空间分为许多小型,独立的区域或“瓷砖”,以及共享记忆(例如OpenMP)并行性,包括许多瓷砖和单个图块中的共享记忆(例如OpenMP)并行性,讨论了动态负载平衡的实现。负载平衡算法可以与三种不同的拓扑结构一起使用,包括两条空间填充曲线。我们在Osiris代码中测试了此实现,并在模拟均匀负载和严重的负载不平衡的模拟上显示出低的开销和提高的可伸缩性。与其他负载平衡技术相比,我们的算法可以改善平行可伸缩性的磁性可伸缩性,以使其具有严重负载不平衡问题的模拟。

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.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源