Opens in a new tab

Early Access

Linaro Forge Automation: Profiling and Debugging for AI Agents

An MCP server that lets AI agents run Linaro MAP, Linaro DDT and Performance Reports on your Slurm cluster, read the results and act on them.

MCP · Slurm · SSH

  • Works with any MCP client, such as Claude Code or your own agents.
  • Runs over SSH as your own user, with no admin access.
  • Uses the Linaro Forge tools already installed on your cluster.

How It Works

The MCP server runs on your machine and connects to your cluster over SSH. Your agent asks for a profile or a debug run; the server submits the Slurm job, runs the Linaro Forge tool and returns structured results.

How the Linaro Forge Automation MCP Server works: on your machine, an AI agent sends requests to the MCP server. The server connects to your HPC cluster over SSH as your own user and submits a Slurm job that runs Linaro MAP, Linaro DDT or Performance Reports. Structured results come back to the agent, which acts on them and runs again. Every command is logged on the cluster.How the Linaro Forge Automation MCP Server works: on your machine, an AI agent sends requests to the MCP server. The server connects to your HPC cluster over SSH as your own user and submits a Slurm job that runs Linaro MAP, Linaro DDT or Performance Reports. Structured results come back to the agent, which acts on them and runs again. Every command is logged on the cluster.

1. Your AI Agent

Claude Code, your own agent or a dashboard asks for a profile, a debug run or a scaling test.

2. The MCP Server

Turns each request into a Slurm job using Linaro MAP, Linaro DDT or Performance Reports, and returns the results as structured data.

3. Your Cluster

Jobs run under your account, within your normal Slurm limits, using the Linaro Forge installation already there.

What Agents Can Do

The same Linaro Forge tools your engineers use, driven by an agent that can run, read and repeat without manual scripting.

Profile and Tune

Run jobs under Linaro MAP or Performance Reports, get compute, MPI, memory and I/O breakdowns as structured data, and see the functions that take the most time.

Debug Without a GUI

Run Linaro DDT in batch mode to catch memory leaks, buffer overflows and use-after-free errors, check variables across MPI ranks, and report the exact source line.

Test Scaling

Run the same job across a range of node counts, calculate the speedup and find the point where adding nodes stops helping.

Run and Diagnose Slurm Jobs

Discover partitions and GPUs, read job logs for out-of-memory, crash, MPI and licence errors, and check that expected output files really exist.

Results can also be sent to Prometheus for Grafana dashboards, with estimated compute-hour and cost savings between builds.

Case Study: An Agent Optimises an N-body Simulation

A domain scientist’s gravitational simulation (2,000 particles, 300 time steps), written for correct physics first, running on a 4-core Arm system. Through the MCP server, the agent used Performance Reports and Linaro MAP to decide each change, kept only the ones that helped, and checked every result against the original.

9.2×

faster than the original build

4.9×

from the agent’s code changes alone, beyond -O2

25→100%

core use, after Performance Reports showed idle cores

Identical

results, bit for bit, at every kept step

Step

What the profile showed

What the agent did

Runtime

Outcome

0

Original build, no optimisation flag

Measured a baseline

6.41 s

Baseline

1

The compile command had no optimisation level

Added -O2

3.39 s

Kept, 1.9×

2

Compute-bound, but only 25% of cores in use

Spread the force loop across 4 cores with OpenMP

1.08 s

Kept, 5.9×

3

99.4% of the time in one force function

Computed each pair’s force once, using Newton’s third law

0.855 s

Kept, 7.5×

4

Still the same function

Replaced repeated divisions with one reciprocal

0.78 s

Kept, 8.2×

5

Still the same function

Changed the data layout to arrays per field

0.696 s

Kept, 9.2×

6

No exact changes left

Tried the Barnes–Hut approximation: 0.34% energy error

0.347 s

Proposed for the scientist to decide

7

—

Tried single-precision forces on top

0.347 s

Rejected: no gain

The agent applied only changes that kept the results identical. The approximation would double the speed again, but it changes the answer slightly, so the agent proposed it with its accuracy cost instead of applying it.

Debugging: Seeded Memory Bugs

Linaro DDT, run in batch mode by the agent, caught all three bugs in small C test programs:

Bug

How Linaro DDT was run

Result

Memory leak

Batch mode with memory debugging

715 leaks (183 kB) found, traced to line 29

Buffer overflow

With bounds checking

Off-by-one heap overflow found at line 20

Use-after-free

With thorough memory checking

Write through a dangling pointer caught

Built for Cluster Security

Designed to work within the rules of a shared HPC system.

  • Runs as you: standard key-based SSH as your own user, with no sudo access and no admin services to install.
  • Safe commands: every argument is quoted before it reaches the shell, and unsafe job options are rejected.
  • Contained: commands and build files stay in one workspace directory on the cluster.
  • Audited: every remote command is logged on the cluster with its time, duration and exit code.

What You Need

  • SSH key access to a Slurm cluster
  • Linaro Forge installed on the cluster
  • Python 3 on your own machine
  • An MCP-compatible AI client or agent

Join the Early Access Programme

Early access partners get regular contact with our product team and priority support, and a say in what we build next. Tell us about your agent workflows, your Slurm setup and the codes you want to profile and debug.