A Space and Bandwidth Efficient Multicore Algorithm for the Particle-in-Cell Method

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10777)


The Particle-in-Cell (PIC) method allows solving partial differential equation through simulations, with important applications in plasma physics. To simulate thousands of billions of particles on clusters of multicore machines, prior work has proposed hybrid algorithms that combine domain decomposition and particle decomposition with carefully optimized algorithms for handling particles processed on each multicore socket. Regarding the multicore processing, existing algorithms either suffer from suboptimal execution time, due to sorting operations or use of atomic instructions, or suffer from suboptimal space usage. In this paper, we propose a novel parallel algorithm for two-dimensional PIC simulations on multicore hardware that features asymptotically-optimal memory consumption, and does not perform unnecessary accesses to the main memory. In practice, our algorithm reaches 65% of the maximum bandwidth, and shows excellent scalability on the classical Landau damping and two-stream instability test cases.


Particle-in-Cell Simulation Plasma physics Strong scaling Weak scaling Hybrid parallelism SIMD architecture 



This work has been carried out within the framework of the EUROfusion Consortium and has received funding from the Euratom Research and Training Programme 2014–2018 under Grant Agreement No. 633053. Simulations were run on the EUROfusion Marconi supercomputer, in the context of the Selavlas project led by K. Kormann. The views and opinions expressed herein do not necessarily reflect those of the European Commission.


  1. 1.
    Bader, M.: Space-Filling Curves. Springer, Heidelberg (2013)CrossRefzbMATHGoogle Scholar
  2. 2.
    Barnes, J., Hut, P.: A hierarchical \(O(N \log N)\) force-calculation algorithm. Nature 324(3), 446–449 (1986)CrossRefGoogle Scholar
  3. 3.
    Barsamian, Y., Hirstoaga, S.A., Violard, É.: Efficient data structures for a hybrid parallel and vectorized particle-in-cell code. In: 2017 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), pp. 1168–1177 (2017)Google Scholar
  4. 4.
    Bender, M.A., Demaine, E.D., Farach-Colton, M.: Cache-oblivious b-trees. In: Proceedings of the 41st Annual Symposium on Foundations of Computer Science (FOCS), pp. 399–409 (2000)Google Scholar
  5. 5.
    Birdsall, C.K., Fuss, D.: Clouds-in-clouds, clouds-in-cells physics for many-body plasma simulation. J. Comput. Phys. 3, 494–511 (1969)CrossRefzbMATHGoogle Scholar
  6. 6.
    Birdsall, C.K., Langdon, A.B.: Plasma Physics via Computer Simulation. McGraw-Hill, New York (1985)Google Scholar
  7. 7.
    Bowers, K.J.: Accelerating a particle-in-cell simulation using a hybrid counting sort. J. Comput. Phys. 173(2), 393–411 (2001)CrossRefzbMATHGoogle Scholar
  8. 8.
    Bowers, K.J., Albright, B.J., Yin, L., Bergen, B., Kwan, T.J.T.: Ultrahigh performance three-dimensional electromagnetic relativistic kinetic plasma simulation. Phys. Plasmas 15(5), 055703 (2008)CrossRefGoogle Scholar
  9. 9.
    Bussmann, M., Burau, H., Cowan, T.E., Debus, A., Huebl, A., Juckeland, G., Kluge, T., Nagel, W.E., Pausch, R., Schmitt, F., Schramm, U., Schuchart, J., Widera, R.: Radiative signatures of the relativistic Kelvin-Helmholtz instability. In: Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis (SC), pp. 5:1–5:12 (2013)Google Scholar
  10. 10.
    Decyk, V.K., Singh, T.V.: Particle-in-cell algorithms for emerging computer architectures. Comput. Phys. Commun. 185(3), 708–719 (2014)MathSciNetCrossRefGoogle Scholar
  11. 11.
    Durand, M.: PaVo. An adaptative parallel sorting algorithm. Ph.D. thesis, Université de Grenoble (2013)Google Scholar
  12. 12.
    Durand, M., Raffin, B., Faure, F.: A packed memory array to keep moving particles sorted. In: Workshop on Virtual Reality Interaction and Physical Simulation (VRIPHYS) (2012)Google Scholar
  13. 13.
    Frigo, M., Johnson, S.G.: The design and implementation of FFTW3. Proc. IEEE 93(2), 216–231 (2005). CrossRefGoogle Scholar
  14. 14.
    Germaschewski, K., Fox, W., Abbott, S., Ahmadi, N., Maynard, K., Wang, L., Ruhl, H., Bhattacharjee, A.: The plasma simulation code: a modern particle-in-cell code with patch-based load-balancing. J. Comput. Phys. 318, 305–326 (2016)MathSciNetCrossRefzbMATHGoogle Scholar
  15. 15.
    Hanson, D.R.: Fast allocation and deallocation of memory based on object lifetimes. Softw. Pract. Exper. 20(1), 5–12 (1990)CrossRefGoogle Scholar
  16. 16.
    Hockney, R.W., Eastwood, J.W.: Computer Simulation Using Particles. Institute of Physics, Philadelphia (1988)CrossRefzbMATHGoogle Scholar
  17. 17.
    Jocksch, A., Hariri, F., Tran, T.-M., Brunner, S., Gheller, C., Villard, L.: A bucket sort algorithm for the particle-in-cell method on manycore architectures. In: Wyrzykowski, R., Deelman, E., Dongarra, J., Karczewski, K., Kitowski, J., Wiatr, K. (eds.) PPAM 2015. LNCS, vol. 9573, pp. 43–52. Springer, Cham (2016)CrossRefGoogle Scholar
  18. 18.
    Kim, C.C., Parker, S.E.: Massively parallel three-dimensional toroidal gyrokinetic flux-tube turbulence simulation. J. Comput. Phys. 161(2), 589–604 (2000)CrossRefzbMATHGoogle Scholar
  19. 19.
    McCalpin, J.D.: Memory bandwidth and machine balance in current high performance computers. In: IEEE Computer Society Technical Committee on Computer Architecture Newsletter (TCCA), pp. 19–25 (1995)Google Scholar
  20. 20.
    Nakashima, H., Summura, Y., Kikura, K., Miyake, Y.: Large scale manycore-aware PIC simulation with efficient particle binning. In: 2017 IEEE International Parallel and Distributed Processing Symposium (IPDPS), pp. 202–212 (2017)Google Scholar
  21. 21.
    Nicol, D.M.: Rectilinear partitioning of irregular data parallel computations. J. Parallel Distr. Com. 23(2), 119–134 (1994)CrossRefGoogle Scholar
  22. 22.
    Surmin, I., Bashinov, A., Bastrakov, S., Efimenko, E., Gonoskov, A., Meyerov, I.: Dynamic load balancing based on rectilinear partitioning in particle-in-cell plasma simulation. In: Parallel Computing Technologies: 13th International Conference (PaCT), pp. 107–119 (2015)Google Scholar
  23. 23.
    Sáez, X., Soba, A., Sánchez, E., Kleiber, R., Castejón, F., Cela, J.M.: Improvements of the particle-in-cell code EUTERPE for petascaling machines. Comput. Phys. Commun. 182(9), 2047–2051 (2011)CrossRefGoogle Scholar
  24. 24.
    Tskhakaya, D., Schneider, R.: Optimization of PIC codes by improved memory management. J. Comput. Phys. 225(1), 829–839 (2007)CrossRefzbMATHGoogle Scholar
  25. 25.
    Vincenti, H., Lobet, M., Lehe, R., Sasanka, R., Vay, J.L.: An efficient and portable SIMD algorithm for charge/current deposition in particle-in-cell codes. Comput. Phys. Commun. 210, 145–154 (2016)CrossRefzbMATHGoogle Scholar
  26. 26.
    Winkel, M., Speck, R., Hübner, H., Arnold, L., Krause, R., Gibbon, P.: A massively parallel, multi-disciplinary Barnes-Hut tree code for extreme-scale N-body simulations. Comput. Phys. Commun. 183(4), 880–889 (2012)MathSciNetCrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  1. 1.CNRS, ICube UMR 7357Université de StrasbourgStrasbourgFrance
  2. 2.InriaNancyFrance

Personalised recommendations