Image de la boite
Hotspots Categorization
Load balancing
CQA Loops

What is MAQAO ?

Main features

MAQAO (Modular Assembly Quality Analyzer and Optimizer) is a performance analysis and optimization tool suite operating at binary level (no recompilation necessary). The main goal of MAQAO is to provide application developers with synthetic reports in order to help them optimizing their code. The tool mixes both dynamic and static analyses based on its ability to reconstruct high level structures such as functions and loops from an application binary. At this point, MAQAO supports Intel64 and Xeon Phi.

Main features
go to top

Main Features

Animation

Binary
disassembler

It reads binaries in ELF format and uses dwarf information if present to make the connection with source files. MAQAO provides the list of functions, binary loops, basic blocks and instruction sequences found by a linear sweep analysis of the binary code.

Animation

Application
profiling

The LProf module profiles applications on large parallel systems with very low overhead. It provides a summary of time spent in functions and loops (hotspots) and also a categorization view to quickly distinguish between user code and runtimes/system code.

Animation

Code quality
Analysis

The CQA module analyses the quality of the code generated by the compiler and provides users with human readable workarounds/hints.

go to top

Success Stories

Vincent Moureau and Ghislain Lartigue, Researchers

The CORIA team, who develops the massively parallel CFD code YALES2, has benefited for several years of the expertise and support from the MAQAO team. With their help, we have identified many performance bottlenecks, which led to acceleration factors between 2 and 4 depending on the considered kernels. The MAQAO tools are now routinely used at CORIA during the development of YALES2.

Yales2 Illustration → Visit Yales2 project page

Vincent Moureau and Ghislain Lartigue, Researchers

The CORIA team, who develops the massively parallel CFD code YALES2, has benefited for several years of the expertise and support from the MAQAO team. With their help, we have identified many performance bottlenecks, which led to acceleration factors between 2 and 4 depending on the considered kernels. The MAQAO tools are now routinely used at CORIA during the development of YALES2.

Yales2 Illustration → Visit Yales2 project page

Gabriel Staffelbach, Researcher

AVBP is a state of the art code for compressible reactive flows developed by CERFACS. The development team has benefitted from the MAQAO toolset which encompasses the expertise and experience of the MAQAO Team. Specifically, the CQA tool has allowed a continuous performance improvement for each new intel architecture. Acceleration factors from 1.3 to 1.8 have been obtained for real industrial applications with a clear impact on the R&D process. MAQAO is now part of the gold standard of performance tools used at CERFACS for code modernization and performance engineering.

AVBP Illustration → Visit AVBP project page

Patrick Hede, Expert Engineer

MAQAO helped us pinpointing issues in code sections that were affecting the global performance of our applications. Thanks to the low overhead of MAQAO we have been able to run our applications with real life datasets without making any compromises. We started using MAQAO during the perfcloud projet during which we managed to obtain a 3x factor on our PiRiA application.

go to top

Audience for MAQAO

Besides performance evaluation and optimization, MAQAO can be used in many different high performance computing projects. You might be interested in MAQAO if you are:

Illustration

A tool developer and you want to use MAQAO modules as building blocks in your own tool (using MAQAO C/Lua API or tools' csv output). For instance MAQAO is being used in TAU which takes advantage of the MIL module to perform binary rewriting.

Illustration

An architecture researcher and you want to analyze code for new machines or build performance models.
A compiler researcher and you want to develop/test some ideas of analyses/transformations at the binary level

Illustration

An end-user, expert in your application field and you want to get better performance for your code. Some advanced features may help you going one step further when compared to regular user-oriented reports


go to top