Technical software · high-performance optimisation
From an overnight batch job to an interactive tool
A core optimisation ran as an overnight batch and could only handle a simplified model. The bottleneck wasn't the code — it was how the problem was posed. Re-posing it so each candidate could be evaluated independently cut the cost by orders of magnitude and turned the overnight run into an interactive tool that handles the full model.
The challenge
A core optimisation at the heart of the client’s product searched an enormous space of candidates for a worst-case result. It worked and was trusted — but each run took most of a day, which confined it to an overnight batch role, and it could only represent a simplified version of the real problem. The turnaround made it useless as a day-to-day design aid, and the simplification limited where it applied.
What we did
The bottleneck wasn’t the implementation — it was how the problem had been posed. Each candidate was evaluated by a coupled, iterative search: you couldn’t evaluate one in isolation and get an answer. Optimising that machinery would have shaved percentages; it wouldn’t have changed the shape of the thing.
So we left the code alone and changed the representation so each candidate could be evaluated independently and directly. Two things followed:
- The per-candidate cost dropped by orders of magnitude — a direct calculation replacing an iterative search.
- Parallel execution fell out of the design rather than being bolted on to rescue it, because the candidates were now independent.
The new formulation also handled the full, realistic model the original had to simplify away.
The result
- An overnight batch computation became an interactive tool — engineers see the consequence of a change in real time instead of waiting for the next day’s run.
- It now applies to the realistic problem, not just a simplified stand-in.
The gain came from changing the model, not tuning the code — the kind of headroom that only opens up when you re-pose the problem. Talk to us about where yours might be hiding.
Working on something similar?
We'd be glad to talk through how we'd approach it.
Start a conversation