Abstract
This paper demonstrates that significant improvements to automatic parallelization technology require that existing systems be extended in two ways: (1) they must combine high-quality compile-time analysis with low-cost run-time testing; and, (2) they must take control flow into account during analysis. We support this claim with the results of an experiment that measures the safety of parallelization at run time for loops left unparallelized by the Stanford SUIF compiler’s automatic parallelization system. We present results of measurements on programs from two benchmark suites — Specfp95 and Nas sample benchmarks — which identify inherently parallel loops in these programs that are missed by the compiler. We characterize remaining parallelization opportunities, and find that most of the loops require run-time testing, analysis of control flow, or some combination of the two. We present a new compile-time analysis technique that can be used to parallelize most of these remaining parallel loops. This technique is designed to not only improve the results of compile-time parallelization, but also to produce low-cost, directed run-time tests that allow the system to defer binding of parallelization until run-time when safety cannot be proven statically. We call this approach predicated array data-flow analysis. We augment array data-flow analysis, which the compiler uses to identify independent and privatizable arrays, by associating with each array data-flow value a predicate. Predicated array data-flow analysis allows the compiler to derive “optimistic” data-flow values guarded by predicates; these predicates can be used to derive a run-time test guaranteeing the safety of parallelization.
This work has been supported by DARPA Contract DABT63-95-C-0118, a fellowship from AT&T Bell Laboratories, the Air Force Materiel Command and DARPA contract F30602-95-C-0098.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Ammons, G., and Larus, J.R. Improving data-flow analysis with path profiles. In Proceedings of the ACM SIGPLAN’ 98 Conference on Programming Language Design and Implementation (Montreal, Canada, June 1998), pp. 72–84.
Blume, W., Doallo, R., Eigenmann, R., Grout, J., Hoeflinger, J., Lawrence, T., Lee, J., Padua, D., Paek, Y., Pottenger, B., Rauchwerger, L., and Tu, P. Parallel programming with Polaris. IEEE Computer 29, 12 (December 1996), 78–82.
Blume, W., and Eigenmann, R. Performance analysis of parallelizing compilers on the Perfect Benchmark programs. IEEE Transaction on Parallel and Distributed Systems 3, 6 (November 1992), 643–656.
Blume, W.J. Symbolic Analysis Techniques for Effective Automatic Parallelization. PhD thesis, Dept. of Computer Science, University of Illinois at Urbana-Champaign, June 1995.
Bodík, R., Gupta, R., and Soffa, M. L. Interprocedural conditional branch elimination. In Proceedings of the ACM SIGPLAN’ 97 Conference on Programming Language Design and Implementation (Las Vegas, Nevada, June 1997), pp. 146–158.
Cousot, P., and Cusot, R. Systematic design of program anaysis frameworks. In Conference Record of the Sixth Annual ACM Symposium on Principles of Programming Languages (San Antonio, Texas, January 1979), pp. 269–282.
Goff, G. Practical techniques to augment dependence analysis in the presence of symbolic terms. Tech. Rep. TR92-194, Dept. of Computer Science, Rice University, October 1992.
Gu, J., Li, Z., and Lee, G. Symbolic array dataflow analysis for array privatization and program parallelization. In Proceedings of Supercomputing’ 95 (San Diego, California, December 1995).
Gu, J., Li, Z., and Lee, G. Experience with efficient array data-flow analysis for array privatization. In Proceedings of the Sixth ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming (Las Vegas, Nevada, June 1997), pp. 157–167.
Haghighat, M. R.Symbolic Analysis for Parallelizing Compilers. PhD thesis, Dept. of Computer Science, University of Illinois at Urbana-Champaign, August 1994.
Hall, M. W., Anderson, J. M., Amarasinghe, S. P., Murphy, B. R., Liao, S.-W., Bugnion, E., and Lam, M. S. Maximizing multiprocessor performance with the SUIF compiler. IEEE Computer 29, 12 (December 1996), 84–89.
Hall, M. W., Murphy, B. R., Amarasinghe, S. P., Liao, S.-W., and Lam, M. S. Interprocedural analysis for parallelization. In Proceedings of the 8th International Workshop on Languages and Compilers for Parallel Computing (Columbus, Ohio, August 1995), pp. 61–80.
Holley, L. H., and Rosen, B. K. Qualified data flow problems. In Conference Record of the Seventh Annual ACM Symposium on Principles of Programming Languages (Las Vegas, Nevada, January 1980), pp. 68–82.
Irigoin, F. Interprocedural analyses for programming environments. In Proceedings of the NSF-CNRS Workshop on Environment and Tools for Parallel Scientific Programming (September 1992).
Moon, S., Hall, M.W., and Murphy, B. R. Predicated array data-flow analysis for run-time parallelization. In Proceedings of the 1998 ACM International Conference on Supercomputing (Melbourne, Australia, July 1998).
Nielson, F. Expected forms of data flow analysis. In Programs as Data Objects, H. Ganzinger and N. D. Jones, Eds., vol. 217 of Lecture Notes on Computer Science. Springer-Verlag, October 1986, pp. 172–191.
Pugh, W., and Wonnacott, D. Eliminating false data dependences using the Omega test. In Proceedings of the ACM SIGPLAN’ 92 Conference on Programming Language Design and Implementation (San Francisco, California, June 1992), pp. 140–151.
Rauchwerger, L., and Padua, D. The LRPD test: Speculative run-time parallelization of loops with privatization and reduction parallelization. In Proceedings of the ACM SIGPLAN’ 95 Conference on Programming Language Design and Implementation (La Jolla, California, June 1995), pp. 218–232.
Saltz, J. H., Mirchandaney, R., and Crowley, K. Run-time parallelization and scheduling of loops. IEEE Transaction on Computers 40, 5 (May 1991), 603–612.
Sharma, S. D., Acharya, A., and SAltz, J. Defeered data-flow analysis: Algorithms, proofs and applications. Tech. Rep. UMD-CS-TR-3845, Dept. of Computer Science, University of Maryland, November 1997.
Singh, J. P., and Hennessy, J. L. An empirical investigation of the effectiveness and limitations of automatic parallelization. In Proceedings of the International Symposium on Shared Memory Multiprocessing (April 1991).
So, B., Moon, S., and Hall, M.W. Measuring the effectiveness of automatic parallelization in SUIF. In Proceedings of the 1998 ACM International Conference on Supercomputing (Melbourne, Australia, July 1998).
Strom, R. E., and Yellin, D. M. Extending typestate checking using conditional liveness analysis. IEEE Transaction on Software Engineering 19, 5 (May 1993), 478–485.
Tu, P.Automatic Array Privatization and Demand-driven Symbolic Analysis. PhD thesis, Dept. of Computer Science, University of Illinois at Urbana-Champaign, May 1995.
Tu, P., and Padua, D. Automatic array privatization. In Proceedings of the 6th International Workshop on Languages and Compilers for Parallel Computing (Portland, Oregon, August 1993), pp. 500–521.
Wegman, M. N., and Zadeck, F. K. Constant propagation with conditional branches. ACM Transaction on Programming Languages and Systems 13, 2 (April 1991), 180–210.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Moon, S., So, B., Hall, M.W., Murphy, B. (1998). A Case for Combining Compile-Time and Run-Time Parallelization. In: O’Hallaron, D.R. (eds) Languages, Compilers, and Run-Time Systems for Scalable Computers. LCR 1998. Lecture Notes in Computer Science, vol 1511. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-49530-4_7
Download citation
DOI: https://doi.org/10.1007/3-540-49530-4_7
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65172-7
Online ISBN: 978-3-540-49530-7
eBook Packages: Springer Book Archive