Abstract
New hardware architectures open up immense opportunities for supercomputer simulations. However, programming techniques for different architectures vary significantly, which leads to the necessity of developing and supporting multiple code versions, each being optimized for specific hardware features. The oneAPI framework, recently introduced by Intel, contains a set of programming tools for the development of portable codes that can be compiled and fine-tuned for CPUs, GPUs, FPGAs, and accelerators. In this paper, we report on the experience of porting the implementation of Boris particle pusher to oneAPI. Boris particle pusher is one of the most demanding computational stages of the Particle-in-Cell method, which, in particular, is used for supercomputer simulations of laser-plasma interactions. We show how to adapt the C++ implementation of the particle push algorithm from the Hi-Chi project to the DPC++ programming language and report the performance of the code on high-end Intel CPUs (Xeon Platinum 8260L) and Intel GPUs (P630 and Iris Xe Max). It turned out that our C++ code can be easily ported to DPC++. We found that on CPUs the resulting DPC++ code is only ~10% on average inferior to the optimized C++ code. The code is compiled and run on new Intel GPUs without any specific optimizations and shows the expected performance.
This study is supported by Intel (oneAPI Center of Excellence program) and by the Ministry of Science and Higher Education of the Russian Federation, project no. 0729-2020-0055.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
OpenCL: open standard for parallel programming of heterogeneous systems. https://www.khronos.org/opencl/
OpenACC. https://www.openacc.org/
Matthes, A., Widera, R., Zenker, E., Worpitz, B., Huebl, A., Bussmann, M.: Tuning and optimization for a variety of many-core architectures without changing a single line of implementation code using the Alpaka library. In: Kunkel, J.M., Yokota, R., Taufer, M., Shalf, J. (eds.) ISC High Performance 2017. LNCS, vol. 10524, pp. 496–514. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-67630-2_36
Edwards, H.C., Trott, C.R., Sunderland, D.: Kokkos: enabling manycore performance portability through polymorphic memory access patterns. J. Parallel Distrib. Comput. 74(12), 3202–3216 (2014). https://doi.org/10.1016/j.jpdc.2014.07.003
Reinders, J., et al.: Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems Using C++ and SYCL. Apress, Berkeley (2021). https://doi.org/10.1007/978-1-4842-5574-2
Hi-Chi framework. https://github.com/hi-chi/pyHiChi
Panova, E., et al.: Optimized computation of tight focusing of short pulses using mapping to periodic space. Appl. Sci. 11(3), 956 (2021). https://doi.org/10.3390/app11030956
Birdsall, C.K., Langdon, A.B.: Plasma Physics via Computer Simulation. CRC Press, Hoboken (2004)
Taflove, A., Hagness, S.C., et al.: Computational Electrodynamics: the Finite-Difference Time-Domain Method, 2nd edn. Artech House, Norwood (1995)
Tajima, T.: Computational Plasma Physics: With Applications to Fusion and Astrophysics. CRC Press, Hoboken (2018)
Ripperda, B., et al.: A comprehensive comparison of relativistic particle integrators. Astrophys. J. Suppl. Ser. 235(1), 21 (2018). https://doi.org/10.3847/1538-4365/aab114
Boris, J.P.: Relativistic plasma simulation-optimization of a hybrid code. In: Proceedings of Fourth Conference on Numerical Simulations of Plasmas, pp. 3–67 (1970)
Decyk, V.K., Singh, T.V.: Particle-in-cell algorithms for emerging computer architectures. Comput. Phys. Commun. 185(3), 708–719 (2014). https://doi.org/10.1016/j.cpc.2013.10.013
Fonseca, R.A., et al.: Exploiting multi-scale parallelism for large scale numerical modelling of laser wakefield accelerators. Plasma Phys. Control. Fusion 55(12), 124011 (2013). https://doi.org/10.1088/0741-3335/55/12/124011
Germaschewski, K., et al.: The plasma simulation code: a modern particle-in-cell code with patch-based load-balancing. J. Comput. Phys. 318, 305–326 (2016). https://doi.org/10.1016/j.jcp.2016.05.013
Surmin, I., Bastrakov, S., Matveev, Z., Efimenko, E., Gonoskov, A., Meyerov, I.: Co-design of a particle-in-cell plasma simulation code for Intel Xeon Phi: a first look at knights landing. In: Carretero, J., et al. (eds.) ICA3PP 2016. LNCS, vol. 10049, pp. 319–329. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-49956-7_25
Surmin, I., et al.: Particle-in-cell laser-plasma simulation on Xeon Phi coprocessors. Comput. Phys. Commun. 202, 204–210 (2016). https://doi.org/10.1016/j.cpc.2016.02.004
Vay, J.L., et al.: Modeling of a chain of three plasma accelerator stages with the WarpX electromagnetic pic code on GPUs. Phys. Plasmas 28(2), 023105 (2021). https://doi.org/10.1063/5.0028512
Vshivkov, V., Kraeva, M., Malyshkin, V.: Parallel implementation of the particle-in-cell method. Program. Comput. Softw. 23(2), 87–97 (1998)
Gonoskov, I., et al.: Dipole pulse theory: maximizing the field amplitude from 4 π focused laser pulses. Phys. Rev. A 86(5), 053836 (2012). https://doi.org/10.1103/PhysRevA.86.053836
Bashinov, A., et al.: Dense e− e+ plasma formation in magnetic dipole wave: vacuum breakdown by 10-pw class lasers. arXiv preprint arXiv:2103.16488 (2021)
Bulanov, S., Mur, V., Narozhny, N., Nees, J., Popov, V.: Multiple colliding electromagnetic pulses: a way to lower the threshold of e+ e− pair production from vacuum. Phys. Rev. Lett. 104(22), 220404 (2010). https://doi.org/10.1103/PhysRevLett.104.220404
Danson, C.N., Haefner, C., Bromage, J., et al.: Petawatt and exawatt class lasers worldwide. High Power Laser Sci. Eng. 7 (2019). https://doi.org/10.1017/hpl.2019.36
Bassett, I.M.: Limit to concentration by focusing. Optica Acta Int. J. Opt. 33(3), 279–286 (1986). https://doi.org/10.1080/713821943
Gonoskov, A., et al.: Anomalous radiative trapping in laser fields of extreme intensity. Phys. Rev. Lett. 113(1), 014801 (2014). https://doi.org/10.1103/PhysRevLett.113.014801
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Volokitin, V., Bashinov, A., Efimenko, E., Gonoskov, A., Meyerov, I. (2021). High Performance Implementation of Boris Particle Pusher on DPC++. A First Look at oneAPI. In: Malyshkin, V. (eds) Parallel Computing Technologies. PaCT 2021. Lecture Notes in Computer Science(), vol 12942. Springer, Cham. https://doi.org/10.1007/978-3-030-86359-3_22
Download citation
DOI: https://doi.org/10.1007/978-3-030-86359-3_22
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-86358-6
Online ISBN: 978-3-030-86359-3
eBook Packages: Computer ScienceComputer Science (R0)