Exploring shared-memory optimizations for an unstructured mesh CFD application on modern parallel systems

D. Mudigere, S. Sridharan, A. Deshpande, J. Park, A. Heinecke, M. Smelyanskiy, B. Kaul, D. K. Dubey, Pradeep Kaushik, and D. E. Keyes,
IEEE International Parallel & Distributed Processing Symposium (IPDPS), (2015)

Exploring shared-memory optimizations for an unstructured mesh CFD application on modern parallel systems

Keywords

CFD, Krylov Solver, Multi-core, OpenMP+MPI

Abstract

​In this work, we revisit the 1999 Gordon Bell Prize winning PETSc-FUN3D aerodynamics code, extending it with highly-tuned shared-memory parallelization and detailed performance analysis on modern highly parallel architectures. An unstructured-grid implicit flow solver, which forms the backbone of computational aerodynamics, poses particular challenges due to its large irregular working sets, unstructured memory accesses, and variable/limited amount of parallelism. This code, based on a domain decomposition approach, exposes tradeoffs between the number of threads assigned to each MPI-rank sub domain, and the total number of domains. By applying several algorithm- and architecture-aware optimization techniques for unstructured grids, we show a 6.9X speed-up in performance on a single-node Intel® XeonTM1 E5 2690 v2 processor relative to the out-of-the-box compilation. Our scaling studies on TACC Stampede supercomputer show that our optimizations continue to provide performance benefits over baseline implementation as we scale up to 256 nodes.

Code

DOI: 10.1109/IPDPS.2015.114

Sources

Website PDF

See all publications 2015