The Nimrod Toolkit

Nimrod Toolkit Logo

At the University of Queensland’s Research Computing Centre, I worked on The Nimrod Toolkit, a suite of utilities for distributed computing. Originally developed at Monash University by David Abramson, Nimrod enables parameter sweep management, optimisation, and workflow integration for high-performance computing environments.

Main Sites

Downloads

ComponentSource Code
Nimrod/GGitHub – nimrodg
Nimrod/G AgentGitHub – nimrodg-agent
Nimrod/KKepler
Nimrod/OKGitHub – nimrodok
Embedded NimrodGitHub – nimrod-embedded

ℹ️ Note

Source code for the pre-rewrite version of Nimrod/G, as well as Nimrod/O, is not publicly available.

Components & Features

Nimrod Workflow Diagram

Nimrod/G

Core grid scheduler responsible for distributing work across multiple resources and aggregating results.

Sample planfile

parameter aircraft_model files select anyof "A3??.dat" "737-*.dat"
parameter AoA label "Angle of attack" float range from -45 to 45 step 2.5
parameter winglets text select anyof "none" "fence" "blended" "raked"
parameter airspeed integer range from 50 to 600 step 50
parameter turbulence label "Normalized Reynolds" float random from 1 to 2

task main
	copy root:${aircraft_model} node:.
	copy root:wing_test.zip node:.
	exec unzip wing_test.zip
	shexec "./run_wing_test.sh ${aircraft_model} ${winglets} ${AoA} ${airspeed} ${turbulence} >> output.${jobindex}"
	shexec "zip results.${jobindex} *"
	copy node:results.${jobindex}.zip root:.
endtask

Nimrod/O

Optimisation engine built on top of Nimrod/G.

Sample Schedule File

parameter p integer range from 35 to 60
parameter q integer range from 2 to 17
parameter r integer range from 15 to 45

task main
   copy  bead.data node:bead.data
   copy  beader node:beader
   node:execute  ./beader $p $q $r > final
   copy  node:final output.$jobname
endtask

method simplex
  starts 2 named "Simplex"
    starting points random
    tolerance 0.000
  endstarts
endmethod

Nimrod/K

Reimplementation of Nimrod/G for the Kepler Project.

Nimrod/OK

Optimisation integration for Kepler and Nimrod/K.

Sample Kepler Workflow with Nimrod/OK Optimisation

Embedded Nimrod

Lightweight variant of Nimrod/G designed for use within a single HPC cluster.

Sample Job Script

1
2
3
4
5
6
7
8
9
#!/usr/bin/env nimexec
#PBS -lselect=4:ncpus=4:ompthreads=2:mem=16gb
#PBS -lwalltime=10:00:00

#NIM shebang /bin/bash
#NIM parameter x integer range from 1 to 100 step 1
#NIM parameter y integer range from 1 to 100 step 1

expr ${NIMROD_VAR_x} \* ${NIMROD_VAR_y}

Development History

Assessment and Modernisation

Reimplementation of Nimrod/G

Outcome