skip to main content
article
Open Access

Effectivness of abstract interpretation in automatic parallelization: a case study in logic programming

Published:01 March 1999Publication History
Skip Abstract Section

Abstract

We report on a detailed study of the application and effectiveness of program analysis based on abstract interpretation of automatic program parallelization. We study the case of parallelizing logic programs using the notion of strict independence. We first propose and prove correct a methodology for the application in the parallelization task of the information inferred by abstract interpretation, using a parametric domain. The methodology is generic in the sense of allowing the use of different analysis domains. A number of well-known approximation domains are then studied and the transformation into the parametric domain defined. The transformation directly illustrates the revelance and applicability of each abstract domain for the application. Both local and global analyzers are then built using these domains and embedded in a complete parallelizing compiler. Then, the performance of the domains in this context is assessed through a number of experiments. A comparatively wide range of aspects is studied, from the resources needed by the analyzers in terms of time and memory to the actual benefits obtained from the information inferred. Such benefits are evaluated both in terms of the characteristics of the parallelized code and of the actual speedups obtained from it. The results show that data flow analysis plays an important role in achieving efficient parallelizations, and that the cost of such analysis con be reasonable even for quite sophisticated abstract domains. Furthermore, the results also offer significant insight into the characteristics of the domains, the demands of the application, and the trade-offs involved.

