1. A method comprising: selecting a job for distributed execution, the job associated with an application and an operating system for executing the job; identifying, using one or more processors, two or more nodes that are available for executing the job, wherein the two or more nodes are part of a virtual cluster of nodes; determining one or more nodes of the identified nodes is not sufficient to execute the selected job including determining one or more of (a) whether the identified nodes each include the application for executing the selected job installed thereon and (b) whether the identified nodes are each booted with the operating system for executing the selected job; in response to determining one or more of the identified nodes is not sufficient to execute the selected job, performing one or more of (a) installing the application on each of the one or more nodes determined to not include the application installed thereon and (b) booting each of the one or more nodes determined to not include the operating system with the operating system; allocating the identified nodes for executing the selected job; and executing the selected job on the allocated nodes in response to completion of the one or more of installation and booting.