Abstract
High performance computing increasingly relies on heterogeneous systems, based on multi-core CPUs, tightly coupled to accelerators: GPUs or many core systems. Programming heterogeneous systems raises new issues: reaching high sustained performances means that one must exploit parallelism at several levels; at the same time the lack of a standard programming environment has an impact on code portability. This paper presents a performance assessment of a massively parallel and portable Lattice Boltzmann code, based on the Open Computing Language (OpenCL) and the Message Passing Interface (MPI). Exactly the same code runs on standard clusters of multi-core CPUs, as well as on hybrid clusters including accelerators. We consider a state-of-the-art Lattice Boltzmann model that accurately reproduces the thermo-hydrodynamics of a fluid in 2 dimensions. This algorithm has a regular structure suitable for accelerator architectures with a large degree of parallelism, but it is not straightforward to obtain a large fraction of the theoretically available performance. In this work we focus on portability of code across several heterogeneous architectures preserving performances and also on techniques to move data between accelerators minimizing overheads of communication latencies. We describe the organization of the code and present and analyze performance and scalability results on a cluster of nodes based on NVIDIA K20 GPUs and Intel Xeon-Phi accelerators.
Chapter PDF
Similar content being viewed by others
Keywords
- Message Passing Interface
- Lattice Boltzmann Method
- Global Memory
- Lattice Boltzmann
- Lattice Boltzmann Model
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Obrecht, C., et al.: Scalable lattice Boltzmann solvers for CUDA GPU clusters. Parallel Computing 39 (2013)
Kronos Group, The open standard for parallel programming of heterogeneous systems, http://www.khronos.org/opencl
Succi, S.: The Lattice Boltzmann Equation for Fluid Dynamics and Beyond, Oxford University Press (2001)
Sbragaglia, M., et al.: Lattice Boltzmann method with self-consistent thermo-hydrodynamic equilibria. J. Fluid Mech. 628, 299–309 (2009), doi:10.1017/S002211200900665X
Scagliarini, A., et al.: Lattice Boltzmann methods for thermal flows: Continuum limit and applications to compressible Rayleigh-Taylor systems. Phys. Fluids 22, 055101 (2010), doi:10.1063/1.3392774
Biferale, L., et al.: Second-order closure in stratified turbulence: Simulations and modeling of bulk and entrainment regions. Phys. Rev. E 84, 1, 2, 016305 (2011), doi:10.1103/PhysRevE.84.016305
Biferale, L., et al.: Reactive Rayleigh-Taylor systems: Front propagation and non-stationarity. EPL 94, 5, 54004 (2011), doi:10.1209/0295-5075/94/54004
Biferale, L., et al.: An Optimized D2Q37 Lattice Boltzmann Code on GP-GPUs. Comp. and Fluids 80 (2013), doi:10.1016/j.compfluid.2012.06.003
Crimi, G., et al.: Early Experience on Porting and Running a Lattice Boltzmann Code on the Xeon-phi Co-Processor. Proc. Comp. Science 18 (2013), doi:10.1016/j.procs.2013.05.219
Kraus, J., et al.: Benchmarking GPUs with a Parallel Lattice-Boltzmann Code. In: Proc. of 25th Int. Symp. on Computer Architecture and High Performance Computing, SBAC-PAD (2013), doi:10.1109/SBAC-PAD.2013.37
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Calore, E., Schifano, S.F., Tripiccione, R. (2014). On Portability, Performance and Scalability of an MPI OpenCL Lattice Boltzmann Code. In: Lopes, L., et al. Euro-Par 2014: Parallel Processing Workshops. Euro-Par 2014. Lecture Notes in Computer Science, vol 8806. Springer, Cham. https://doi.org/10.1007/978-3-319-14313-2_37
Download citation
DOI: https://doi.org/10.1007/978-3-319-14313-2_37
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-14312-5
Online ISBN: 978-3-319-14313-2
eBook Packages: Computer ScienceComputer Science (R0)