An implementation of the electromagnetic Particle in Cell loop in the code Smilei using task programming is presented. Through OpenMP, the macro-particles operations are formulated in terms of tasks. This formulation allows asynchronous execution respecting the data dependencies of the macro-particle operations, the most time-consuming part of the code in simulations of interest for plasma physics. Through some benchmarks it is shown that this formulation can help mitigating the load imbalance of these operations at the OpenMP thread level. The improvements in strong scaling for load-imbalanced physical cases are discussed.
翻译:演示了使用任务编程在代码Smilei中细胞循环中的电磁粒子的实施情况。 通过 OpenMP, 宏观粒子操作是根据任务制定的。 配方允许在模拟等离子物理利益时,该代码中最耗时的部分,即宏粒子操作的数据依赖性, 以非同步的方式执行。 通过一些基准, 显示该配方有助于减轻 OpenMP 线条水平上这些操作的负载不平衡。 讨论了为负负平衡物理案例大幅缩放的改进 。