Synchronization Minimization in a SPMD Execution Model
Abstract
This paper presents an algorithm for synchronization placement when using a SPMD execution model, where synchronizations are enforced only when there exists a cross-processor dependence. In this paper we investigate two scheduling techniques, loop based and data based, both of which use an SPMD model. Using scheduling information from previous stages in the compilation process, potential cross-processor dependences are determined. Given the minimum number of cross-processor data dependences that must be satisfied, an optimization technique based on a maximal cut algorithm is used so as to minimize the number of synchronization points needed to satisfy them. This algorithm has been successfully implemented in an experimental compiler. Initial experimental data show this technique to be very effective, outperforming existing methods.