Advertisement

Automatic parallelization of irregular and pointer-based computations: Perspectives from logic and constraint programming

  • Manuel Hermenegildo
Invited Talks
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1300)

Abstract

Irregular computations pose some of the most interesting and challenging problems in automatic parallelization. Irregularity appears in certain kinds of numerical problems and is pervasive in symbolic applications. Such computations often use dynamic data structures which make heavy use of pointers. This complicates all the steps of a parallelizing compiler, from independence detection to task partitioning and placement. In the past decade there has been significant progress in the development of parallelizing compilers for logic programming and, more recently, constraint programming. The typical applications of these paradigms frequently involve irregular computations, which arguably makes the techniques used in these compilers potentially interesting. In this paper we introduce in a tutorial way some of the problems faced by parallelizing compilers for logic and constraint programs. These include the need for inter-procedural pointer aliasing analysis for independence detection and having to manage speculative and irregular computations through task granularity control and dynamic task allocation. We also provide pointers to some of the progress made in these areas. In the associated talk we demonstrate representatives of several generations of these parallelizing compilers.

Keywords

Automatic Parallelization Irregular Computations Speculation Pointer Aliasing Analysis Task Granularity Control Global Analysis Abstract Interpretation 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    K. A. M. Ali and R. Karlsson. The Muse Or-Parallel Prolog Model and its Performance. In 1990 North American Conference on Logic Programming, pages 757–776. MIT Press, October 1990.Google Scholar
  2. 2.
    K. Apt and A. Shaerf. Search and Imperative Programming. In POPL'97: 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 67–79, Paris, France, January 1997. ACM.Google Scholar
  3. 3.
    D. Bacon, S. Graham, and O. Sharp. Compiler Transformations for HighPerformance Computing. Computing Surveys, 26(4):345–420, December 1994.Google Scholar
  4. 4.
    E. Best and C. Lengauer. Semantic Independence. Science of Computer Programming, 13:23–50, 1990.Google Scholar
  5. 5.
    J. Bevemyr, T. Lindgren, and H. Millroth. Reform Prolog: the language and its implementation. In Proc. 10th Intl. Conf. Logic Programming, Cambridge, Mass., 1993. MIT Press.Google Scholar
  6. 6.
    C. Braem, B. Le Charlier, S. Modart, and P. Van Hentenryck. Cardinality analysis of prolog. In Proc. International Symposium on Logic Programming, pages 457–471, Ithaca, NY, November 1994. MIT Press.Google Scholar
  7. 7.
    F. Bueno, M. García de la Banda, and M. Hermenegildo. A Comparative Study of Methods for Automatic Compile-time Parallelization of Logic Programs. In Parallel Symbolic Computation, pages 63–73. World Scientific Publishing Company, September 1994.Google Scholar
  8. 8.
    F. Bueno, M. Garcia de la Banda, and M. Hermenegildo. Effectiveness of Global Analysis in Strict Independence-Based Automatic Program Parallelization. In International Symposium on Logic Programming, pages 320–336. MIT Press, November 1994.Google Scholar
  9. 9.
    D. Cabeza and M. Hermenegildo. Extracting Non-strict Independent Andparallelism Using Sharing and Freeness Information. In 1994 International Static Analysis Symposium, number 864 in LNCS, pages 297–313, Namur, Belgium, September 1994. Springer-Verlag.Google Scholar
  10. 10.
    J.-H. Chang, A. M. Despain, and D. Degroot. And-Parallelism of Logic Programs Based on Static Data Dependency Analysis. In Compcon Spring '85, pages 218–225, February 1985.Google Scholar
  11. 11.
    J. Chassin and P. Codognet. Parallel Logic Programming Systems. Computing Surveys, 26(3):295–336, September 1994.Google Scholar
  12. 12.
    P. Cousot and R. Cousot. Abstract Interpretation: a Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Fourth ACM Symposium on Principles of Programming Languages, pages 238–252, 1977.Google Scholar
  13. 13.
    S. K. Debray, P. López García, and M. Hermenegildo. Non-Failure Analysis for Logic Programs. In 1997 International Conference on Logic Programming, Leuven, Belgium, June 1997. MIT Press, Cambridge, MA.Google Scholar
  14. 14.
    S. K. Debray, N.-W. Lin, and M. Hermenegildo. Task Granularity Analysis in Logic Programs. In Proc. of the 1990 ACM Conf. on Programming Language Design and Implementation, pages 174–188. ACM Press, June 1990.Google Scholar
  15. 15.
    S.K. Debray and N.W. Lin. Cost analysis of logic programs. ACM Transactions on Programming Languages and Systems, 15(5):826–875, November 1993.Google Scholar
  16. 16.
    D. DeGroot. Restricted AND-Parallelism. In International Conference on Fifth Generation Computer Systems, pages 471–478. Tokyo, November 1984.Google Scholar
  17. 17.
    D. DeGroot. A Technique for Compiling Execution Graph Expressions for Restricted AND-parallelism in Logic Programs. In Int'l Supercomputing Conference, pages 80–89, Athens, 1987. Springer Verlag.Google Scholar
  18. 18.
    European Computer Research Center. Eclipse User's Guide, 1993.Google Scholar
  19. 19.
    M. García de la Banda, F. Bueno, and M. Hermenegildo. Towards Independent And-Parallelism in CLP. In Programming Languages: Implementation, Logics, and Programs, number 1140 in LNCS, pages 77–91, Aachen, Germany, September 1996. Springer-Verlag.Google Scholar
  20. 20.
    M. García de la Banda, M. Hermenegildo, M. Bruynooghe, V. Dumortier, G. Janssens, and W. Simoens. Global Analysis of Constraint Logic Programs. ACM Transactions on Programming Languages and Systems, 18(5):564–615, 1996.Google Scholar
  21. 21.
    M. García de la Banda, M. Hermenegildo, and K. Marriott. Independence in Constraint Logic Programs. In 1993 International Logic Programming Symposium, pages 130–146. MIT Press, Cambridge, MA, October 1993.Google Scholar
  22. 22.
    M. Hermenegildo. An Abstract Machine for Restricted AND-parallel Execution of Logic Programs. In Third International Conference on Logic Programming, number 225 in Lecture Notes in Computer Science, pages 25–40. Imperial College, Springer-Verlag, July 1986.Google Scholar
  23. 23.
    M. Hermenegildo and M. Carro. Relating Data-Parallelism and And-Parallelism in Logic Programs. In Proceedings of EURO-PAR'95, number 966 in LNCS, pages 27–42. Springer-Verlag, August 1995.Google Scholar
  24. 24.
    M. Hermenegildo and K. Greene. The &-Prolog System: Exploiting Independent And-Parallelism. New Generation Computing, 9(3,4):233–257, 1991.Google Scholar
  25. 25.
    M. Hermenegildo and F. Rossi. On the Correctness and Efficiency of Independent And-Parallelism in Logic Programs. In 1989 North American Conference on Logic Programming, pages 369–390. MIT Press, October 1989.Google Scholar
  26. 26.
    M. Hermenegildo and F. Rossi. Non-Strict Independent And-Parallelism. In 1990 International Conference on Logic Programming, pages 237–252. MIT Press, June 1990.Google Scholar
  27. 27.
    M. Hermenegildo and F. Rossi. Strict and Non-Strict Independent And-Parallelism in Logic Programs: Correctness, Efficiency, and Compile-Time Conditions. Journal of Logic Programming, 22(1):1–45, 1995.Google Scholar
  28. 28.
    M. Hermenegildo and the CLIP group. Some Methodological Issues in the Design of CIAO-A Generic, Parallel, Concurrent Constraint System. In Principles and Practice of Constraint Programming, number 874 in LNCS, pages 123–133. Springer-Verlag, May 1994.Google Scholar
  29. 29.
    D. Jacobs and A. Langen. Accurate and Efficient Approximation of Variable Aliasing in Logic Programs. In 1989 North American Conference on Logic Programming. MIT Press, October 1989.Google Scholar
  30. 30.
    J. Jaffar and M.J. Maher. Constraint Logic Programming: A Survey. Journal of Logic Programming, 19/20:503–581, 1994.Google Scholar
  31. 31.
    S. Janson and S. Haridi. Programming Paradigms of the Andorra Kernel Language. In 1991 International Logic Programming Symposium, pages 167–183. MIT Press, 1991.Google Scholar
  32. 32.
    P. López García, M. Hermenegildo, and S. K. Debray. A Methodology for Granularity Based Control of Parallelism in Logic Programs. Journal of Symbolic Computation, Special Issue on Parallel Symbolic Computation, 22:715–734, 1996.Google Scholar
  33. 33.
    E. Lusk et. al. The Aurora Or-Parallel Prolog System. New Generation Computing, 7(2,3), 1990.Google Scholar
  34. 34.
    K. Muthukumar and M. Hermenegildo. Determination of Variable Dependence Information at Compile-Time Through Abstract Interpretation. In 1989 North American Conference on Logic Programming, pages 166–189. MIT Press, October 1989.Google Scholar
  35. 35.
    K. Muthukumar and M. Hermenegildo. The CDG, UDG, and MEL Methods for Automatic Compile-time Parallelization of Logic Programs for Independent And-parallelism. In Int'l. Conference on Logic Programming, pages 221–237. MIT Press, June 1990.Google Scholar
  36. 36.
    K. Muthukumar and M. Hermenegildo. Combined Determination of Sharing and Freeness of Program Variables Through Abstract Interpretation. In 1991 International Conference on Logic Programming, pages 49–63. MIT Press, June 1991.Google Scholar
  37. 37.
    E. Pontelli, G. Gupta, and M. Hermenegildo. &ACE: A High-Performance Parallel Prolog System. In International Parallel Processing Symposium, pages 564–572. IEEE Computer Society Technical Committee on Parallel Processing, IEEE Computer Society, April 1995.Google Scholar
  38. 38.
    W. Pugh. A practical algorithm for exact array dependence analysis. Communications of the ACM, 8:102–114, August 1992.Google Scholar
  39. 39.
    V. Santos-Costa, D.H.D. Warren, and R. Yang. The Andorra-I Preprocessor: Supporting Full Prolog on the Basic Andorra Model. In 1991 International Conference on Logic Programming, pages 443–456. MIT Press, June 1991.Google Scholar
  40. 40.
    M. Shapiro and S. Horwitz. Fast and Accurate Flow-Insensitive Points-To Analysis. In POPL'97: 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 1–14, Paris, France, January 1997. ACM.Google Scholar
  41. 41.
    K. Shen. Overview of DASWAM: Exploitation of Dependent And-parallelism. Journal of Logic Programming, 29(1-3):245–293, November 1996.Google Scholar
  42. 42.
    L. Sterling and E.Y. Shapiro. The Art of Prolog. MIT Press, Cambridge MA, 1986.Google Scholar
  43. 43.
    P. Van Roy. 1983-1993: The Wonder Years of Sequential Prolog Implementation. Journal of Logic Programming, 19/20:385–441, 1994.Google Scholar
  44. 44.
    R. Warren, M. Hermenegildo, and S. K. Debray. On the Practicality of Global Flow Analysis of Logic Programs. In Fifth International Conference and Symposium on Logic Programming, pages 684–699. MIT Press, August 1988. *** DIRECT SUPPORT *** A0008C42 00002Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Manuel Hermenegildo
    • 1
  1. 1.School of Computer Science Technical University of Madrid (UPM)Spain

Personalised recommendations