Software

The CRESTA software collection contains a collection of software designed and enhanced to exploit future exascale platforms and to support applications on exascale platforms. The software selected and the chosen developments have been designed with the co-design applications as drivers. Many of the research activities have been integrated into software components within the collection.

Co-design Applications

  • Engineering
  • Fusion Energy
  • Biomolecular systems
  • The Virtual Physiological Human
  • Global Numerical Weather Prediction
  •  

    Engineering: Computational Fluid dynamics (CFD) is widely used in the automotive, aeronautical and heavy engineering industries, as well as being a staple of the academic community. Click to Learn More.

    Fusion Energy: The decision to construct the first power-plant scale fusion reactor, ITER, in Cadarache, France has dramatically increased the need to solve the remaining technical challenges of the reactor design. Click to Learn More.

    Global Numerical Weather Prediction: ECMWF leads the world in global Numerical Weather Prediction, the advanced computer observation-analysis modelling technique used to predict the weather. Click to Learn More.

    The Virtual Physiological Human: The Virtual Physiological Human initiative is a collection of European projects which undertake research in biomedical modelling and simulation of the human body. Click to Learn More.

    Biomolecular systems: Molecular Dynamics simulation is one the most rapidly growing methods for modelling in general, and for life science in particular. Click to Learn More.

Development
Environment

ARS

ATF

Cross-Cutting
Technologies

Pre and Post
Processing

Algorithms and Libraries: CRESTA evaluated and quantified the limitations of key numerical libraries for the co-design applications.

Development Environment: Applications at the exascale will need to exploit every bit of parallelism in the codes, see how CRESTA did this.

Cross-Cutting Technologies: CRESTA evaluated, researched and developed best practice in technologies that cut across the entire exascale software stack: fault tolerance, performance optimisation and power management.

Pre and Post Processing: In order to evaluate new scalable and fault tolerant approaches for the pre- and post-processing in heterogeneous exascale environments, a variety of simulation grid types were tested.

CRESTA Co-design: Co-design is at the heart of CRESTA. Co-design is software and hardward engineers working together to meet the goal of reaching the exascale.

The core components software collection can be found here: 

WP2: Cross Cutting and Underpinning Technologies

CRESTA benchmark suite

Benchmark suite for the major co-design applications within CRESTA

CRESTA public GitHub repository: https://github.com/cresta-eu/CRESTA_BENCH

WP3: Development Environment

Score-P and Vampir

New additions to Score-P (support for energy hw counters) and Vampir (selective monitoring)

Score-P: available under the New BSD Open Source license from:

http://www.vi-hps.org/projects/score-p/

Vampir: proprietary license, contact This email address is being protected from spambots. You need JavaScript enabled to view it..

Allinea DDT and MUST

Improved scalability and support for new programming systems in Allinea DDT and MUST. Integration of MUST into Allinea DDT

DDT: proprietary license – available from http://www.allinea.com/products/ddt/ purchase

MUST: MUST is distributed under a BSD style license and can be downloaded from: https://doc.itc.rwth-aachen.de/display/CCP/Project+MUST

Adaptive runtime system

Adaptive runtime system

CRESTA public GitHub repository: https://github.com/cresta-eu/

WP4: Libraries and Algorithms

Optimised reduction Library

Community prototype

Public repository:

http://gitlab.excess-project.eu/numlibs/

Collectives Microbenchmark Suite

Collective operations benchmark suite

CRESTA public GitHub repository: https://github.com/cresta-eu/

Non-Blocking Collectives Runtime Library

Non-blocking collectives library

CRESTA public GitHub repository: https://github.com/cresta-eu/

CEL FFT/LS

 

Community prototype of linear solver and FFT libraries

Public repository:

http://gitlab.excess-project.eu/numlibs/cel_v3

WP5: Pre and Post Processing

PPStee

Pre-processing software to balance load of simulation.

CRESTA public GitHub repository: https://github.com/cresta-eu/

Interactive Post-Processing software

Software to allow interactive data post-processing, in-situ processing, and enable computational steering.

CRESTA public GitHub repository: https://github.com/cresta-eu/

RHR & Vistle

Vistle - Modular, dynamic data-parallel visualisation pipeline

Remote Hybrid Rendering – Decouple Rendering & Interaction

Vistle (including RHR server)

Github: https://github.com/vistle.git

RHR Client depends on OpenCOVER

Part of COVISE: http://www.hlrs.de/organization/av/vis/ covise/ support/download/

 

In addition to the core components of the software collection CRESTA created the following additional pieces of software:

WP3: Development Environment

Coarray Fortran Benchmark

 

A low-level benchmark suite for Fortran coarrays, which measures a set of basic parallel operations.

Available from: https://www.epcc.ed.ac.uk/research/ computing/performance-characterisation-and-benchmarking/epcc-co-array-fortran-micro

