Computational apparatus, comprising a single integrated circuit chip in which multiple components of the apparatus are implemented, the components comprising: a shared memory; multiple processing cores, which are configured to concurrently execute tasks that are respectively assigned to each of the processing cores and to read and write data from and to the shared memory in executing the tasks; a central scheduling unit, which comprises a central scheduling unit memory configured to hold one or more look-up tables (70, 72, 74, 76) listing tasks for allocation to the processing cores and respective conditions for enabling of each of the tasks, and which is configured to receive indications of termination of the tasks by the processing cores, and to select, responsively to the indications, enabled tasks from the one or more look-up tables for allocation to the processing cores, wherein the one or more look-up tables contain programmable data words defining edges of a task map, wherein the task map comprises a dependency graph, and the edges indicate, for each listed task in the task map, the respective conditions for enabling the task, wherein the conditions include the termination of one or more precedent tasks, wherein the central scheduling unit further comprises: multiple enabling cells, including one respective enabling cell corresponding to each task in the task map, the enabling cells comprising logical components configured to store tokens corresponding to inputs to the enabling cells and configured to enable the tasks in response to the respective conditions by performing logical operations over the tokens, and transfer logic, which links the one or more look-up tables to the enabling cells by providing the tokens to indicate when an output from a look-up table to each enabling cell is valid; and a network of distribution units (28, 30, 32), which are connected between the central scheduling unit and the processing cores in a hierarchical tree and are configured to allocate the selected tasks from the central scheduling unit to the processing cores for execution and to report the termination of the tasks from the processing cores to the central scheduling unit. a shared memory; multiple processing cores, which are configured to concurrently execute tasks that are respectively assigned to each of the processing cores and to read and write data from and to the shared memory in executing the tasks; a central scheduling unit, which comprises a central scheduling unit memory configured to hold one or more look-up tables (70, 72, 74, 76) listing tasks for allocation to the processing cores and respective conditions for enabling of each of the tasks, and which is configured to receive indications of termination of the tasks by the processing cores, and to select, responsively to the indications, enabled tasks from the one or more look-up tables for allocation to the processing cores, wherein the one or more look-up tables contain programmable data words defining edges of a task map, wherein the task map comprises a dependency graph, and the edges indicate, for each listed task in the task map, the respective conditions for enabling the task, wherein the conditions include the termination of one or more precedent tasks, wherein the central scheduling unit further comprises: multiple enabling cells, including one respective enabling cell corresponding to each task in the task map, the enabling cells comprising logical components configured to store tokens corresponding to inputs to the enabling cells and configured to enable the tasks in response to the respective conditions by performing logical operations over the tokens, and transfer logic, which links the one or more look-up tables to the enabling cells by providing the tokens to indicate when an output from a look-up table to each enabling cell is valid; and multiple enabling cells, including one respective enabling cell corresponding to each task in the task map, the enabling cells comprising logical components configured to store tokens corresponding to inputs to the enabling cells and configured to enable the tasks in response to the respective conditions by performing logical operations over the tokens, and transfer logic, which links the one or more look-up tables to the enabling cells by providing the tokens to indicate when an output from a look-up table to each enabling cell is valid; and a network of distribution units (28, 30, 32), which are connected between the central scheduling unit and the processing cores in a hierarchical tree and are configured to allocate the selected tasks from the central scheduling unit to the processing cores for execution and to report the termination of the tasks from the processing cores to the central scheduling unit.