1. A method, comprising: performing, by a computer: executing a given task in a data-driven computation, wherein said executing comprises spawning two or more other tasks in response to respective trigger conditions for the data-driven computation being met, wherein each trigger condition identifies a particular memory location and wherein the trigger condition is met in response to the particular memory location being modified; for each of the spawned tasks: determining whether to schedule the spawned task for execution or defer execution of the spawned task; creating a task group comprising: the given task; a subset of spawned tasks comprising spawned tasks scheduled for execution; and another subset of spawned tasks comprising spawned tasks for which execution was deferred; wherein said creating comprises executing an operation that blocks execution of a task that initiated execution of the given task until execution of all tasks that are added to the task group subsequent to adding the given task to the task group has been completed; executing the subset of the spawned tasks; executing, subsequent to completing said executing the subset of the spawned tasks, the other subset of the spawned tasks; and beginning execution, subsequent to completing execution of the tasks that were added to the task group subsequent to adding the given task to the task group, of one or more tasks in another task group.