1. A method for balancing a workload on heterogeneous processing devices, comprising: accessing a memory storage of a processor of one type by a dequeuing entity associated with a processor of a different type; identifying a task from a plurality of tasks within the memory that can be processed by the processor of the different type; synchronizing a plurality of dequeuing entities capable of accessing the memory storage; and dequeuing the task form the memory storage.