Abstract
Recently, task-based programming models have emerged as a prominent alternative among shared-memory parallel programming paradigms. Inherently asynchronous, these models provide native support for dynamic load balancing and incorporate data flow concepts to selectively synchronize the tasks. However, tasking models are yet to be widely adopted by the HPC community and their effective advantages when applied to non-trivial, real-world HPC applications are still not well comprehended. In this paper, we study the parallelization of a production electromagnetic particle-in-cell (EM-PIC) code for kinetic plasma simulations exploring different strategies using asynchronous task-based models. Our fully asynchronous implementation not only significantly outperforms a conventional, synchronous approach but also achieves near perfect scaling for 48 cores.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Intel\(\textregistered \)Threading Building Blocks. https://www.intel.com/content/www/us/en/develop/documentation/tbb-documentation/top.html
Adcock, A.B., Sullivan, B.D., Hernandez, O.R., Mahoney, M.W.: Evaluating OpenMP tasking at scale for the computation of graph hyperbolicity. In: Rendell, A.P., Chapman, B.M., Müller, M.S. (eds.) IWOMP 2013. LNCS, vol. 8122, pp. 71–83. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-40698-0_6
Akhmetova, D., Iakymchuk, R., Ekeberg, O., Laure, E.: Performance study of multithreaded MPI and OpenMP tasking in a large scientific code (2017)
Aliaga, J.I., Carratalá-Sáez, R., Kriemann, R., Quintana-Ortí, E.S.: Task-parallel LU factorization of hierarchical matrices using OmpSs. In: IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), pp. 1148–1157 (2017)
Anderson, M., Brodowicz, M., Kulkarni, A., Sterling, T.: Performance modeling of gyrokinetic toroidal simulations for a many-tasking runtime system. In: Jarvis, S.A., Wright, S.A., Hammond, S.D. (eds.) PMBS 2013. LNCS, vol. 8551, pp. 136–157. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-10214-6_7
Arber, T.D., et al.: Contemporary particle-in-cell approach to laser-plasma modelling. Plasma Phys. Controlled Fus. 57(11), 113001 (2015)
Augonnet, C., Thibault, S., Namyst, R., Wacrenier, P.A.: StarPU: a unified platform for task scheduling on heterogeneous multicore architectures. Concurr. Comput. Pract. Exp. 23(2), 187–198 (2011)
Ayguadé, E., Duran, A., Hoeflinger, J., Massaioli, F., Teruel, X.: An experimental evaluation of the new OpenMP tasking model. In: Adve, V., Garzarán, M.J., Petersen, P. (eds.) LCPC 2007. LNCS, vol. 5234, pp. 63–77. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-85261-2_5
Blumofe, R.D., Joerg, C.F., Kuszmaul, B.C., Leiserson, C.E., Randall, K.H., Zhou, Y.: Cilk: an efficient multithreaded runtime system. J. Parallel Distrib. Comput. 37(1), 55–69 (1996)
Bosch, J., Filgueras, A., Vidal, M., Jimenez-Gonzalez, D., Alvarez, C., Martorell, : X.: Exploiting parallelism on GPUs and FPGAs with OmpSs (2017)
Bueno, J., et al.: Productive cluster programming with OmpSs. In: Jeannot, E., Namyst, R., Roman, J. (eds.) Euro-Par 2011. LNCS, vol. 6852, pp. 555–566. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-23400-2_52
Chasapis, D., et al.: PARSECSs: evaluating the impact of task parallelism in the PARSEC benchmark suite. ACM Trans. Arch. Code. Optim. 12(4), 41:1–41:22 (2015)
Ciesko, J., et al.: Task-parallel reductions in OpenMP and OmpSs. In: DeRose, L., de Supinski, B.R., Olivier, S.L., Chapman, B.M., Müller, M.S. (eds.) IWOMP 2014. LNCS, vol. 8766, pp. 1–15. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-11454-5_1
Derouillat, J., et al.: SMILEI: a collaborative, open-source, multi-purpose particle-in-cell code for plasma simulation. Comput. Phys. Commun. 222, 351–373 (2018)
Ding, Y., Hu, K., Wu, K., Zhao, Z.: Performance monitoring and analysis of task-based OpenMP. PLOS ONE 8(10), 1–12 (2013)
Duran, A., Ferrer, R., Ayguadé, E., Badia, R.M., Labarta, J.: A proposal to extend the OpenMP tasking model with dependent tasks. Int. J. Parallel Program. 37(3), 292–305 (2009)
Ethier, S., Tang, W.M., Lin, Z.: Gyrokinetic particle-in-cell simulations of plasma microturbulence on advanced computing platforms. J. Phys. Conf. Ser. 16, 1–15 (2005)
Fonseca, R.A., Silva, L.O., Tsung, F.S., Decyk, V.K., Lu, W., Ren, C., Mori, W.B., Deng, S., Lee, S., Katsouleas, T., Adam, J.C.: OSIRIS: a three-dimensional, fully relativistic particle in cell code for modeling plasma based accelerators. In: Sloot, P.M.A., Hoekstra, A.G., Tan, C.J.K., Dongarra, J.J. (eds.) ICCS 2002. LNCS, vol. 2331, pp. 342–351. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-47789-6_36
Fonseca, R.A., et al.: Exploiting multi-scale parallelism for large scale numerical modelling of laser wakefield accelerators. Plasma Phys. Controlled Fus. 55(12), 124011 (2013)
Fonseca, R.A., Silva, L.O., Tonge, J.W., Mori, W.B., Dawson, J.M.: Three-dimensional weibel instability in astrophysical scenarios. Phys. Plasmas 10(5), 1979–1984 (2003)
Germaschewski, K., et al.: The plasma simulation code: a modern particle-in-cell code with load-balancing and gpu support. 1310, 7866 (2015)
Kaiser, H., Heller, T., Adelstein-Lelbach, B., Serio, A., Fey, D.: HPX. In: A Task Based Programming Model in a Global Address Space, vol. 14, pp. 1–11. ACM Press, Eugene (2014)
Koniges, A., et al.: Application acceleration on current and future cray platforms. Proc. Cray User Group Meeting (2009)
OpenMP Specification. https://www.openmp.org/specifications/
Prat, R., Colombet, L., Namyst, R.. : In: Combining task-based parallelism and adaptive mesh refinement techniques in molecular dynamics simulations, New York, NY, USA (2018)
Pukhov, A.: Three-dimensional electromagnetic relativistic particle-in-cell code VLPL. J. Plasma Phys. 61, 425–433 (1999)
Rico, A., Sánchez Barrera, I., Joao, J.A., Randall, J., Casas, M., Moretó, M.: On the benefits of tasking with OpenMP. In: OpenMP: Conquering the Full Hardware Spectrum, pp. 217–230 (2019)
Tajima, T., Dawson, J.M.: Laser electron accelerator. Phys. Rev. Lett. 43, 267–270 (1979)
Valero-Lara, P., Sirvent, R., Peña, A.J., Labarta, J.: MPI+OpenMP tasking scalability for multi-morphology simulations of the human brain. Parallel Comput. 84, 50–61 (2019)
Verboncoeur, J.P.: Particle simulation of plasmas: review and advances. Plasma Phys. Controlled Fus. 47(5A), A231 (2005)
Villasenor, J., Buneman, O.: Rigorous charge conservation for local electromagnetic field solvers. Comput. Phys. Commun. 69(2), 306–316 (1992)
ZPIC documentation. https://github.com/zambzamb/zpic/blob/master/doc/Documentation.md, Accessed 05 Sept 2019
Acknowledgements
This work was partially supported by Fundação Ciência e Tecnologia (FCT) under grant UIDB /50021/2020 and by the EPEEC project, which has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 801051.
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
Guidotti, N. et al. (2021). Particle-In-Cell Simulation Using Asynchronous Tasking. In: Sousa, L., Roma, N., Tomás, P. (eds) Euro-Par 2021: Parallel Processing. Euro-Par 2021. Lecture Notes in Computer Science(), vol 12820. Springer, Cham. https://doi.org/10.1007/978-3-030-85665-6_30
Download citation
DOI: https://doi.org/10.1007/978-3-030-85665-6_30
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-85664-9
Online ISBN: 978-3-030-85665-6
eBook Packages: Computer ScienceComputer Science (R0)