1. A method for scheduling tasks to execute on a plurality of processing units, the method comprising: determining whether any of the plurality of processing units are available for executing scheduled tasks; in response to determining that at least one of the plurality of processing units is available for executing the scheduled tasks, assigning the scheduled tasks to execute on the at least one of the plurality of processing units; determining whether additional processing units are required for executing the scheduled tasks; in response to determining that additional processing units are required for executing the scheduled tasks, executing an instruction to trigger an inter-processor interrupt; in response to the inter-processor interrupt, waking up selected one or more of remaining ones of the plurality of processing units; and assigning the scheduled tasks to also execute on the selected one or more of the remaining ones of the plurality of processing units.