6 research outputs found

    Mapping Search Graphs Onto Arbitrary Processor Networks (or Making PROLOG Parallel)

    No full text
    : Logic programming and particularly PROLOG have long been considered good candidates for parallel execution. The absence of any formal control structures have prompted such claims. There are, however, some practical concerns when actually implementing a parallel version of standard PROLOG. Specifically, an economical balance between identifying parallel tasks and solving parallel tasks must be obtained. Furthermore, the balancing mechanism should operate at run time and have a low overhead. Paralogic, Inc. has implemented a parallel version of PROLOG on the INMOS transputer. The current release supports the "standard" Edinburgh syntax and will run PROLOG programs on one to "n" transputers without modification. 1. PROLOG as a Parallel Language If implemented properly, parallel PROLOG would have several advantages over conventional languages. First, parallel PROLOG will be independent of the number and connection of parallel processors. Programs would be expected to run on one to "n" p..

    Implementing Prolog on Distributed Systems:

    No full text
    : A method for distributing Prolog across multiple processors is described. Design criterion and rationale are delineated along with the assumptions behind the methodology. The underlying assumptions are based on the need to provide each processor with maximum sequential work. The parallelization mechanism was implemented using a meta-interpreter that includes new predicates for dependency detection, job queuing, queue solving, and queue maintenance. Debugging and side effects issues are addressed. Benchmark results are also presented. 1. History In 1988, we began the design of Prolog that would operate in parallel over any number of computing processors. As a commercial company, our goal was to provide a high level tool for systems programmers using parallel or distributed systems. To date, the result of our efforts have produced several prototypes and a commercial version which goes by the name of n-parallel PROLOG. During the course of development, we learned several things about ..

    Design and Implementation of a Prolog-to-C Compiler

    No full text
    : A WAM-based Prolog-To-C (PTC) compiler is described. It is written in the C language and used together with Paralogic's Prolog interpreter. Prolog programs may consist of several independently compiled modules. The principles of modularization are described. Mixed programming features (Prolog-C and C- Prolog programming interfaces) are also explained. The PTC compiler is portable and has been ported to several different hardware platforms (PC, Sun, SGI, HP, nCube-2, Transputer.). Some statistical data on the compilers efficiency are shown. 1. INTRODUCTION One of the known Prolog implementation methods is compilation into native machine code via an intermediate language. The ANSI C language is the best candidate to be used as the intermediate language due to its portability and efficiency of the generated object code. Obvious disadvantages of this scheme are the time-consuming compilation stage due to its two-pass nature and the program size limitations caused by limitations of the ..

    Prolog/Database Parallel Programming: The '?-a(X),b(Y),c(X,Y)' Challenge

    No full text
    : Two methods of multiple/large/foreign databases processing using massively parallel computers are described. The first method employs a Distributed Cache Subsystem (DCS) offering the total memory of parallel processing nodes as a very large read-only disk cache for other parallel processing nodes. The second method is based on a Database Slicing (DS) algorithm that provides logical partitioning of the entire database between the processing nodes. These methods were implemented using n-parallel PROLOG from Paralogic. Results of experiments on an nCUBE-2 parallel computer are presented. INTRODUCTION It is well-known that Prolog language can be used efficiently as a 4GL query language to access and process relational databases [1]. Furthermore the Prolog language is well suited to run on a massively parallel computers. In recent years a large amount of work has been done investigating parallel Prolog execution models [2]. Our interest is determining whether parallel Prolog running on ..

    Maximizing "Return on Investment": Prolog Extensions for Effective Decision Support Applications

    No full text
    : Extensions to Prolog that offer the user portable Graphical User Interfaces (GUIs), transparent access to foreign databases, and scalable performance are presented. These extensions have been implemented on top of standard Prolog and can be shown to provide a powerful level of abstraction that ultimately leads to reduced costs and better return on investment for Decision Support (DS) applications. Introduction Building enterprise wide decision support (DS) applications has pushed procedural languages (i.e. C/C++) to the limit. Building such applications with traditional tools can lead to large costs and large delays in application development. Advances in object technology address some of these areas, but do not offer a complete solution. Building complex and sophisticated DS applications must be driven by cost savings and provide an acceptable return on investment. The ability of traditional tools and methods to meet these needs is highly questionable. Fortunately, Prolog has been ..
    corecore