Last decades, we have seen a growing interest in thermonuclear fusion. There are a lot of installation prototypes created for controlled thermonuclear fusion. Our group developing software for numerical simulation of plasma physics processes in an open magnetic trap, which can be used for controlled thermonuclear fusion. This code is Fortran-based code. Parallel implementation using MPI for parallel computations. This parallel implementation is optimized for using CPUs with advanced vectorization instructions such as AVX2/AVX512. In this paper, we will show some optimization techniques for maximizing the performance of our parallel Particle-in-Cell (PIC) code using data alignment. This feature helps the compiler to optimize data and cycles in code during the compilation and building of the program. Also, we will show the performance comparison between optimized and nonoptimized programs and the effect of vector instructions utilization on the total code performance.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

The Impact of Vectorization on the Efficiency of a Parallel PIC Code for Numerical Simulation of Plasma Dynamics in Open Trap

  • Igor Chernykh,
  • Igor Kulikov,
  • Vitaly Vshivkov,
  • Anna Efimova,
  • Dmitry Weins,
  • Ivan Chernoshtanov,
  • Marina Boronina

摘要

Last decades, we have seen a growing interest in thermonuclear fusion. There are a lot of installation prototypes created for controlled thermonuclear fusion. Our group developing software for numerical simulation of plasma physics processes in an open magnetic trap, which can be used for controlled thermonuclear fusion. This code is Fortran-based code. Parallel implementation using MPI for parallel computations. This parallel implementation is optimized for using CPUs with advanced vectorization instructions such as AVX2/AVX512. In this paper, we will show some optimization techniques for maximizing the performance of our parallel Particle-in-Cell (PIC) code using data alignment. This feature helps the compiler to optimize data and cycles in code during the compilation and building of the program. Also, we will show the performance comparison between optimized and nonoptimized programs and the effect of vector instructions utilization on the total code performance.