Hostname: page-component-586b7cd67f-2brh9 Total loading time: 0 Render date: 2024-11-24T08:02:45.589Z Has data issue: false hasContentIssue false

Parallel Logic Programming: A Sequel

Published online by Cambridge University Press:  28 March 2022

AGOSTINO DOVIER
Affiliation:
Università di Udine, and GNCS-INdAM, Udine, Italy (e-mails: [email protected], [email protected])
ANDREA FORMISANO
Affiliation:
Università di Udine, and GNCS-INdAM, Udine, Italy (e-mails: [email protected], [email protected])
GOPAL GUPTA
Affiliation:
University of Texas at Dallas, Austin, TX 78712, USA (e-mail: [email protected])
MANUEL V. HERMENEGILDO
Affiliation:
IMDEA Software Institute, Universidad Politécnica de Madrid, Madrid, Spain (e-mails: [email protected], [email protected])
ENRICO PONTELLI
Affiliation:
New Mexico State University, Las Cruces, NM 88003, USA (e-mail: [email protected])
RICARDO ROCHA
Affiliation:
CRACS/INESC TEC and Faculty of Sciences, University of Porto, Porto, Portugal (e-mail: [email protected])

Abstract

Multi-core and highly connected architectures have become ubiquitous, and this has brought renewed interest in language-based approaches to the exploitation of parallelism. Since its inception, logic programming has been recognized as a programming paradigm with great potential for automated exploitation of parallelism. The comprehensive survey of the first twenty years of research in parallel logic programming, published in 2001, has served since as a fundamental reference to researchers and developers. The contents are quite valid today, but at the same time the field has continued evolving at a fast pace in the years that have followed. Many of these achievements and ongoing research have been driven by the rapid pace of technological innovation, that has led to advances such as very large clusters, the wide diffusion of multi-core processors, the game-changing role of general-purpose graphic processing units, and the ubiquitous adoption of cloud computing. This has been paralleled by significant advances within logic programming, such as tabling, more powerful static analysis and verification, the rapid growth of Answer Set Programming, and in general, more mature implementations and systems. This survey provides a review of the research in parallel logic programming covering the period since 2001, thus providing a natural continuation of the previous survey. In order to keep the survey self-contained, it restricts its attention to parallelization of the major logic programming languages (Prolog, Datalog, Answer Set Programming) and with an emphasis on automated parallelization and preservation of the sequential observable semantics of such languages. The goal of the survey is to serve not only as a reference for researchers and developers of logic programming systems but also as engaging reading for anyone interested in logic and as a useful source for researchers in parallel systems outside logic programming.

Type
Survey Article
Copyright
© The Author(s), 2022. Published by Cambridge University Press

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.)

Footnotes

*

The authors would like to thank the anonymous reviewers for their careful reading and very valuable feedback. We would especially like to thank the editor, Mirek Truszczynski, for his very useful comments and encouragement. This research was partially supported by UNIUD PRID Encase, GNCS/INDAM grants, by NSF grants 1914635 and 1833630, by the Portuguese funding agency, FCT – Fundação para a Ciência e a Tecnologia, within project UIDB/50014/2020, by the Spanish MICINN project PID2019-108528RB-C21 ProCode, by the Madrid P2018/TCS-4339 BLOQUES-CM program, and by the Tezos foundation.

References

