1. A method for generating a virtual machine, comprising: identifying a virtual machine (VM) state to clone in response to a cloning request received from a program during runtime of the program; determining what hardware resources on which to generate the VM clone; and generating the VM clone on the determined hardware resources.