Directive-based GPU programming for computational fluid dynamics

dc.contributor.authorPickering, Brent P.en
dc.contributor.authorJackson, Ccharles W.en
dc.contributor.authorScogland, Thomas R. W.en
dc.contributor.authorFeng, Wu-chunen
dc.contributor.authorRoy, Christopher J.en
dc.contributor.departmentAerospace and Ocean Engineeringen
dc.contributor.departmentComputer Scienceen
dc.date.accessioned2017-03-17T09:04:46Zen
dc.date.available2017-03-17T09:04:46Zen
dc.date.issued2015-07-02en
dc.description.abstractDirective-based programming of graphics processing units (GPUs) has recently appeared as a viable alternative to using specialized low-level languages such as CUDA C and OpenCL for general-purpose GPU programming. This technique, which uses ‘‘directive’’ or ‘‘pragma’’ statements to annotate source codes written in traditional high-level languages, is designed to permit a unified code base to serve multiple computational platforms. In this work we analyze the popular OpenACC programming standard, as implemented by the PGI compiler suite, in order to evaluate its utility and performance potential in computational fluid dynamics (CFD) applications. We examine the process of applying the OpenACC Fortran API to a test CFD code that serves as a proxy for a full-scale research code developed at Virginia Tech; this test code is used to asses the performance improvements attainable for our CFD algorithm on common GPU platforms, as well as to determine the modifications that must be made to the original source code in order to run efficiently on the GPU. Performance is measured on several recent GPU architectures from NVIDIA and AMD (using both double and single precision arithmetic) and the accelerator code is benchmarked against a multithreaded CPU version constructed from the same Fortran source code using OpenMP directives. A single NVIDIA Kepler GPU card is found to perform approximately 20! faster than a single CPU core and more than 2! faster than a 16-core Xeon server. An analysis of optimization techniques for OpenACC reveals cases in which manual intervention by the programmer can improve accelerator performance by up to 30% over the default compiler heuristics, although these optimizations are relevant only for specific platforms. Additionally, the use of multiple accelerators with OpenACC is investigated, including an experimental high-level interface for multi-GPU programming that automates scheduling tasks across multiple devices. While the overall performance of the OpenACC code is found to be satisfactory, we also observe some significant limitations and restrictions imposed by the OpenACC API regarding certain useful features of modern Fortran (2003/8); these are sufficient for us to conclude that it would not be practical to apply OpenACC to our full research code at this time due to the amount of refactoring required.en
dc.description.versionPublished versionen
dc.format.extent242 - 253 (12) page(s)en
dc.identifier.doihttps://doi.org/10.1016/j.compfluid.2015.03.008en
dc.identifier.issn0045-7930en
dc.identifier.urihttp://hdl.handle.net/10919/76662en
dc.identifier.volume114en
dc.languageEnglishen
dc.publisherPergamon-Elsevieren
dc.relation.urihttp://gateway.webofknowledge.com/gateway/Gateway.cgi?GWVersion=2&SrcApp=PARTNER_APP&SrcAuth=LinksAMR&KeyUT=WOS:000354141400021&DestLinkType=FullRecord&DestApp=ALL_WOS&UsrCustomerID=930d57c9ac61a043676db62af60056c1en
dc.rightsIn Copyrighten
dc.rights.urihttp://rightsstatements.org/vocab/InC/1.0/en
dc.subjectTechnologyen
dc.subjectComputer Science, Interdisciplinary Applicationsen
dc.subjectMechanicsen
dc.subjectComputer Scienceen
dc.subjectGraphics processing unit (GPU)en
dc.subjectDirective-based programmingen
dc.subjectOpenACCen
dc.subjectFortranen
dc.subjectFinite-difference methoden
dc.titleDirective-based GPU programming for computational fluid dynamicsen
dc.title.serialComputers & Fluidsen
dc.typeArticle - Refereeden
pubs.organisational-group/Virginia Techen
pubs.organisational-group/Virginia Tech/All T&R Facultyen
pubs.organisational-group/Virginia Tech/Engineeringen
pubs.organisational-group/Virginia Tech/Engineering/Aerospace and Ocean Engineeringen
pubs.organisational-group/Virginia Tech/Engineering/COE T&R Facultyen
pubs.organisational-group/Virginia Tech/Engineering/Computer Scienceen
pubs.organisational-group/Virginia Tech/Faculty of Health Sciencesen

Files

Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
pickering-directive-based-cfd-compfl15.pdf
Size:
1.97 MB
Format:
Adobe Portable Document Format
Description:
Accepted Version
License bundle
Now showing 1 - 1 of 1
Name:
VTUL_Distribution_License_2016_05_09.pdf
Size:
18.09 KB
Format:
Adobe Portable Document Format
Description: