{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,12]],"date-time":"2026-01-12T08:11:11Z","timestamp":1768205471274,"version":"3.49.0"},"reference-count":102,"publisher":"Wiley","issue":"1","license":[{"start":{"date-parts":[[2026,1,2]],"date-time":"2026-01-02T00:00:00Z","timestamp":1767312000000},"content-version":"vor","delay-in-days":1,"URL":"http:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100010190","name":"Grand \u00c9quipement National De Calcul Intensif","doi-asserted-by":"publisher","award":["A0172A10636"],"award-info":[{"award-number":["A0172A10636"]}],"id":[{"id":"10.13039\/501100010190","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100010190","name":"Grand \u00c9quipement National De Calcul Intensif","doi-asserted-by":"publisher","award":["A0152A10636"],"award-info":[{"award-number":["A0152A10636"]}],"id":[{"id":"10.13039\/501100010190","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100010190","name":"Grand \u00c9quipement National De Calcul Intensif","doi-asserted-by":"publisher","award":["A0152A12067"],"award-info":[{"award-number":["A0152A12067"]}],"id":[{"id":"10.13039\/501100010190","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100010190","name":"Grand \u00c9quipement National De Calcul Intensif","doi-asserted-by":"publisher","award":["A0172A12067"],"award-info":[{"award-number":["A0172A12067"]}],"id":[{"id":"10.13039\/501100010190","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100001665","name":"Agence Nationale de la Recherche","doi-asserted-by":"publisher","award":["ANR\u201021\u2010DMES\u20100006"],"award-info":[{"award-number":["ANR\u201021\u2010DMES\u20100006"]}],"id":[{"id":"10.13039\/501100001665","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["onlinelibrary.wiley.com"],"crossmark-restriction":true},"short-container-title":["Concurrency and Computation"],"published-print":{"date-parts":[[2026,1]]},"abstract":"<jats:title>ABSTRACT<\/jats:title>\n                  <jats:p>The increasing availability of GPU accelerated architectures for high\u2010performance computing presents new opportunities for scientific software but also challenges due to the complexity of porting legacy codes to accelerator platforms. Directive\u2010based programming models such as OpenACC offer a minimally intrusive pathway to exploit GPU acceleration without requiring extensive rewriting of existing codes. The current work presents a comprehensive performance and portability study of a LatticeBoltzmann Method solver (PyLB) originally written in Python, Mpi4Py, and Fortran for CPU architectures, which is ported to GPUs using OpenACC directives applied to the Fortran routines. The performance of the solver is evaluated on NVIDIA V100, A100, and H100 GPUs available on the Jean Zay supercomputer from Institute for Development and Resources in Intensive Scientific Computing (IDRIS) in France. Roofline analysis and extensive strong and weak scalability tests are conducted, showing that the GPU\u2010enabled version of PyLB scales efficiently across multiple GPUs. The solver achieves performance on the H100 GPU equivalent to thousands of CPU cores and shows strong energy and carbon efficiency advantages over traditional CPU\u2010based simulations. The implementation is validated using classical benchmarks, including the decaying Taylor\u2010Green vortex and the flow over a 3\u2010D sphere. The results confirm the physical accuracy of the GPU port while highlighting its computational and environmental advantages.<\/jats:p>","DOI":"10.1002\/cpe.70518","type":"journal-article","created":{"date-parts":[[2026,1,3]],"date-time":"2026-01-03T06:07:29Z","timestamp":1767420449000},"update-policy":"https:\/\/doi.org\/10.1002\/crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["A Python\/Fortran Implementation of the Lattice\u2010Boltzmann Kernel on Multiple GPU Using the OpenACC Framework"],"prefix":"10.1002","volume":"38","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-4116-3012","authenticated-orcid":false,"given":"Carlos","family":"Junqueira\u2010Junior","sequence":"first","affiliation":[{"name":"Laboratoire DynFluid Ecole Nationale Sup\u00e9rieur d'Arts et M\u00e9tiers  Paris France"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0009-2197-609X","authenticated-orcid":false,"given":"Erwan Zamora","family":"Medina","sequence":"additional","affiliation":[{"name":"Laboratoire DynFluid Conservatoire National des Arts et M\u00e9tiers  Paris France"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Noureddine","family":"Taibi","sequence":"additional","affiliation":[{"name":"Laboratoire DynFluid Conservatoire National des Arts et M\u00e9tiers  Paris France"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Simon","family":"Mari\u00e9","sequence":"additional","affiliation":[{"name":"Laboratoire DynFluid Conservatoire National des Arts et M\u00e9tiers  Paris France"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"311","published-online":{"date-parts":[[2026,1,2]]},"reference":[{"key":"e_1_2_14_2_1","unstructured":"CEA \u201cJoliot\u2010Curie One of the Most Powerful Supercomputer Dedicated to French and European Research \u201d2025 https:\/\/www\u2010hpc.cea.fr\/en\/Joliot\u2010Curie.html."},{"key":"e_1_2_14_3_1","unstructured":"IDRIS \u201cJean Zay: HPE SGI 8600 Supercomputer \u201d2025 http:\/\/www.idris.fr\/eng\/jean\u2010zay\/cpu\/jean\u2010zay\u2010cpu\u2010hw\u2010eng.html."},{"key":"e_1_2_14_4_1","unstructured":"CINES \u201cAdastra Architecture \u201d2025 https:\/\/dci.dci\u2010gitlab.cines.fr\/webextranet\/architecture\/index.html."},{"key":"e_1_2_14_5_1","unstructured":"Top 500 Top 500 The list 2025 https:\/\/www.top500.org\/lists\/top500\/."},{"key":"e_1_2_14_6_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.parco.2021.102841"},{"key":"e_1_2_14_7_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.parco.2022.102982"},{"key":"e_1_2_14_8_1","volume-title":"Parallel Programming With OpenACC","author":"Farber R.","year":"2017"},{"key":"e_1_2_14_9_1","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.6036"},{"key":"e_1_2_14_10_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.ijheatmasstransfer.2022.123649"},{"key":"e_1_2_14_11_1","doi-asserted-by":"publisher","DOI":"10.1209\/0295-5075\/17\/6\/001"},{"key":"e_1_2_14_12_1","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.55.R6333"},{"key":"e_1_2_14_13_1","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.7509"},{"key":"e_1_2_14_14_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0022112005008153"},{"key":"e_1_2_14_15_1","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.74.036704"},{"key":"e_1_2_14_16_1","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevC.84.034903"},{"key":"e_1_2_14_17_1","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRev.94.511"},{"key":"e_1_2_14_18_1","doi-asserted-by":"publisher","DOI":"10.1098\/rsta.2001.0955"},{"key":"e_1_2_14_19_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jcp.2008.10.021"},{"key":"e_1_2_14_20_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.compfluid.2009.10.002"},{"key":"e_1_2_14_21_1","doi-asserted-by":"publisher","DOI":"10.1006\/jcph.1996.0016"},{"key":"e_1_2_14_22_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.physa.2015.09.089"},{"key":"e_1_2_14_23_1","doi-asserted-by":"publisher","DOI":"10.1098\/rsta.2019.0397"},{"key":"e_1_2_14_24_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.camwa.2015.05.001"},{"key":"e_1_2_14_25_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.matcom.2006.05.017"},{"key":"e_1_2_14_26_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.matcom.2006.05.007"},{"key":"e_1_2_14_27_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.camwa.2012.11.007"},{"key":"e_1_2_14_28_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jocs.2020.101181"},{"key":"e_1_2_14_29_1","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.100.033305"},{"key":"e_1_2_14_30_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jcp.2016.12.017"},{"key":"e_1_2_14_31_1","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.100.023309"},{"key":"e_1_2_14_32_1","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevFluids.6.053904"},{"key":"e_1_2_14_33_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.camwa.2020.03.022"},{"key":"e_1_2_14_34_1","doi-asserted-by":"publisher","DOI":"10.1177\/10943420241313385"},{"key":"e_1_2_14_35_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.cpc.2014.04.018"},{"key":"e_1_2_14_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1401132.1401152"},{"key":"e_1_2_14_37_1","first-page":"787202","volume-title":"International Society for Optics and Photonics","author":"Broussard R. P.","year":"2011"},{"key":"e_1_2_14_38_1","volume-title":"Programming Massively Parallel Processors: A Hands\u2010On Approach","author":"Kirk D. B.","year":"2016"},{"key":"e_1_2_14_39_1","doi-asserted-by":"publisher","DOI":"10.1109\/MCSE.2010.69"},{"key":"e_1_2_14_40_1","volume-title":"OpenAC for Programmers: Concepts and Strategies","author":"Chandrasekaran S.","year":"2017"},{"key":"e_1_2_14_41_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.parco.2021.102856"},{"key":"e_1_2_14_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO53902.2022.9741290"},{"key":"e_1_2_14_43_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.compfluid.2005.02.008"},{"key":"e_1_2_14_44_1","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.3717"},{"key":"e_1_2_14_45_1","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.4221"},{"key":"e_1_2_14_46_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00450-009-0087-3"},{"key":"e_1_2_14_47_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.camwa.2009.08.052"},{"key":"e_1_2_14_48_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.camwa.2011.02.020"},{"key":"e_1_2_14_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/3624062.3624250"},{"key":"e_1_2_14_50_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-10626-7_16"},{"key":"e_1_2_14_51_1","doi-asserted-by":"publisher","DOI":"10.1109\/AERO55745.2023.10115537"},{"key":"e_1_2_14_52_1","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.8117"},{"key":"e_1_2_14_53_1","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.61.6546"},{"key":"e_1_2_14_54_1","unstructured":"T.F\u00e9vrier \u201cPhD Thesis Univerist\u00e9 de Paris\u2010Saclay \u201d2015."},{"key":"e_1_2_14_55_1","unstructured":"O.Malaspinas \u201cIncreasing Stability and Accuracy of the Lattice Boltzmann Scheme: Recursivity and Regularization \u201d arXiv e\u2010prints arXiv:1505.06900 (2015)."},{"key":"e_1_2_14_56_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.compfluid.2016.03.009"},{"key":"e_1_2_14_57_1","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.99.013301"},{"key":"e_1_2_14_58_1","doi-asserted-by":"publisher","DOI":"10.1080\/14685248.2018.1540879"},{"key":"e_1_2_14_59_1","doi-asserted-by":"publisher","DOI":"10.1088\/1742-5468\/2009\/06\/P06006"},{"key":"e_1_2_14_60_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jcp.2020.109570"},{"key":"e_1_2_14_61_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jpdc.2005.03.010"},{"key":"e_1_2_14_62_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2022.3225481"},{"key":"e_1_2_14_63_1","unstructured":"Mpy4Py \u201cMPI for Python Tutorial \u201d2025 https:\/\/mpi4py.readthedocs.io\/en\/4.0.3\/tutorial.html."},{"key":"e_1_2_14_64_1","doi-asserted-by":"publisher","DOI":"10.1142\/S0129183119500748"},{"key":"e_1_2_14_65_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.compfluid.2021.104946"},{"key":"e_1_2_14_66_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.compfluid.2023.105881"},{"key":"e_1_2_14_67_1","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevE.48.4823"},{"key":"e_1_2_14_68_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.compfluid.2005.08.008"},{"key":"e_1_2_14_69_1","doi-asserted-by":"publisher","DOI":"10.1002\/fld.3767"},{"key":"e_1_2_14_70_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.compfluid.2017.06.008"},{"key":"e_1_2_14_71_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0022112095000462"},{"key":"e_1_2_14_72_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0022112074000644"},{"key":"e_1_2_14_73_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0022112098003206"},{"key":"e_1_2_14_74_1","volume-title":"Fundamentals of Aerodynamics","author":"Anderson J. D.","year":"2011"},{"key":"e_1_2_14_75_1","doi-asserted-by":"publisher","DOI":"10.2514\/3.6164"},{"key":"e_1_2_14_76_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0022112000008880"},{"key":"e_1_2_14_77_1","doi-asserted-by":"publisher","DOI":"10.1023\/B:APPL.0000004937.34078.71"},{"key":"e_1_2_14_78_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0022112002008509"},{"key":"e_1_2_14_79_1","doi-asserted-by":"publisher","DOI":"10.1006\/jcph.2002.7035"},{"key":"e_1_2_14_80_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.euromechflu.2017.03.002"},{"key":"e_1_2_14_81_1","first-page":"1","volume-title":"Proceedings of the 2015 IEEE 23rd Annual Symposium on High\u2010Performance Interconnects","author":"Birrittella M. S.","year":"2015"},{"key":"e_1_2_14_82_1","unstructured":"Mellanox \u201cIntroducing 200G HDR InfiniBand Solutions \u201d2022 https:\/\/network.nvidia.com\/sites\/default\/files\/pdf\/whitepapers\/WP_Introducing_200G_HDR_InfiniBand_Solutions.pdf."},{"key":"e_1_2_14_83_1","unstructured":"GENCI \u201cGENCI and CNRS Choose Eviden to Make the Jean Zay Supercomputer One of the Most Powerful in France \u201d2024 https:\/\/www.genci.fr\/en\/news\/genci\u2010and\u2010cnrs\u2010choose\u2010eviden\u2010make\u2010jean\u2010zay\u2010supercomputer\u2010one\u2010most\u2010powerful\u2010france."},{"key":"e_1_2_14_84_1","unstructured":"NVIDIA \u201cNVIDIA HPC SDK Documentation \u201d2025 https:\/\/docs.nvidia.com\/hpc\u2010sdk\/index.html."},{"key":"e_1_2_14_85_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-75416-9_15"},{"key":"e_1_2_14_86_1","unstructured":"NVIDIA \u201cNVIDIA Nsight Systems \u201d2025 https:\/\/developer.nvidia.com\/nsight\u2010systems."},{"key":"e_1_2_14_87_1","doi-asserted-by":"publisher","DOI":"10.1145\/1498765.1498785"},{"key":"e_1_2_14_88_1","unstructured":"Berkley Lab \u201cCS Roofline Toolkit Repository \u201d2025 https:\/\/bitbucket.org\/berkeleylab\/cs\u2010roofline\u2010toolkit\/src\/master\/."},{"key":"e_1_2_14_89_1","doi-asserted-by":"publisher","DOI":"10.1109\/P3HPC.2018.00005"},{"key":"e_1_2_14_90_1","doi-asserted-by":"publisher","DOI":"10.1109\/PMBS51919.2020.00007"},{"key":"e_1_2_14_91_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-58184-7_109"},{"key":"e_1_2_14_92_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0045-7825(98)00308-9"},{"key":"e_1_2_14_93_1","doi-asserted-by":"publisher","DOI":"10.1145\/2503210.2503265"},{"key":"e_1_2_14_94_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.compfluid.2019.104316"},{"key":"e_1_2_14_95_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.parco.2020.102620"},{"key":"e_1_2_14_96_1","first-page":"797","volume-title":"ICPP 23: Proceedings of the 52nd International Conference on Parallel Processing","author":"Liu Z.","year":"2023"},{"key":"e_1_2_14_97_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.cma.2020.113266"},{"key":"e_1_2_14_98_1","first-page":"188","volume-title":"25th International Conference Mixed Design of Integrated Circuits and System (MIXDES)","author":"Jahoski G.","year":"2018"},{"key":"e_1_2_14_99_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.camwa.2020.01.007"},{"key":"e_1_2_14_100_1","volume-title":"R\u00e9seau de Transport D\u00c9lectricit\u00e9 (RTE), Real\u2010Time Data","author":"France's Transmission System Operator","year":"2025"},{"key":"e_1_2_14_101_1","volume-title":"RTE Report: 32 g CO2$$ {\\kern0em }_2 $$ eq\/kWh","author":"France's Transmission System Operator","year":"2024"},{"key":"e_1_2_14_102_1","unstructured":"CEEMS \u201cCompute Energy & Emissions Monitoring Stack (CEEMS) Git Repository \u201d2025 https:\/\/github.com\/mahendrapaipuri\/ceems."},{"key":"e_1_2_14_103_1","unstructured":"CEEMS \u201cCompute Energy & Emissions Monitoring Stack (CEEMS) Documentation \u201d2025 https:\/\/mahendrapaipuri.github.io\/ceems\/docs\/."}],"container-title":["Concurrency and Computation: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/cpe.70518","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,1,12]],"date-time":"2026-01-12T04:50:16Z","timestamp":1768193416000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/cpe.70518"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2026,1]]},"references-count":102,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2026,1]]}},"alternative-id":["10.1002\/cpe.70518"],"URL":"https:\/\/doi.org\/10.1002\/cpe.70518","archive":["Portico"],"relation":{},"ISSN":["1532-0626","1532-0634"],"issn-type":[{"value":"1532-0626","type":"print"},{"value":"1532-0634","type":"electronic"}],"subject":[],"published":{"date-parts":[[2026,1]]},"assertion":[{"value":"2025-07-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-12-10","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2026-01-02","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}],"article-number":"e70518"}}