Hostname: page-component-7479d7b7d-8zxtt Total loading time: 0 Render date: 2024-07-12T09:19:22.996Z Has data issue: false hasContentIssue false

A design and implementation of the Extended Andorra Model1

Published online by Cambridge University Press:  04 May 2011

RICARDO LOPES
Affiliation:
CRACS-INESC Porto LA & Faculdade de Ciencias, Universidade do Porto, Rua do Campo Alegre 1021, 4169-007 Porto, Portugal (e-mail: vsc@dcc.fc.up.pt, fds@dcc.fc.up.pt)
VÍTOR SANTOS COSTA
Affiliation:
CRACS-INESC Porto LA & Faculdade de Ciencias, Universidade do Porto, Rua do Campo Alegre 1021, 4169-007 Porto, Portugal (e-mail: vsc@dcc.fc.up.pt, fds@dcc.fc.up.pt)
FERNANDO SILVA
Affiliation:
CRACS-INESC Porto LA & Faculdade de Ciencias, Universidade do Porto, Rua do Campo Alegre 1021, 4169-007 Porto, Portugal (e-mail: vsc@dcc.fc.up.pt, fds@dcc.fc.up.pt)

Abstract

Logic programming provides a high-level view of programming, giving implementers a vast latitude into what techniques to explore to achieve the best performance for logic programs. Towards obtaining maximum performance, one of the holy grails of logic programming has been to design computational models that could be executed efficiently and that would allow both for a reduction of the search space and for exploiting all the available parallelism in the application. These goals have motivated the design of the Extended Andorra Model (EAM), a model where goals that do not constrain nondeterministic goals can execute first. In this work, we present and evaluate the Basic design for EAM, a system that builds upon David H. D. Warren's original EAM with Implicit Control. We provide a complete description and implementation of the Basic design for EAM System as a set of rewrite and control rules. We present the major data structures and execution algorithms that are required for efficient execution, and evaluate system performance. A detailed performance study of our system is included. Our results show that the system achieves acceptable base performance and that a number of applications benefit from the advanced search inherent to the EAM.

Type
Regular Papers
Copyright
Copyright © Cambridge University Press 2011

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

