Artificial intelligence
AHR: a parallel computer for pure Lisp
Parallel computation and computers for artificial intelligence
Performance of symbolic applications on a parallel architecture
International Journal of Parallel Programming
Or-parallel execution models of prolog
II and Colloquium on Functional and Logic Programming and Specifications (CFLP) on TAPSOFT '87: Advanced Seminar on Foundations of Innovative Software Development
Constructs and evaluations strategies for intelligent speculative parallelism—armageddon revisited
CSC '88 Proceedings of the 1988 ACM sixteenth annual conference on Computer science
Evon: an extended von Neumann model for parallel processing
ACM '86 Proceedings of 1986 ACM Fall joint computer conference
An abstract machine based execution model for computer architecture design and efficient implementation of logic programs in parallel
Controlling the execution of logic programs
Controlling the execution of logic programs
Constructs and evaluations strategies for intelligent speculative parallelism—armageddon revisited
CSC '88 Proceedings of the 1988 ACM sixteenth annual conference on Computer science
Hi-index | 0.00 |
This report addresses speculative parallelism (the assignment of spare processing resources to tasks which are not known to be strictly required for the successful completion of a computation) at the user and application level. At this level, the execution of a program is seen as a (dynamic) tree—a graph, in general. A solution for a problem is a traversal of this graph from the initial state to a node known to be the answer. Speculative parallelism then represents the assignment of resources to multiple branches of this graph even if they are not positively known to be on the path to a solution.In highly non-deterministic programs the branching factor can be very high and a naive assignment will very soon use up all the resources. This report presents work assignment strategies other than the usual depth-first and breadth-first. Instead, best-first strategies are used. Since their definition is application-dependent, the application language contains primitives that allow the user (or application programmer) to a) indicate when intelligent OR-parallelism should be used; b) provide the functions that define “best,” and c) indicate when to use them.An abstract architecture enables those primitive to perform the search in a “speculative” way, using several processors, synchronizing them, killing the siblings of the path leading to the answer, etc. The user is freed from worrying about these interactions. Several search strategies are proposed and their implementation issues are addressed. “Armageddon,” a global pruning method, is introduced, together with both a software and a hardware implementation for it.The concepts exposed are applicable to areas of Artificial Intelligence such as extensive expert systems, planning, game playing, and in general to large search problems. The proposed strategies, although showing promise, have not been evaluated by simulation or experimentation.