Welcome to the fourth newsletter from the EU funded POP Centre of Excellence. Our free of charge services help EU organisations improve performance of parallel software.
This issue includes:
- Registration information for the POP User Forum at European HPC Summit Week 2017
- Recent technical highlights – including an audit of Python hybrid MPI + OpenMP code
- A new analysis of the kind of codes helped by POP so far
- New blog posts.
For information on our services and past editions of the newsletter see the POP website.
POP User Forum @ European HPC Summit Week 2017
Everybody is welcome to attend our User Forum. This workshop is aimed at POP users, and anyone interested in learning about the POP project and services. It will include talks from POP about our services and from users about their experience of our work, with plenty of opportunities for your feedback. Registration is now open, for more information see the POP website.
Date: May 19, 2017.
Location: Barcelona, Spain.
What kind of codes has POP analysed?
Last June we reviewed the first 9 months of the POP project on the NAG Blog by analysing the kind of codes investigated by the project so far. Now we have completed 18 months of POP work it seemed a good time to update this analysis, and to review how things have developed as the project progressed.
Overall some trends have remained the same. For example, Fortran is still the most popular language used by our users. At the same time, some things have changed, such as the lower proportion of hybrid MPI + OpenMP codes we are now seeing.
One goal we set ourselves was to reach out to new subject areas and more EU countries, and our new data shows we have made good progress. However certain countries remain under-represented, compared to the size of their HPC market, giving us a good indication of where to focus our efforts in the next 12 months of the project.
To read the full analysis see the new post on the POP blog.
Success story – 6x speed up for sphFluids
sphFluids is a SPH (smoothed particle hydrodynamics) cross-platform application written in C++ and OpenMP. The POP audit of sphFluids identified several issues related to computational performance, including low values of IPC (instruction per cycle). Following discussions between the sphFluids developers and POP experts, and a review of the code design, it was decided to implement a complete rewrite. This led to performance improvements of up to 6-7x, depending on the scenario and pressure model used.
For the full story see the new blog post.
Technical Tip – profiling MPI I/O
For HPC applications it is common to profile (and optimise) computation and communication, while neglecting I/O. As a result I/O can become a significant performance bottleneck. The Darshan HPC I/O profiling tool has recently been used in a POP Audit to successfully profile I/O of an MPI code, and is a useful tool to assess POSIX I/O, MPI-IO, parallel NetCDF and parallel HDF5. For example, the picture shows a Darshan report on % of run time in POSIX I/O and MPI-IO.
For more information on using Darshan see the new blog post on the POP website.
Some recent analysis highlights
Python hybrid MPI + OpenMP analysis
A commercial Python code using hybrid MPI + OpenMP was investigated in a POP performance audit to identify the cause of limited scalability. The performance analysis used Extrae and Paraver and determined that workload replication was the main reason for the poor performance. By applying a cluster analysis within Paraver it was possible to pinpoint the regions of code responsible. Furthermore, it was discovered that decreasing computational efficiency with increasing core counts is an additional problem.
This work highlights a new feature in Extrae and Paraver that allows in-depth analysis for Python-based applications, i.e. similar to analysis of applications written in C or Fortran.
Latency sensitivity analysis using the Dimemas tool
Our recent analysis of a meteorology MPI code included a sensitivity analysis of MPI communication using Dimemas. Dimemas is a performance simulation tool that uses real runtime data to simulate performance on theoretical networks.
In this work, as part of a POP Performance Plan, a parametric study of latency (see figure) identified that this code shows significant sensitivity to MPI latency. Dimemas was also used to analyse the influence of the eager limit & end-point contention.
OpenMP C++ finite element code
The FFEA (Fluctuating Finite Element Analysis) code uses C++ and OpenMP to simulate dynamics of microscopic viscoelastic bodies subject to thermal fluctuations.
A recent POP audit calculated the range of OpenMP performance metrics and identified inefficiencies resulting from IPC scaling, Amdahl's law, load imbalance and OpenMP overheads. This audit data has been used by the code developers as part of their ongoing code improvements.
Meet POP at upcoming events
POP @ PRACE Days 2017
PRACE Days 2017 is in Barcelona between 16-18th May. This forum is for domain experts from industry and research to discuss how they use HPC to further their research.
POP @ ISC 2017
The International Supercomputing Conference (ISC) is 18-22nd June in Frankfurt. ISC is a major HPC conference held annually in Germany, and is attended by users and vendors who showcase the latest technologies and developments in HPC. Talk to POP experts at the exhibition booths of BSC, JSC/HLRS and NAG. Look out for a BoF titled “POP Improves HPC Applications” and participate! The conference also hosts many presentations on novel uses of HPC to advance scientific and industrial productivity.
POP @ Teratec Forum 2017
The Teratec Forum is a two-day event dedicated to HPC on the 27-28th June in Paris. It includes keynotes, technical sessions and an exhibition, with a strong emphasis on industrial usage of HPC.
Apply for free help with code optimisation
We offer a range of free services designed to help EU organisations improve the performance of parallel software. If you’re not getting the performance you need from parallel software, please apply for help via the short Service Request Form, or email us to discuss further.
These services are funded by the European Union Horizon 2020 research and innovation programme - there’s no direct cost to our users!
The POP Helpdesk
Past and present POP users are eligible to use our email helpdesk (firstname.lastname@example.org). Please contact our team of experts for help analysing code changes, to discuss your next steps, and to ask questions about your parallel performance optimisation.