1. A system, comprising: a processor; a physical memory; and a computer usable storage medium having computer readable program code embodied therein, the computer readable program code adapted to, when executed by the processor, implement a method for generating tasks for a parallel processing application, the method comprising: generating a plurality of threads within a parallel region of the application; setting a counter equal to a quantity of the plurality of threads; for each one of the plurality of threads: assigning an implicit task; executing the implicit task; upon encountering a task construct, during execution of the implicit tack, for an explicit asynchronous task: generating the explicit asynchronous task; adding the explicit asynchronous task to a first task queue, wherein the first task queue corresponds to the one of the plurality of threads; and incrementing the counter by one.