Efficient Forwarding of Producer-Consumer Data in Task-Based Programs
Madhavan Manivannan, Anurag Negi, Per Stenström · 2013
Task-based programming models are increasingly being adopted due to their ability to express parallelism intuitively. This paper focuses on techniques to optimize producer-consumer sharing in task-based programs. As the set of producer and consumer tasks can often be statically determined, coherence prediction techniques are expected to successfully optimize producer-consumer sharing. We show however that they are ineffective because the mapping of tasks to cores changes based on run-time conditions. This paper contributes with a technique that forwards produced and spatially close blocks to a consumer in a single transaction when that consumer requests a first block. In comparison with prefetching approaches, such as stride prefetching, our proposed technique is a robust alternative to reduce communication overhead in fine-grained task-based applications.