Home - News - Documentation - Tutorials - Contacts - Team - LProf - CQA - OneView
Outline
Tools suite
Availability
Documentation
Tools-suite
MAQAO is a suite of tools for profiling, analyzing and optimizing HPC applications. It provides a low-overhead profiler capable of handling any runtime, LProf; a quick, yet accurate, static analyzer, CQA, which allow to tune your code for the very specific characteristics of your micro-architecture; and a result aggregator module, OneView, presenting performance reports and pinpointing bottlenecks.
These tools are built on top of the MAQAO core capabilities:
- A binary manipulation layer that unlocks the possibility to evaluate the compilers’ output for your architecture and provides binary instrumentation for precise profiling,
- A reconstruction process offering multiple high-level views (loops, functions) connected with origin in the source code,
- And a set of analyzes building a complete suite of useful representations (control flow, data dependencies, etc.) and delivering numerous metrics for specialized tools.
In order to make MAQAO a convenient tool for researchers, a C API is provided for anyone to build its own module and a scripting langage (Lua) has been embedded and extended to provide quick and easy access to any metric.
To help industrial partners, MAQAO has been designed to have a very limited list of dependencies, all of them are included in standard Linux server distributions. Moreover, static binary releases are provided to obtain a quick and worry-free installation.
LProf
Tested up to one hundred thousands cores.
See the LProf dedicated page for more information.
CQA
CQA statically (no application run needed) analyses a binary (executable, static/shared library, object file) to estimate quality of the code generated by the compiler, key properties being CPU cycles estimation and vectorization efficiency.
From the input code (defined by a path to a binary/assembly file and by regions like functions/loops inside this file) and a target processor model, CQA generates (as output) high level reports and low level metrics to help application developers to optimize their code.
See the CQA dedicated page for more information.
OneView
ONE-View drives the execution of other MAQAO modules (LPROF, VPROF(1), CQA and DECAN(1)) in order to produce synthetic reports. It uses both static and dynamic analysis, according to the analysis description. Experiments are configured using a file or some command line parameters. Produced reports can be formatted as HTML web pages, XLSX spreadsheets or simple text.
ONE-View defined several built-in reports:
- The fastest report. It combines LPROF profiling with CQA static analysis. It needs only one run of the application.
- It contains all data from one with some metrics produced by VPROF(1) and DECAN(1). It needs four or five runs of the application according to configuration.
- It contains all reports from two with a lot of DECAN(1) metrics. It needs about twenty runs of the application and is the longest report. In addition, users can define their own reports by filling a report description file.
See the OneView dedicated page for more information.
(1) DECAN and VPROF are modules requiring instrumentation. They are in test (beta) and are not released yet.
Availability
MAQAO is released under LGPL3 and can be used under its terms. It also includes sources from various sources.
Please refers to the license file for more information.
Architectures
Currently, MAQAO handles the following architectures: x86 family:
- 32-bit programs - Core, LProf, CQA (Intel only, CPU model availabe for most micro-architectures)
- 64-bit programs - Core, LProf, CQA (Intel only, CPU model availabe for most micro-architectures)
Arm processors:
- 32-bit programs - Core, LProf
- 64-bit programs - Core, LProf, CQA (ARM Cortex A57 only)
See the CQA dedicated page for the list of micro-architectures CPU model.
Operating system
MAQAO has been designed to help the HPC community and as such is heavily focused on platform running scientific computations. Right now, it supports Linux applications but can be compiled on both Linux and Windows (only static analyses are operational). Even though there is an alpha version for Windows applications, no effort are currently scheduled to pursue it.