TY - GEN
T1 - The privatizing DOALL test
T2 - 8th International Conference on Supercomputing, ICS 1994
AU - Rauchwerger, Lawrence
AU - Padua, David
N1 - During the last two decades, compiler techniques for the automatic detection of parallelism have been studied extensively [17, 27]. From this work it has become clear that, for a class of programs, compile-time analysis has to be complemented with run-time techniques if a significant fraction of the implicit parallelism is to be detected [6, 8]. The main reason for this is that the access pattern of some programs cannot be determined statically, either because of limitations of the current analysis algorithms or because the access pattern is a function of the input data. For example, most dependence *Research supported in part by Army contract #DABT63-92-C-0033. This work is not necessarily representative of the positions or policies of the Army or the Government.
PY - 1994/7/16
Y1 - 1994/7/16
N2 - Current parallelizing compilers cannot identify a significant fraction of fully parallel loops because they have complex or statically insufficiently defined access patterns. For this reason, we have developed the Privatizing DOALL test - a technique for identifying fully parallel loops at run-time, and dynamically privatizing scalars and arrays. The test itself is fully parallel, and can be applied to any loop, regardless of the structure of its data and/or control flow, The technique can be utilized in two modes: (i) the test is performed before executing the loop and indicates whether the loop can be executed as a DO ALL; (ii) speculatively - the loop and the test are executed simultaneously, and it is determined later if the loop was in fact parallel. The test can also be used for debugging parallel programs. We discuss how the test can be inserted automatically by the compiler and outline a cost/performance analysis that can be performed to decide when to use the test. Our conclusion is that the test should almost always be applied - because, as we show, the expected speedup for fully parallel loops is significant, and the cost of a failed test (a not fully parallel loop), is minimal. We present some experimental results on loops from the PERFECT Benchmarks which confirm our conclusion that this test can lead to significant speedups.
AB - Current parallelizing compilers cannot identify a significant fraction of fully parallel loops because they have complex or statically insufficiently defined access patterns. For this reason, we have developed the Privatizing DOALL test - a technique for identifying fully parallel loops at run-time, and dynamically privatizing scalars and arrays. The test itself is fully parallel, and can be applied to any loop, regardless of the structure of its data and/or control flow, The technique can be utilized in two modes: (i) the test is performed before executing the loop and indicates whether the loop can be executed as a DO ALL; (ii) speculatively - the loop and the test are executed simultaneously, and it is determined later if the loop was in fact parallel. The test can also be used for debugging parallel programs. We discuss how the test can be inserted automatically by the compiler and outline a cost/performance analysis that can be performed to decide when to use the test. Our conclusion is that the test should almost always be applied - because, as we show, the expected speedup for fully parallel loops is significant, and the cost of a failed test (a not fully parallel loop), is minimal. We present some experimental results on loops from the PERFECT Benchmarks which confirm our conclusion that this test can lead to significant speedups.
UR - https://www.scopus.com/pages/publications/84976735460
UR - https://www.scopus.com/pages/publications/84976735460#tab=citedBy
U2 - 10.1145/181181.181254
DO - 10.1145/181181.181254
M3 - Conference contribution
AN - SCOPUS:84976735460
T3 - Proceedings of the International Conference on Supercomputing
SP - 33
EP - 43
BT - Proceedings of the 8th International Conference on Supercomputing, ICS 1994
PB - Association for Computing Machinery
Y2 - 11 July 1994 through 15 July 1994
ER -