In a shared-memory multiprocessor system, it is possible that certain synchronization operations are redundant -that is, their corresponding sequencing requirements are enforced completely by other synchronizations in the system -- and can be eliminated without compromising correctness. This paper addresses the problem of adding new synchronization operations in a multiprocessor implementation in such a way that the number of original synchronizations that consequently become redundant significantly exceeds the number of new synchronizations. We refer to this approach to reducing synchronization overhead as resynchronization. In this paper we formally define the resynchronization problem, we show that optimal resynchronization is NP-hard, and we propose a family of heuristics for this problem. Finally we present a practical example where resynchronization is useful.
Shuvra S. Bhattacharyya, Sundararajan Sriram, Edwa