References

  1. ALI, K. A. M. AND I~ARLSSON~ R. 1990. The Muse Or-Parallel Prolog Model and its Performance. In 1990 North American Conference on Logic Programming (October 1990), pp. 757-776. MIT Press. Google ScholarGoogle Scholar
  2. BACON~ D.~ GRAHAM~ S.~ AND NHARP~ O. 1994. Compiler Transformations for High- Performance Computing. Computing Surveys 26, 4 (December), 345-420. Google ScholarGoogle Scholar
  3. BISWAS~ P., Su, S., AND YUN~ D. 1988. A Scalable Abstract Machine Model to Support Limited-OR/Restricted AND Parallelism in Logic Programs. In Fifth International Conference and Symposium on Logic Programming (Seattle,Washington, 1988), pp. 1160-1179.Google ScholarGoogle Scholar
  4. BRUYNOOGHE, M. 1991. A Practical Framework for the Abstract Interpretation of Logic Programs. Journal of Logic Programming 10, 91-124. Google ScholarGoogle Scholar
  5. BRUYNOOGHE, M. AND JANSSENS, CJ. 1988. An Instance of Abstract Interpretation Integrating Type and Mode Inference. In Fifth International Conference and Symposium on Logic Programming (Seattle, Washington, August 1988), pp. 669-683. MIT Press.Google ScholarGoogle Scholar
  6. BUENO, F., CABEZA, D., HERMENEGILDO, M., AND PUEBLA, CJ. 1996. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, Number 1058 in LNCS (Sweden, April 1996), pp. 108-124. Springer-Verlag. Google ScholarGoogle Scholar
  7. BUENO, F., CJARCfA DE LA BANDA, M., AND HERMENEGILDO, M. 1994. A Comparative Study of Methods for Automatic Compile-time ParMlelization of Logic Programs. In First International Symposium on Parallel Symbolic Computation (September 1994), pp. 63-73. World Scientific Publishing Company.Google ScholarGoogle Scholar
  8. BUENO, F., HERMENEGILDO, M., MONTANARI, U., AND ROSSI, F. 1998. Partial Order and Contextual Net Semantics for Atomic and Locally Atomic CC Programs. Science of Computer Programming 30, 51-82. Special CCP95 Workshop issue. Google ScholarGoogle Scholar
  9. BUENO CARRILLO, F. 1994. Automatic Optimisation and Parallelisation of Logic Programs through Program Transformation. Ph.D. thesis, Universidad Polit6cnica de Madrid (UPM).Google ScholarGoogle Scholar
  10. CABEZA, D. AND HERMENEGILDO, M. 1994. Extracting Non-strict Independent Andparallelism Using Sharing and Freeness Information. In 199~ International Static Analysis Symposium, Number 864 in LNCS (Namur, Belgium, September 1994), pp. 297-313. Springer- Verlag.Google ScholarGoogle Scholar
  11. CHANG, J.-H., DESPAIN, A. M., AND DEGROOT, D. 1985. And-ParMlelism of Logic Programs Based on Static Data Dependency Analysis. In Compcon Spring '85 (February 1985), pp. 218-225.Google ScholarGoogle Scholar
  12. CHANG, S.-E. AND CHIANG, Y. P. 1989. Restricted AND-ParMlelism Execution Model with Side-Effects. In E. L. LUSK AND R. A. OVERBEEK Eds., Proceedings of the North American Conference on Logic Programming (1989), pp. 350-368. MIT Press, Cambridge, MA.Google ScholarGoogle Scholar
  13. CHASSIN, J. AND CODOGNET, P. 1994. Parallel Logic Programming Systems. Computing Surveys 26, 3 (September), 295-336. Google ScholarGoogle Scholar
  14. CLARK, K. AND GREGORY, S. 1986. Parlog: Parallel Programming in Logic. Journal of the A CM 8, 1-49. Google ScholarGoogle Scholar
  15. CODISH, M., BRUYNOOGHE, M., CJARCIA DE LA BANDA, M., AND HERMENEGILDO, M. 1997. Exploiting Goal Independence in the Analysis of Logic Programs. Journal of Logic Programruing 32, 3 (September), 247-261.Google ScholarGoogle Scholar
  16. CODISH, M., DAMS, D., AND YARDENI, E. 1991. Derivation and Safety of an Abstract Unification Algorithm for Groundness and Aliasing Analysis. In Eighth International Conference on Logic Programming (Paris, France, June 1991), pp. 79-96. MIT Press.Google ScholarGoogle Scholar
  17. CODISH, M., DAMS, D., AND YARDENI, E. 1994. Bottom-up Abstract Interpretation of Logic Programs. Theoretical Computer Science 12~, 93-125. Google ScholarGoogle Scholar
  18. CODISH, M., MULKERS, A., BRUYNOOGHE, M., GARCfA DE LA BANDA, M., AND HERMENEGILDO, M. 1995. Improving Abstract Interpretations by Combining Domains. A CM Transactions on Programming Languages and Systems 17, 1 (January), 28-44. Google ScholarGoogle Scholar
  19. CONERY, J.S. 1983. The And/Or Process Model for Parallel Interpretation of Logic Programs. Ph. D. thesis, The University of California At Irvine. Technical Report 204. Google ScholarGoogle Scholar
  20. COUSOT, P. AND COUSOT, R. 1977. Abstract Interpretation: a Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Fourth A CM Symposium on Principles of Programming Languages (1977), pp. 238-252. Google ScholarGoogle Scholar
  21. COUSOT, P. AND COUSOT, R. 1979. Systematic Design of Program Analysis Frameworks. In Sixth A CM Symposium on Principles of Programming Languages (San Antonio, Texas, 1979), pp. 269-282. Google ScholarGoogle Scholar
  22. DEBRAY, S. Ed. 1992. Journal of Logic Programming, Special Issue: Abstract Interpretation, Volume 13(1-2). North-Holland.Google ScholarGoogle Scholar
  23. DEBRAY, S.K. 1989. Static Inference of Modes and Data Dependencies in Logic Programs. ACM Transactions on Programming Languages and Systems 11, 3, 418-450. Google ScholarGoogle Scholar
  24. DEGROOT, D. 1984. Restricted AND-ParMlelism. In International Conference on Fifth Generation Computer Systems (November 1984), pp. 471-478. Tokyo.Google ScholarGoogle Scholar
  25. DEGROOT, D. 1987. Restricted AND-ParMlelism and Side-Effects. In International Symposium on Logic Programming (August 1987), pp. 80-89. San Francisco: IEEE Computer Society.Google ScholarGoogle Scholar
  26. FERNANDEZ, ~/{., CARRO, ~/{., AND HERMENEGILDO, ~/{. 1996. IDRA (IDeal Resource Allocation): Computing Ideal Speedups in Parallel Logic Programming. In Proceedings of EuroPar'96, Number 1124 in LNCS (August 1996), pp. 724-734. Springer-Verlag. Google ScholarGoogle Scholar
  27. GARCIA DE LA BANDA, M. 1994. Independence, Global Analysis, and Parallelism in Dynamically Scheduled Constraint Logic Programming. Ph. D. thesis, Universidad Polit6cnica de Madrid (UPM), Facultad Informatica UPM, 28660-Boadilla del Monte, Madrid-Spain.Google ScholarGoogle Scholar
  28. GARCfA DE LA BANDA, ~/{., BUENO, F., AND HERMENEGILDO, ~/{. 1996. Towards Independent And-ParMlelism in CLP. In Programming Languages: Implementation, Logics, and Programs, Number 1140 in LNCS (Aachen, Germany, September 1996), pp. 77-91. Springer-Verlag. Google ScholarGoogle Scholar
  29. GARCIA DE LA BANDA, M., HERMENEGILDO, M., AND MARRIOTT, K. 1993. Independence in Constraint Logic Programs. In 1993 International Logic Programming Symposium (October 1993), pp. 130-146. MIT Press, Cambridge, MA. Google ScholarGoogle Scholar
  30. GETZlNGER, W.W. 1993. Abstract Interpretation for the Compile-Time Optimization of Logic Programs. Ph. D. thesis, University of Southern California, Dept. of Computer Science. Google ScholarGoogle Scholar
  31. GIACOBAZZI, R. 1993. Semantic Aspects of Logic Program Analysis. Ph.D. thesis, UniversitS~ degli Studi di Pisa, Dipartimento di Informatica.Google ScholarGoogle Scholar
  32. GUPTA, G. AND COSTA, V.S. 1992. Cuts and Side-Effects in And-Or Parallel Prolog. Journal of Logic Programmin9 27, 1 (April), 45-71.Google ScholarGoogle Scholar
  33. GUPTA, G. AND JAYARAMAN, B. 1989. Compiled And-Or Parallelism on Shared Memory Multiprocessors. In 1989 North American Conference on Logic Programming (October 1989), pp. 332-349. MIT Press.Google ScholarGoogle Scholar
  34. GUPTA, G., SANTOS-COSTA, V., YANG, R., AND HERMENEGILDO, M. 1991. IDIOM: Integrating Dependent And-, Independent And-, and Or-parMlelism. In 1991 International Logic Programming Symposium (October 1991), pp. 152-166. MIT Press.Google ScholarGoogle Scholar
  35. HERMENEGILDO, M. 1986a. An Abstract Machine Based Execution Model for Computer Architecture Design and Efficient Implementation of Logic Programs in Parallel. Ph.D. thesis, Dept. of Electrical and Computer Engineering (Dept. of Computer Science TR-86-20), University of Texas at Austin, Austin, Texas 78712. Google ScholarGoogle Scholar
  36. HERMENEGILDO, M. 1986b. 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 (July 1986), pp. 25-40. Imperial College: Springer-Verlag. Google ScholarGoogle Scholar
  37. HERMENEGILDO, M. 1997. Automatic Parallelization of Irregular and Pointer-Based Computations: Perspectives from Logic and Constraint Programming. In Proceedings of EUROPAR'97, LNCS (August 1997), pp. 31-46. Springer-Verlag. (invited). Google ScholarGoogle Scholar
  38. HERMENEGILDO, M. AND GREENE, K. 1991. The &-Prolog System: Exploiting Independent And-Parallelism. New Generation Computing 9, 3,4, 233-257.Google ScholarGoogle Scholar
  39. HERMENEGILDO, M. AND ROSSI, F. 1995. Strict and Non-Strict Independent And-Parallelism in Logic Programs: Correctness, Efficiency, and Compile-Time Conditions. Journal of Logic Programmin9 22, 1, 1-45.Google ScholarGoogle Scholar
  40. HERMENEGILDO, M. AND THE CLIP GROUP. 1994. 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 (May 1994), pp. 123-133. Springer-Verlag. Google ScholarGoogle Scholar
  41. HERMENEGILDO, M., WARREN, R., AND DEBRAY, S. K. 1992. Global Flow Analysis as a Practical Compilation Tool. Journal of Logic Programming 13, 4 (August), 349-367. Google ScholarGoogle Scholar
  42. JACOBS, D. AND LANGEN, A. 1988. Compilation of Logic Programs for Restricted And- Parallelism. In European Symposium on Programming (1988), pp. 284-297. Google ScholarGoogle Scholar
  43. JACOBS, D. AND LANGEN, A. 1989. Accurate and Efficient Approximation of Variable Aliasing in Logic Programs. In 1989 North American Conference on Logic Programming (October 1989). MIT Press.Google ScholarGoogle Scholar
  44. JACOBS, D. AND LANGEN~ A. 1992. Static Analysis of Logic Programs for Independent And- Parallelism. Journal of Logic Programming 13, 2 and 3 (July), 291-314. Google ScholarGoogle Scholar
  45. KALI~, L.V. 1987. Completeness and Full Parallelism of Parallel Logic Programming Schemes. In Fourth IEEE Symposium on Logic Programming (1987), pp. 125-133. IEEE.Google ScholarGoogle Scholar
  46. LE CHARLIER~ B.~ DAGIMBE~ O.~ MICHEL~ L.~ AND VAN HENTENRYCK~ P. 1993. Optimization Techniques for General Purpose Fixpoint Algorithms: Practical Efficiency for the Abstract Interpretation of Prolog. In Workshop on Static Analysis (September 1993), pp. 15-26. Springer- Verlag. Google ScholarGoogle Scholar
  47. LIN~ Y.-J. 1988. A Parallel Implementation of Logic Programs. Ph. D. thesis, Dept. of Computer Science, University of Texas at Austin, Austin, Texas 78712. Google ScholarGoogle Scholar
  48. LIN~ Y. J. AND KUMAR~ V. 1988. AND-ParMlel Execution of Logic Programs on a Shared Memory Multiprocessor: A Summary of Results. In Fifth International Conference and Symposium on Logic Programming (August 1988), pp. 1123-1141. MIT Press.Google ScholarGoogle Scholar
  49. LOPEZ CxARCIAv P., HERMENEGILDOv M., AND DEBRAYv S. I~. 1996. A Methodology for Granularity Based Control of Parallelism in Logic Programs. Journal of Symbolic Computation, Special Issue on Parallel Symbolic Computation 22, 715-734. Google ScholarGoogle Scholar
  50. LUSK ET AL.~ E. 1988. The Aurora Or-ParMlel Prolog System. In International Conference on Fifth Generation Computer Systems (November 1988). Tokyo.Google ScholarGoogle Scholar
  51. LUSK ET AL.~ E. 1990. The Aurora Or-ParMlel Prolog System. New Generation Computing 7, 2,3. Google ScholarGoogle Scholar
  52. MARIEN~ A.~ JANSSENS~ CJ.~ MULKERS~ A.~ AND BRUYNOOGHE~ M. 1989. The Impact of Abstract Interpretation: an Experiment in Code Generation. In Sixth International Conference on Logic Programming (June 1989), pp. 33-47. MIT Press.Google ScholarGoogle Scholar
  53. MARRIOTT~ K.~ GARCfA DE LA BANDA~ M.~ AND HERMENEGILDO~ M. 1994. Analyzing Logic Programs with Dynamic Scheduling. In 20th. Annual A CM Conf. on Principles of Programruing Languages (January 1994), pp. 240-254. ACM. Google ScholarGoogle Scholar
  54. MARRIOTT~ K. AND SONDERGAARD~ H. 1989. Semantics-based dataflow analysis of logic programs. Information Processing, 601-606.Google ScholarGoogle Scholar
  55. McALOON, K. AND TRETKOFF~ C. 1989. 2LP: A logic programming and linear programming system. Technical Report 1989-21, Brooklyn College of CUNY, CIS department.Google ScholarGoogle Scholar
  56. MELLISH~ C. 1986. Abstract Interpretation of Prolog Programs. In Third International Conference on Logic Programming, Number 225 in LNCS (July 1986), pp. 463-475. Springer-Verlag. Google ScholarGoogle Scholar
  57. MUTHUKUMAR~ K.~ BUENO~ F.~ DE LA BANDA~ M. CJ.~ AND HERMENEGILDO~ M. 1999. Automatic Compile-time Parallelization of Logic Programs for Restricted, GoM-level, Independent And-parMlelism. Journal of Logic Programming 38, 2 (February), 165-218.Google ScholarGoogle Scholar
  58. MUTHUKUMAR~ K. AND HERMENEGILDO~ M. 1989a. Complete and Efficient Methods for Supporting Side Effects in Independent/Restricted And-parMlelism. In 1989 International Conference on Logic Programming (June 1989), pp. 80-101. MIT Press.Google ScholarGoogle Scholar
  59. MUTHUKUMAR~ K. AND HERMENEGILDO~ M. 1989b. Determination of Variable Dependence Information at Compile-Time Through Abstract Interpretation. In 1989 North American Conference on Logic Programming (October 1989), pp. 166-189. MIT Press.Google ScholarGoogle Scholar
  60. MUTHUKUMAR~ K. AND HERMENEGILDO~ M. 1990a. Deriving A Fixpoint Computation Algorithm for Top-down Abstract Interpretation of Logic Programs. Technical Report ACT-DC- 153-90 (April), Microelectronics and Computer Technology Corporation (MCC), Austin, TX 78759. Available from http ://www. clip. dia. fi. upm. es.Google ScholarGoogle Scholar
  61. MUTHUKUMAR~ K. AND HERMENEGILDO~ M. 1990b. 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 (June 1990), pp. 221-237. MIT Press. Google ScholarGoogle Scholar
  62. MUTHUKUMAR~ K. AND HERMENEGILDO~ M. 1991. Combined Determination of Sharing and Freeness of Program Variables Through Abstract Interpretation. In 1991 International Conference on Logic Programming (June 1991), pp. 49-63. MIT Press.Google ScholarGoogle Scholar
  63. MUTHUKUMAR~ K. AND HERMENEGILDO~ M. 1992. Compile-time Derivation of Variable Dependency Using Abstract Interpretation. Journal of Logic Programming 13, 2/3 (July), 315-347. Originally published as Technical Report FIM 59.1/IA/90, Computer Science Dept, Universidad Politecnica de Madrid, Spain, August 1990. Google ScholarGoogle Scholar
  64. PONTELLI, E., GUPTA, G., PULVIRENTI, F., AND FERRO, A. 1997. Automatic Compile-time Parallelization of Prolog Programs for Dependent And-Parallelism. In Proc. of the Fourteenth International Conference on Logic Programming (July 1997), pp. 108-122. HIT Press.Google ScholarGoogle Scholar
  65. RAMKUMAR, B. AND KALE, L.V. 1989. Compiled Execution of the Reduce-OR Process Model on Multiprocessors. In 1989 North American Conference on Logic Programming (October 1989), pp. 313-331. HIT Press.Google ScholarGoogle Scholar
  66. SaNTOS-COSTa, V., WARREN, D., AND YANG, R. 1990. Andorra-I: A Parallel Prolog System that Transparently Exploits both And- and Or-parallelism. In Proceedings of the 3rd. A CM SIGPLAN Symposium on Principles and Practice of Parallel Programming (April 1990). ACM. Google ScholarGoogle Scholar
  67. SANTOS COSTA, V. M. 1993. Compile-Time Analysis for the Parallel Execution of Logic Programs in Andorra-I. Ph. D. thesis, University of Bristol.Google ScholarGoogle Scholar
  68. SARASWAT, V. 1989. Concurrent Constraint Programming Languages. Ph. D. thesis, Carnegie Mellon, Pittsburgh. School of Computer Science. Google ScholarGoogle Scholar
  69. SARKAR, V. (1989). Partitioning and Scheduling Parallel Programs for Multiprocessors. Pitman, London. Google ScholarGoogle Scholar
  70. SARKAR, V. 1990. Instruction Reordering for Fork-Join Parallelism. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, Volume 25 (June 1990), pp. 322-336. Google ScholarGoogle Scholar
  71. SHAPIRO, E. 1989. The Family of Concurrent Logic Programming Languages. ACM Computing Surveys 21, 3 (September), 412-510. Google ScholarGoogle Scholar
  72. SHEN, K. 1996. Overview of DASWAM: Exploitation of Dependent And-parallelism. Journal of Logic Programming 29, 1-3 (November), 245-293.Google ScholarGoogle Scholar
  73. SHEN, K. AND HERMENEGILDO, M. 1991. A Simulation Study of Or- and Independent Andparallelism. In International Logic Programming Symposium (October 1991), pp. 135-151. HIT Press.Google ScholarGoogle Scholar
  74. SONDERGAARD, H. 1986. An application of abstract interpretation of logic programs: occur check reduction. In European Symposium on Programming, LNCS 123 (1986), pp. 327-338. Springer-Verlag. Google ScholarGoogle Scholar
  75. SZEREDI, P. 1989. Performance Analysis of the Aurora Or-Parallel Prolog System. In 1989 North American Conference on Logic Programming (October 1989). HIT Press.Google ScholarGoogle Scholar
  76. TAYLOR, A. 1990. LIPS on a HIPS: Results from a prolog compiler for a RISC. In 1990 International Conference on Logic Programming (June 1990), pp. 174-189. HIT Press. Google ScholarGoogle Scholar
  77. TAYLOR, S., SAFRA, S., AND SHAPIRO, E. 1987. A parallel implementation of flat concurrent prolog. In E. SHAPIRO Ed., Concurrent Prolog: Collected Papers (Cambridge HA, 1987), pp. 575-604. HIT Press. Google ScholarGoogle Scholar
  78. UEDA, K. 1987. Guarded Horn Clauses. In E. SHAPIRO Ed., Concurrent Prolog: Collected Papers, pp. 140-156. Cambridge HA: HIT Press. Google ScholarGoogle Scholar
  79. VAN HENTENRYCK, P. 1989. Parallel Constraint Satisfaction in Logic Programming. In Sixth International Conference on Logic Programming (Lisbon, Portugal, June 1989), pp. 165-180. HIT Press.Google ScholarGoogle Scholar
  80. VAN ROY, P. AND DESPAIN, A. M. 1990. The Benefits of Global Dataflow Analysis for an Optimizing Prolog Compiler. In North American Conference on Logic Programming (October 1990), pp. 501-515. HIT Press. Google ScholarGoogle Scholar
  81. WARREN, D. 1983. An Abstract Prolog Instruction Set. Technical Report 309, SRI International.Google ScholarGoogle Scholar
  82. WARREN, D. 1987a. OR-Parallel Execution Models of Prolog. In Proceedings of TAPSOFT '87, Lecture Notes in Computer Science (March 1987). Springer-Verlag. Google ScholarGoogle Scholar
  83. WARREN, D. 1987b. The SRI Model for OR-Parallel Execution of Prolog--Abstract Design and Implementation. In International Symposium on Logic Programming (August 1987), pp. 92-102. San Francisco: IEEE Computer Society. Google ScholarGoogle Scholar
  84. WARREN~ R.~ HERMENEGILDO~ ~/{.~ AND DEBRAY~ S. I~. 1988. On the Practicality of Global Flow Analysis of Logic Programs. In Fifth International Conference and Symposium on Logic Programming (August 1988), pp. 684-699. MIT Press.Google ScholarGoogle Scholar
  85. WESTPHAL~ H. AND ROBERT~ P. 1987. The PEPSys Model: Combining Backtracking, AND- and OR- Parallelism. In Syrup. of Logic Prog. (August 1987), pp. 436-448.Google ScholarGoogle Scholar

Index Terms

  1. Effectivness of abstract interpretation in automatic parallelization: a case study in logic programming

                  Recommendations

                  Comments

                  Login options

                  Check if you have access through your login credentials or your institution to get full access on this article.

                  Sign in

                  Full Access

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader