[2-3] Free Parallel Prolog Implementations

This section contains free parallel Prolog and logic programming
implementations. 

BAP:
   Brain Aid Prolog (BAP) is a Concurrent Sequential Processes (CSP)
   based standard Prolog for Transputer networks. BAP uses its own MS
   Windows or X Windows server for I/O. Special features include
   automatic topology adapation and concurrent source level debugging
   (see several processes exchange messages). Performance is pretty high,
   comparable to that of other Prolog compilers. BAP has achieved good
   results (>80% efficiency) when executing applications like N-queens or
   checkers in parallel on an 8 processor network. A demo version that
   supports Transputer systems with a maximum of 2 processors is
   available by anonymous ftp from 
      unlisys.in-berlin.de:/pub/brainaid/
   and also from the CMU AI Repository, in
      ftp.cs.cmu.edu:/user/ai/lang/prolog/impl/parallel/bap/
   A full version for up to 128 nodes is also available for both SUN and
   PC. Write to Frank Bergmann <fraber@cs.tu-berlin.de> or 
   <bap_info@brainaid.in-berlin.de> for more information. 

BeBOP:
   The BeBOP language combines sequential and parallel Logic Programming
   (LP), object oriented programming and meta-level programming. The LP
   component offers both don't know non-determinism and stream AND
   parallelism, a combination not possible with concurrent LP languages.
   BeBOP's object oriented features include object IDs, encapsulation,
   message passing, state updating, and object behaviour modification.
   The meta-level capabilities are based on the treatment of Prolog
   theories as first order entities, which enables them to be updated
   easily and lets fragments to be passed between objects in messages.
   BeBOP is implemented by translation down to NU-Prolog, and its
   parallel extension, PNU-Prolog.  The BeBOP system (BeBOP and bp) and
   the PNU-Prolog preprocessor pnp can be obtained by anonymous ftp from
   munnari.oz.au:/pub/bebop.tar.Z [128.250.1.21].  The release comes with
   a user manual, several papers (in Postscript format), sample programs,
   and source code.  The BeBOP system requires the NU-Prolog system,
   compiler and interpreter, the pnp preprocessor (which is included as
   part of the BeBOP system release), GCC or a similar compiler, Yacc (or
   Bison) and Lex. For more information, contact Andrew Davison,
   <ad@cs.mu.oz.au>, Dept. of Computer Science, University of Melbourne,
   Parkville, Victoria 3052, Australia, call +61 3-287-9172/9101, or fax
   +61 3-348-1184.

KLIC:
   KLIC is a portable implementation of KL1 (an extended Flat GHC), a
   concurrent logic programming language developed at ICOT in Japan.
   Runs on Suns, HPs, DECs, and Linux PC's and marks 2 MLIPS on
   SparcStation 10/30 and 4MLIPS on system with 200MHz Alpha.  A
   sequential version available via anonymous ftp from ftp.icot.or.jp.
   Parallel versions planned shortly.  A representative paper on the
   language is Kazunori Ueda and Takashi Chikayama, "Design of the
   Kernel Language for the Parallel Inference Machine", The Computer
   Journal, December, 1990.  A paper on its KLIC implementation is
   Takashi Chikayama, Tetsuro Fujise and Daigo Sekita, "A Portable and
   Efficient Implementation of KL1", PLILP'94 (LNCS #844,
   Springer-Verlag).  For more information, send an email to
   klic-requests@icot.or.jp or write to ICOT Free Software Desk,
   Institute for New Generation Computer Technology, 21st Floor, Mita
   Kokusai Bldg., 4-28, Mita 1-chome, Minato-ku, Tokyo 108, Japan, fax
   +81-3-3456-1618.

Multi-BinProlog:
   Multi-BinProlog 2.00 is a prototype Linda-style parallel extension to
   BinProlog 1.71 developed by Koen De Bosschere and Paul Tarau. It uses
   Koen's C-parser and C-writer which together speed-up IO considerably.
   It works with shared-memory and remote procedure calls and is
   available from clement.info.umoncton.ca:MultiBinProlog/
   See BinProlog in [2-1] for more information.

NCL:
   NCL (Net-Clause Language) is aimed at describing distributed
   computation models using term unification as a basic processing and
   control mechanism. It is embedded in standard Prolog and comprises two
   parts -- net-clauses and data-driven rules, which can communicate each
   to other and to standard Prolog programs.  A net-clause is a special
   domain in the database defining a network of nodes and links. The
   nodes are represented by Prolog compound terms. The variables
   occurring within the nodes are global logical variables, which can be
   shared within the scope of the net-clause thus playing the role of
   network links.  Two control mechanisms are implemented: a spreading
   activation scheme similar to the connectionist spreading activation
   and to the marker passing mechanism in SN (in logic programming it is
   seen as a restricted forward chaining) and a default mechanism based
   on using variables to propagate terms without being bound to them,
   thus implementing the non-monotonicity of default reasoning.  The
   Data-driven Rules implement a full scale forward chaining for Horn
   clauses.  They simulate a data-driven parallel computation, where each
   rule is a process (in contrast to the traditional parallel logic
   programming where each goal is a process). The NCL/Prolog interpreter
   along with a reference manual and a set of examples is available by
   anonymous ftp at ai.uga.edu:/pub/misc/ncl.tar.Z. For more information
   contact Zdravko Markov, Institute of Informatics, Bulgarian Academy of
   Sciences Acad.G.Bonchev Street, Block 29A, 1113 Sofia, Bulgaria,
   <markov@iinf.bg>.

PCN:
   PCN (Program Composition Notation) is not a logic programming
   language, but it has similarities to Strand and other concurrent logic
   programming languages. PCN is a parallel programming system that
   provides a simple language for specifying concurrent algorithms,
   interfaces to Fortran and C, a portable toolkit that allows
   applications to be developed on a workstation or small parallel
   computer and run unchanged on supercomputers, and integrated debugging
   and performance analysis tools. PCN includes a runtime system,
   compiler, linker, a set of standard libraries, virtual topology tools,
   a symbolic debugger (PDB), an execution profiler (Gauge), and a trace
   analysis tool (Upshot). PCN was developed at Argonne National
   Laboratory and the California Institute of Technology.  PCN runs on
   Sun4, NeXT, IBM RS/6000, SGI Iris, Intel iPSC/860, Intel Touchstone
   DELTA, Sequent Symmetry running Dynix (not PTX), and should be easy to
   port to other architectures. PCN is in the public domain and can be
   obtained by anonymous ftp from
      info.mcs.anl.gov:/pub/pcn/pcn_v2.0.tar.Z 
   The distribution includes a user's guide containing a tutorial and
   reference material. For further information on PCN, please send email to
   <pcn@mcs.anl.gov> or contact Ian Foster <foster@mcs.anl.gov>
   708-252-4619 or Steve Tuecke <tuecke@mcs.anl.gov> 708-252-8711.

ROLOG: 
   ROLOG is a parallel PROLOG compiler with a reduce-OR process model.
   It is available by anonymous ftp from cs.uiuc.edu:/pub/ROLOG/.

See also IC-Prolog II (a multi-threaded Prolog) in [2-1].
Go Back Up

Go To Previous

Go To Next