1. A computer-implemented method of dynamically scheduling performance of tasks comprising: determining resources required by each task for performance of that task on a target system; comparing said determined resources of said tasks and identifying tasks with similar resource requirements; and scheduling said identified tasks with similar resource requirements to be successively performed on said target system.