Arm MAP
# Arm MAP

Arm MAP, is an application profiler produced by Allinea Software now part of Arm. of Warwick, United Kingdom, for profiling the performance of C, C++, Fortran 90 and Python software. It is widely used for its multithreaded and multiprocess capabilities such as profiling parallel Message Passing Interface (MPI) or OpenMP applications, including those running on clusters of Linux machines, and for scalar (sequential) code.

## Profiler

It is one of the first profilers able to both analyze and visually display the performance when running at high scales (including many thousands of cores). Arm MAP is also being used to examine applications that are preparing to scale to 1 ExaFLOP/s

The profiler uses adaptive sampling methods to identify process counters and activities and combines data from multiple processes that may be running on multiple compute server nodes. It analyzes performance and causes of bottlenecks including:

* Processor instruction level - identifying issues such as memory bandwidth, or lack of floating-point vectorization
* Memory usage
* I/O
* Communication - such as MPI
* Threads
* Energy usage and power

This enables developers to identify hotspots and areas of potential improvement.

The tool is scalable - and merges performance data using the scalable architecture first used in Arm DDT to debug Petascale (typically over 100,000 processes). Arm MAP shares a common user interface with Arm DDT which together makes the Arm Forge tool suite. This is widely used by research scientists and developers of parallel scientific applications.

The Arm MAP profiler is used on large supercomputers and also smaller clusters or workstations. Sites with installations include National Energy Research Scientific Computing Center (NERSC), University of Cambridge and Los Alamos National Laboratory.

