Code optimizations for complex microprocessors applied to CFD software

Th Hauser, T. I. Mattox, R. P. Lebeau, H. G. Dietz, P. G. Huang

Research output: Contribution to journalArticlepeer-review

4 Scopus citations


Improving large scale, time-dependent numerical simulation of the Navier-Stokes equations is critical for the future of computational fluid dynamics (CFD) in engineering applications. Unfortunately, these computations require massive, and generally expensive, computing resources. With the continuing advances in commodity computer hardware, an alternative approach to computationally expensive CFD computations is emerging in the form of PC clusters. However, to take advantage of clusters most CFD programs require extensive modifications so that they run efficiently on cache-based microprocessor systems. This paper presents techniques and tools that we have developed and used to optimize Navier-Stokes solvers on a single node of a PC cluster through the example CFD code DNSTool. After describing DNSTool, the paper demonstrates how this code is tuned to improve performance through profiling the computational cost of each of the subroutines, adapting the code for cache-based memory systems, and including SWAR (SIMD within a register) based routines. The effect of these improvements is to halve the computational cost on a single node, which in turn significantly increases the performance of the code on a PC cluster.

Original languageEnglish
Pages (from-to)1461-1477
Number of pages17
JournalSIAM Journal on Scientific Computing
Issue number4
StatePublished - 2003


  • Cache-based microprocessors
  • Fluid dynamics
  • Performance analysis

ASJC Scopus subject areas

  • Computational Mathematics
  • Applied Mathematics


Dive into the research topics of 'Code optimizations for complex microprocessors applied to CFD software'. Together they form a unique fingerprint.

Cite this