2005
Autores
Rocha, R; Silva, F; Costa, VS;
Publicação
THEORY AND PRACTICE OF LOGIC PROGRAMMING
Abstract
Logic programming languages, such as Prolog, provide a high-level, declarative approach to programming. Logic Programming offers great potential for implicit parallelism, thus allowing parallel systems to often reduce a program's execution time without programmer intervention. We believe that for complex applications that take several hours, if not days, to return an answer, even limited speedups from parallel execution can directly translate to very significant productivity gains. It has been argued that Prolog's evaluation strategy - SLD resolution often limits the potential of the logic programming paradigm. The past years have therefore seen widening efforts at increasing Prolog's declarativeness and expressiveness. Tabling has proved to be a viable technique to efficiently overcome SLD's susceptibility to infinite loops and redundant subcomputations. Our research demonstrates that implicit or-parallelism is a natural fit for logic programs with tabling. To substantiate this belief, we have designed and implemented an or-parallel tabling engine - OPTYap - and we used a shared-memory parallel machine to evaluate its performance. To the best of our knowledge, OPTYap is the first implementation of a parallel tabling engine for logic programming systems. OPTYap builds on Yap's efficient sequential Prolog engine. Its execution model is based on the SLG-WAM for tabling, and on the environment copying for or-parallelism. Preliminary results indicate that the mechanisms proposed to parallelize search in the context of SLD resolution can indeed be effectively and naturally generalized to parallelize tabled computations, and that the resulting systems can achieve good performance on shared-memory parallel machines. More importantly, it emphasizes our belief that through applying or-parallelism and tabling to logic programs the range of applications for Logic Programming can be increased.
2005
Autores
Rocha, R; Lopes, R; Silva, F; Costa, VS;
Publicação
LOGIC PROGRAMMING, PROCEEDINGS
Abstract
2005
Autores
Rocha, R; Silva, F; Costa, VS;
Publicação
LOGIC PROGRAMMING, PROCEEDINGS
Abstract
Tabling is an implementation technique that improves the declarativeness and expressiveness of Prolog by reusing answers to subgoals. During tabled execution, several decisions have to be made. These are determined by the scheduling strategy. Whereas a strategy can achieve very good performance for certain applications, for others it might add overheads and even lead to unacceptable inefficiency. The ability of using multiple strategies within the same evaluation can be a means of achieving the best possible performance. In this work, we present how the YapTab system was designed to support dynamic mixed-strategy evaluation of the two most successful tabling scheduling strategies: batched scheduling and local scheduling.
1994
Autores
Costa, VS; Correia, ME; Silva, FMA;
Publicação
Proceedings of the ILPS 94 Workshop on Design and Implementation of Parallel Logic Programming Systems, Ithaca, New York, USA, November 18, 1994
Abstract
1997
Autores
Correia, ME; Silva, F; Costa, VS;
Publicação
LOGIC PROGRAMMING - PROCEEDINGS OF THE 1997 INTERNATIONAL SYMPOSIUM
Abstract
One of the advantages of logic programming in the fact that it offers many sources of implicit parallelism, such as and-parallelism and or-parallelism Recently, research has been concentrated on integrating the different forms of parallelism into a single combined system. In this work we concentrate on the problem of integrating or-parallelism and independent and-parallelism for parallel Prolog systems. We contend that previous data structures require pure recomputation and therefore do not allow for orthogonality between and parallelism and or-parallelism. In contrast, we submit that a simpler solution, the sparse binding array, does guarantee this goal, and explain in detail how independent and-parallelism and or-parallelism can thus be efficiently combined.
2004
Autores
Lopes, R; Costa, VS; Silva, F;
Publicação
Proceedings of the IASTED International Conference on Parallel and Distributed Computing and Networks
Abstract
Logic programming provides a high-level view of programming that gives implementor; a vast latitude in what techniques to research towards obtaining the best performance for logic programs. The Emended Andorra Model was designed towards achieving reduction of the search space whilst exploiting all the available parallelism in the application. The BEAM is a first sequential implementation for the Extended Andorra Model with Implicit Control, that has been shown to obtain good results. In this work we propose the RAINBOW, a parallel execution model for the BEAM. We present a general overview of how to distribute work, propose alternative approaches towards addressing the binding problem for the EAM, and present a scheduling strategy.
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.