Edit me

Overview

MAQAO is a lightweight tool which is useful for analyzing the quality of binary code and identifying hotspots. It is available at www.maqao.org. MAQAO can be used for any build type, but it provides more detailed information when debugging symbols are available.

Identifying Hotspots

Profiling a Kratos Simulation

Set up a problem to analyze in Kratos and run

maqao lprof -ldi=on xp=lprof_output -- /usr/bin/python3 MainKratos.py

to profile the Kratos simulation and save the results in the local directory lprof_output.

For MPI run

mpirun -np 4 maqao lprof -ldi=on xp=lprof_output -- /usr/bin/python3 MainKratos.py

Analyzing Results

To print a summary of results in the terminal run maqao lprof -df xp=lprof_output.

To generate html files run maqao lprof -df xp=lprof_output of=html.

Code Quality Analysis

Code quality analysis can be applied to binary code in the Kratos libraries. Function bodies and function loops can be analyzed.

Analyzing Function Bodies

Run maqao cqa Kratos.so fct-body="factorize" to analyze all functions with names containing factorize in Kratos.so.

Analyzing Function Loops

Run maqao cqa Kratos.so fct-loops="factorize".