Regular Article
Parallel Logic Programming Systems on Scalable Architectures

https://doi.org/10.1006/jpdc.2000.1629Get rights and content

Abstract

Parallel logic programming (PLP) systems are sophisticated examples of symbolic computing systems. PLP systems address problems such as allocating dynamic memory, scheduling irregular computations, and managing different types of implicit parallelism. Most PLP systems have been developed for bus-based architectures. However, the complexity of PLP systems and the large amount of data they process raise the question of whether logic programming systems can still achieve good performance on modern scalable architectures, such as distributed shared-memory (DSM) systems. In this work we use execution-driven simulation of a cache-coherent DSM architecture to investigate the performance of Andorra-I, a state-of-the-art PLP system, on a modern multiprocessor. The results of this simulation show that Andorra-I exhibits reasonable running time performance, but it does not scale well. Our detailed analysis of cache misses and their sources expose several opportunities for improvements in Andorra-I. Based on this analysis, we modify Andorra-I using a set of simple techniques that led to significantly better running time and scalability. These results suggest that Andorra-I can and should perform well on modern multiprocessors. Furthermore, as Andorra-I shares its main data structures with several PLP systems, we conclude that the methodology and techniques used in our work can greatly benefit these other PLP systems.

References (30)

  • K.A.M. Ali et al.

    The Muse or-parallel Prolog model and its performance

    Proceedings of the 1990 North American Conference on Logic Programming

    (1990)
  • A. Beaumont et al.

    Flexible scheduling of or-parallelism in Aurora: The Bristol scheduler

  • J. Bevemyr et al.

    Reform Prolog: The language and its implementation

    Proceedings of the Tenth International Conference on Logic Programming

    (1993)
  • R. Bianchini et al.

    Algorithms for categorizing multiprocessor communication under invalidate and update-based coherence protocols

    Proceedings of the 28th Annual Simulation Symposium

    (1995)
  • T. Chikayama et al.

    A portable and reasonably efficient implementation of KL1

    Proceedings of the Eleventh International Conference on Logic Programming

    (1993)
  • J. A. Crammond, Implementation of Committed Choice Logic Languages on Shared Memory Multiprocessors, Ph.D. thesis,...
  • D. Culler et al.

    Parallel Computer Architecture: A Hardware/Software Approach

    (1998)
  • I.C. Dutra

    Strategies for scheduling and- and or-work in parallel logic programming systems

    Proceedings of the 1994 International Logic Programming Symposium

    (1994)
  • J.R. Goodman

    Using cache memory to reduce processor-memory traffic

    Proceedings of the 10th International Symposium on Computer Architecture

    (1983)
  • G. Gupta et al.

    &-ACE: A high performance parallel Prolog system

    Proceedings of the First International Symposium on Parallel Symbolic Computation, PASCO'94

    (1994)
  • M.V. Hermenegildo et al.

    &-Prolog and its performance: Exploiting independent and-parallelism

    Proceedings of the Seventh International Conference on Logic Programming

    (June 1990)
  • L. Kovács

    An incremental Prolog system development for the floor plan design by dissecting

    Proceedings of the International Conference on Practical Application of Prolog

    (1992)
  • D. Lenoski et al.

    The dash prototype: Logic overhead and performance

    IEEE Trans. Parallel Distrib. Systems

    (January 1993)
  • T. Lovett et al.

    The Symmetry multiprocessor system

    International Conference of Parallel Processing

    (1988)
  • Cited by (0)

    This work was sponsored by CNPq, the Brazilian Research Council.

    f1

    E-mail: [email protected], [email protected], [email protected]

    View full text