Abstract
As the grain size becomes smaller, more parallelism can be found in most programs. However, to exploit smaller grain parallelism, more efficient synchronization primitives are needed to reduce the increased synchronization overhead. The granularity of parallelism that can be exploited on a multiprocessor system depends heavily on the type and the efficiency of the synchronization supported by the system. For medium-grain parallelism, ordered dependencies such as data dependencies and control dependencies need to be enforced in order to guarantee the correctness of the parallel execution. Hence, data synchronization is one of the major sources of synchronization overhead in the program execution. In this paper, we classify the synchronization schemes based on how synchronization variables are used. A new scheme, the process-oriented scheme, is proposed. This scheme requires a very small number of synchronization variables and can be supported very efficiently by simple hardware in the system.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have