Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
Arm Community blogs
Arm Community blogs
Servers and Cloud Computing blog Tool up with Arm DDT
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded and Microcontrollers blog

  • Internet of Things (IoT) blog

  • Laptops and Desktops blog

  • Mobile, Graphics, and Gaming blog

  • Operating Systems blog

  • Servers and Cloud Computing blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tags
  • High Performance Computing (HPC)
  • Arm DDT
  • HPC Tools
  • Development Tools
  • infrastructure
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

Tool up with Arm DDT

Mark O'Connor
Mark O'Connor
December 2, 2011
3 minute read time.

We humans can survive in almost every environment on our planet and are beginning to step off it. We command fire hotter than the core of a star and freeze atoms at temperatures cooler than the depths of interstellar space. Not bad for squishy sacks of mostly water...


We can do all this because we love tools - we make them, we use them; they complete us.
At Arm we spend all day, every day, crafting ever-better tools - in particular tools for working in the virtual environment inside computers. Our favourite ones are Arm DDT, for finding and fixing problems on everything from a mobile ARM processor up to a 225,000 core supercomputer, and Allinea MAP, for effortlessly measuring and improving performance.

This week, we released Arm DDT 3.1, the culmination of ten years of learning about and creating tools for parallel debugging.

Those ten years have taught us that not all tools are equal; the hallmark of a good tool is how it feels in your hands. Reliable. Solid. Well-balanced. Intuitive. The right tool for the job doesn’t try to engage you in a conversation, it fits into your grasp and extends your capabilities effortlessly.

We’re not all the way there yet, but each release takes us another few steps towards this holy grail. To see what we mean, take three of the changes we’ve brought in with Arm DDT 3.1 to make it a better, more intuitive tool:

1. Effortless Offline Debugging: Improving on Print Statements

The best interface is one you never have have to use - instead of this:

 $ mpiexec -np 1024 my-program arg1 arg2

Just write this:

 $ ddt -offline output.html -np 1024 my-program arg1 arg2

Starting in Arm DDT 3.1, we’ve added an offline mode that bypasses our interactive, graphical interface entirely. Any errors will be automatically collected, aggregated and presented in a beautiful html report when the job is done. All of Arm DDT’s features are present - memory debugging, parallel crash stack traces, parallel variable comaprisons - without ever needing to use them directly.


We didn’t stop there; we also took on the task of parallelizing and scaling print statements - instead of editing your source code to print the values of, say, i and xarr(4,0) and recompiling, just run your program like this:

 $ ddt -offline log.html -trace-at 'hello.f90:49,tag,someints(tag)' -np 10 ./hello

Arm DDT adds a virtual print statement at line 49 of hello.f90 and gathers the values of tag and someints(tag) every time it is hit. Better than that, it does this across all the processes in the program and compares their values for you:

For many classes of bug, this is exactly what you need - especially if the alternative is waiting a week for a full-cluster interactive debugging slot!

2. Zero-click Comparison Across Processes

Those little comparison charts - sparklines - are now automatically calculated for every variable you see in Arm DDT’s graphical interface, too:

Of course, you can still click on any variable to pull up a list of by-value groupings and drill down to individual processes and threads.

3. Always-On Static Analysis

This idea that a tool should constantly provide subtle, unobtrusive feedback was also the driver behind adding static code analysis to Arm DDT:

Any code you look at in Arm DDT is automatically checked with an appropriate static analysis tool and the warnings or errors seamlessly integrated into your view of the source code. There’s nothing to configure or learn, it just works - always and everywhere.

And much more

The best tools can be used in almost any environment, and we’ve been busy building out Arm DDT’s support for more and more programming paradigms including UPC and co-array Fortran.

We’ll unpack these and many more features over the coming weeks, including the new GPU activity displays and more details on getting the most out of Arm DDT’s new offline mode. Stay tuned and tool up!

Useful links:

Download Arm DDT
Get a free trial of Arm DDT

Anonymous
Servers and Cloud Computing blog
  • Migrating our GenAI pipeline to AWS Graviton powered by Arm Neoverse: A 40% cost reduction story

    Hrudu Shibu
    Hrudu Shibu
    This blog post explains how Esankethik.com, an IT and AI solutions company, successfully migrated its internal GenAI pipeline to AWS Graviton Arm64.
    • August 28, 2025
  • Using GitHub Arm-hosted runners to install Arm Performance Libraries

    Waheed Brown
    Waheed Brown
    In this blog post, learn how Windows developers can set up and use Arm-hosted Windows runners in GitHub Action.
    • August 21, 2025
  • Distributed Generative AI Inference on Arm

    Waheed Brown
    Waheed Brown
    As generative AI becomes more efficient, large language models (LLMs) are likewise shrinking in size. This creates new opportunities to run LLMs on more efficient hardware, on cloud machines doing AI inference…
    • August 18, 2025