CCP Turbulence
Significant progress has been made recently using high performance computing, and computational fluid dynamics is now a critical complement to experiments and theories. The CCP Turbulence, funded over a period of 5 years (2020-2024), is aiming to (i) considerably enhance the UK capabilities to simulate complex turbulence problems that were until very recently beyond imagination, (ii) offer user support, training and networking activities and (iii) enable capability computing on emerging hardware platforms. The software developments and collaborative activities will give UK researchers a unique opportunity to be the first to explore new physics and to answer basic questions regarding the physics and modelling of turbulent flows found across a range of engineering, physiological and geophysical applications.
Traditional approaches to software development involving the production of static, hand-written code (usually in C/C++ or in Fortran) to perform the numerical discretisation and solution of the governing equations is not sustainable anymore with the rapid evolution of High Performance Computing (HPC) systems and architectures. For example, explicitly inserting the necessary calls in a code to MPI enables the execution on multicore Central Processing Units (CPUs) hardware. However, the code would need to be re-written to run on alternative platforms based on Graphic Processor Units (GPUs), including calls to language extensions such as Compute Unified Device Architecture (CUDA), Open Compute Language (OpenCL) and/or new libraries.
The only practically viable approach to addressing the above issues is through the development of appropriate application-oriented, high-level programming abstractions in which the code developer specifies what is to be computed, which numerical methods should be used, but without specifying how it should be implemented / programmed to execute on hardware. Applications should ideally be written in an environment that makes it possible to target a variety of parallel hardware without requiring significant manual modifications. Automatic program/code generation (AP-CG) is the automatic generation of a problem according to a high-level specification. The CCP Turbulence is building on the EPSRC-funded projects ”Multi-layered abstractions for PDEs” (EP/I00677X/1) and ”Future-proof massively-parallel execution of multi-block applications” (EP/K038494/1), and the associated Oxford Parallel Domain Specific Languages (OPS/OP2) ideas.
OP2/OPS are programming abstractions for writing unstructured mesh algorithms and multi-block structured mesh algorithms, respectively, and the corresponding software library and code translation tools to enable automatic parallelisation of the high-level code. The aim of the CCP Turbulence is to expend the capabilities of OPS and design a common code-generation framework for turbulence simulations so that the UKTC flow solvers can be used efficiently on a wide range of hardware architectures.
See below publications for more details
Traditional approaches to software development involving the production of static, hand-written code (usually in C/C++ or in Fortran) to perform the numerical discretisation and solution of the governing equations is not sustainable anymore with the rapid evolution of High Performance Computing (HPC) systems and architectures. For example, explicitly inserting the necessary calls in a code to MPI enables the execution on multicore Central Processing Units (CPUs) hardware. However, the code would need to be re-written to run on alternative platforms based on Graphic Processor Units (GPUs), including calls to language extensions such as Compute Unified Device Architecture (CUDA), Open Compute Language (OpenCL) and/or new libraries.
The only practically viable approach to addressing the above issues is through the development of appropriate application-oriented, high-level programming abstractions in which the code developer specifies what is to be computed, which numerical methods should be used, but without specifying how it should be implemented / programmed to execute on hardware. Applications should ideally be written in an environment that makes it possible to target a variety of parallel hardware without requiring significant manual modifications. Automatic program/code generation (AP-CG) is the automatic generation of a problem according to a high-level specification. The CCP Turbulence is building on the EPSRC-funded projects ”Multi-layered abstractions for PDEs” (EP/I00677X/1) and ”Future-proof massively-parallel execution of multi-block applications” (EP/K038494/1), and the associated Oxford Parallel Domain Specific Languages (OPS/OP2) ideas.
OP2/OPS are programming abstractions for writing unstructured mesh algorithms and multi-block structured mesh algorithms, respectively, and the corresponding software library and code translation tools to enable automatic parallelisation of the high-level code. The aim of the CCP Turbulence is to expend the capabilities of OPS and design a common code-generation framework for turbulence simulations so that the UKTC flow solvers can be used efficiently on a wide range of hardware architectures.
See below publications for more details
- G.R. Mudalige, I. Reguly, M.B. Giles, C. Bertolli and P.H.J. Kelly. OP2: An Active Library Framework for Solving Unstructured Mesh-based Applications on Multi-Core and Many-Core Architectures. In Proceedings of Innovative Parallel Computing (InPar), 2012, pp.1-12, 13-14 May 2012.
- I.Z. Reguly, G.R. Mudalige, M.B. Giles, D. Curran and S. McIntosh-Smith, The OPS Domain Specific Abstraction for Multi-Block Structured Grid Computations . In proceedings of the 4th international workshop on Domain-Specific Languages and High-Level Frameworks for High Performance Computing(WOLFHPC '14).Held in conjunction with IEEE/ACM Supercomputing 2014(SC'14).
The following initiatives will be put in place by the CCP Turbulence:
- Software development by the CoSeC - Computational Science Centre for Research Communities - team. The work will focus on the OPS library with
- Maintenance and update of current OPS capabilities
- Implementation of multi-diagonal solvers under OPS
- Testing of new hardware technology via the Multi Architecture Comparison System (MACS) in Bristol
- Travel Grants for short visits and industrial secondments (when travels will be permitted again)
- Travel Grants for conferences and workshops (when travels will be permitted again)
- Industry Academia Interface Days
- Dedicated sessions during the UK Turbulence Consortium annual meeting