1. An apparatus for distributing processing tasks among a plurality of processing clusters in a processor, the apparatus comprising: a plurality of processing clusters, each processing cluster configured to execute one or more processing tasks concurrently, the one or more processing tasks comprising one or more cooperative thread arrays (CTA), wherein a CTA is a group of multiple threads that concurrently execute the same program on an input data set to produce an output data set; a dispatch unit coupled to the plurality of processing clusters and configured to: receive a processing task to be executed; and forward the processing task to a first processing cluster, wherein: each processing cluster is further configured to assert or deassert a ready signal indicating whether or not sufficient resources are available to execute the processing task; wherein a processing cluster is selected to execute the processing task based at least in part on whether the processing cluster is asserting the ready signal; the first processing cluster is configured to forward the processing task to a next processing cluster in the event that a ready signal is not asserted by the first processing cluster; and a last one of the processing clusters is configured to return the processing task to the dispatch unit in the event that the ready signal is not asserted by the last processing cluster.