A backtracking algorithm for the stream AND-parallel execution of logic programs (Q1118390)

From MaRDI portal
scientific article
Language Label Description Also known as
English
A backtracking algorithm for the stream AND-parallel execution of logic programs
scientific article

    Statements

    A backtracking algorithm for the stream AND-parallel execution of logic programs (English)
    0 references
    0 references
    0 references
    0 references
    0 references
    1988
    0 references
    We present the first backtracking algorithm for stream AND-parallel logic programs. It relies on compile-time knowledge of the dataflow graph of each clause to let it figure out efficiently which goal to kill or restart when a goal fails. This crucial information, which we derive from mode declarations, was not available at compile-time in any previous stream AND-parallel system. We show that modes can increase the precision of the backtracking algorithm, though our algorithm allows this precision to be traded off against overhead on a procedure-by-procedure and call-by-call basis. The modes also allow our algorithm to handle efficiently programs that manipulate partially instantiated data structures and an important class of programs with circular dependency graphys. On code that does not need backtracking, the efficiency of our algorithm approaches that of the committed-choice languages; on code that does need backtracking its overhead is comparable to that of the independent AND-parallel backtracking algorithms.
    0 references
    0 references
    0 references
    0 references
    0 references
    0 references
    stream AND-parallelism
    0 references
    don't-know nondeterminism
    0 references
    intelligent backtracking
    0 references
    strong and precise modes
    0 references