Resources for Co-design at POP CoE

Ateles performance assessment

Application: Ateles
Performance study: Initial Audit – identify areas of improvement
Programming language(s): Fortran · Python ·
Programming model(s): MPI · OpenMP ·
Full report: Ateles.pdf

Ateles is a Finite Element code which uses the Discontinuous Galerkin scheme on top of an distributed parallel octree mesh data structure. The code uses an explicit time integration scheme. The basic unit of the computational domain is called an element. Static mesh refinement is used to increase numerical accuracy in areas of interest. To lowest order, all elements should have the same computational load. Therefore, for this analysis we will take the number of elements as the measure for problem size.

Figure 5 shows the timeline of the execution running on 1 node with 24 MPI ranks. The application spends 0.26 sec in an initialisation phase and 0.03 sec in a shut-down phase, respectively. The code executes a total of 5 iterations in over 90 seconds. Due to the shortness of initialisation and shutdown phases we did not try to filter these out and report all analysis over the whole duration.

Iterations are clearly separated by a single phase of collective communication. Within an iteration multiple phases of computation and point-to-point communication interlace. The structure of iterations, i.e. number and length of phases, is not uniform across MPI ranks.