Afrati, F. N., Borkar, V. R., Carey, M. J., Polyzotis, N. and Ullman, J. D. 2011. Map-Reduce extensions and recursive queries. In 14th International Conference on Extending Database Technology. ACM, New York, 1–8.Google Scholar
Afrati, F. N. and Ullman, J. D. 2010. Optimizing joins in a Map-Reduce environment. In 13th International Conference on Extending Database Technology. ACM, New York, 99–110.Google Scholar
Afrati, F. N. and Ullman, J. D. 2012. Transitive closure and recursive Datalog implemented on clusters. In 15th International Conference on Extending Database Technology. ACM, New York, 132–143.Google Scholar
Albert, E., Arenas, P., Genaim, S., Puebla, G. and Zanardini, D. 2007. Cost analysis of Java bytecode. In 16th European Symposium on Programming, ESOP’07, R. D. Nicola, Ed. Notes, Lecture in Computer Science, vol. 4421. Springer, Heidelberg, Germany, 157–172.Google Scholar
Ali, K. A. M. and Karlsson, R. 1990a. The Muse approach to Or-parallel Prolog. International Journal of Parallel Programming 19, 2, 129162.CrossRefGoogle Scholar
Ali, K. A. M. and Karlsson, R. 1990b. The Muse Or-parallel Prolog model and its performance. In 1990 North American Conference on Logic Programming. MIT Press, Cambridge, MA, USA, 757–776.Google Scholar
Ali, K. A. M. and Karlsson, R. 1992. Scheduling speculative work in Muse and performance results. International Journal of Parallel Programming 21, 6, 449476.CrossRefGoogle Scholar
Amadini, R., Gabbrielli, M. and Mauro, J. 2014. SUNNY: A lazy portfolio approach for constraint solving. Theory and Practice of Logic Programming 14, 4-5, 509524.CrossRefGoogle Scholar
Amdahl, G. M. 1967. Validity of the single processor approach to achieving large scale computing capabilities. In Proceedings of the AFIPS’67 Spring Joint Computer Conference. AFIPS Conference Proceedings, vol. 30. AFIPS/ACM/Thomson Book Company, Washington DC, 483–485.Google Scholar
Apache. 2020a. The Apache Software Foundation: Apache Hadoop. Tech. rep., URL: https://hadoop.apache.org/.Google Scholar
Apache. 2020b. The Apache Software Foundation: GraphX programming guide. Tech. rep., URL: http://spark.apache.org/docs/latest/graphx-programming-guide.html.Google Scholar
Applied Logic Systems, Inc. 2021. ALS Prolog. Tech. rep., URL: https://alsprolog.com/.Google Scholar
Areias, M. and Rocha, R. 2012. Towards multi-threaded local tabling using a common table space. Theory and Practice of Logic Programming, International Conference on Logic Programming, Special Issue 12, 4 & 5, 427–443.Google Scholar
Areias, M. and Rocha, R. 2015. Batched evaluation of full-sharing multithreaded tabling. In Post-Proceedings of the 4th Symposium on Languages, Applications and Technologies. CCIS, vol. 563. Springer, Heidelberg, Germany, 113–124.Google Scholar
Areias, M. and Rocha, R. 2017. On scaling dynamic programming problems with a multithreaded tabling system. Journal of Systems and Software 125, 417426.CrossRefGoogle Scholar
Balduccini, M., Pontelli, E., El-Khatib, O. and Le, H. 2005. Issues in parallel execution of non-monotonic reasoning systems. Parallel Computing 31, 6, 608647.CrossRefGoogle Scholar
Baral, C. 2003. Knowledge Representation, Reasoning and Declarative Problem Solving. Cambridge University Press, UK.CrossRefGoogle Scholar
Barklund, J. 1990. Parallel Unification. Ph.D. thesis, Uppsala University. Uppsala Theses in Computing Science 9.Google Scholar
Beaumont, A. J. and Warren, D. H. D. 1993. Scheduling speculative work in Or-parallel Prolog systems. In Proceedings of the International Conference on Logic Programming, D. S. Warren, Ed. Press, MIT, Cambridge, MA, USA, 135–149.Google Scholar
Blanas, S., Koutris, P. and Sidiropoulos, A. 2020. Topology-aware parallel data processing: Models, algorithms and systems at scale. In CIDR 2020, 10th Conference on Innovative Data Systems Research. www.cidrdb.org, 1–8.Google Scholar
Bonatti, P., Pontelli, E. and Son, T. C. 2008. Credulous resolution for answer set programming. In National Conference on Artificial Intelligence (AAAI). AAAI Press, 418–423.Google Scholar
Bone, P. 2011. Automatic parallelism in Mercury. In Technical Communications of the 27th International Conference on Logic Programming. LIPICS, vol. 11, 251–254.Google Scholar
Bone, P. 2012. Automatic Parallelization for Mercury. Ph.D. thesis, University of Melbourne.Google Scholar
Bone, P., Somogyi, Z. and Schachte, P. 2012. Controlling loops in parallel Mercury code. In Proceedings of the POPL 2012 Workshop on Declarative Aspects of Multicore Programming. ACM, New York, 11–20.Google Scholar
Brass, S., Dix, J., Freitag, B. and Zukowski, U. 2001. Transformation-based bottom-up computation of the well-founded model. Theory and Practice of Logic Programming 1, 5, 497538.CrossRefGoogle Scholar
Bu, Y., Howe, B., Balazinska, M. and Ernst, M. D. 2010. HaLoop: Efficient iterative data processing on large clusters. Proceedings of the VLDB Endowment 3, 1, 285296.Google Scholar
Bueno, F., Debray, S. K., García de la Banda, M. and Hermenegildo, M. V. 1994. QE-Andorra: A Quiche–Eating implementation of the basic Andorra model. Technical Report CLIP13/94.0, TU of Madrid (UPM).Google Scholar
Bueno, F., Deransart, P., Drabent, W., Ferrand, G., Hermenegildo, M. V., Maluszynski, J. and Puebla, G. 1997. On the role of semantic approximations in validation and diagnosis of constraint logic programs. In Proceedings of the 3rd International. WS on Automated Debugging–AADEBUG. U. Linköping Press, 155–170.Google Scholar
Bueno, F. and García de la Banda, M. 2004. Set-sharing is not always redundant for pair-sharing. In 7th International Symposium on Functional and Logic Programming (FLOPS 2004). Lecture Notes in Computer Science, vol. 2998. Springer-Verlag, Heidelberg, Germany, 117–131.Google Scholar
Bueno, F., García de la Banda, M. and Hermenegildo, M. V. 1999. Effectiveness of abstract interpretation in automatic parallelization: A case study in logic programming. ACM Transactions on Programming Languages and Systems 21, 2, 189238.CrossRefGoogle Scholar
Bueno, F., Lopez-Garcia, P. and Hermenegildo, M. V. 2004. Multivariant non-failure analysis via standard abstract interpretation. In 7th International Symposium on Functional and Logic Programming (FLOPS 2004). Lecture Notes in Computer Science, vol. 2998. Springer-Verlag, Heidelberg, Germany, 100–116.Google Scholar
Cabeza, D. 2004. An Extensible, Global Analysis Friendly Logic Programming System. Ph.D. thesis, Universidad Politécnica de Madrid (UPM), Facultad Informatica UPM, 28660-Boadilla del Monte, Madrid-Spain.Google Scholar
Cabeza, D. and Hermenegildo, M. V. 1996. Implementing distributed concurrent constraint execution in the CIAO system. In Proceedings of the AGP’96 Joint Conference on Declarative Programming, 67–78.Google Scholar
Cabeza, D. and Hermenegildo, M. V. 2009. Non-strict independence-based program parallelization using sharing and freeness information. Theoretical Computer Science 410, 46, 47044723.Google Scholar
Calegari, R., Denti, E., Mariani, S. and Omicini, A. 2018. Logic programming as a service. Theory and Practice of Logic Programming 18, 5-6, 846–873. Special Issue “Past and Present (and Future) of Parallel and Distributed Computation in (Constraint) Logic Programming".CrossRefGoogle Scholar
Calimeri, F., Perri, S. and Ricca, F. 2008. Experimenting with parallelism for the instantiation of ASP programs. Journal of Algorithms 63, 1-3, 3454.CrossRefGoogle Scholar
Carlsson, M. and Mildner, P. 2012. SICStus Prolog – the first 25 years. Theory and Practice of Logic Programming 12, 1-2, 3566.CrossRefGoogle Scholar
Carro, M. 2001. Some Contributions to the Study of Parallelism and Concurrency in Logic Programming. Ph.D. thesis, Universidad Politécnica de Madrid (UPM), Facultad Informatica UPM, 28660-Boadilla del Monte, Madrid-Spain.Google Scholar
Carro, M. and Hermenegildo, M. V. 1999. Concurrency in Prolog using threads and a shared database. In 1999 International Conference on Logic Programming. MIT Press, Cambridge, MA, USA, 320–334.Google Scholar
Casas, A. 2008. Automatic Unrestricted Independent And-Parallelism in Declarative Multiparadigm Languages. Ph.D. thesis, University of New Mexico (UNM), Electrical and Computer Engineering Department, University of New Mexico, Albuquerque, NM 87131-0001 (USA).Google Scholar
Casas, A., Carro, M. and Hermenegildo, M. V. 2007. Annotation algorithms for unrestricted independent And-parallelism in logic programs. In 17th International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR’07). Lecture Notes in Computer Science, vol. 4915. Springer-Verlag, The Technical University of Denmark, 138153.Google Scholar
Casas, A., Carro, M. and Hermenegildo, M. V. 2008a. A high-level implementation of non-deterministic, unrestricted, independent And-parallelism. In 24th International Conference on Logic Programming (ICLP’08), M. García de la Banda and E. Pontelli, Eds. Lecture Notes in Computer Science, vol. 5366. Springer-Verlag, Heidelberg, Germany, 651–666.Google Scholar
Casas, A., Carro, M. and Hermenegildo, M. V. 2008b. Towards a high-level implementation of execution primitives for non-restricted, independent And-parallelism. In 10th International Symposium on Practical Aspects of Declarative Languages (PADL’08), D. S. Warren and P. Hudak, Eds. Lecture Notes in Computer Science, vol. 4902. Springer-Verlag, Heidelberg, Germany, 230–247.Google Scholar
Chen, W. and Warren, D. S. 1996. Tabled evaluation with delaying for general logic programs. Journal of the ACM 43, 1, 2074.CrossRefGoogle Scholar
Chico de Guzmán, P., Carro, M., Hermenegildo, M. V., Silva, C. and Rocha, R. 2008. An improved continuation call-based implementation of tabling. In International Symposium on Practical Aspects of Declarative Languages. Lecture Notes in Computer Science, vol. 4902. Springer, Heidelberg, Germany, 197–213.Google Scholar
Chico de Guzmán, P., Casas, A., Carro, M. and Hermenegildo, M. V. 2011. Parallel backtracking with answer memoing for independent And-parallelism. Theory and Practice of Logic Programming, 27th Int’l. Conference on Logic Programming (ICLP’11) Special Issue 11, 4–5, 555574.Google Scholar
Chico de Guzmán, P., Casas, A., Carro, M. and Hermenegildo, M. V. 2012. A segment-swapping approach for executing trapped computations. In PADL’12, N.-F. Zhou and C. Russo, Eds. Lecture Notes in Computer Science, vol. 7149. Springer Verlag, Heidelberg, Germany, 138–152.Google Scholar
Chin, B., von Dincklage, D., Ercegovac, V., Hawkins, P., Miller, M. S., Och, F. J., Olston, C. and Pereira, F. 2015. Yedalog: Exploring knowledge at scale. In 1st Summit on Advances in Programming Languages, SNAPL 2015, 3–6 May 2015, Asilomar, California, USA, T. Ball, R. Bodík, S. Krishnamurthi, B. S. Lerner and G. Morrisett, Eds. LIPICS, vol. 32. Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 63–78.Google Scholar
Chisham, B., Wright, B., Le, T., Son, T. C. and Pontelli, E. 2011. CDAO-Store: Ontology-driven data integration for phylogenetic analysis. BMC Bioinformatics 12, 98.CrossRefGoogle ScholarPubMed
Ciancarini, P. 1990. Blackboard programming in shared Prolog. In Languages and Compilers for Parallel Computing, D. Gelernter, A. Nicolau and D. Padua, Eds. MIT Press, Cambridge, MA, USA, 170–185.Google Scholar
Citrigno, S., Eiter, T., Faber, W., Gottlob, G., Koch, C., Leone, N., Mateis, C., Pfeifer, G. and Scarcello, F. 1997. The DLV system: Model generator and application frontends. In Twelfth Workshop Logic Programming, WLP 1997, 17–19 September 1997, München, Germany, Technical Report PMS-FB-1997-10. Ludwig Maximilians Universität München, 128–137.Google Scholar
Clark, K. and Gregory, S. 1986. Parlog: Parallel programming in logic. Transactions on Programming Languages and Systems 8, 1, 149.Google Scholar
Clocksin, W. and Alshawi, H. 1988. A method for efficiently executing Horn clause programs using multiple processors. New Generation Computing 6, 5, 361–36.CrossRefGoogle Scholar
Codish, M., Lagoon, V. and Bueno, F. 2000. An algebraic approach to sharing analysis of logic programs. Journal of Logic Programming 42, 2, 111149.CrossRefGoogle Scholar
Codish, M. and Shapiro, E. Y. 1986. Compiling Or-parallelism into And-parallelism. In Third International Conference on Logic Programming. Lecture Notes in Computer Science, vol. 225. Imperial College, Springer-Verlag, Heidelberg, Germany, 283–298.Google Scholar
Condie, T., Das, A., Interlandi, M., Shkapsky, A., Yang, M. and Zaniolo, C. 2018. Scaling-up reasoning and advanced analytics on BigData. Theory and Practice of Logic Programming 18, 5–6, 806845.CrossRefGoogle Scholar
Conway, T. 2002. Towards Parallel Mercury. Ph.D. thesis, University of Melbourne.Google Scholar
Cousot, P. and Cousot, R. 1977. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Conference Records of the ACM Symposium on Principles of Programming Languages. ACM Press, New York, 238–252.Google Scholar
Dal Palù, A., Dovier, A., Formisano, A. and Pontelli, E. 2015. CUD@SAT: SAT Solving on GPUs. Journal of Experimental & Theoretical Artificial Intelligence (JETAI) 27, 3, 293316.CrossRefGoogle Scholar
Dal Palù, A., Dovier, A., Pontelli, E. and Rossi, G. 2009. GASP: Answer set programming with lazy grounding. Fundamenta Informaticae 96, 3, 297322.CrossRefGoogle Scholar
Damásio, C. V. 2000. A distributed tabling system. In Conference on Tabulation in Parsing and Deduction (TAPD2000), Proceedings. University of Vigo, 65–75.Google Scholar
Das, A. and Zaniolo, C. 2019. A case for stale synchronous distributed model for declarative recursive computation. Theory and Practice of Logic Programming 19, 5–6, 10561072.CrossRefGoogle Scholar
De Angelis, E., Fioravanti, F., Gallagher, J. P., Hermenegildo, M. V., Pettorossi, A. and Proietti, M. 2022. Analysis and transformation of constrained Horn clauses for program verification. Theory and Practice of Logic Programming (this issue). https://arxiv.org/abs/2108.00739 CrossRefGoogle Scholar
De Angelis, E., Fioravanti, F., Pettorossi, A. and Proietti, M. 2015. Semantics-based generation of verification conditions by program specialization. In 17th International Symposium on Principles and Practice of Declarative Programming. ACM, New York, 91–102.Google Scholar
De Bortoli, M., Igne, F., Tardivo, F., Totis, P., Dovier, A. and Pontelli, E. 2019. Towards distributed computation of answer sets. In Proceedings of the 34th Italian Conference on Computational Logic. CEUR Workshop Proceedings, vol. 2396. CEUR-WS.org, Aachen, 316–326.Google Scholar
Debray, S. K., Lin, N.-W. and Hermenegildo, M. V. 1990. Task granularity analysis in logic programs. In Proceedings of the 1990 ACM Conference on Programming Language Design and Implementation (PLDI). ACM Press, New York, 174–188.Google Scholar
Debray, S. K., Lopez-Garcia, P., Hermenegildo, M. V. and Lin, N.-W. 1994. Estimating the computational cost of logic programs. In SAS’94. Lecture Notes in Computer Science, vol. 864. Springer-Verlag, Heidelberg, Germany, 255–265.Google Scholar
Debray, S. K., Lopez-Garcia, P., Hermenegildo, M. V. and Lin, N.-W. 1997. Lower bound cost estimation for logic programs. In 1997 International Logic Programming Symposium. MIT Press, Cambridge, MA, USA, 291–305.Google Scholar
de Castro Dutra, I. 1994. Strategies for scheduling and- and or-parallel work in parallel logic programming systems. In Logic Programming, Proceedings of the 1994 International Symposium, Ithaca, New York, USA, 13–17 November 1994, M. Bruynooghe, Ed. MIT Press, Cambridge, MA, USA, 289–304.Google Scholar
DeGroot, D. 1984. Restricted and-parallelism. In Proceedings of the International Conference on Fifth Generation Computer Systems, FGCS 1984, Tokyo, Japan, 6–9 November 1984. OHMSHA Ltd. Tokyo and North-Holland, 471–478.Google Scholar
Desouter, B., van Dooren, M. and Schrijvers, T. 2015. Tabling as a library with delimited control. Theory and Practice of Logic Programming 15, 4 & 5, 419–433.Google Scholar
Diamos, G. F., Wu, H., Wang, J., Lele, A. and Yalamanchili, S. 2013. Relational algorithms for multi-bulk-synchronous processors. In ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP’13, Shenzhen, China, 23–27 February 2013, A. Nicolau, X. Shen, S. P. Amarasinghe and R. W. Vuduc, Eds. ACM, New York, 301–302.Google Scholar
Dovier, A., Formisano, A. and Pontelli, E. 2018. Parallel answer set programming. In Handbook of Parallel Constraint Reasoning, Y. Hamadi and L. Sais, Eds. Springer, Heidelberg, Germany, 237–282.Google Scholar
Dovier, A., Formisano, A., Pontelli, E. and Vella, F. 2015. Parallel execution of the ASP computation. In Technical Communications of ICLP 2015, M. De Vos, T. Eiter, Y. Lierler and F. Toni, Eds., vol. 1433. CEUR-WS.org, Aachen.Google Scholar
Dovier, A., Formisano, A., Pontelli, E. and Vella, F. 2016. A GPU implementation of the ASP computation. In PADL 2016, M. Gavanelli and J. H. Reppy, Eds. Lecture Notes in Computer Science, vol. 9585. Springer, Heidelberg, Germany, 30–47.Google Scholar
Dovier, A., Formisano, A. and Vella, F. 2019. GPU-based parallelism for ASP-solving. In Declarative Programming and Knowledge Management - Conference on Declarative Programming, DECLARE 2019, Unifying INAP, WLP, and WFLP, Cottbus, Germany, 9–12 September 2019, Revised Selected Papers, P. Hofstedt, S. Abreu, U. John, H. Kuchen and D. Seipel, Eds. Lecture Notes in Computer Science, vol. 12057. Springer, Heidelberg, Germany, 3–23.Google Scholar
Eiter, T., Germano, S., Ianni, G., Kaminski, T., Redl, C., Schüller, P. and Weinzierl, A. 2018. The DLVHEX system. Künstliche Intelligenz 32, 2-3, 187189.CrossRefGoogle Scholar
Ekanayake, J., Li, H., Zhang, B., Gunarathne, T., Bae, S.-H., Qiu, J. and Fox, G. C. 2010. Twister: A runtime for iterative Map-Reduce. In Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing. ACM Press, New York, 810–818.Google Scholar
El-Khatib, O. and Pontelli, E. 2000. Parallel evaluation of answer sets programs preliminary results. In Workshop on Parallelism and Implementation Technologies for (Constraint) Logic Programming Languages. London, UK.Google Scholar
Ellguth, E., Gebser, M., Gusowski, M., Kaufmann, B., Kaminski, R., Liske, S., Schaub, T., Schneidenbach, L. and Schnor, B. 2009. A simple distributed conflict-driven answer set solver. In Logic Programming and Non-Monotonic Reasoning. Springer Verlag, Heidelberg, Germany, 490–495.Google Scholar
Fan, Z., Zhu, J., Zhang, Z., Albarghouthi, A., Koutris, P. and Patel, J. M. 2019. Scaling-up in-memory Datalog processing: Observations and techniques. Proceedings of the VLDB Endowment 12, 6, 695708.Google Scholar
Fecht, C. 1996. An efficient and precise sharing domain for logic programs. In PLILP, H. Kuchen and S. D. Swierstra, Eds. Lecture Notes in Computer Science, vol. 1140. Springer, Heidelberg, Germany, 469–470.Google Scholar
Finkel, R., Marek, V., Moore, N. and Truszczyński, M. 2001. Computing stable models in parallel. In Proceedings of the AAAI Spring Symposium on Answer Set Programming, Provetti, A. and Tran, S. C., Eds. AAAI/MIT Press, Cambridge, MA, USA, 72–75.Google Scholar
Flanagan, C. and Felleisen, M. 1995. The semantics of Future and its use in program optimization. In Conference Record of POPL’95: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, California, USA, 23–25 January 1995, Cytron, R. K. and Lee, P., Eds. ACM Press, 209220.Google Scholar
Fonseca, N. A., Silva, F. M. A. and Camacho, R. 2006. April - an inductive logic programming system. In European Conference on Logics in Artificial Intelligence. Lecture Notes in Artificial Intelligence, vol. 4160. Springer, Heidelberg, Germany, 481–484.Google Scholar
Fonseca, N. A., Srinivasan, A., Silva, F. M. A. and Camacho, R. 2009. Parallel ILP for distributed-memory architectures. Machine Learning 74, 3, 257279.CrossRefGoogle Scholar
Formisano, A., Gentilini, R. and Vella, F. 2017. Accelerating energy games solvers on modern architectures. In Proceedings of the 7th Workshop on Irregular Applications: Architectures and Algorithms, IA3@SC. ACM, New York, 12:1–12:4.Google Scholar
Formisano, A., Gentilini, R. and Vella, F. 2021. Scalable energy games solvers on GPUs. IEEE Transactions on Parallel and Distributed Systems 32, 12, 29702982.CrossRefGoogle Scholar
Formisano, A. and Vella, F. 2014. On multiple learning schemata in conflict driven solvers. In Proceedings of ICTCS, S. Bistarelli and A. Formisano, Eds. CEUR Workshop Proceedings, vol. 1231. CEUR-WS.org, Aachen, 133–146.Google Scholar
Freire, J., Hu, R., Swift, T. and Warren, D. S. 1995. Exploiting parallelism in tabled evaluations. In International Symposium on Programming Languages: Implementations, Logics and Programs. Lecture Notes in Computer Science, vol. 982. Springer, Heidelberg, Germany, 115–132.Google Scholar
Freire, J., Swift, T. and Warren, D. S. 1996. Beyond depth-first: Improving tabled logic programs through alternative scheduling strategies. In International Symposium on Programming Language Implementation and Logic Programming. Lecture Notes in Computer Science, vol. 1140. Springer, Heidelberg, Germany, 243–258.Google Scholar
Futó, I. 1993. Prolog with communicating processes: From T-Prolog to CSR-Prolog. In International Conference on Logic Programming. The MIT Press, Cambridge, MA, USA, 3–17.Google Scholar
Futó, I. and Kacsuk, P. 1989. CS-PROLOG on multi-transputer systems. Microprocessors and Microsystems 13, 2, 103112.CrossRefGoogle Scholar
Gallagher, J. P., Hermenegildo, M. V., Kafle, B., Klemen, M., Lopez-Garcia, P. and Morales, J. F. 2020. From big-step to small-step semantics and back with interpreter specialization (invited paper). In International WS on Verification and Program Transformation (VPT 2020). EPTCS. Open Publishing Association, 50–65.Google Scholar
Ganguly, S., Silberschatz, A. and Tsur, S. 1992. Parallel bottom-up processing of Datalog queries. Journal of Logic Programming 14, 1-2, 101126.CrossRefGoogle Scholar
Garcia-Contreras, I., Morales, J. F. and Hermenegildo, M. V. 2018. Towards incremental and modular context-sensitive analysis. In Technical Communications of the 34th International Conference on Logic Programming (ICLP 2018). OpenAccess Series in Informatics (OASIcs). Dagstuhl Press. (Extended Abstract).Google Scholar
Garcia-Contreras, I., Morales, J. F. and Hermenegildo, M. V. 2019. Multivariant assertion-based guidance in abstract interpretation. In Proceedings of the 28th International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR’18). Lecture Notes in Computer Science, vol. 11408. Springer-Verlag, Heidelberg, Germany, 184–201.Google Scholar
Garcia-Contreras, I., Morales, J. F. and Hermenegildo, M. V. 2020. Incremental analysis of logic programs with assertions and open predicates. In Proceedings of the 29th International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR’19). Lecture Notes in Computer Science. Springer-Verlag, Heidelberg, Germany, 36–56.Google Scholar
García de la Banda, M. 1994. Independence, Global Analysis, and Parallelism in Dynamically Scheduled Constraint Logic Programming. Ph.D. thesis, Universidad Politecnica de Madrid.Google Scholar
García de la Banda, M. and Hermenegildo, M. V. 1993. A practical approach to the global analysis of constraint logic programs. In 1993 International Logic Programming Symposium. MIT Press, Cambridge, MA, USA, 437–455.Google Scholar
García de la Banda, M., Hermenegildo, M. V., Bruynooghe, M., Dumortier, V., Janssens, G. and Simoens, W. 1996. Global analysis of constraint logic programs. ACM Transactions on Programming Languages and Systems 18, 5, 564615.CrossRefGoogle Scholar
García de la Banda, M., Hermenegildo, M. V. and Marriott, K. 2000. Independence in CLP languages. ACM Transactions on Programming Languages and Systems 22, 2, 269339.Google Scholar
García de la Banda, M., Marriott, K. and Stuckey, P. J. 1995. Efficient analysis of constraint logic programs with dynamic scheduling. In 1995 International Logic Programming Symposium. MIT Press, Cambridge, MA, USA, 417–431.Google Scholar
Gebser, M., Kaminski, R., Kaufmann, B. and Schaub, T. 2012. Answer Set Solving in Practice . Synthesis Lectures on Artificial Intelligence and Machine Learning. Morgan & Claypool Publishers.Google Scholar
Gebser, M., Kaminski, R., Kaufmann, B., Schaub, T., Schneider, M. T. and Ziller, S. 2011a. A portfolio solver for answer set programming: Preliminary report. In Logic Programming and Nonmonotonic Reasoning - 11th International Conference, LPNMR 2011, Vancouver, Canada, 16–19 May 2011. Proceedings, J. P. Delgrande and W. Faber, Eds. Lecture Notes in Computer Science, vol. 6645. Springer, Heidelberg, Germany, 352–357.Google Scholar
Gebser, M., Kaufmann, B., Kaminski, R., Ostrowski, M., Schaub, T. and Schneider, M. 2011b. Potassco: The Potsdam answer set solving collection. AI Communications 24, 2, 107124.CrossRefGoogle Scholar
Gebser, M., Leone, N., Maratea, M., Perri, S., Ricca, F. and Schaub, T. 2018. Evaluation techniques and systems for answer set programming: A survey. In Proceedings of the Twenty-Seventh International Joint Conference on Artificial Intelligence, IJCAI 2018, 13–19 July 2018, Stockholm, Sweden, J. Lang, Ed. ijcai.org, 5450–5456.Google Scholar
Gebser, M., Maratea, M. and Ricca, F. 2020. The seventh answer set programming competition: Design and results. Theory and Practice of Logic Programming 20, 2, 176204.CrossRefGoogle Scholar
Gelfond, M. and Kahl, Y. 2014. Knowledge Representation, Reasoning, and the Design of Intelligent Agents: The Answer-Set Programming Approach. Cambridge University Press, UK.CrossRefGoogle Scholar
Gent, I. P., Miguel, I., Nightingale, P., McCreesh, C., Prosser, P., Moore, N. C. A. and Unsworth, C. 2018. A review of literature on parallel constraint solving. Theory and Practice of Logic Programming 18, 5-6, 725758.CrossRefGoogle Scholar
Goldberg, E. and Novikov, Y. 2007. Berkmin: A fast and robust sat-solver. Discrete Applied Mathematics 155, 12, 15491561.CrossRefGoogle Scholar
Gomes, C. P. and Selman, B. 2001. Algorithm portfolios. Artificial Intelligence 126, 1-2, 4362.CrossRefGoogle Scholar
GÓmez-Zamalloa, M., Albert, E. and Puebla, G. 2009. Decompilation of Java bytecode to Prolog by partial evaluation. JIST 51, 14091427.Google Scholar
Grebenshchikov, S., Lopes, N. P., Popeea, C. and Rybalchenko, A. 2012. Synthesizing software verifiers from proof rules. In ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI’12, J. Vitek, H. Lin and F. Tip, Eds. ACM, New York, 405–416.Google Scholar
Guo, H.-F. and Gupta, G. 2001. A simple scheme for implementing tabled logic programming systems based on dynamic reordering of alternatives. In International Conference on Logic Programming. Lecture Notes in Computer Science, vol. 2237. Springer, Heidelberg, Germany, 181–196.Google Scholar
Gupta, G. and Jayaraman, B. 1990. On criteria for Or-parallel execution models of logic programs. In 1990 North American Conference on Logic Programming. MIT Press, Cambridge, MA, USA, 604–623.Google Scholar
Gupta, G. and Pontelli, E. 1997. Extended dynamic dependent and-parallelism in ACE. In Proceedings of the 2nd International Workshop on Parallel Symbolic Computation, PASCO 1997, 20–22 July 1997, Kihei, Hawaii, USA, H. Hong, E. Kaltofen and M. A. Hitz, Eds. ACM, New York, 68–79.Google Scholar
Gupta, G. and Pontelli, E. 1999. Stack-splitting: A simple technique for implementing Or-parallelism and And-parallelism on distributed machines. In International Conference on Logic Programming, D. De Schreye, Ed. MIT Press, Cambridge, MA, USA, 290–304.Google Scholar
Gupta, G., Pontelli, E., Ali, K. A. M., Carlsson, M. and Hermenegildo, M. V. 2001. Parallel execution of Prolog programs: A survey. ACM Transactions on Programming Languages and Systems 23, 4, 472602.CrossRefGoogle Scholar
Gupta, G. and Warren, D. H. D. 1992. An interpreter for the extended Andorra model (preliminary report). Technical report, University of Bristol, UK.Google Scholar
Gurfinkel, A., Kahsai, T., Komuravelli, A. and Navas, J. A. 2015. The SeaHorn verification framework. In International Conference on Computer Aided Verification, CAV 2015. Lecture Notes in Computer Science, vol. 9206. Springer, Heidelberg, Germany, 343–361.Google Scholar
Gustafson, J. L. 1988. Reevaluating Amdahl’s Law. Communications of the ACM 31, 5, 532533.CrossRefGoogle Scholar
Halstead, R. H. Jr. 1985. Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems 7, 4, 501538.CrossRefGoogle Scholar
Haridi, S. and Brand, P. 1988. Andorra Prolog: An integration of Prolog and committed choice languages. In Proceedings of the International Conference on Fifth Generation Computer Systems, FGCS 1988, Tokyo, Japan, 28 November–2 December 1988. OHMSHA Ltd. Tokyo and Springer-Verlag, 745–754.Google Scholar
Haridi, S. and Janson, S. 1990. Kernel Andorra Prolog and its computation model. In Proceedings of the International Conference on Logic Programming, Warren, D. H. D. and Szeredi, P., Eds. MIT Press, Cambridge, MA, USA, 31–46.Google Scholar
Hausman, B., Ciepielewski, A. and Haridi, S. 1987. Or-parallel Prolog made efficient on shared memory multiprocessors. In Symposium on Logic Programming. IEEE Computer Society, USA, 69–79.Google Scholar
Henriksen, K. S. and Gallagher, J. P. 2006. Abstract interpretation of PIC programs through logic programming. In SCAM’06. IEEE Computer Society, USA, 184–196.Google Scholar
Hermenegildo, M. V. 1986a. An Abstract Machine Based Execution Model for Computer Architecture Design and Efficient Implementation of Logic Programs in Parallel. Ph.D. thesis, University of Texas at Austin.Google Scholar
Hermenegildo, M. V. 1986b. An abstract machine for restricted And-parallel execution of logic programs. In Third International Conference on Logic Programming. Lecture Notes in Computer Science, vol. 225. Imperial College, Springer-Verlag, Heidelberg, Germany, 25–40.Google Scholar
Hermenegildo, M. V. 2000. Parallelizing irregular and pointer-based computations automatically: Perspectives from logic and constraint programming. Parallel Computing 26, 13–14, 16851708.CrossRefGoogle Scholar
Hermenegildo, M. V., Bueno, F., Carro, M., Lopez-Garcia, P., Mera, E., Morales, J. F. and Puebla, G. 2012. An overview of CIAO and its design philosophy. Theory and Practice of Logic Programming 12, 1–2, 219252.CrossRefGoogle Scholar
Hermenegildo, M. V., Bueno, F., García de la Banda, M. and Puebla, G. 1995. The CIAO multi-dialect compiler and system: An experimentation workbench for future (C)LP systems. In Proceedings of the ILPS’95 Workshop on Visions for the Future of Logic Programming. Portland, Oregon, USA. URL: http://www.cliplab.org/http://www.cliplab.org/.Google Scholar
Hermenegildo, M. V., Cabeza, D. and Carro, M. 1995. Using attributed variables in the implementation of concurrent and parallel logic programming systems. In ICLP’95. MIT Press, Cambridge, MA, USA, 631–645.Google Scholar
Hermenegildo, M. V. and Nasr, R. I. 1986. Efficient management of backtracking in And-parallelism. In Third International Conference on Logic Programming, E. Y. Shapiro, Ed. Notes, Lecture in Computer Science, vol. 225. Springer-Verlag, Heidelberg, Germany, 40–54.Google Scholar
Hermenegildo, M. V., Puebla, G. and Bueno, F. 1999. Using global analysis, partial specifications, and an extensible assertion language for program validation and debugging. In The Logic Programming Paradigm: A 25–Year Perspective. Springer-Verlag, Heidelberg, Germany, 161–192.Google Scholar
Hermenegildo, M. V., Puebla, G., Bueno, F. and Garcia, P. L. 2005. Integrated program debugging, verification, and optimization using abstract interpretation (and the CIAO system preprocessor). Science of Computer Programming 58, 1–2, 115–140.Google Scholar
Hermenegildo, M. V. and Rossi, F. 1995. Strict and non-strict independent and-parallelism in logic programs: Correctness, efficiency, and compile-time conditions. Journal of Logic Programming 22, 1, 145.Google Scholar
Hill, P. M., Bagnara, R. and Zaffanella, E. 2002. Soundness, idempotence and commutativity of set-sharing. Theory and Practice of Logic Programming 2, 2, 155201.CrossRefGoogle Scholar
Hoos, H. H., Kaminski, R., Lindauer, M. and Schaub, T. 2015. aspeed: Solver scheduling via answer set programming. Theory and Practice of Logic Programming 15, 1, 117142.CrossRefGoogle Scholar
Hoos, H. H., Lindauer, M. and Schaub, T. 2014. claspfolio 2: Advances in algorithm selection for answer set programming. Theory and Practice of Logic Programming 14, 4-5, 569585.CrossRefGoogle Scholar
Hu, R. 1997. Efficient Tabled Evaluation of Normal Logic Programs in a Distributed Environment. Ph.D. thesis, Department of Computer Science, State University of New York.Google Scholar
Huang, Y. and Chen, W. 2015. Parallel query on the in-memory database in a CUDA platform. In 10th International Conference on P2P, Parallel, Grid, Cloud and Internet Computing, 3PGCIC 2015, Krakow, Poland, 4–6 November 2015, F. Xhafa, L. Barolli, F. Messina and M. R. Ogiela, Eds. IEEE Computer Society, USA, 236–243.Google Scholar
Igne, F., Dovier, A. and Pontelli, E. 2018. MASP-Reduce: A proposal for distributed computation of stable models. In Technical Communications of the 34th International Conference on Logic Programming. OASICS 64, Schloss Dagstuhl, 8:1–8:4.Google Scholar
Jacobs, D. and Langen, A. 1989. Accurate and efficient approximation of variable aliasing in logic programs. In 1989 North American Conference on Logic Programming. MIT Press, Cambridge, MA, USA.Google Scholar
Janakiram, V., Agrawal, D. and Mehrotra, R. 1988. A randomized parallel backtracking algorithm. IEEE Transactions on Computers 37, 12, 16651676.CrossRefGoogle Scholar
Jordan, H., Scholz, B. and Subotic, P. 2016. Soufflé: On synthesis of program analyzers. In Computer Aided Verification - 28th International Conference, CAV 2016, Toronto, ON, Canada, 17–23 July 2016, Proceedings, Part II, S. Chaudhuri and A. Farzan, Eds. Lecture Notes in Computer Science, vol. 9780. Springer, Heidelberg, Germany, 422–430.Google Scholar
Jordan, H., Subotic, P., Zhao, D. and Scholz, B. 2019. A specialized B-tree for concurrent Datalog evaluation. In Proceedings of the 24th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2019, Washington, DC, USA, 16–20 February 2019, J. K. Hollingsworth and I. Keidar, Eds. ACM, New York, 327–339.Google Scholar
Kahsai, T., Rümmer, P., Sanchez, H. and Schäf, M. 2016. JayHorn: A framework for verifying Java programs. In Computer Aided Verification - 28th International Conference, CAV 2016, Chaudhuri, S. and Farzan, A., Eds. Lecture Notes in Computer Science, vol. 9779. Springer, Heidelberg, Germany, 352–358.Google Scholar
Karau, H., Konwinski, A., Wendell, P. and Zaharia, M. 2015. Learning Spark. O’Reilly, USA.Google Scholar
Kelly, A., Marriott, K., Søndergaard, H. and Stuckey, P. J. 1998. A practical object-oriented analysis engine for CLP. Software: Practice and Experience 28, 2, 188224.Google Scholar
Khronos Group Inc. 2015. OpenCL: The open standard for parallel programming of heterogeneous systems. URL: http://www.khronos.org.Google Scholar
Klemen, M., Lopez-Garcia, P., Gallagher, J. P., Morales, J. F. and Hermenegildo, M. V. 2020. A general framework for static cost analysis of parallel logic programs. In Proceedings of the 29th International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR’19), M. Gabbrielli, Ed. Lecture Notes in Computer Science, vol. 12042. Springer-Verlag, Heidelberg, Germany, 19–35.Google Scholar
Klemen, M., Stulova, N., Lopez-Garcia, P., Morales, J. F. and Hermenegildo, M. V. 2018. Static performance guarantees for programs with run-time checks. In 20th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming (PPDP’18). ACM Press, New York.Google Scholar
Konczak, K., Linke, T. and Schaub, T. 2006. Graphs and colorings for answer set programming. Theory and Practice of Logic Programming 6, 1-2, 61106.CrossRefGoogle Scholar
Körner, P., Leuschel, M., Barbosa, J., Santos Costa, V., Dahl, V., Hermenegildo, M., Morales, J., Wielemaker, J., Diaz, D., Abreu, S. and Ciatto, G. 2022. Fifty Years of Prolog and Beyond. Theory and Practice of Logic Programming (this issue). https://arxiv.org/abs/2201.10816 CrossRefGoogle Scholar
Kowalski, R. A. 1979. Logic for Problem Solving. Elsevier North-Holland Inc.Google Scholar
Lagoon, V. and Stuckey, P. J. 2002. Precise pair-sharing analysis of logic programs. In Principles and Practice of Declarative Programming. ACM Press, New York, 99–108.Google Scholar
Le, H. and Pontelli, E. 2005. An investigation of sharing strategies for answer set solvers and SAT solvers. In Euro-Par. Springer Verlag, Heidelberg, Germany, 750–760.Google Scholar
Le, H. and Pontelli, E. 2007. Dynamic scheduling in parallel answer set programming solvers. In Proceedings of the 2007 Spring Simulation Multiconference, SpringSim 2007. ACM Press, New York, 367–374.Google Scholar
Le Charlier, B. and Van Hentenryck, P. 1994. Experimental evaluation of a generic abstract interpretation algorithm for Prolog. ACM Transactions on Programming Languages and Systems 16, 1, 35101.CrossRefGoogle Scholar
Leutgeb, L. and Weinzierl, A. 2017. Techniques for efficient lazy-grounding ASP solving. In Declarative Programming and Knowledge Management - Conference on Declarative Programming. Lecture Notes in Computer Science, vol. 10997. Springer, Heidelberg, Germany, 132–148.Google Scholar
Li, X., King, A. and Lu, L. 2006. Lazy set-sharing analysis. In 8th International Symposium on Functional and Logic Programming, P. Wadler and M. Hagiya, Eds. Lecture Notes in Computer Science. Springer-Verlag, Heidelberg, Germany, 177–191.Google Scholar
Lin, Z. 1989. Expected performance of the randomized parallel backtracking method. In Proceedings of the North American Conference on Logic Programming. The MIT Press, Cambridge, MA, USA, 677–696.Google Scholar
Lindauer, M., Hoos, H. H., Hutter, F. and Schaub, T. 2015. AutoFolio: An automatically configured algorithm selector. Journal of Artificial Intelligence Research 53, 745778.CrossRefGoogle Scholar
Liqat, U., Georgiou, K., Kerrison, S., Lopez-Garcia, P., Hermenegildo, M. V., Gallagher, J. P. and Eder, K. 2016. Inferring parametric energy consumption functions at different software levels: ISA vs. LLVM IR. In Foundational and Practical Aspects of Resource Analysis: 4th International Workshop, FOPARA 2015, London, UK, 11 April, 2015. Revised Selected Papers, M. V. Eekelen and U. D. Lago, Eds. Lecture Notes in Computer Science, vol. 9964. Springer, Heidelberg, Germany, 81–100.Google Scholar
Liqat, U., Kerrison, S., Serrano, A., Georgiou, K., Lopez-Garcia, P., Grech, N., Hermenegildo, M. V. and Eder, K. 2014. Energy consumption analysis of programs based on XMOS ISA-level models. In Logic-Based Program Synthesis and Transformation, 23rd International Symposium, LOPSTR 2013, Revised Selected Papers, Gupta, G. and Peña, R., Eds. Lecture Notes in Computer Science, vol. 8901. Springer, Heidelberg, Germany, 72–90.Google Scholar
Liu, L., Pontelli, E., Son, T. C. and Truszczyński, M. 2010. Logic programs with abstract constraint atoms: The role of computations. Artificial Intelligence 174, 3-4, 295315.CrossRefGoogle Scholar
Lloyd, J. W. 1987. Foundations of Logic Programming. Springer-Verlag, Heidelberg, Germany.CrossRefGoogle Scholar
Lopes, R., Santos Costa, V. and Silva, F. M. A. 2003. On the BEAM implementation. In 11th Portuguese Conference on Artificial Intelligence, EPIA 2003. Springer Verlag, Heidelberg, Germany, 131–135.Google Scholar
Lopes, R., Santos Costa, V. and Silva, F. M. A. 2004. Exploiting parallelism in the extended Andorra model. In Proceedings of the IASTED International Conference on Parallel and Distributed Computing and Networks. IASTED/ACTA, 483489.Google Scholar
Lopes, R., Santos Costa, V. and Silva, F. M. A. 2012. A design and implementation of the extended Andorra model. Theory and Practice of Logic Programming 12, 3, 319360.CrossRefGoogle Scholar
Lopez-Garcia, P. 2000. Non-failure Analysis and Granularity Control in Parallel Execution of Logic Programs. Ph.D. thesis, Universidad Politécnica de Madrid (UPM), Facultad Informatica UPM, 28660-Boadilla del Monte, Madrid-Spain.Google Scholar
Lopez-Garcia, P., Bueno, F. and Hermenegildo, M. V. 2010. Automatic inference of determinacy and mutual exclusion for logic programs using mode and type information. New Generation Computing 28, 2, 117206.Google Scholar
Lopez-Garcia, P., Darmawan, L., Klemen, M., Liqat, U., Bueno, F. and Hermenegildo, M. V. 2018. Interval-based resource usage verification by translation into Horn clauses and an application to energy consumption. Theory and Practice of Logic Programming, Special Issue on Computational Logic for Verification 18, 2, 167223. arXiv:1803.04451.CrossRefGoogle Scholar
Lopez-Garcia, P., Hermenegildo, M. V. and Debray, S. K. 1996. A methodology for granularity based control of parallelism in logic programs. Journal of Symbolic Computation, Special Issue on Parallel Symbolic Computation 21, 4–6, 715734.Google Scholar
Lumsdaine, A., Gregor, D., Hendrickson, B. and Berry, J. 2007. Challenges in parallel graph processing. Parallel Processing Letters 17, 01, 520.CrossRefGoogle Scholar
Lusk, E., Butler, R., Disz, T., Olson, R., Stevens, R., Warren, D. H. D., Calderwood, A., Szeredi, P., Brand, P., Carlsson, M., Ciepielewski, A., Hausman, B. and Haridi, S. 1990. The Aurora Or-parallel Prolog system. New Generation Computing 7, 2/3, 243–271.Google Scholar
Maiterth, M. 2012. Parallel Datalog on Pregel. M.S. thesis, Ludwig-Maximilians Universitat Munchen.Google Scholar
Malewicz, G., Austern, M. H., Bik, A. J. C., Dehnert, J. C., Horn, I., Leiser, N. and Czajkowski, G. 2010. Pregel: A system for large-scale graph processing. In Proceedings of the ACM SIGMOD International Conference on Management of Data, SIGMOD 2010, Indianapolis, Indiana, USA, 6–10 June 2010, A. K. Elmagarmid and D. Agrawal, Eds. ACM, New York, 135–146.Google Scholar
Malitsky, Y., Sabharwal, A., Samulowitz, H. and Sellmann, M. 2012. Parallel SAT solver selection and scheduling. In Principles and Practice of Constraint Programming - 18th International Conference, CP 2012, Québec City, QC, Canada. Proceedings, M. Milano, Ed. Lecture Notes in Computer Science, vol. 7514. Springer, Heidelberg, Germany, 512–526.Google Scholar
Maratea, M., Pulina, L. and Ricca, F. 2014. A multi-engine approach to answer-set programming. Theory and Practice of Logic Programming 14, 6, 841868.CrossRefGoogle Scholar
Marques, R. and Swift, T. 2008. Concurrent and local evaluation of normal programs. In International Conference on Logic Programming. Lecture Notes in Computer Science, vol. 5366. Springer, Heidelberg, Germany, 206–222.Google Scholar
Marques, R., Swift, T. and Cunha, J. C. 2010. A simple and efficient implementation of concurrent local tabling. In International Symposium on Practical Aspects of Declarative Languages. Lecture Notes in Computer Science, vol. 5937. Springer, Heidelberg, Germany, 264–278.Google Scholar
Marriott, K., García de la Banda, M. and Hermenegildo, M. V. 1994. Analyzing logic programs with dynamic scheduling. In 20th Annual ACM Conference on Principles of Programming Languages. ACM, New York, 240–254.Google Scholar
Marron, M., Hermenegildo, M. V., Kapur, D. and Stefanovic, D. 2008. Efficient context-sensitive shape analysis with graph-based heap models. In International Conference on Compiler Construction (CC 2008), L. Hendren, Ed. Notes, Lecture in Computer Science. Springer, Heidelberg, Germany, 245–259.Google Scholar
Marron, M., Kapur, D. and Hermenegildo, M. V. 2009. Identification of logically related heap regions. In ISMM’09: Proceedings of the 8th International Symposium on Memory management. ACM Press, New York, 89–98.Google Scholar
Marron, M., Kapur, D., Stefanovic, D. and Hermenegildo, M. V. 2006. A static heap analysis for shape and connectivity. In Languages and Compilers for Parallel Computing (LCPC’06), G. Almási, C. Cascaval and P. Wu, Eds. Lecture Notes in Computer Science, vol. 4382. Springer, Heidelberg, Germany, 345–363.Google Scholar
Marron, M., Kapur, D., Stefanovic, D. and Hermenegildo, M. V. 2008a. Identification of heap-carried data dependence via explicit store heap models. In 21st International WS on Languages and Compilers for Parallel Computing (LCPC’08). Lecture Notes in Computer Science. Springer-Verlag, Heidelberg, Germany, 94–108.Google Scholar
Marron, M., Méndez-Lojo, M., Hermenegildo, M. V., Stefanovic, D. and Kapur, D. 2008b. Sharing analysis of arrays, collections, and recursive structures. In ACM WS on Program Analysis for Software Tools and Engineering (PASTE’08). ACM, New York, 43–49.Google Scholar
Martinez-Angeles, C. A., de Castro Dutra, I., Santos Costa, V. and Buenabad-Chávez, J. 2014. A Datalog engine for GPUs. In Declarative Programming and Knowledge Management - Declarative Programming Days, KDPD 2013, Unifying INAP, WFLP, and WLP, Kiel, Germany, 11–13 September 2013, Revised Selected Papers, M. Hanus and R. Rocha, Eds. Lecture Notes in Computer Science, vol. 8439. Springer, Heidelberg, Germany, 152–168.Google Scholar
Martinez-Angeles, C. A., Wu, H., de Castro Dutra, I., Santos Costa, V. and Buenabad-Chávez, J. 2016. Relational learning with GPUs: Accelerating rule coverage. International Journal of Parallel Programming 44, 3, 663685.CrossRefGoogle Scholar
Mattern, F. 1989. Global quiescence detection based on credit distribution and recovery. Information Processing Letters 30, 4, 195200.Google Scholar
Méndez-Lojo, M. and Hermenegildo, M. V. 2008. Precise set sharing analysis for Java-style programs. In 9th International Conference on Verification, Model Checking and Abstract Interpretation (VMCAI’08). Lecture Notes in Computer Science, vol. 4905. Springer-Verlag, Heidelberg, Germany, 172–187.Google Scholar
Méndez-Lojo, M., Lhoták, O. and Hermenegildo, M. V. 2008. Efficient set sharing using ZBDDs. In 21st International Workshop on Languages and Compilers for Parallel Computing (LCPC’08). Lecture Notes in Computer Science, vol. 5335. Springer-Verlag, Heidelberg, Germany, 94–108.Google Scholar
Méndez-Lojo, M., Navas, J. and Hermenegildo, M. V. 2007. A flexible (C)LP-based approach to the analysis of object-oriented programs. In LOPSTR. Lecture Notes in Computer Science, vol. 4915. Springer-Verlag, Heidelberg, Germany, 154–168.Google Scholar
Mera, E., Lopez-Garcia, P., Carro, M. and Hermenegildo, M. V. 2008. Towards execution time estimation in abstract machine-based languages. In 10th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming (PPDP’08). ACM Press, New York, 174–184.Google Scholar
Moustafa, W. E., Papavasileiou, V., Yocum, K. and Deutsch, A. 2016. Datalography: Scaling Datalog graph analytics on graph processing systems. In 2016 IEEE International Conference on Big Data, BigData 2016, Washington DC, USA, 5–8 December 2016, J. Joshi, G. Karypis, L. Liu, X. Hu, R. Ak, Y. Xia, W. Xu, A. Sato, S. Rachuri, L. H. Ungar, P. S. Yu, R. Govindaraju and T. Suzumura, Eds. IEEE Computer Society, USA, 56–65.Google Scholar
Muthukumar, K., Bueno, F., García de la Banda, M. and Hermenegildo, M. V. 1999. Automatic compile-time parallelization of logic programs for restricted, goal-level, independent And-parallelism. Journal of Logic Programming 38, 2, 165218.CrossRefGoogle Scholar
Muthukumar, K. and Hermenegildo, M. V. 1989. Determination of variable dependence information through abstract interpretation. In Logic Programming, Proceedings of the North American Conference 1989, Cleveland, Ohio, Lusk, E. L. and Overbeek, R. A., Eds. MIT Press, Cambridge, MA, USA, 166–185.Google Scholar
Muthukumar, K. and Hermenegildo, M. V. 1990. Deriving a fixpoint computation algorithm for top-down abstract interpretation of logic programs. Technical Report ACT-DC-153-90, Microelectronics and Computer Technology Corporation (MCC), Austin, TX 78759.Google Scholar
Muthukumar, K. and Hermenegildo, M. V. 1991. Combined determination of sharing and freeness of program variables through abstract interpretation. In Logic Programming, Proceedings of the Eigth International Conference, Paris, France, K. Furukawa, Ed. Press, MIT, Cambridge, MA, USA, 49–63.Google Scholar
Muthukumar, K. and Hermenegildo, M. V. 1992. Compile-time derivation of variable dependency using abstract interpretation. Journal of Logic Programming 13, 2/3, 315–347.Google Scholar
Nappa, P., Zhao, D., Subotic, P. and Scholz, B. 2019. Fast parallel equivalence relations in a Datalog compiler. In 28th International Conference on Parallel Architectures and Compilation Techniques, PACT 2019, Seattle, WA, USA, 23–26 September 2019. IEEE, USA, 82–96.Google Scholar
Navas, J., Bueno, F. and Hermenegildo, M. V. 2006. Efficient top-down set-sharing analysis using cliques. In 8th International Symposium on Practical Aspects of Declarative Languages (PADL’06). Lecture Notes in Computer Science, vol. 2819. Springer-Verlag, Heidelberg, Germany, 183–198.Google Scholar
Navas, J., Méndez-Lojo, M. and Hermenegildo, M. V. 2008. Safe upper-bounds inference of energy consumption for Java bytecode applications. In The Sixth NASA Langley Formal Methods Workshop (LFM 08). NASA Langley Research Center, Hampton, Virginia, USA, 29–32. Extended Abstract.Google Scholar
Navas, J., Méndez-Lojo, M. and Hermenegildo, M. V. 2009. User-definable resource usage bounds analysis for Java bytecode. Electronic Notes in Theoretical Computer Science 253, 5, 6582.CrossRefGoogle Scholar
Navas, J., Mera, E., Lopez-Garcia, P. and Hermenegildo, M. V. 2007. User-definable resource bounds analysis for logic programs. In Proceedings of ICLP’07. Lecture Notes in Computer Science, vol. 4670. Springer, Heidelberg, Germany, 348–363.Google Scholar
Nguyen, H. D., Sakama, C., Sato, T. and Inoue, K. 2018. Computing logic programming semantics in linear algebra. In Multi-disciplinary Trends in Artificial Intelligence - 12th International Conference, MIWAI 2018, Hanoi, Vietnam, 18–20 November 2018, Proceedings, Kaenampornpan, M., Malaka, R., Nguyen, D. D. and Schwind, N., Eds. Lecture Notes in Computer Science, vol. 11248. Springer, Heidelberg, Germany, 32–48.Google Scholar
Niemela, I. and Simons, P. 1997. Smodels - an implementation of the stable model and well-founded semantics for normal LP. In Logic Programming and Non-monotonic Reasoning. Springer Verlag, Heidelberg, Germany, 421–430.Google Scholar
NVIDIA Corporation. 2021. NVIDIA CUDA Zone. URL: https://developer.nvidia.com/cuda-zone.Google Scholar
Peralta, J. C., Gallagher, J. P. and SaĞlam, H. 1998. Analysis of imperative programs through analysis of constraint logic programs. In Static Analysis. 5th International Symposium, SAS’98, Pisa, G. Levi, Ed. Notes, Lecture in Computer Science, vol. 1503. Springer, Heidelberg, Germany, 246–261.Google Scholar
Pereira, L. M., Monteiro, L., Cunha, J. and Aparcio, J. N. 1986. Delta Prolog: A distributed backtracking extension with events. In International Conference on Logic Programming, E. Shapiro, Ed. Lecture Notes in Computer Science, vol. 225. Springer Verlag, Heidelberg, Germany, 69–83.Google Scholar
Pereira, L. M. and Nasr, R. I. 1984. Delta-Prolog: A distributed logic programming language. In Proceedings of the International Conference on Fifth Generation Computer Systems, FGCS 1984, Tokyo, Japan. OHMSHA Ltd. Tokyo and North-Holland, 283–291.Google Scholar
Perri, S., Ricca, F. and Sirianni, M. 2013. Parallel instantiation of ASP programs: Techniques and experiments. Theory and Practice of Logic Programming 13, 2, 253278.CrossRefGoogle Scholar
Pollard, G. H. 1981. Parallel Execution of Horn Clause Programs. Ph.D. thesis, Imperial College, London. Department of Computing.Google Scholar
Pontelli, E. 2001. Experiments in parallel execution of answer set programs. In International Parallel and Distributed Processing Symposium. IEEE Computer Society, USA, 20.Google Scholar
Pontelli, E. and Gupta, G. 1995. On the duality between And-parallelism and Or-parallelism. In Proceedings of EuroPar, Haridi, S. and Magnusson, P., Eds. Springer Verlag, Heidelberg, Germany, 43–54.Google Scholar
Pontelli, E. and Gupta, G. 1997. Parallel symbolic computation in ACE. Annals of Mathematics and Artificial Intelligence 21, 2-4, 359395.CrossRefGoogle Scholar
Pontelli, E. and Gupta, G. 1999. A simulation study of distributed execution of constraint logic programs with stack splitting. Tech. rep., New Mexico State University.Google Scholar
Pontelli, E. and Gupta, G. 2001. Backtracking in independent And-parallel implementations of logic programming languages. Transactions on Parallel and Distributed Systems 12, 11, 11691189.CrossRefGoogle Scholar
Pontelli, E., Gupta, G. and Hermenegildo, M. V. 1995. &ACE: A high-performance parallel Prolog system. In Proceedings of the International Parallel Processing Symposium. IEEE Computer Society, USA, 564–571.Google Scholar
Pontelli, E., Gupta, G., Pulvirenti, F. and Ferro, A. 1997. Automatic compile-time parallelization of Prolog programs for dependent And-parallelism. In Proceedings of the Fourteenth International Conference on Logic Programming, L. Naish, Ed. Press, MIT, Cambridge, MA, USA, 108–122.Google Scholar
Pontelli, E., Gupta, G., Tang, D., Carro, M. and Hermenegildo, M. V. 1996. Improving the efficiency of nondeterministic And–parallel systems. The Computer Languages Journal 22, 2/3, 115–142.Google Scholar
Pontelli, E., Le, H. and Son, T. C. 2010. An investigation in parallel execution of answer set programs on distributed memory platforms. Computer Languages, Systems and Structures 36, 2, 158202.CrossRefGoogle Scholar
Pontelli, E., Le, T., Nguyen, H. and Son, T. C. 2012. ASP at work: An ASP implementation of PhyloWS. In Technical Communications of the 28th International Conference on Logic Programming, ICLP 2012, Budapest, Hungary, Dovier, A. and Santos Costa, V., Eds. LIPICS, vol. 17. Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 359–369.Google Scholar
Pontelli, E., Ranjan, D. and Dal Palù, A. 2002. An optimal data structure to handle dynamic environments in non-deterministic computations. Computer Languages 28, 2, 181201.Google Scholar
Pontelli, E., Villaverde, K., Guo, H.-F. and Gupta, G. 2006. Stack splitting: A technique for efficient exploitation of search parallelism on share-nothing platforms. Journal of Parallel and Distributed Computing 66, 10, 12671293.CrossRefGoogle Scholar
Pontelli, E., Villaverde, K., Guo, H.-F. and Gupta, G. 2007. PALS: Efficient Or-parallel execution of Prolog on Beowulf clusters. Theory and Practice of Logic Programming 7, 6, 633695.CrossRefGoogle Scholar
Puebla, G. and Hermenegildo, M. V. 1999. Abstract multiple specialization and its application to program parallelization. Journal of Logic Programming 41, 2&3, 279–316.Google Scholar
Ranjan, D., Pontelli, E. and Gupta, G. 1999. On the complexity of Or-parallelism. New Generation Computing 17, 3, 285308.CrossRefGoogle Scholar
Rocha, R., Silva, F. M. A. and Martins, R. 2003. YapDss: An Or-parallel Prolog system for scalable Beowulf clusters. In 11th Portuguese Conference on Artificial Intelligence, EPIA 2003. Springer Verlag, Heidelberg, Germany, 136–150.Google Scholar
Rocha, R., Silva, F. M. A. and Santos Costa, V. 1999a. Or-parallelism within tabling. In International Workshop on Practical Aspects of Declarative Languages. Lecture Notes in Computer Science, vol. 1551. Springer, Heidelberg, Germany, 137–151.Google Scholar
Rocha, R., Silva, F. M. A. and Santos Costa, V. 1999b. YapOr: An Or-parallel Prolog system based on environment copying. In Portuguese Conference on Artificial Intelligence. Lecture Notes in Artificial Intelligence, vol. 1695. Springer, Heidelberg, Germany, 178–192.Google Scholar
Rocha, R., Silva, F. M. A. and Santos Costa, V. 2000. A tabling engine for the Yap Prolog system. In APPIA-GULP-PRODE Joint Conference on Declarative Programming, La Habana, Cuba, 4–6 December. Cuba.Google Scholar
Rocha, R., Silva, F. M. A. and Santos Costa, V. 2001. On a tabling engine that can exploit Or-parallelism. In International Conference on Logic Programming. Lecture Notes in Computer Science, vol. 2237. Springer, Heidelberg, Germany, 43–58.Google Scholar
Rocha, R., Silva, F. M. A. and Santos Costa, V. 2005. On applying Or-parallelism and tabling to logic programs. Theory and Practice of Logic Programming 5, 1 & 2, 161205.Google Scholar
Rui, R. and Tu, Y. 2017. Fast equi-join algorithms on GPUs: Design and implementation. In Proceedings of the 29th International Conference on Scientific and Statistical Database Management, Chicago, IL, USA, 27–29 June 2017. ACM, New York, 17:1–17:12.Google Scholar
Saeed, I., Young, J. and Yalamanchili, S. 2015. A portable benchmark suite for highly parallel data intensive query processing. In Proceedings of the 2nd Workshop on Parallel Programming for Analytics Applications. ACM, New York, 3138.Google Scholar
Sagonas, K. and Swift, T. 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
Santos, J. and Rocha, R. 2013. Or-parallel Prolog execution on clusters of multicores. In 2nd Symposium on Languages, Applications and Technologies, Leal, J. P., Rocha, R. and Simões, A., Eds. OpenAccess Series in Informatics (OASIcs), vol. 29. Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany, 920.Google Scholar
Santos, J. and Rocha, R. 2016. On the implementation of an Or-parallel Prolog system for clusters of multicores. Theory and Practice of Logic Programming 16, 5-6, 899915.CrossRefGoogle Scholar
Santos Costa, V., de Castro Dutra, I. and Rocha, R. 2010. Threads and Or-parallelism unified. Theory and Practice of Logic Programming 10, 4-6, 417432.CrossRefGoogle Scholar
Santos Costa, V., Rocha, R. and Damas, L. 2012. The YAP Prolog system. Theory and Practice of Logic Programming 12, 1-2, 534.CrossRefGoogle 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 Proceedings of the ACM Symposium on Principles and Practice of Parallel Programming. ACM Press, New York, 8393.Google Scholar
Santos Costa, V., Warren, D. H. D. and Yang, R. 1991b. The Andorra-I engine: A parallel implementation of the basic Andorra model. In Proceedings of the International Conference on Logic Programming, K. Furukawa, Ed. Press, MIT, Cambridge, MA, USA, 825839.Google Scholar
Santos Costa, V., Warren, D. H. D. and Yang, R. 1991c. The Andorra-I preprocessor: Supporting full Prolog on the basic Andorra model. In Proceedings of the International Conference on Logic Programming, K. Furukawa, Ed. Press, MIT, Cambridge, MA, USA, 443456.Google Scholar
Schneidenbach, L., Schnor, B., Gebser, M., Kaminski, R., Kaufmann, B. and Schaub, T. 2009. Experiences running a parallel answer set solver on blue gene. In 16th European PVM/MPI Users’ Group Meeting. Springer Verlag, Heidelberg, Germany, 6472.Google Scholar
Secci, S. and Spoto, F. 2005. Pair-sharing analysis of object-oriented programs. In 12th International Symposium Static Analysis Symposium (SAS’05). Lecture Notes in Computer Science, vol. 3672. Springer, Heidelberg, Germany, 320335.Google Scholar
Seo, J., Park, J., Shin, J. and Lam, M. S. 2013. Distributed SociaLite: A Datalog-based language for large-scale graph analysis. Proceedings of the VLDB Endowment 6, 14, 19061917.Google Scholar
Serrano, A., Lopez-Garcia, P. and Hermenegildo, M. V. 2014. Resource usage analysis of logic programs via abstract interpretation using sized types. Theory and Practice of Logic Programming, ICLP’14 Special Issue 14, 4-5, 739754.CrossRefGoogle Scholar
Shapiro, E. Y. 1987. Concurrent Prolog: Collected Papers. MIT Press, Cambridge, MA, USA.Google Scholar
Shapiro, E. Y. 1989. The family of concurrent logic programming languages. ACM Computing Suveys 21, 3, 413510.CrossRefGoogle Scholar
Shehab, E., Algergawy, A. and Sarhan, A. M. 2017. Accelerating relational database operations using both CPU and GPU co-processor. Computers & Electrical Engineering 57, 6980.CrossRefGoogle Scholar
Shen, K. 1996. Overview of DASWAM: Exploitation of dependent And-parallelism. Journal of Logic Programming 29, 1/3, 245293.Google Scholar
Shen, K. and Hermenegildo, M. V. 1996. Flexible scheduling for non-deterministic, And-parallel execution of logic programs. In Proceedings of EuroPar’96. Lecture Notes in Computer Science, vol. 1124. Springer-Verlag, Heidelberg, Germany, 635640.Google Scholar
Shkapsky, A. 2016. A Declarative Language for Advanced Analytics and its Scalable Implementation. Ph.D. thesis, University of California, Los Angeles, USA.Google Scholar
Shkapsky, A., Yang, M., Interlandi, M., Chiu, H., Condie, T. and Zaniolo, C. 2016. Big data analytics with Datalog queries on Spark. In Proceedings of the 2016 International Conference on Management of Data, SIGMOD Conference 2016, San Francisco, CA, USA, 26 June–01 July 2016, F. Özcan, G. Koutrika and S. Madden, Eds. ACM, New York, 11351149.Google Scholar
Simons, P., Niemelä, I. and Soininen, T. 2002. Extending and implementing the stable model semantics. Artificial Intelligence 138, 1-2, 181234.CrossRefGoogle Scholar
Singhal, A. and Patt, Y. N. 1989. Unification parallelism: How much can we exploit? In Proceedings of the North American Conference on Logic Programming, E. Lusk and R. Overbeek, Eds. MIT Press, Cambridge, MA, USA, 11351147.Google Scholar
Somogyi, Z. and Sagonas, K. 2006. Tabling in Mercury: Design and implementation. In International Symposium on Practical Aspects of Declarative Languages. Lecture Notes in Computer Science, vol. 3819. Springer, Heidelberg, Germany, 150167.Google Scholar
Son, T. C. and Pontelli, E. 2007. Planning for biochemical pathways: A case study of answer set planning in large planning problem instances. In Proceedings of the First International SEA’07 Workshop, Tempe, Arizona, USA, 14 May 2007, M. D. Vos and T. Schaub, Eds. CEUR Workshop Proceedings, vol. 281. CEUR-WS.org, Aachen.Google Scholar
Søndergaard, H. 1986. An application of abstract interpretation of logic programs: Occur check reduction. In European Symposium on Programming. Lecture Notes in Computer Science, vol. 123. Springer-Verlag, Heidelberg, Germany, 327338.Google Scholar
Stulova, N. 2018. Improving Run-Time Checking in Dynamic Programming Languages. Ph.D. thesis, Escuela Técnica Superior de Ingenieros Informáticos, UPM.Google Scholar
Stulova, N., Morales, J. F. and Hermenegildo, M. V. 2015. Practical run-time checking via unobtrusive property caching. Theory and Practice of Logic Programming, 31st Int’l. Conference on Logic Programming (ICLP’15) Special Issue 15, 04-05, 726741.Google Scholar
Stulova, N., Morales, J. F. and Hermenegildo, M. V. 2018. Some trade-offs in reducing the overhead of assertion run-time checks via static analysis. Science of Computer Programming 155, 326.CrossRefGoogle Scholar
Swift, T. and Warren, D. S. 2012. XSB: Extending Prolog with tabled logic programming. Theory and Practice of Logic Programming 12, 1 & 2, 157187.Google Scholar
Tachmazidis, I. and Antoniou, G. 2013. Computing the stratified semantics of logic programs over big data through mass parallelization. In Theory, Practice, and Applications of Rules on the Web - 7th International Symposium, RuleML 2013, L. Morgenstern, P. S. Stefaneas, F. Lévy, A. Z. Wyner and A. Paschke, Eds. Lecture Notes in Computer Science, vol. 8035. Springer, Heidelberg, Germany, 188202.Google Scholar
Tachmazidis, I., Antoniou, G. and Faber, W. 2014. Efficient computation of the well-founded semantics over big data. Theory and Practice of Logic Programming 14, 4-5, 445459.CrossRefGoogle Scholar
Tachmazidis, I., Antoniou, G., Flouris, G., Kotoulas, S. and McCluskey, L. 2012. Large-scale parallel stratified defeasible reasoning. In European Conference on Artificial Intelligence (ECAI). IOS Press.Google Scholar
Tarzariol, A. 2019. Evolution of algorithm portfolio for solving strategies. In Proceedings of the 34th Italian Conference on Computational Logic, Trieste, Italy, 19–21 June 2019, A. Casagrande and E. G. Omodeo, Eds. CEUR Workshop Proceedings, vol. 2396. CEUR-WS.org, Aachen, 327341.Google Scholar
ter Horst, H. J. 2005. Completeness, decidability and complexity of entailment for RDF schema and a semantic extension involving the OWL vocabulary. Journal of Web Semantics 3, 2-3, 79115.Google Scholar
Tick, E. 1995. The deevolution of concurrent logic programming languages. Journal of Logic Programming 23, 2, 89123.CrossRefGoogle Scholar
Trias, E., Navas, J., Ackley, E. S., Forrest, S. and Hermenegildo, M. V. 2008. Negative ternary set-sharing. In International Conference on Logic Programming, ICLP. Lecture Notes in Computer Science, vol. 5366. Springer-Verlag, Heidelberg, Germany, 301316.Google Scholar
Trigo de la Vega, T., Lopez-García, P. and Muñoz-Hernández, S. 2010. Towards fuzzy granularity control in parallel/distributed computing. In International Conference on Fuzzy Computation (ICFC 2010). SciTePress, 4355.Google Scholar
Truszczynski, M. 2018. An introduction to the stable and well-founded semantics of logic programs. In Declarative Logic Programming: Theory, Systems, and Applications, M. Kifer and Y. A. Liu, Eds. ACM/Morgan & Claypool, USA, 121177.Google Scholar
Tu, P. H., Pontelli, E., Son, T. C. and To, S. T. 2009. Applications of parallel processing technologies in heuristic search planning: Methodologies and experiments. Concurrency and Computation: Practice and Experience 21, 15, 19281960.Google Scholar
Ueda, K. 1986. Guarded Horn Clauses. Ph.D. thesis, University of Tokyo.CrossRefGoogle Scholar
Ullman, J. D. 2010. Cluster computing and Datalog. In Datalog 2.0: The Resurgence of Datalog in Academia and Industry. URL: http://datalog20.org/.Google Scholar
Urbani, J., Kotoulas, S., Maassen, J., van Harmelen, F. and Bal, H. 2012. WebPIE: A web-scale parallel inference engine using MapReduce. Journal of Web Semantics 10, 5975.CrossRefGoogle Scholar
Van Gelder, A., Ross, K. A. and Schlipf, J. S. 1991. The well-founded semantics for general logic programs. Journal of the ACM 38, 3, 620650.Google Scholar
Van Roy, P. 1994. 1983–1993: The wonder years of sequential Prolog implementation. Journal of Logic Programming 19/20, 385441.Google Scholar
Vidal, G. 2012. Annotation of logic programs for independent and-parallelism by partial evaluation. Theory and Practice of Logic Programming 12, 4-5, 583600.CrossRefGoogle Scholar
Vieira, R., Rocha, R. and Silva, F. M. A. 2012. On comparing alternative splitting strategies for Or-parallel Prolog execution on multicores. In Colloquium on Implementation of Constraint and Logic Programming Systems, 7185.Google Scholar
Villaverde, K. and Pontelli, E. 2004. An investigation of scheduling in distributed constraint logic programming. In Proceedings of the ISCA 17th International Conference on Parallel and Distributed Computing Systems. ISCA, 98103.Google Scholar
Villaverde, K., Pontelli, E., Guo, H.-F. and Gupta, G. 2001a. Incremental stack splitting mechanisms for efficient parallel implementation of search-based systems. In International Conference on Parallel Processing. IEEE Computer Society, USA, 287294.Google Scholar
Villaverde, K., Pontelli, E., Guo, H.-F. and Gupta, G. 2001b. PALS: An Or-parallel implementation of Prolog on Bewoulf architectures. In Proceedings of the International Conference on Logic Programming. Springer Verlag, Heidelberg, Germany, 2742.Google Scholar
Villaverde, K., Pontelli, E., Guo, H.-F. and Gupta, G. 2003. A methodology for order-sensitive execution of non-deterministic languages on Beowulf platforms. In Euro-Par 2003. Parallel Processing, 9th International Euro-Par Conference. Springer Verlag, Heidelberg, Germany, 694703.Google Scholar
Wang, H., Xiong, F., Li, J., Shi, S., Li, J. and Gao, H. 2018. Data management on new processors: A survey. Parallel computing 72, 113.Google Scholar
Wang, J., Balazinska, M. and Halperin, D. 2015. Asynchronous and fault-tolerant recursive Datalog evaluation in shared-nothing engines. Proceedings of the VLDB Endowment 8, 12, 15421553.Google Scholar
Warren, D. H. D. 1990. The extended Andorra model with implicit control. In Parallel Logic Programming Workshop, Sverker Jansson, Ed. SICS, Box 1263, S-163 13 Spanga, SWEDEN.Google Scholar
Warren, D. S. 1984. Efficient Prolog memory management for flexible control strategies. In International Symposium on Logic Programming. IEEE Computer Society, USA, 198203.Google Scholar
Warren, R., Hermenegildo, M. V. and Debray, S. K. 1988. On the practicality of global flow analysis of logic programs. In Fifth International Conference and Symposium on Logic Programming. MIT Press, Cambridge, MA, USA, 684699.Google Scholar
White, T. 2015. Hadoop - The Definitive Guide: Storage and Analysis at Internet Scale, 4 ed., revised & updated. O’Reilly, USA.Google Scholar
Wielemaker, J., Schrijvers, T., Triska, M. and Lager, T. 2012. SWI-Prolog. Theory and Practice of Logic Programming 12, 1-2, 6796.CrossRefGoogle Scholar
Wolfson, O. and Silberschatz, A. 1988. Distributed processing of logic programs. In Proceedings of the SIGMOD International Conference on Management of Data, H. Boral and P. Larson, Eds. ACM Press, New York, 329336.Google Scholar
Wu, H., Diamos, G. F., Sheard, T., Aref, M., Baxter, S., Garland, M. and Yalamanchili, S. 2014. Red Fox: An execution environment for relational query processing on GPUs. In 12th Annual IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2014, Orlando, FL, USA, 15–19 February 2014, D. R. Kaeli and T. Moseley, Eds. ACM, New York, 44.Google Scholar
Xu, L., Hutter, F., Hoos, H. H. and Leyton-Brown, K. 2008. Satzilla: Portfolio-based algorithm selection for SAT. Journal of Artificial Intelligence Research 32, 565606.CrossRefGoogle Scholar
Yang, M., Shkapsky, A. and Zaniolo, C. 2015. Parallel bottom-up evaluation of logic programs: DeALS on shared-memory multicore machines. In Proceedings of the Technical Communications of the 31st International Conference on Logic Programming (ICLP) 2015, Cork, Ireland, M. D. Vos, T. Eiter, Y. Lierler and F. Toni, Eds. CEUR Workshop Proceedings, vol. 1433. CEUR-WS.org, Aachen.Google Scholar
Zaffanella, E., Bagnara, R. and Hill, P. M. 1999. Widening sharing. In Principles and Practice of Declarative Programming, G. Nadathur, Ed. Lecture Notes in Computer Science, vol. 1702. Springer-Verlag, Heidelberg, Germany, 414432.Google Scholar
Zaniolo, C., Yang, M., Das, A., Shkapsky, A., Condie, T. and Interlandi, M. 2017. Fixpoint semantics and optimization of recursive Datalog programs with aggregates. Theory and Practice of Logic Programming 17, 5–6, 10481065.CrossRefGoogle Scholar
Zeuch, S. 2018. Query Execution on Modern CPUs. Ph.D. thesis, Humboldt University of Berlin, Germany.Google Scholar
Zhang, K. 1993. Exploiting Or-parallelism in logic programs: A review. Future Generation Computing Systems 9, 3, 259280.CrossRefGoogle Scholar
Zhang, W., Wang, K. and Chau, S.-C. 1995. Data partition and parallel evaluation of Datalog programs. IEEE Transactions on Knowledge and Data Engineering 7, 163176.CrossRefGoogle Scholar
Zhao, D., Subotic, P. and Scholz, B. 2020. Debugging large-scale Datalog: A scalable provenance evaluation strategy. ACM Transactions on Programming Languages and Systems 42, 2, 7:1–7:35.Google Scholar
Zhou, N., Sato, T. and Shen, Y. 2008. Linear tabling strategies and optimizations. Theory and Practice of Logic Programming 8, 1, 81109.CrossRefGoogle Scholar
Zhou, N.-F. 2012. The language features and architecture of B-Prolog. Theory and Practice of Logic Programming 12, 1 & 2, 189218.Google Scholar
Zhou, N.-F. and Kjellerstrand, H. 2016. The Picat-SAT compiler. In Practical Aspects of Declarative Languages - 18th International Symposium, PADL 2016, St. Petersburg, FL, USA, 18–19 January 2016. Proceedings, M. Gavanelli and J. H. Reppy, Eds. Lecture Notes in Computer Science, vol. 9585. Springer, Heidelberg, Germany, 4862.Google Scholar
Zhou, N.-F., Kjellerstrand, H. and Fruhman, J. 2015. Constraint Solving and Planning with Picat. Springer, Heidelberg, Germany.CrossRefGoogle Scholar
Zinn, D., Wu, H., Wang, J., Aref, M. and Yalamanchili, S. 2016. General-purpose join algorithms for large graph triangle listing on heterogeneous systems. In Proceedings of the 9th Annual Workshop on General Purpose Processing using Graphics Processing Unit, GPGPU@PPoPP 2016, Barcelona, Spain, 12–16 March 2016, D. R. Kaeli and J. Cavazos, Eds. ACM, New York, 1221.Google Scholar