2000
Autores
Eduardo Correia, M; Santos Costa, V;
Publicação
Electronic Notes in Theoretical Computer Science
Abstract
One of the advantages of logic programming is the fact that it offers several sources of implicit parallelism. One particularly interesting form of And-Parallelism is Independent And-Parallelism (IAP). Most work on the implementation of IAP is based on Hermenegildo's RAP-WAM. Unfortunately there are some drawbacks associated with the classical approaches based on the use of parcalls and markers. One first observation is that the introduction of parcall frames significantly slows down sequential execution. Moreover, it may result in fine-grained parallel work. We found these problems to be particularly significant in the context of the implementation of combined AND/OR systems. In this paper we take a fresh look at this issue. Our goal is to start from a standard sequential Prolog implementation and try to discover the minimal number of changes that would be required for an efficient implementation of IAP. The key ideas in our design are to (i) to always take advantage of analogy between or-parallelism and IAP; (ii) to avoid creating new structures by adapting preexistingx WAM data-structures wherever possible; and (iii) to avoid major changes to the compiler. The authors would like to acknowledge and thank the contribution and support from Fernando Silva. The work has also benefitted from discussions with Luis Fernando Castro, Ines de Castro Dutra, Kish Shen, Gopal Gupta, and Enrico Pontelli. Our work has been partly supported by Fundaçã da Ciencia e Tecnologia and JNICT under the projects Melodia (JNICT/PBIC/C/TIT/2495/95) and Dolphin (PRAXIS/2/2.l/TIT/1577/95). © 2000 Published by Elsevier B.V.
2000
Autores
Santos Costa, V; Bianchini, R; De Castro Dutra, I;
Publicação
Journal of Parallel and Distributed Computing
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. © 2000 Academic Press.
2000
Autores
Pontelli, E; Costa, VS;
Publicação
PADL
Abstract
2000
Autores
Dutra, I; Santos Costa, V; Gupta, G; Pontelli, E; Carro, M; Kacsuk, P;
Publicação
Electronic Notes in Theoretical Computer Science
Abstract
1999
Autores
Silva, FMA; Paulino, H; Lopes, LMB;
Publicação
Recent Advances in Parallel Virtual Machine and Message Passing Interface, 6th European PVM/MPI Users' Group Meeting, Barcelona, Spain, September 26-29, 1999, Proceedings
Abstract
We present the architecture of a parallel programming system, the di_pSystem. Our target machine consists of clusters of multiprocessors interconnected with very fast networks. The system aims to provide a programming style close to the shared memory programming model. This is achieved by a software layer between the programmer and the operating system that supports the communication between individual computational agents and that dynamically balances the work-load in the system. This layer effectively hides much of the complexity of programming distributed architectures from the programmer while being competitive in performance. The low-level communication in the di_pSystem is implemented using MPI as a backbone. Initial results indicate that the system is close in performance to MPI, a fact that we attribute to its ability to dynamically balance the work-load in the computations. © Springer-Verlag Berlin Heidelberg 1999.
1999
Autores
Rocha, R; Silva, FMA; Costa, VS;
Publicação
Progress in Artificial Intelligence, 9th Portuguese Conference on Artificial Intelligence, EPIA '99, Évora, Portugal, September 21-24, 1999, Proceedings
Abstract
YapOr is an or-parallel system that extends the Yap Prolog system to exploit implicit or-parallelism in Prolog programs. It is based on the environment copying model, as first implemented in Muse. The development of YapOr required solutions for some important issues, such as designing the data structures to support parallel processing, implementing incremental copying technique, developing a memory organization able to answer with efficiency to parallel processing and to incremental copying in particular, implementing the scheduler strategies, designing an interface between the scheduler and the engine, implementing the sharing work process, and implementing support to the cut builtin. An initial evaluation of YapOr performance showed that it achieves very good performance on a large set of benchmark programs. Indeed, YapOr compares favorably with a mature parallel Prolog system such as Muse, both in terms of base speed and in terms of speedups. © Springer-Verlag Berlin Heidelberg 1999.
The access to the final selection minute is only available to applicants.
Please check the confirmation e-mail of your application to obtain the access code.