1. A system for performing computation, comprising: a plurality of clusters of computation units, each cluster of computation units comprising a plurality of ALUs and a working memory used by the ALUs during execution of tasks on the ALUs; and a distributor of computation tasks among the clusters, the distributor coupled to read tasks requiring execution, and operable to assign the tasks for execution on the plurality of clusters, the assigning comprising, for each of the clusters, determining which locations of each working memory are referenced by non-reentrant tasks currently scheduled for execution in that cluster, and dispatching non-reentrant tasks for execution by an identified cluster with a working memory that has a location referenced by the respective non-reentrant task, but which was determined as currently not being referenced by any other non-reentrant task scheduled for execution on that cluster, the identified cluster being configured to execute the dispatched non-reentrant tasks.