Roofline Guided Design and Analysis of a Multi-stencil CFD Solver for Multicore Performance

Bahareh Mostafazadeh, Ferran Marti, Feng Liu, Aparna M. Chandramowlishwaran · 2018

This paper presents the design and optimization of a Computational Fluid Dynamics (CFD) solver. Our solver is a structured mesh finite-volume code that simulates the fluid motion of compressible viscous flow at transonic speeds. One of the main challenges in this solver is the interaction between multi-stencils with different computational intensities and distinct memory access patterns. In this paper, we address the above challenge to design a high-performance multi-stencil solver on multicore systems. We use the roofline model as a guideline for choosing optimizations best suited for increasing the computational intensity and achieving a higher percentage of the machine peak performance. We show that optimizations and parallelizations combined, our solver achieves 105×, 159×, and 160× speedup compared to the baseline implementation on Intel Haswell, AMD Abu Dhabi, and Intel Broadwell respectively. We also compare against Domain Specific Languages (DSL), specifically Halide. Our hand-tuned solver outperforms code generated by Halide by up to 24×. Looking forward, we identify new opportunities to improve DSL's to bridge this gap.

Read the paper · More papers on PaperTik