1. A method comprising: registering, by a client virtual machine on each of a plurality of client computing systems, availability of processing resources for the corresponding client computing systems with a cloud controller; selectively dispatching, by the cloud controller, tasks from at least one server computing system coupled to the cloud controller to at least one of the client virtual machines based on availability of corresponding processing resources and a level of workload in the corresponding at least one server computing system, the cloud controller redundantly dispatching a plurality of tasks to different client virtual machines executing on different client computing systems and terminates such redundantly dispatched tasks when a first result is received indicating that a corresponding task has been completed; and de-registering, by the client virtual machine on each of the plurality of client computing systems, the availability of processing resources for the corresponding client computing systems with the cloud controller upon a triggering event based on a level of processing resources required by one or more local applications on the client computing system requiring exceeding a pre-defined threshold; wherein: each virtual client machine accesses the host operating system of the corresponding client computing system to adjust to dynamic load changes caused by an end user operating the corresponding client computing system, and dispatched tasks are limited to tasks that can be executed within a pre-defined amount of time.