As part of the Mont-Blanc effort to provide a software ecosystem for ARM-based HPC, Mont-Blanc partners are developing and porting developer tools, such as performance analysis tools. In March 2017, Mont-Blanc set up a training session in Grenoble on the Open Source performance tools developed at BSC and UVSQ. During this one-day training, many Mont-Blanc partners, as well as external attendees from the local research labs, were given the opportunity to actually try the Paraver, Dimenas, Extrae, MAQAO and CERE tools, under the guidance of BSC and UVSQ experts. This motivated us to share information on these tools with a broader community.
Today, Judit Gimenez from Barcelona Supercomputing Centre (BSC, Spain) presents Paraver, Dimenas and Extrae. If you have missed our previous instalment on the MAQAO and CERE performance tools, you can catch up here.
Writing parallel applications that make good use of available resources is not an easy task. Performance analysis tools support developers for the evaluation, tuning and optimization of their codes. The performance tools developed at BSC are an open-source project aiming not only to detect performance problems but to understand the applications' behaviour.
The key component is Paraver, a performance analyser based on traces with a great flexibility to explore the collected data. The Dimemas simulator can be used to predict the application's behaviour under different scenarios, such as increasing the network bandwidth or balancing a given region of code. Performance analytics modules, such as clustering, folding and tracking, extract insight from the raw performance data. Extrae is the instrumentation package that captures information during program execution and generates Paraver (and Dimemas) traces. Provided with such tools, the analyst can generate and validate hypotheses to investigate the trails provided by the execution trace.
After collecting the data with Extrae, the analysis can be fully driven from Paraver. The tool automatically provides as hints the most relevant views based on the information detected when loading the tracefile. Those are the first steps of the analysis, and depending on the results, the user can then decide to keep exploring the data, using clustering to identify the application structure, or launch a Dimemas simulation to validate a given hypothesis.
Paraver and its satellite tools are largely used as part of the Mont-Blanc project. For example, as part of the Mont-Blanc work on applications, we leverage Paraver and MAQAO to analyse applications and aid in the process of identifying the regions of interest used to build the mini-applications that will serve for co-design and system software assessment.
Paraver is also used to analyse the performance of the selected kernels, mini-applications and full applications on the test platform and mini-clusters, so as to determine the strengths and weaknesses of the design.
More information: https://tools.bsc.es/
Here are some captures of the MPI calls for 3 different executions with ThunderX processor, made during our March 2017 Mont-Blanc training. They are on the same timescale, so you can see the improvement:
Shows the effect of binding the MPI ranks to the cores:
Additionally with balancing the work between sockets: