1. A method for allocating computing resources on a parallel computing system having a plurality of compute nodes, each compute node having at least one processor, a plurality of computing jobs being executed on the parallel computing system, wherein each computing job is being executed on a block of compute nodes provided by the parallel computing system, the method comprising: receiving a new computing job to be executed on the parallel computing system; and before attempting to move one of the computing jobs responsive to receiving the new computing job: upon determining that the parallel system is fragmented to the extent that a block of compute nodes cannot be allocated to the new computing job and that there are enough free compute nodes for the new computing job: suspending one or more of the plurality of computing jobs being executed on the parallel computing system, moving each of the one or more suspended computing jobs to another block of compute nodes of the parallel system, whereby a space of available compute nodes provided by the parallel computing system is defragmented, and resuming execution of the one or more suspended jobs on the parallel computing system.