<?xml version="1.0" encoding="UTF-8" standalone="yes"?><?xml-stylesheet type="text/xsl" href="/oai-pmh-repository/static/oai2.xsl"?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
    <responseDate>2026-10-15T09:56:36Z</responseDate>
    <request verb="GetRecord" identifier="oai:data.mendeley.com/cx7j83pr69.1" metadataPrefix="oai_dc">https://data.mendeley.com/oai</request>
    <GetRecord>
        <record>
            <header>
                <identifier>oai:data.mendeley.com/cx7j83pr69.1</identifier>
                <datestamp>2026-03-13T11:29:47Z</datestamp>
            </header>
            <metadata><oai_dc:dc xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <dc:creator>Ballantyne, John</dc:creator>
    <dc:title>Multi-GPU acceleration of PALABOS fluid solver using C++ standard parallelism</dc:title>
    <dc:publisher>Mendeley Data</dc:publisher>
    <dc:description>This article presents the principles, software architecture, and performance analysis of the GPU port of the lattice Boltzmann software library Palabos [J. Latt et al., “Palabos: Parallel lattice Boltzmann solver”, Comput. Math. Appl. 81, 334-350, (2021)]. A hybrid CPU-GPU execution model is adopted, in which numerical components are selectively assigned to either the CPU or the GPU, depending on considerations of performance or convenience. This design enables a progressive porting strategy, allowing most features of the original CPU-based codebase to be gradually and seamlessly adapted to GPU execution. The new architecture builds upon two complementary paradigms: a classical object-oriented structure for CPU execution, and a data-oriented counterpart for GPUs, which reproduces the modularity of the original code while eliminating object-oriented overhead detrimental to GPU performance. Central to this approach is the use of modern C++, including standard parallel algorithms and template metaprogramming techniques, which permit the generation of hardware-agnostic computational kernels. This facilitates the development of user-defined, GPU-accelerated components such as collision operators or boundary conditions, while preserving compatibility with the existing codebase and avoiding the need for external libraries or non-standard language extensions. The correctness and performance of the GPU-enabled Palabos are demonstrated through a series of three-dimensional multiphysics benchmarks, including the laminar-turbulent transition in a Taylor-Green vortex, lid-driven cavity flow, and pore-scale flow in Berea sandstone. Despite the high-level abstraction of the implementation, the single-GPU performance is similar to CUDA-native solvers, and multi-GPU tests exhibit good weak and strong scaling across all test cases. Beyond the specific context of Palabos, the porting methodology illustrated here provides a generalizable framework for adapting large, complex C++ simulation codes to GPU architectures, while maintaining extensibility, maintainability, and high computational performance.</dc:description>
    <dc:subject>Computational Physics</dc:subject>
    <dc:subject>High Performance Computing</dc:subject>
    <dc:subject>Computational Fluid Dynamics</dc:subject>
    <dc:subject>Lattice-Boltzmann Method</dc:subject>
    <dc:contributor>Latt, Jonas</dc:contributor>
    <dc:contributor>Coreixas, Christophe</dc:contributor>
    <dc:type>Dataset</dc:type>
    <dc:identifier>doi:10.17632/cx7j83pr69.1</dc:identifier>
    <dc:identifier>oai:data.mendeley.com/cx7j83pr69.1</dc:identifier>
    <dc:rights>GNU Affero General Public License</dc:rights>
    <dc:rights>https://www.gnu.org/licenses/agpl-3.0.en.html</dc:rights>
    <dc:relation>https://data.mendeley.com/datasets/cx7j83pr69</dc:relation>
    <dc:date>2026-03-13T11:29:47Z</dc:date>
</oai_dc:dc></metadata>
        </record>
    </GetRecord>
</OAI-PMH>
