ExaFLOW is addressing algorithmic bottlenecks to enable the use of accurate computational fluid dynamics codes for problems of practical engineering interest.
The complexities and nature of fluid flows, often combined with problems set in open domains, implies that the resources needed to computationally model problems of industrial and academic relevance is virtually unbounded. Fluid Dynamics (FD) simulations therefore are a natural driver for exascale computing and have the potential for substantial societal impact, like reduced energy consumption, alternative sources of energy, improved health care, and improved climate models.
The main goal of this project is to address algorithmic challenges to enable the use of accurate simulation models in exascale environments. Driven by problems of practical engineering interest we focus on important simulation aspects including:
- Error control and adaptive mesh refinement in complex computational domains,
- Resilience and fault tolerance in complex simulations
- Heterogeneous modeling
- Evaluation of energy efficiency in solver design
- Parallel input/output and in-situ compression for extreme data.
The algorithms developed by the project will be prototyped in major open-source simulation packages in a co-design fashion, exploiting software engineering techniques for exascale. We are building directly on the results of previous exascale projects (for example CRESTA and EPiGRAM) and will exploit advanced and novel parallelism features required for emerging exascale architectures. The results will be validated in a number of pilot applications of concrete practical importance in close collaboration with industrial partners.
EPCC and ExaFLOW
EPCC leads Work Package 2 (WP2) of ExaFLOW: "Efficiency Improvements Towards Exascale". There are four tasks within WP2, three of which we lead:
Task 2.1: Implementation of algorithms in co-design applications
Algorithms that are specifically designed for massive parallelism may exhibit sub-optimal performance on smaller HPC systems. It is therefore desirable to allow users to choose between different code versions depending on their target system. The objective of Task 2.1 is to ensure that the new algorithms and concepts are included in the co-design applications in such a way that the switch between algorithms is straightforward for the user. These will be optimised for efficiency and scalability, and different programming models and techniques will be explored.
Task 2.2: Energy efficiency and awareness
Measure the power consumption of the different implementations using both high-resolution component level and lower-resolution node-level methods as well as investigating the impact of system level features (from frequency scaling to vectorisation) on the total energy to solution. Task 2.2 will inform the development efforts in Task 2.1 by suggesting code sections where energy savings could be achieved. Task 2.2 will also look at the effect of introducing mixed-precision into the algorithms on energy usage and performance.
Task 2.4: Technology watch
The outcome of Task 2.4 will be a set of reports that summarise the technology trends towards Exascale and their implications for computational fluid dynamics applications.
This €3.3 million project started in October 2015 and will run until September 2018.
Blog post: Nektar++ IO Performance for Aorta test case on ARCHER Cray XC-30 (Nov 2016)