  This paper presents BDDT-SCC, a task-parallel runtime system for non
cache-coherent multicore processors, implemented for the Intel Single-Chip
Cloud Computer. The BDDT-SCC runtime includes a dynamic dependence analysis and
automatic synchronization, and executes OpenMP-Ss tasks on a non cache-coherent
architecture. We design a runtime that uses fast on-chip inter-core
communication with small messages. At the same time, we use non coherent shared
memory to avoid large core-to-core data transfers that would incur a high
volume of unnecessary copying. We evaluate BDDT-SCC on a set of representative
benchmarks, in terms of task granularity, locality, and communication. We find
that memory locality and allocation plays a very important role in performance,
as the architecture of the SCC memory controllers can create strong contention
effects. We suggest patterns that improve memory locality and thus the
performance of applications, and measure their impact.
