1. A processing unit comprising: a plurality of virtual engines configured to (i) receive, from an operating system (OS), a plurality of tasks substantially in parallel with each other and (ii) load a set of state data associated with each of the plurality of tasks; and a shader core configured to execute the plurality of tasks substantially in parallel based on the set of state data associated with each of the plurality of tasks.