Hostname: page-component-cd9895bd7-jn8rn Total loading time: 0 Render date: 2024-12-25T15:40:00.687Z Has data issue: false hasContentIssue false

On the Implementation of an Or-Parallel Prolog System for Clusters of Multicores

Published online by Cambridge University Press:  14 October 2016

JÕAO SANTOS
Affiliation:
CRACS & INESC TEC and Faculty of Sciences, University of Porto, Rua do Campo Alegre, 1021, 4169-007 Porto, Portugal (e-mail: [email protected], [email protected])
RICARDO ROCHA
Affiliation:
CRACS & INESC TEC and Faculty of Sciences, University of Porto, Rua do Campo Alegre, 1021, 4169-007 Porto, Portugal (e-mail: [email protected], [email protected])

Abstract

Nowadays, clusters of multicores are becoming the norm and, although, many or-parallel Prolog systems have been developed in the past, to the best of our knowledge, none of them was specially designed to explore the combination of shared and distributed memory architectures. In recent work, we have proposed a novel computational model specially designed for such combination which introduces a layered model with two scheduling levels, one for workers sharing memory resources, which we named a team of workers, and another for teams of workers (not sharing memory resources). In this work, we present a first implementation of such model and for that we revive and extend the YapOr system to exploit or-parallelism between teams of workers. We also propose a new set of built-in predicates that constitute the syntax to interact with an or-parallel engine in our platform. Experimental results show that our implementation is able to increase speedups as we increase the number of workers per team, thus taking advantage of the maximum number of cores in a machine, and to increase speedups as we increase the number of teams, thus taking advantage of adding more computer nodes to a cluster.

Type
Regular Papers
Copyright
Copyright © Cambridge University Press 2016 

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

Ali, K. and Karlsson, R. 1990. The Muse Approach to OR-Parallel Prolog. International Journal of Parallel Programming 19, 2, 129162.Google Scholar
Gupta, G. and Pontelli, E. 1999. Stack Splitting: A Simple Technique for Implementing Or-parallelism on Distributed Machines. In International Conference on Logic Programming. The MIT Press, 290304.Google Scholar
Gupta, G., Pontelli, E., Ali, K., Carlsson, M. and Hermenegildo, M. V. 2001. Parallel Execution of Prolog Programs: A Survey. ACM Transactions on Programming Languages and Systems 23, 4, 472602.Google Scholar
Gupta, G., Pontelli, E., Hermenegildo, M. V. and Santos Costa, V. 1994. ACE: And/Or-parallel Copying-based Execution of Logic Programs. In International Conference on Logic Programming. The MIT Press, 93109.Google Scholar
Lusk, E., Butler, R., Disz, T., Olson, R., Overbeek, R., Stevens, R., Warren, D. H. D., Calderwood, A., Szeredi, P., Haridi, S., Brand, P., Carlsson, M., Ciepielewski, A. and Hausman, B. 1988. The Aurora Or-Parallel Prolog System. In International Conference on Fifth Generation Computer Systems. Institute for New Generation Computer Technology, 819830.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.Google Scholar
Rocha, R., Silva, F. and Martins, R. 2003. YapDss: an Or-Parallel Prolog System for Scalable Beowulf Clusters. In Portuguese Conference on Artificial Intelligence. Number 2902 in LNAI. Springer, 136150.Google Scholar
Rocha, R., Silva, F. and Santos Costa, V. 1999. YapOr: an Or-Parallel Prolog System Based on Environment Copying. In Portuguese Conference on Artificial Intelligence. Number 1695 in LNAI. Springer, 178192.Google Scholar
Santos, J. and Rocha, R. 2014. A Team-Based Scheduling Model for Interfacing Or-Parallel Prolog Engines. Journal of Computer Science and Information Systems 11, 4, 14351454.Google Scholar
Santos Costa, V., Dutra, I. and Rocha, R. 2010. Threads and Or-Parallelism Unified. Journal of Theory and Practice of Logic Programming, International Conference on Logic Programming, Special Issue 10, 4–6, 417432.Google Scholar
Santos Costa, V., Rocha, R. and Damas, L. 2012. The YAP Prolog System. Journal of Theory and Practice of Logic Programming 12, 1 & 2, 534.Google Scholar
Santos Costa, V., Warren, D. H. D. and Yang, R. 1991. Andorra-I: A Parallel Prolog System that Transparently Exploits both And- and Or-Parallelism. In ACM Symposium on Principles and Practice of Parallel Programming. ACM, 8393.Google Scholar
Vieira, R., Rocha, R. and Silva, F. 2012. Or-Parallel Prolog Execution on Multicores Based on Stack Splitting. In International Workshop on Declarative Aspects and Applications of Multicore Programming. ACM Digital Library.Google Scholar
Villaverde, K., Pontelli, E., Guo, H. and Gupta, G. 2001. PALS: An Or-Parallel Implementation of Prolog on Beowulf Architectures. In International Conference on Logic Programming. Number 2237 in LNCS. Springer, 2742.Google Scholar