1. A computer-implemented method for assigning a compute task to a first processor included in a plurality of processors, the method comprising: analyzing each compute task in a plurality of compute tasks to identify one or more compute tasks that are eligible for assignment to the first processor, wherein the first processor comprises a single-instruction-multiple-data (SIMD) processor that includes multiple execution units, and a thread group having a plurality of threads executes across the multiple execution units to process different data via sets of substantially identical instructions, and wherein each compute task is listed in a first table and is associated with a priority value and an allocation order that indicates a time at which the compute task was added to the first table; selecting a first compute task from the identified one or more compute tasks based on at least one of the priority value and the allocation order; assigning the first compute task to the first processor for execution; spawning one or more cooperative thread arrays (CTAs) that includes the thread group; and executing the one or more CTAs.