Aggoun, A., Chan, D., Dufresne, P., Falvey, E., Grant, H., Herold, A., Macartney, G., Meier, M., Miller, D., Mudambi, S., Perez, B., van Rossum, E., Schimpf, J., Tsahageas, P. A. and de Villeneuve, D. H. 1995. ECLiPSe 3.5 User Manual. European Computer Industry Research Centre (ECRC), Munich.Google Scholar
Bevemyr, J. and Lindgren, T. 1994. A simple and efficient copying garbage collector for Prolog. In Proc. of 6th International Symposium on Programming Language Implementation and Logic Programming (PLILP '94). Lecture Notes in Computer Science, vol. 844. Springer-Verlag, Berlin, 88101.CrossRefGoogle Scholar
Bueno, F. and Hermenegildo, M. V. 1992. An automatic translations scheme from Prolog to the Andorra Kernel language. In Proc. of International Conference on Fifth Generation Computer Systems 1992. Institute for New Generation Computer Technology (ICOT), Tokyo, Japan, 759769.Google Scholar
Carlsson, M. et al. 2004. SICStus Prolog User's Manual. Technical Report 3.12.0, Swedish Institute of Computer Science, Sweden.Google Scholar
Colmerauer, A. 1993. The birth of Prolog. In Proc. of the 2nd ACM-SIGPLAN History of Programming Languages Conference. ACM, New York, 3752.Google Scholar
Detlefs, D., Dosser, A. and Zorn, B. 1994. Memory allocation costs in large C and C++ programs. Software Practice Experience 24, 6, 527542.CrossRefGoogle Scholar
Gupta, G. and Pontelli, E. 1997. Extended dynamic dependent And-parallelism in ACE. In Proc. of the 2nd International Symposium on Parallel Symbolic Computation (PASCO '97), July 20–22, 1997, Maui, HI, ACM, Ed. ACM Press, New York, 6879.CrossRefGoogle Scholar
Gupta, G., Pontelli, E., Ali, K., Carlsson, M. and Hermenegildo, M. 2001. Parallel execution of Prolog programs: A survey. ACM Transactions on Programming Languages and Systems 23, 4, 1131.CrossRefGoogle Scholar
Gupta, G. and Warren, D. H. D. 1991. An Interpreter for the Extended Andorra Model. Internal Report. University of Bristol, UK.Google Scholar
Hermenegildo, M. V. and Greene, K. 1991. The &-Prolog system: Exploiting independent And-parallelism. New Generation Computing 9, 34, 233–257.CrossRefGoogle Scholar
Hermenegildo, M. V. and Nasr, R. I. 1986. Efficient Management of Backtracking in AND-parallelism. In Proc. of 3rd International Conference on Logic Programming. Lecture Notes in Computer Science, vol. 225. Imperial College, Springer-Verlag, Berlin, 4054.Google Scholar
Hill, R. 1974. LUSH-Resolution and its Completeness. Dcl memo 78, Department of Artificial Intelligence, University of Edinburgh, UK.Google Scholar
Janson, S. 1994. AKL – A Multiparadigm Programming Language, PhD Thesis, Uppsala University, Sweden.CrossRefGoogle Scholar
Janson, S. and Haridi, S. 1991. Programming paradigms of the Andorra Kernel language. In Proc. of International Logic Programming Symposium (ILPS '91). MIT Press, Cambridge, MA, 167186.Google Scholar
Janson, S. and Montelius, J. 1992. Design of a Sequential Prototype Implementation of the Andorra Kernel Language. SICS Research Report, Swedish Institute of Computer Science, Sweden.Google Scholar
Jones, R. and Lins, R. 1996. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. John Wiley and Sons, New York. Reprinted February 1997.Google Scholar
Lloyd, J. W. 1987. Foundations of Logic Programming, 2nd ed. Springer-Verlag, Berlin.CrossRefGoogle Scholar
Lopes, R. and Santos Costa, V. 2005. Improving memory usage in the beam. In Proc. of 7th International Symposium on Pratical Aspects of Declarative Languages (PADL '05), Hermenegildo, M. and Cabeza, D., Eds. Lecture Notes in Computer Science, vol. 3350. Springer-Verlag, Berlin, 143157.CrossRefGoogle Scholar
Lopes, R., Santos Costa, V. and Silva, F. 2001. A novel implementation of the extended andorra model. In Proc. of 3rd International Symposium on Pratical Aspects of Declarative Languages (PADL '01), Ramakrishnan, I. V., Ed. Lecture Notes in Computer Science, vol. 1990. Springer-Verlag, Berlin, 199213.CrossRefGoogle Scholar
Lopes, R., Santos Costa, V. and Silva, F. 2003a. On deterministic computations in the extended andorra model. In Proc. of 19th International Conference on Logic Programming (ICLP '03), Palamidessi, C., Ed. Lecture Notes in Computer Science, vol. 2916. Springer-Verlag, Berlin, 407421.Google Scholar
Lopes, R., Santos Costa, V. and Silva, F. 2003b. On the beam implementation. In Proc. of 11th Portuguese Conference on Artificial Intelligence (EPIA '03), Pires, F. M. and Abreu, S., Eds. Lecture Notes in Computer Science, vol. 2902. Springer-Verlag, Berlin, 131135.Google Scholar
Lopes, R., Santos Costa, V. and Silva, F. 2004. Prunning in the extended andorra model. In Proc. of 6th International Symposium on Pratical Aspects of Declarative Languages (PADL '04), Jayaraman, B., Ed. Lecture Notes in Computer Science, vol. 3057. Springer-Verlag, Berlin, 120134.CrossRefGoogle Scholar
Montelius, J. and Ali, K. A. M. 1995. An And/Or-Parallel Implementation of AKL. New Generation Computing 13, 4, 3152.Google Scholar
Montelius, J. and Magnusson, P. 1997. Using SIMICS to evaluate the Penny system. In Proc. of International Logic Programming Symposium (ILPS '97), Małuszy´ski, J., Ed. MIT Press, Cambridge, MA, 133148.Google Scholar
Palmer, D. and Naish, L. 1991. NUA-Prolog: an Extension to the WAM for Parallel Andorra. In Proc. of 8th International Conference on Logic Programming (ICLP '91), Furukawa, K., Ed. MIT Press, Cambridge, MA.Google Scholar
Sagonas, K. 1996. The SLG-WAM: A Search-Efficient Engine for Well-Founded Evaluation of Normal Logic Programs. PhD Thesis, Department of Computer Science, State University of New York, Stony Brook.Google Scholar
Sagonas, K. and Swift, T. May 1998. An abstract machine for tabled execution of fixed-order stratified logic programs. ACM Transactions on Programming Languages and Systems 20, 3, 586634.CrossRefGoogle Scholar
Sagonas, K., Swift, T., Warren, D. S., Freire, J. and Rao, P. 1997. The XSB Programmer's Manual. Technical Report, State University of New York, Stony Brook. URL: http://www.cs.sunysb.edu/~sbprologGoogle Scholar
Santos Costa, V. 1993. Compile-Time Analysis for the Parallel Execution of Logic Programs in Andorra-I, PhD Thesis, University of Bristol, UK.Google Scholar
Santos Costa, V. 1999. Optimising Bytecode Emulation for Prolog. In Proc. of International Conference Principles and Practice of Declarative Programming (PPDP '99). Lecture Notes in Computer Science, vol. 1702. Springer-Verlag, Berlin, 261267.Google Scholar
Santos Costa, V. 2008. The life of a logic programming system. In Proc. of 24th International Conference on Logic Programming (ICLP '08), de la Banda, M. G. and Pontelli, E., Eds. Lecture Notes in Computer Science, vol. 5366. Springer-Verlag, Berlin, 16.Google Scholar
Santos Costa, V., Damas, L., Reis, R., and Azevedo, R. 2000. YAP User's Manual. Universidade do Porto, Portugal. URL: http://www.dcc.fc.up.pt/~vsc/YapGoogle Scholar
Santos Costa, V., Sagonas, K., and Lopes, R. 2007. Demand-driven indexing of prolog clauses. In Proc. of 23rd International Conference on Logic Programming (ICLP '07), Dahl, V. and Niemelä, I., Eds. Lecture Notes in Computer Science, vol. 4670. Springer, Berlin, 305409.Google Scholar
Santos Costa, V., Srinivasan, A., Camacho, R., Blockeel, H., Demoen, B., Janssens, G., Struyf, J., Vandecasteele, H., and Van Laer, W. 2003. Query Transformations for Improving the Efficiency of ILP Systems. Journal of Machine Learning Research 4, 465491.Google Scholar
Santos Costa, V., Warren, D. H. D., and Yang, R. 1991a. Andorra-I: A Parallel Prolog System that Transparently Exploits both And- and Or-Parallelism. In Proc. of 3rd ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming (PPOPP '91). ACM press, New York, 8393.Google Scholar
Santos Costa, V., Warren, D. H. D., and Yang, R. 1991b. The Andorra-I Preprocessor: Supporting full Prolog on the Basic Andorra model. In Proc. of 8th International Conference on Logic Programming (ICLP '91). MIT Press, Cambridge, MA, 443456.Google Scholar
Smolka, G. 1995. The Oz programming model. In Computer Science Today: Recent trends and Developments, van Leeuwen, J., Ed. Lecture Notes in Computer Science, vol. 1000. Springer-Verlag, Berlin, 324343.CrossRefGoogle Scholar
Swift, T. 1994. Efficient Evaluation of Normal Logic Programs. PhD Thesis, Department of Computer Science, State University of New York, Stony Brook.Google Scholar
Ueda, K. 2002. A Pure Meta-interpreter for Flat GHC, a Concurrent Constraint Language. In Computational Logic: Logic Programming and Beyond. Lecture Notes in Computer Science, vol. 2407. Springer, Berlin, 138161.CrossRefGoogle Scholar
Ueda, K. and Morita, M. 1990. A New Implementation Technique for Flat GHC. In Proc. of 7th International Conference on Logic Programming (ICLP '89). MIT Press, Cambridge, MA, 317.Google Scholar
Warren, D. H. D. 1983. An Abstract Prolog Instruction Set. Technical Note 309, SRI International. Menlo Park, CA.Google Scholar
Warren, D. H. D. 1988. The Andorra Model. Presented at Gigalips Project workshop. University of Manchester, UK.Google Scholar
Warren, D. H. D. 1989. The extended Andorra model. Presented at PEPMA Project workshop. University of Bristol, UK.Google Scholar
Warren, D. H. D. 1990. The extended Andorra model with implicit control. Presented at ICLP'90 Workshop on Parallel Logic Programming. Eilat, Israel.Google Scholar
Warren, D. S. 1984. Efficient Prolog memory management for flexible control strategies. In Proc. of International Logic Programming Symposium (ILPS '84). IEEE Computer Society, Atlantic City, 198203.Google Scholar