Re: Parallel Prolog



On 2007-01-15, Darren Bane <darren.bane@xxxxxxxxx> wrote:
Simon.Strobl@xxxxxxxxx wrote:
!snip!

Does this make any sense?

More every year as the number of cores on consumer-grade CPUs increases.

Do you know of any projects about parallel prolog?

I found KLIC ( http://www.klic.org/software/klic/index.en.html ) very
interesting. However, it has significant differences from ISO Prolog
(e.g. committed choice), and could best be described as another Logical
Programming language. This may or may not be what you're looking for.

Concurrency in Prolog is -in my opinion- really a must-have. Prolog
is now commonly used as component in (web-)servers and indeed,
multi-CPU hardware is becomming commonplace. Traditionally, research
has been to introduce concurrency at a low-level in the language. I
think parlog is one of the most famous examples. To my best knowledge,
none of these approaches were widely addopted.

As Paulo points out, quite a few modern Prolog systems provide
multiple communicating Prolog engines operating on a shared set of
clauses. This approach allows for good interaction in multi-threaded
server environments and makes it easy to write multi-threaded servers
in Prolog. For example, SWI-Prolog comes with a Tomcat-like
multi-threaded HTTP server library.

The downside of this of course is that we are back at explicitely
coded concurrency, where the parlog-like approaches aimed at
exploiting concurrency automatically. I guess practical Prolog,
containing cuts, assert/retract and interaction with foreign code
just isn't clean enough to make automatic concurrency feasible.

Cheers --- Jan
.



Relevant Pages

  • Re: Parallel Prolog
    ... exploiting concurrency automatically. ... I guess practical Prolog, ... Parlog, Strand, FGHC - all essentially the same language with very minor ... with Graem Ringwood, "Agent-Oriented Programming", published in the Springer ...
    (comp.lang.prolog)
  • Re: Parallel Prolog
    ... More every year as the number of cores on consumer-grade CPUs increases. ... Concurrency in Prolog is -in my opinion- really a must-have. ... multi-CPU hardware is becomming commonplace. ...
    (comp.lang.prolog)
  • Re: Prolog on a web server
    ... >And I guess you want your current database state to survive ... >Prolog to support transactions, persistence and concurrency ... is in Prolog predicates, I can do this easily, without feeling guilty ... upload it, and then type in the data to the form I have created. ...
    (comp.lang.prolog)
  • Re: Parallel Prolog
    ... exploiting concurrency automatically. ... I guess practical Prolog, ... assert/retract and interaction with foreign code ... just isn't clean enough to make automatic concurrency feasible. ...
    (comp.lang.prolog)
  • Re: Parallel Prolog
    ... Let me state my opinion that the idea of joining plain (standard) ... Prolog with parallelism ... and/or concurrency is rather naive. ... multi-threaded Prolog applications. ...
    (comp.lang.prolog)