Compiler techniques for data synchronization in nested parallel loops

Peiyi Tang, Pen Chung Yew, Chuan Qi Zhu

Research output: Chapter in Book/Report/Conference proceedingConference contribution

11 Scopus citations


The major source of parallelism in ordinary programs is do loops. When loop iterations of parallelized loops are executed on multiprocessors, the crossiteration data dependences need to be enforced by synchronization between processors. Existing data synchronization schemes are either too simple to handle general nested loop structures with non-trivial array subscript functions or inefficient due to the large run-time overhead. In this paper, we propose a new synchronization scheme based on two data-oriented synchronization instructions: synch_read(x,s) and synch_write(x,s). We present the algorithm to compute the ordering number, s, for each data access. Using our scheme, a parallelizing compiler can parallelize a general nested loop structure with complicated cross-iteration data dependences. If the computations of ordering numbers cannot be done at compile time, the run-time overhead is smaller than the other existing run-time schemes.

Original languageEnglish (US)
Title of host publication1990 ACM Int Conf Supercond
PublisherPubl by ACM
Number of pages10
StatePublished - Jan 1 1990
Event1990 ACM International Conference on Supercomputing - Amsterdam, Neth
Duration: Jun 11 1990Jun 15 1990


Other1990 ACM International Conference on Supercomputing
CityAmsterdam, Neth


Dive into the research topics of 'Compiler techniques for data synchronization in nested parallel loops'. Together they form a unique fingerprint.

Cite this