The bookkeeper initialises and executes the E04USA algorithm and at each iteration distributes the structure calculations amongst the workers one at a time along with the parameter values at the current iteration and all additional information required for the optimisation. Once all work has been distributed, the bookkeeper waits for communication from the workers. After contact from a worker, the bookkeeper receives the values of the calculated residuals and various other meta-data, and assigns the worker a new structure for processing. This is continued until the training set has been exhausted and the residuals have been calculated for all of the structures. After the first iteration of the algorithm, computational cost estimates are made for each structure calculation based on the CPU times obtained in the previous iteration. The structures are then supplied to the workers in order of decreasing estimated computational cost. This ensures that the most costly minimisations and gradient calculations are initiated first to limit overall idle time for the workers. Once the optimisation has terminated, the bookkeeper informs all workers to also terminate and all processes can exit the program.