1. A method comprising: identifying, using one or more processors, one or more nodes of a first virtual cluster of nodes that are available for processing a job, the first virtual cluster of nodes being one of a plurality of virtual clusters of nodes; selecting a job from a job queue; determining whether the identified nodes are sufficient to process the selected job, wherein the determining includes determining whether a topology of the identified nodes accommodates a shape of the selected job; in response to determining the identified nodes are not sufficient to process the selected job, selecting one or more nodes from other nodes of the plurality of virtual clusters of nodes that are not currently available for processing the selected job; allocating the selected one or more nodes and the identified nodes for processing the selected job; and processing the selected job using the allocated nodes after the selected one or more nodes becoming available to process the selected job.