Acceleration of a Full-scale Industrial CFD Application with OP2
File(s)2015-07-AsAccepted-OP2-Hydra-V1.pdf (1.27 MB)
Accepted version
Author(s)
Type
Journal Article
Abstract
Hydra is a full-scale industrial CFD application used for the design of turbomachinery at Rolls Royce plc., capable of
performing complex simulations over highly detailed unstructured mesh geometries. Hydra presents major challenges in data
organization and movement that need to be overcome for continued high performance on emerging platforms. We present research in
achieving this goal through the OP2 domain-specific high-level framework, demonstrating the viability of such a high-level programming
approach. OP2 targets the domain of unstructured mesh problems and enables execution on a range of back-end hardware platforms.
We chart the conversion of Hydra to OP2, and map out the key difficulties encountered in the process. Specifically we show how
different parallel implementations can be achieved with an active library framework, even for a highly complicated industrial application
and how different optimizations targeting contrasting parallel architectures can be applied to the whole application, seamlessly,
reducing developer effort and increasing code longevity. Performance results demonstrate that not only the same runtime performance
as that of the hand-tuned original code could be achieved, but it can be significantly improved on conventional processor systems, and
many-core systems. Our results provide evidence of how high-level frameworks such as OP2 enable portability across a wide range of
contrasting platforms and their significant utility in achieving near-optimal performance without the intervention of the application
programmer.
performing complex simulations over highly detailed unstructured mesh geometries. Hydra presents major challenges in data
organization and movement that need to be overcome for continued high performance on emerging platforms. We present research in
achieving this goal through the OP2 domain-specific high-level framework, demonstrating the viability of such a high-level programming
approach. OP2 targets the domain of unstructured mesh problems and enables execution on a range of back-end hardware platforms.
We chart the conversion of Hydra to OP2, and map out the key difficulties encountered in the process. Specifically we show how
different parallel implementations can be achieved with an active library framework, even for a highly complicated industrial application
and how different optimizations targeting contrasting parallel architectures can be applied to the whole application, seamlessly,
reducing developer effort and increasing code longevity. Performance results demonstrate that not only the same runtime performance
as that of the hand-tuned original code could be achieved, but it can be significantly improved on conventional processor systems, and
many-core systems. Our results provide evidence of how high-level frameworks such as OP2 enable portability across a wide range of
contrasting platforms and their significant utility in achieving near-optimal performance without the intervention of the application
programmer.
Date Issued
2015-07-08
Date Acceptance
2015-06-25
Citation
IEEE Transactions on Parallel and Distributed Systems, 2015, 27 (5), pp.1265-1278
ISSN
1558-2183
Publisher
IEEE
Start Page
1265
End Page
1278
Journal / Book Title
IEEE Transactions on Parallel and Distributed Systems
Volume
27
Issue
5
Copyright Statement
© 2015 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.
Sponsor
Engineering & Physical Science Research Council (EPSRC)
Technology Strategy Board
Rolls-Royce Plc
Grant Number
EP/I00677X/1
TBC
See Further Information
Subjects
Distributed Computing
0805 Distributed Computing
0803 Computer Software
Publication Status
Published