A strategy for high performance in computational fluid dynamics

Loading...
Thumbnail Image

Persistent link to this item

Statistics
View Statistics

Journal Title

Journal ISSN

Volume Title

Title

A strategy for high performance in computational fluid dynamics

Published Date

2013-08

Publisher

Type

Thesis or Dissertation

Abstract

Computational Fluid Dynamics is an important area in scientific computing. The weak scaling of codes is well understood with about two decades of experience using MPI. The recent proliferation of multi- and many-core processors have made the modern nodes compute rich, and the per-node performance has become very crucial for the overall machine performance. However, despite the use of thread programming, obtaining good performance at each core is extremely challenging. The challenges are primarily due to memory bandwidth limitations and difficulties in using the short SIMD engines effectively. This thesis is about the techniques, strategies, and a tool, to improve the in-core performance. Fundamental to the strategy is a hierarchical data layout made of small cubical structures of the problem state called the briquettes. The difficulties in computing the spatial derivatives (also called near neighbor computations in the literature) in a hierarchical data layout are well known, and data blocking is extremely unusual in finite difference codes. This work details how to simplify programming for the new data layout, the inefficiencies of the programming strategy, and how to overcome the inefficiencies.The transformation to eliminate the overheads is called pipeline-for-reuse. It is followed by a storage optimization called maximal array contraction. Both pipeline-for-reuse and maximal array contraction are highly tedious and error-prone. Therefore, we built a source-to-source translator called CFD Builder to automate the transformations using directives. The directive based approach we adopted to enable the transformations eliminates the need for complex analysis, and this work provides the linear time algorithms to perform the transformations under the stated assumptions. The benefits of the briquettes and CFD Builder are demonstrated individually with three different applications on two different architectures and two different compilers. We see up to 6.92x performance improvement with applying both the techniques. This strategy with briquettes and CFD Builder was evaluated against commonly known transformations for data locality and vectorization. Briquettes and pipeline-for-reuse transformations to eliminate the overheads outperforms even the best combination of canonical transformations, for data locality and vectorization, applied manually by up to 2.15x

Description

University of Minnesota Ph.D. dissertation. August 2013. Major: Computer science. Advisors: Prof. Pen-Chung Yew and Prof. Paul R. Woodward. 1 computer file (PDF); viii, 149 pages, appendix A.

Related to

Replaces

License

Collections

Series/Report Number

Funding information

Isbn identifier

Doi identifier

Previously Published Citation

Suggested citation

Jayaraj, Jagan. (2013). A strategy for high performance in computational fluid dynamics. Retrieved from the University Digital Conservancy, https://hdl.handle.net/11299/158483.

Content distributed via the University Digital Conservancy may be subject to additional license and use restrictions applied by the depositor. By using these files, users agree to the Terms of Use. Materials in the UDC may contain content that is disturbing and/or harmful. For more information, please see our statement on harmful content in digital repositories.