Welcome to the Arm Forge user guide, covering Arm DDT and Arm MAP.
Arm DDT is our industry-leading parallel debugger supporting a wide range of parallel architectures and models, including MPI, UPC, CUDA and OpenMP. Arm MAP is our low-overhead line-level profiler for MPI, OpenMP and scalar programs. Both these tools are part of one common environment: Arm Forge.
One installation provides you with everything you need to debug, fix and profile programs at any scale, limited only by your current license. This simplifies your installation and maintenance overheads and provides one common, familiar interface for all development tools, making it easy to move between them while working on a piece of code. You may start Forge with ddt or map and can easily switch to the other tool with a single click while working.
Arm Forge has native remote clients for Windows, Mac OS X and Linux that can connect via SSH to any server or cluster using your existing login process and then run, debug, profile, edit and compile files directly on the remote machine. The native remote client experience is superior to X forwarding or VNC-based solutions.
Arm DDT is a powerful, easy-to-use graphical debugger capable of debugging a wide variety of scenarios found in modern development environments. With Arm DDT, it is possible to debug:
- Single process and multithreaded software.
- Parallel (MPI) software.
- Heterogeneous software such as that written to use GPUs.
- Hybrid codes mixing paradigms such as MPI + OpenMP, or MPI + CUDA.
- Multi-process software of any form, including client-server applications.
Arm DDT is designed to make you and your team more productive. It includes static analysis that highlights potential problems in the source code, integrated memory debugging that can catch reads and writes outside of array bounds, integration with MPI message queues and much more. It provides a complete solution for finding and fixing problems whether on a single thread or hundreds of thousands.
Arm DDT supports all of the compiled languages that are found in mainstream and high-performance computing including:
- C, C++, and all derivatives of Fortran, including Fortran 90.
- Limited support for Python (CPython 2.7).
- Parallel languages/models including MPI, UPC, and Fortran 2008 Co-arrays.
- GPU languages such as HMPP, OpenMP Accelerators, CUDA and CUDA Fortran.
While many users choose Arm DDT for desktop development or for debugging on small departmental parallel machines, it is also scalable and fast to beyond Petascale and is depended upon to debug hundreds of thousands of processes simultaneously by leadership class facilities around the world.
Arm MAP is a parallel profiler that shows you which lines of code took the most time and why, without requiring careful configuration or prior experience with profiling tools. It features:
- Support for MPI, OpenMP and single-threaded programs.
- Small data files. All data is aggregated on the cluster and only a few megabytes written to disk, regardless of the size or duration of the run.
- Syntax-highlighted source code with performance annotations, allowing you to collapse blocks of code and functions or drill down to the performance of a single line.
- Just 5% application slowdown even with thousands of MPI processes.
- Both interactive and batch modes for gathering profile data.
- A rich set of zero-configuration
metrics, showing memory usage, floating-point calculations
and MPI usage across processes, including:
- The percentage of vectorized instructions, including AVX extensions, used in each part of the code.
- The amount of time spent in memory operations varies over time and processes. Is there a cache bottleneck?
- Click and drag to zoom in to specific regions of computation and explore them in detail.
- A display that enlightens you instead of drowning you in data. Everything is visually scalable, using aggregation across processes and cores to deliver an immediate overview that highlights regions of imbalance in the code.
You can find links to tutorials, training material, webinars and white papers in the online knowledge center:
Knowledge Center Arm help and tutorials
Known issues and the latest version of this user guide may be found on the support web pages:
Support Arm support