Compiling data-parallel Datalog (original) (raw)
Related papers
Data parallelism in logic programming
1991
Many researchers have been trying to use the implicit parallelism of logic languages parallelizing the execution of independent clauses. However this approach has the disadvantage of requiring a heavy overhead for processes scheduling and synchronizing, for data migration and for collecting the results. In this paper it is proposed a different approach, the data parallel one. The focus is on large collections of data and the core idea is to parallelize the execution of element-wise operations.
Load-Balancing Parallel Relational Algebra
High Performance Computing, 2020
Relational algebra (RA) comprises a basis of important operations, sufficient to power state-of-the-art reasoning engines for Datalog and related logic-programming languages. Parallel RA implementations can thus play a significant role in extracting parallelism inherent in a wide variety of analytic problems. In general, bottom-up logical inference can be implemented as fixed-point iteration over RA kernels; relations dynamically accumulate new tuples of information according to a set of rules until no new tuples can be discovered from previously inferred tuples and relevant rules (RA kernels). While this strategy has been quite successful in single-node contexts, it poses unique challenges when distributed over many-node, networked clusters—especially regarding how the work-load is balanced across available compute resources. In this paper, we identify two fundamental kinds of load imbalance and present a strategy to address each. We investigate both spatial load imbalance—imbalanc...
Parallel bottom-up processing of datalog queries
The Journal of Logic Programming, 1992
A few sections in this paper restrict their attention to linear sirups which are Datalog programs with one linear recursive rule r and one nonrecursive (exit) rule e. Each such program may be canonically represented as: e: t(Z):-s(Z). where: l t is the output (or derived) predicate symbol. . s is a base relation.
Practical Applications of Extended Deductive Databases in Datalog ⋆
2009
A wide range of additional forward chaining applications could be realized with deductive databases, if their rule formalism, their immediate consequence operator, and their fixpoint iteration process would be more flexible. Deductive databases normally represent knowledge using stratified Datalog programs with default negation. But many practical applications of forward chaining require an extensible set of user–defined built–in predicates. Moreover, they often need function symbols for building complex data structures, and the stratified fixpoint iteration has to be extended by aggregation operations. We present an new language Datalog, which extends Datalog by stratified meta–predicates (including default negation), function symbols, and user–defined built–in predicates, which are implemented and evaluated top–down in Prolog. All predicates are subject to the same backtracking mechanism. The bottom–up fixpoint iteration can aggregate the derived facts after each iteration based o...
Towards Effective Parallel Logic Programming
Abstract One of the advantages of logic programming (LP) and constraint logic programming (CLP) is the fact that one can exploit implicit parallelism in logic programs. Logic programs have two major forms of implicit parallelism: orparallelism (ORP) and and-parallelism (ANDP). In this work we survey some of work that has been taking place within the C LoPn project towards fast execution of logic programs.
Extending LOGFLOW with Parallel Relational Database Operations
2008
LOGFLOW is a parallel Prolog system. It is similar to recent parallel database systems concerning its dataflow execution model and its capability of running on shared-nothing architectures. The similarities between LOGFLOW and parallel database systems show that a new database system can be developed based on LOGFLOW in that both relational and deductive queries can be executed. In this paper we deal with relational database operations. Transformations of relational operators into the Logicflow Graph representation of Prolog programs are described and explained. Thus, LOGFLOW can operate as a relational database machine.
Relating Data-Parallelism and (and-) Parallelism in Logic Programs
Computer Languages, 1996
Much work has been done in the areas of and-parallelism and data parallelism in Logic Programs. Such work has proceeded to a certain extent in an independent fashion. Both types of parallelism offer advantages and disadvantages. Traditional (and-) parallel models offer generality, being able to exploit parallelism in a large class of programs (including that exploited by data parallelism techniques). Data parallelism techniques on the other hand offer increased performance for a restricted class of programs. The thesis of this paper is that these two forms of parallelism are not fundamentally different and that relating them opens the possibility of obtaining the advantages of both within the same system. Some relevant issues are discussed and solutions proposed. The discussion is illustrated through visualizations of actual parallel executions implementing the ideas proposed.
Parallel management of large deductive databases in a multi-processor environment
… , 1994. Proceedings., 7th …, 1994
This paper describes a parallel deductive database system, built on top of Prolog. The system is based on the TOP-DOWN evaluation of logic programs. Parallelism is provided at the rule level, by transforming the query AND/OR tree into Disjunctive Normal Form. The clauses of the transformed formula are executed independently in parallel, on a transputer multi-processor machine, using the processor-farm algorithm. Both main-memory consultation and direct disk access have been implemented and tested. The ...
Thread-Aware Logic Programming for Data-Driven Parallel Programs
2015
Declarative programming in the style of functional and logic programming has been hailed as an alternative parallel programming style where computer programs are automatically parallelized without programmer control. Although this approach removes many pitfalls of explicit parallel programming, it hides important information about the underlying parallel architecture that could be used to improve the scalability and efficiency of programs. In this paper, we present a novel programming model that allows the programmer to reason about thread state in data-driven declarative programs. This abstraction has been implemented on top of Linear Meld, a linear logic programming language that is designed for writing graphbased programs. We present several programs that show the flavor of our new programming model, including graph algorithms and a machine learning algorithm. Our goal is to show that it is possible to take advantage of architectural details without losing the key advantages of l...
Logicflow execution model for parallel databases
Future Generation Computer Systems, 2000
The LOGFLOW parallel Prolog system is similar to the recent parallel database systems concerning its dataflow execution model and its capability of running on shared-nothing architectures. In this paper the abstract execution and abstract machine models of LOGFLOW are examined from a database point of view. Transformations of relational operators into the Logicflow Graph representation of Prolog programs are explained. Thus, LOGFLOW can operate as a relational database machine.