Abstract
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 language | English (US) |
---|---|
Title of host publication | 1990 ACM Int Conf Supercond |
Publisher | Publ by ACM |
Pages | 177-186 |
Number of pages | 10 |
State | Published - Jan 1 1990 |
Event | 1990 ACM International Conference on Supercomputing - Amsterdam, Neth Duration: Jun 11 1990 → Jun 15 1990 |
Other
Other | 1990 ACM International Conference on Supercomputing |
---|---|
City | Amsterdam, Neth |
Period | 6/11/90 → 6/15/90 |