A Novel Shared-Memory Thread-Pool Implementation for Hybrid Parallel CFD Solvers
A Novel Shared-Memory Thread-Pool Implementation for Hybrid Parallel CFD Solvers
复制标题
混合并行 CFD 求解器的新型共享内存线程池实现
DOI:
10.1007/978-3-642-23397-5_18
复制
发表时间:
2011
期刊:
影响因子:
--
通讯作者:
C. Simmendinger
中科院分区:
文献类型:
--
作者:
J. Jägersküpper;C. Simmendinger
The Computational Fluid Dynamics (CFD) solver TAU for unstructured grids is widely used in the European aerospace industry. TAU runs on High-Performance Computing (HPC) clusters with several thousands of cores using MPI-based domain decomposition. In order to make more efficient use of current multi-core CPUs and to prepare TAU for the many-core era, a shared-memory parallelization has been added to one of TAU's solver to obtain a hybrid parallelization: MPI-based domain decomposition plus multi-threaded processing of a domain.
For the edge-based solver considered, a simple loop-based approach via OpenMP FOR directives would - due to the Amdahl trap - not deliver the required speed-up. A more sophisticated, thread-pool-based sharedmemory parallelization has been developed which allows for a relaxed thread synchronization with automatic and dynamic load balancing.
In this paper we describe the concept behind this shared-memory parallelization, we explain how the multi-threaded computation of a domain works. Some details of its implementation in TAU as well as some first performance results are presented. We emphasize that the concept is not TAU-specific. Actually, this design pattern appears to be very generic and may well be applied to other grid/mesh/graph-based codes.