1. A computer-implemented method for processing a plurality of tasks being executed by a first group of threads and stored within a plurality of task metadata descriptor queues (TMDQs), the method comprising: receiving a notification that a first task included in the plurality of tasks has completed; determining within a co-processing unit whether all tasks included in a subset of the plurality of tasks and associated with a first TMDQ have executed; if all tasks included in the subset of the plurality of tasks have not executed, then launching a second task included in the plurality of tasks; and if all tasks included in the subset of the plurality of tasks have executed, then: updating a pointer in a first data structure associated with the first TMDQ; determining that a third task included in the plurality of tasks is about to be queued in the first TMDQ; and executing the third task.