In most application programs, loops usually comprise most of the computation in a program and are the most important source of parallelism. When loops are executed on multiprocessors, the cross iteration data dependences need to be enforced by synchro...
In most application programs, loops usually comprise most of the computation in a program and are the most important source of parallelism. When loops are executed on multiprocessors, the cross iteration data dependences need to be enforced by synchronization between processors. Existing synchronization schemes have been studied mainly on the loop with constant dependence distance. When these schemes are applied to the loop with variable dependence distance, there exists lots of overhead by the use of unnecessary synchronization variables and execution of unuseful synchronization instructions. Even though there exist various variable synchronization schemes, they have a lot of run-time overhead to compute synchronization information. In this paper, we present a new synchronization scheme, Synch-Free/Synch-Hold for managing synchronization efficiently on the loop with constant and variable dependence distance.