guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

guile-log multithreading


From: Stefan Israelsson Tampe
Subject: guile-log multithreading
Date: Tue, 16 Apr 2013 22:01:33 +0200

Hi all,

One of the concerns regarding guile-log in it's earlier state was if
it code cope
with multithreading and the functional style of kanren suggests that stack based
logic programming will suffer with regard to multithreading. But on
the other hand
an optimized kanren is about 7x slower using an assoc managed in C and maybe
5x slower using a functional tree (a random index was randomized at
variable creation
and then used to create a functional look-up table via a functional
tree. So it would
be attractive to combine those two features and yes with guile-log we have

  * multiple stacks, especially one stack per thread is possible
  * we can mix stack based and assoc based variable binding

Using this method one can device a method that in one thread generates cases
using assoc based binding and then hand over that data-structure to a
stack based
search in a thread of it's own.

with this one should be able to effectively process many logic
programs in multiple cores. Using
some multithread toolbox.

So I would say that we are in a pretty good state to get a really
potent logic solver for guile
once we get a native compiler and a possibility to make fast c-calls in guile.

Constructing and testing this is on my todo list for guile-log.

/Stefan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]