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.
Chapter PDF
Keywords
References
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.
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.
D. Bacon, S. Graham, and O. Sharp. Compiler Transformations for HighPerformance Computing. Computing Surveys, 26(4):345–420, December 1994.
E. Best and C. Lengauer. Semantic Independence. Science of Computer Programming, 13:23–50, 1990.
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.
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.
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.
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.
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.
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.
J. Chassin and P. Codognet. Parallel Logic Programming Systems. Computing Surveys, 26(3):295–336, September 1994.
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.
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.
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.
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.
D. DeGroot. Restricted AND-Parallelism. In International Conference on Fifth Generation Computer Systems, pages 471–478. Tokyo, November 1984.
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.
European Computer Research Center. Eclipse User's Guide, 1993.
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.
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.
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.
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.
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.
M. Hermenegildo and K. Greene. The &-Prolog System: Exploiting Independent And-Parallelism. New Generation Computing, 9(3,4):233–257, 1991.
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.
M. Hermenegildo and F. Rossi. Non-Strict Independent And-Parallelism. In 1990 International Conference on Logic Programming, pages 237–252. MIT Press, June 1990.
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.
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.
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.
J. Jaffar and M.J. Maher. Constraint Logic Programming: A Survey. Journal of Logic Programming, 19/20:503–581, 1994.
S. Janson and S. Haridi. Programming Paradigms of the Andorra Kernel Language. In 1991 International Logic Programming Symposium, pages 167–183. MIT Press, 1991.
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.
E. Lusk et. al. The Aurora Or-Parallel Prolog System. New Generation Computing, 7(2,3), 1990.
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.
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.
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.
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.
W. Pugh. A practical algorithm for exact array dependence analysis. Communications of the ACM, 8:102–114, August 1992.
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.
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.
K. Shen. Overview of DASWAM: Exploitation of Dependent And-parallelism. Journal of Logic Programming, 29(1-3):245–293, November 1996.
L. Sterling and E.Y. Shapiro. The Art of Prolog. MIT Press, Cambridge MA, 1986.
P. Van Roy. 1983-1993: The Wonder Years of Sequential Prolog Implementation. Journal of Logic Programming, 19/20:385–441, 1994.
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 00002
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hermenegildo, M. (1997). Automatic parallelization of irregular and pointer-based computations: Perspectives from logic and constraint programming. In: Lengauer, C., Griebl, M., Gorlatch, S. (eds) Euro-Par'97 Parallel Processing. Euro-Par 1997. Lecture Notes in Computer Science, vol 1300. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0002715
Download citation
DOI: https://doi.org/10.1007/BFb0002715
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63440-9
Online ISBN: 978-3-540-69549-3
eBook Packages: Springer Book Archive