There used to be a parallel version of PROLOG called ParLog. What happened to it?
- Does anyone know of a working implementation? I couldn’t find anything.
- Is it worthwhile, i.e., are considerable speedups possible for practical applications?
Asking more generally, how is SWI doing in terms of automatic, VM-level parallelization? Sure, I can launch multiple threads, but I am more looking for something like tabling, i.e. a directive
:-concurrent foo/1. foo(1):- ... foo(2):- ... foo(3):- ...
which would automatically distribute the different clauses of foo\1 to different cores. Or maybe just to different threads and then let the OS figure out how to distribute the threads over cores? I’m just wondering. Any ideas?