A Data Forwarding Scheme for Task-based Programming Models

Task-based programming models are increasingly being adopted due to their ability to express parallelism. Communication is an inherent aspect of this model and is expected to play an important part in application scalability on multi- core architectures. In this paper we focus specifically on communication arising due to producer-consumer sharing in task-based applications. Existing approaches that optimize for producer-consumer sharing, by predicting the identity of the consumers and forwarding data in advance, rely on producers and consumers to exhibit stable communication to be effective. We show that task-based parallel applications do not exhibit stable communication as the mapping of tasks to cores changes based on runtime conditions thereby lim- iting applicability of such optimizations. As an alternative solution, we propose a forwarding scheme in the context of chip multiprocessors that helps in reducing communication overheads by enabling cache-to-cache transfers of updated lines to the consumer after the consumer identifies itself. Our evaluation indicates that the proposed scheme is able to reduce communication overheads due to such producer-consumer sharing.