Is there an automatic parallel prolog implementation?

Are you sure you need parallelism to "get at least a small speedup"?

You say that you are only familiar with SWI-Prolog, so try other Prolog systems. According to the results of a benchmark at http://www.probp.com/performance.htm (which may or may not be relevant to your particular problem) you should try B-Prolog, YAP and SICStus-Prolog (this one is not free). If you're lucky, you can get several times speedup just from switching your Prolog system.

Another possible low-cost way to speed up - use a system with tabling support (B-Prolog, XSB or YAP) and just add something like :- auto_table. as a first line of your program. Depending on your problem and your existing program you can get significant speedup (or get no speedup at all).


With Prolog it is not difficult to find parallelism, it is difficult to choose which one to use ;) .

Maybe Parlog - logic based programming language, designed for parallel execution would be of help to you. There is implementation for windows but I am not sure if it uses multiple cores. You could however try to contact the authors there.