A Simulation Suite for Lattice-Boltzmann based Real-Time CFD Applications Exploiting Multi-Level Parallelism on modern Multi- and Many-Core Architectures
Institut fur Angewandte Mathematik (LS3), TU Dortmund, Vogelpothsweg 87, D-44227 Dortmund, Germany
Journal of Computational Science, accepted Jan. 2011
@article{Geveler2011,
title={“ASimulationSuiteforLattice-BoltzmannbasedReal-TimeCFDApplicationsExploitingMulti-LevelParallelismonmodernMulti-andMany-CoreArchitectures”},
journal={“JournalofComputationalScience”},
volume={“InPress},
number={“”},
pages={“-“},
year={“2011”},
note={“”},
issn={“1877-7503”},
doi={“DOI:10.1016/j.jocs.2011.01.008”},
url={“http://you.myipcn.org/science/article/B9HC1-5265SHT-2/2/dc15a5714146d92a0fbe428d12e76191”},
author={“MarkusGevelerandDirkRibbrockandSvenMallachandDominikGoddeke”},
keywords={“fluid-structureinteraction”}
}
We present a software approach to hardware-oriented numerics which builds upon an augmented, previously published open-source set of libraries facilitating portable code development and optimisation on a wide range of modern computer architectures. In order to maximise efficiency, we exploit all levels of parallelism, including vectorisation within CPU cores, the Cell BE and GPUs, shared memory thread-level parallelism between cores, and parallelism between heterogeneous distributed memory resources in clusters. To evaluate and validate our approach, we implement a collection of modular building blocks for the easy and fast assembly and development of CFD applications based on the shallow water equations: We combine the Lattice-Boltzmann method with fluid-structure interaction techniques in order to achieve real-time simulations targeting interactive virtual environments. Our results demonstrate that recent multi-core CPUs outperform the Cell BE, while GPUs are significantly faster than conventional multi-threaded SSE code. In addition, we verify good scalability properties of our application on small clusters.
March 1, 2011 by hgpu