Tabard: Multiple GNU Prolog Engines in a Distributed Environment



Tabard provides a way to run multiple GNU Prolog engines in a distributed environment. The environment can be a cluster of networked workstations or a set of workstations wide-spread by the Internet. In fact, these workstations need only to be running Linux and have ssh/rsh access.

Why?
Although parallel computing has been widely researched, the process of bringing concurrency and parallel programming to the mainstream has just begun. By combining a distributed multithreading environment like PM2 with Prolog, it is possible to exploit concurrency and parallel computing using the power of logic programming. In the pursuit of such purpose we developed Tabard, an interface system to PM2. It allows multithreaded Prolog applications to run in multiple GNU Prolog engines in a distributed environment, thus taking advantage of the resources available on a computer network. This is especially useful for computational intensive problems, where speedup is a factor of paramount importance. The system API offers thread management primitives as well as explicit communication routines and synchronization mechanisms between threads. Preliminary test results show good speedups when compared to the sequential version of GNU Prolog.

How can I use it?
An example Makefile that can be used for compiling such a program can be found here.

Caveats
CVS
If you want state of the art information about the project's status, it is recommended that you take a look at the CVS repository.

Example Programs

Examples you can test:

Miscellanea


Copyright (C) 2006 Nuno Morgadinho

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

$Id: index.html,v 1.2 2006/12/04 18:08:25 nunomorgadinho Exp $