Abstract
We discuss the impact of the separation of logic engines (independent logic processing units) and multi-threading on the design of coordination mechanisms for a Prolog based agent infrastructure.
We advocate a combination of coroutining constructs with focus on expressiveness and a simplified, multi-threading API that ensures optimal use available parallelism.
In this context, native multi-threading is made available to the application programmer as a set of high-level primitives with a declarative flavor while cooperative constructs provide efficient and predictable coordination mechanisms. As illustrations of our techniques, a parallel fold operation as well as cooperative implementations of Linda blackboards and publish/subscribe are described.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Tarau, P.: Towards Inference and Computation Mobility: The Jinni Experiment. In: Dix, J., Fariñas del Cerro, L., Furbach, U. (eds.) JELIA 1998. LNCS (LNAI), vol. 1489, pp. 385–390. Springer, Heidelberg (1998)
Tarau, P.: Intelligent Mobile Agent Programming at the Intersection of Java and Prolog. In: Proceedings of The Fourth International Conference on The Practical Application of Intelligent Agents and Multi-Agents, London, U.K., pp. 109–123 (1999)
Tarau, P.: Inference and Computation Mobility with Jinni. In: Apt, K., Marek, V., Truszczynski, M. (eds.) The Logic Programming Paradigm: a 25 Year Perspective, pp. 33–48. Springer, Heidelberg (1999) ISBN 3-540-65463-1
Tarau, P.: Agent Oriented Logic Programming Constructs in Jinni 2004. In: Demoen, B., Lifschitz, V. (eds.) ICLP 2004. LNCS, vol. 3132, pp. 477–478. Springer, Heidelberg (2004)
Mayfield, J., Labrou, Y., Finin, T.W.: Evaluation of KQML as an Agent Communication Language. In: Wooldridge, M., Müller, J.P., Tambe, M. (eds.) IJCAI-WS 1995 and ATAL 1995. LNCS, vol. 1037, pp. 347–360. Springer, Heidelberg (1996)
FIPA: FIPA 97 specification part 2: Agent communication language, Version 2.0 (October 1997)
Hermenegildo, M.V.: An abstract machine for restricted and-parallel execution of logic programs. In: Wada, E. (ed.) Logic Programming 1986. LNCS, vol. 264, pp. 25–39. Springer, Heidelberg (1987)
Tarau, P.: Fluents: A refactoring of prolog for uniform reflection and interoperation with external objects. In: Lloyd, J. (ed.) CL 2000. LNCS (LNAI), vol. 1861, p. 1225. Springer, Heidelberg (2000)
Tarau, P., Majumdar, A.: Interoperating logic engines. In: Gill, A., Swift, T. (eds.) PADL 2009. LNCS, vol. 5418, pp. 137–151. Springer, Heidelberg (2008)
Tarau, P.: Logic Engines as Interactors. In: Garcia de la Banda, M., Pontelli, E. (eds.) ICLP 2008. LNCS, vol. 5366, pp. 703–707. Springer, Heidelberg (2008)
Tarau, P., Boyer, M.: Nonstandard Answers of Elementary Logic Programs. In: Jacquet, J. (ed.) Constructing Logic Programs, pp. 279–300. J.Wiley, Chichester (1993)
Carro, M., Hermenegildo, M.V.: Concurrency in Prolog Using Threads and a Shared Database. In: ICLP, pp. 320–334 (1999)
Wielemaker, J.: Native preemptive threads in SWI-prolog. In: Palamidessi, C. (ed.) ICLP 2003. LNCS, vol. 2916, pp. 331–345. Springer, Heidelberg (2003)
De Bosschere, K., Tarau, P.: Blackboard-based Extensions in Prolog. Software — Practice and Experience 26(1), 49–69 (1996)
Gupta, G., Pontelli, E., Ali, K.A., Carlsson, M., Hermenegildo, M.V.: Parallel execution of prolog programs: a survey. ACM Trans. Program. Lang. Syst. 23(4), 472–602 (2001)
Shapiro, E.: The family of concurrent logic programming languages. ACM Comput. Surv. 21(3), 413–510 (1989)
Lusk, E., Mudambi, S., Gmbh, E., Overbeek, R.: Applications of the aurora parallel prolog system to computational molecular biology. In: Proc. of the JICSLP 1992 Post-Conference Joint Workshop on Distributed and Parallel Implementations of Logic Programming Systems. MIT Press, Washington, DC (1993)
Tarau, P., Dahl, V.: High-Level Networking with Mobile Code and First Order AND-Continuations. Theory and Practice of Logic Programming 1(3), 359–380 (2001)
Casas, A., Carro, M., Hermenegildo, M.: Towards a high-level implementation of flexible parallelism primitives for symbolic languages. In: PASCO 2007: Proceedings of the 2007 International Workshop on Parallel Symbolic Computation, pp. 93–94. ACM, New York (2007)
Lea, D.: A Java fork/join framework. In: Proceedings of the ACM 2000 Conference on Java Grande, JAVA 2000, pp. 36–43. ACM, New York (2000)
Lämmel, R.: Google’s MapReduce programming model revisited. Sci. Comput. Program 68, 208–237 (2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 IFIP International Federation for Information Processing
About this paper
Cite this paper
Tarau, P. (2011). Coordination and Concurrency in Multi-engine Prolog. In: De Meuter, W., Roman, GC. (eds) Coordination Models and Languages. COORDINATION 2011. Lecture Notes in Computer Science, vol 6721. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21464-6_11
Download citation
DOI: https://doi.org/10.1007/978-3-642-21464-6_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-21463-9
Online ISBN: 978-3-642-21464-6
eBook Packages: Computer ScienceComputer Science (R0)