Minimizing Synchronization Overhead in Statically Scheduled Multiprocessor Systems

Shuvra S. Bhattacharyya, Sundararajan Sriram and Edward A. Lee

Proc. of IEEE Int Conference on Application Specific Array Processors
July 24-26, 1995

Prepublished version
Published version


Synchronization overhead can significantly degrade performance in embedded multi-processor systems. In this paper, we develop techniques to determine a minimal set of processor synchronizations that are essential for correct execution in an embedded multiprocessor implementation. Our study is based in the context of self-timed execution of iterative dataflow programs; dataflow programming in this form has been applied extensively, particularly in the context of signal processing software. Self-timed execution refers to a combined compile-time/ run-time scheduling strategy in which processors synchronize with one another only based on inter-processor communication requirements, and thus, synchronization of processors at the end of each loop iteration does not generally occur. We introduce a new graph-theoretic framework, based on a data structure called the synchronization graph, for analyzing and optimizing synchronization overhead in self-timed, iterative dataflow programs. We also present an optimization that involves converting a synchronization graph that is not strongly connected into a strongly connected graph.