targetDP  

Target Data Parallel (targetDP), a framework to allow lattice-based applications take advantage of either traditional CPUs or accelerators in a performance portable manner

The framework is incorporated in the open-source Ludwig software package, and will be publicly available within future Ludwig releases at:

http://ccpforge.cse.rl.ac.uk/gf/project/ludwig/

Auto-Tuner

This is a mock-up version of an Auto-Tuner, used to demonstrate the Auto-tuner API. API is available within deliverable 3.6.2.

As a mock-up auto-tuner to demonstrate the auto-tuning API, this was never intended for public use. It is available to project partners on the internal CREST SVN system.

pm_mpi_lib

Provides an API to read Cray node power counters from an application (these counters are exposed in /proc files but need to be read consistently.  The API was used to incorporate power monitoring into Scope-P collection (and Vampir display) to facilitate CRESTA work in that area.

CRESTA public GitHub repository:

https://github.com/cresta-eu/pm_mpi_lib

 

WP5: Pre and Post Processing

Protopart, PPStee wrapper + tools

Software associated with PPStee:

Protopart: extraction of HemeLB‘s pre-processing into separate tool, enabling faster ensemble simulation.

PPStee wrapper:
calculate geometry distribution for Protopart

Additional tool chain for visualisation

Due for release in summer 2015, under an LGPL license, on the same public repository as HemeLB:

http://ccs.chem.ucl.ac.uk/hemelb

 

 

 

Tools for the Development Environment

Allinea DDT

Allinea DDT is widely used parallel software debugger. Renowned for scaling to very large core counts, it can run at the full size of the largest Petascale class systems available with performance measured in milliseconds. To transition Allinea DDT to exascale, within CRESTA extensions are being developed to cope with new paradigms and heterogeneous approaches to high performance computing.

Further information can be obtained from here: http://www.allinea.com/products/ddt/

MUST

MUST offers a new approach to runtime error detection in MPI applications and is specifically designed to overcome the scalability limitations of current runtime detection tools while facilitating the implementation of additional detection routines. For CRESTA, MUST is being extended in the areas of scalability and programming paradigm support.

Further information can be obtained from here:

http://tu-dresden.de/die_tu_dresden/zentrale_einrichtungen/zih/forschung/projekte/must/

Score-P

Score-P is a joint performance measurement runtime infrastructure for petascale performance monitoring for the tools Periscope, Scalasca, TAU, and Vampir. Within CRESTA, Score-P is being developed to address the key challenges of scalability and heterogeneity to meet exascale performance analysis requirements.

Further details can be obtained from here:

http://www.vi-hps.org/projects/score-p/

Vampir

Vampir is popular piece of interactive event trace visualisation software. This allows the analysis of parallel applications with thousands of concurrent processing elements with various graphical representations in a post-mortem fashion. Vampir is being enhanced to allow the investigation of the performance information of millions of concurrent processing elements, through enhanced scalable and intelligent data analysis and processing techniques.

Further details can be obtained from here:

http://www.tu-dresden.de/die_tu_dresden/zentrale_einrichtungen/zih/forschung/projekte/vampir/index_html/document_view?set_language=en

Adaptive Runtime System Software

Being developed at KTH, this experimental runtime system explores the power of adaptive runtime support for exascale applications. Consisting of a resource manager, a library for runtime administration of parallel applications, and a performance monitoring and analysis tool, the design is based on a task model that will help programmers to exploit the parallelism of their applications. The system should react automatically to the application's behaviour, that is, supporting a high parallel efficiency and improving the performance of the application based on the combined use of hints provided by the programmer as well as the transparent supervision of the program execution.

 

Pre and Post Processing Tools

PPSTee

PPStee is a new interface for pre-processing steering for exascale simulations, being developed by DLR. Supplied with information on simulation data, its main purpose is to optimise the overall simulation load-balance starting with initial data distribution and not necessarily ending after visualisation of the simulation results.

Interactive Data Exploration and Visualisation Software

Within CRESTA, DLR is developing interactive data exploration and visualisation software for exascale. This software will provide in-situ processing of the simulation data, interactive visualisation for exascale simulations, and further computational steering capability of the on-going simulation. In-situ post and interactive visualisation provides the user with the possibility to explore the simulation result on-the-fly, while computational steering allows the user to change and modify an on-going simulation process by modifying simulation parameters.

Remote Hybrid Rendering Software

HLRS is developing remote hybrid rendering software within the CRESTA project. This piece of software will be able to be used to access remote exascale simulations from immersive projection environments over the Internet. The display system may range from a desktop computer to an immersive virtual environment such as a CAVE. The display system forwards user input to the visualisation cluster, which uses highly scalable methods to render images of the post-processed simulation data and returns them to the display system. The display system enriches these with context information before they are shown.

 

Algorithms and Libraries

CRESTA Exascale Library (CEL)

The CRESTA Exascale Library is a new library being developed by CRESTA, targeted at two important classes of numerical problem: linear solvers and multi-dimensional Fourier transforms. The CEL-FFT library is intended to make it easier to implement FFT implementations. The CEL-Linear-Solver is used to solve large linear systems and will contain a set of the iterative solvers with Jacobi- and AMG-preconditioner.

High-Precision Reduction Summation Library for MPI

Within CRESTA we are developing a prototypical version of a library that allows the user to replace the MPI collective reduction, specifically for summation, with a high-precision version. This can be used to test whether an application or a use-case is affected by inaccuracies in the MPI summations. To analyse inaccuracies in local computations a set of routines to do local summation of a vector of values at high precision are also being developed.

Collectives Microbenchmark Suite

This benchmark suite is being developed to help deriving metrics that characterise the efficiency of an implementation of a given collective. It is also being developed to assess the respective efficiency of a set of implementations of a collective for his particular use-case in order to choose the most suitable implementation.

The CRESTA Collective Communication Library

This software will be a platform for studying scalability bottlenecks caused by collective operations: It allows for an application developer to experiment with various alternative implementations for a particular set of collectives with minimal changes into the application source.

 

Benchmarking

The CRESTA Benchmark Suite

The CRESTA benchmark suite contains each of the six co-design applications, with a range of appropriate input files. Used within the project for test and development purposes, these input files are representative of the types of simulations that may require exascale resources in the future. The suite also contains a selection of lower level benchmarks, including appropriate solvers and algorithms developed within the project.

Download the Benchmarks Here

After downloading the CRESTA_BENCH.tar.gz file, you can unpack it using

tar -xvfz CRESTA_BENCH.tar.gz

Instructions on how to use the benchmark suite are provided in the top-level README file. The application specific instructions are given in the README files located in each application directory (e.g. GROMACS specific instructions are inside the CRESTA_BENCH/applications/GROMACS/README file).

 

Applications

ELMFIRE

This is a gyro kinetic particle-in-cell code that simulates movement and interaction between high-speed particles in a torus-shaped geometry on a three dimensional grid. The particles are held together by an external magnetic field. By preparing this code to utilise exascale platforms the aim is to simulate significant portions of large-scale fusion reactors like JET or ITER.

Further details can be found at:

http://www.cresta-project.eu/applications/fusion-energy.html

GROMACS

GROMACSis a molecular dynamics code that is extensively used for simulation of biomolecular systems. Useful investigation of this kind of system is often limited by computational capacity. The limitations concern both system sizes and in particular time duration of interesting processes. Also efficient implementations of ensembles of simulation are needed for gathering statistic validity. Addressing these limitations is an aim within CRESTA.

Further details can be found at:

http://www.cresta-project.eu/applications/biomolecular-systems.html

OpenFOAM®

OpenFOAM is an open source application for computational fluid dynamics (CFD). The program is a “toolbox” which provides a selection of different solvers as well as routines for various kinds of analysis, pre- and post-processing. Within CRESTA the objective is to simulate a whole hydraulic machine in preparation for exascale architectures.

Further details can be found at:

http://www.cresta-project.eu/applications/engineering.html

NEK5000

NEK5000 is an open-source code for the simulation of incompressible flow in complex geometries. Simulation of turbulent flow is of one of our major objectives in CRESTA.

Further details can be found at:

http://www.cresta-project.eu/applications/engineering.html

IFS:

IFSis the production weather forecasting application used at the European Centre for Medium Range Weather Forecasts (ECMWF). Within CRESTA the aim is to develop more reliable 10-day weather forecasts that can be run in an hour or less.

Further details can be found at:

http://www.cresta-project.eu/applications/global-numerical-weather-prediction.html

HemeLB

HemeLB is being developed and is intended to form part of a clinically deployed exascale virtual physiological human. HemeLB simulates blood flow in measured blood vessel geometries. The objective in CRESTA is to develop a clinically useful exascale tool.

Further details can be found at:

http://www.cresta-project.eu/applications/the-virtual-physiological-human.html

Lattice Boltzmann Applications

As part of a co-design activity around Lattice Boltzmann techniques, two codes have been developed within CRESTA. These are:

  • JYU has developed a general MPI based coupling interface for MPI parallel codes, this couples Lattice Boltzmann and particle diffusion codes;
  • JYU has collaborated closely with ABO to develop a Lattice Boltzmann code for GPU accelerators using both native programming CUDA and pragma based OpenACC. JYU has provided the LB algorithm and simulation expertise and, in addition, has implemented the CPU based prototype codes.ABO has developed the LB code for GPU accelerators using both native programming CUDA and pragma based OpenACC.