Five applications representative of different relevant scientific domains serves as part of a strong inter-disciplinary co-design approach and as technology demonstrators. EPEEC exploits results from past FET projects that led to the cutting-edge software components it builds upon, and pursues influencing the most relevant parallel programming standardisation bodies.

The applications selected are described below:

AVBP

avbpAVBP is a 3D Navier-Stokes solver for compressible reactive multiphase flows on unstructured multi-element grids. Distributed in an open science program (noconcurrent/research purposes), it is used in Europe, Canada, and the US. The code leverages an SPMD approach with domain decomposition to attain excellent strong scaling performance up to 192k PowerPC Bluegene P cores (ANL MIRA system) or 40k Haswell cores (CCRT - CEA system).

Currently at the foremost of the state of the art, it is used for aeronautical research and development in Europe and Canada in public institutions (e.g., The von Karman Institute for Fluid Dynamics, ETH Zürich, EM2C CNRS, University of Sherbrooke, or Pittsburgh University), as well as by Cerfacs industrial partners. Its application domains range from aeronautical combustion chambers to aerospace propulsion systems. Safety scenarios for buildings are also handled with AVBP. The code is written in Fortran 95/2003 and some C, and uses MPI to attain parallel performance.

More information about AVBP at: http://www.cerfacs.fr/avbp7x

DIOGENeS

DIOGENeSDIOGENeS (DIscOntinuous GalErkin Nanoscale Solvers) is a software suite dedicated to computational nanophotonics/nanoplasmonics, which is developed by Inria. This software suite integrates several variants of the Discontinuous Galerkin (DG) method, which is particularly well adapted to accurately and efficiently deal with the multiscale characteristics of nanoscale light/matter interaction problems.

DIOGENeS relies on an object-oriented architecture implemented in Fortran 2008. There are two main components in this software suite.

On the one hand, a library of structures and module, referred as the core library named DIOGENeS-common, giving access to all the functionalities needed to devise DG type methods formulated on unstructured or hybrid structured/unstructured meshes. On the other hand, a set of dedicated simulators (i.e. solvers), which are designed on top of the core library, for dealing with applications relevant to nanophotonics/nanoplasmonics. Numerical kernels of the core library and dedicated solvers are adapted to high-performance computing thanks to a classical SPMD strategy combining a partitioning of the underlying mesh with a message-passing programming paradigm implemented with the MPI standard. The DGTD solver considered in EPEEC, which is referred as DIOGENeS-dgtd, is one such simulators that may be used for different numerical studies. This include the assessment of light absorption properties in nanostructured solar cells in connection with photovoltaic energy production, or the characterization of strong field confinement/enhancement resulting from light interaction with plasmonic nanostructures in connection with various applications such as bio-sensing or nanoantennas design.

More information about DIOGENeS at: http://diogenes.inria.fr

OSIRIS

OSIRISOSIRIS is a fully relativistic, massively parallel particle-in-cell (PIC) code used to simulate highly nonlinear and kinetic processes that occur during high-intensity particle and laser beam-plasma interactions (see a graphical example in Figure 1.8). In a PIC code the full set of Maxwell’s equations is solved on a grid using currents and charge densities calculated by weighting discrete particles onto the grid. Each particle is pushed to a new position and momentum via self-consistently calculated fields. Therefore, to the extent that quantum mechanical effects may be neglected, a PIC code makes no physics approximations and is ideally suited for studying complex systems with many degrees of freedom.

More information about OSIRIS at: http://epp.tecnico.ulisboa.pt/osiris/

Quantum ESPRESSO

Quantum ESPRESSO is written mostly in Fortran 90 and parallelised using MPI and OpenMP. It is widely used for benchmarking and co-design. From the numerical point of view, Quantum ESPRESSO implements two main computational kernels: 3DFFT and linear algebra (DGEMM and the solution of an eigensystem), plus the computation of point functions using a combination of algebraic, trigonometric, and exponential intrinsic operators. Quantum ESPRESSO’s parallelisation is based on a hierarchy of MPI communicators reflecting the structure of the datasets and the locality of the computations. Tightly coupled computations are performed within low-level communicators, while loosely coupled computations are performed within high-level communicators. The enhancement of data localisation and data parallelism is critical to enable Quantum ESPRESSO to improve its performance in the perspective of exascale hardware architectures.

Quantum ESPRESSO is a tool composed by different applications, all them aimed to calculate electronic properties by solving the Kohn-Sham equations. All the codes contained in the Quantum ESPRESSO suite share a common set of low-lying kernels based on linear algebra for dense systems and 3D Fast Fourier Transforms (FFT), as depicted in Figure 1.9.

espresso

More information about Quantum ESPRESSO at: http://www.quantum-espresso.org
 

SMURFF

smurffThe SMURFF (Scalable Matrix Factorization Framework) is a high-performance implementation of several matrix factorisation techniques like Macau, B-PMF, and GFA, written in C++. Its parallelisation relies on several models: MPI, OpenMP (for tasking), and GASPI. Early implementations have already been used as testbeds for comparing advanced HPC communications (GPI) with traditional approaches (MPI).

The methodology to improve SMURFF will be to work closely with the programming environment developers to see how best to port SMURFF to the EPEEC environment whilst improving the environment itself as part of the co-design effort. The use of the EPEEC environment will allow the development of SMURFF into a fully-featured package while freeing the developers from the burden of detailed performance engineering.

In addition, it will improve the overall performance and energy efficiency of the code. Together, these will lead to two important impacts: (1) availability of a highly-efficient general matrix factorisation code to tackle various large machine learning challenges, and (2) a code base that is amenable to extension by machine learning experts to enable the further development of this family of algorithms at scale by reducing the barrier to access to supercomputing resources for researcher-developers that do not have a performance engineering background, thus having a major impact on the machine learning and client communities.

More information about SMURFF at: https://github.com/ExaScience/smurff