Efficient parallel term matching and anti-unification

In this paper we present optimal processor x time parallel algorithms for term matching and anti-unification of terms represented as trees. Term matching is the special case of unification in which one of the terms is restricted to contain no variables. It has wide applicability to logic programming, term rewriting systems and symbolic pattern matching. Anti-unification is the dual problem of unification in which one computes the most specific generalization of two terms. It has application to inductive inference and theorem proving. Our algorithms run in O(log2N) time using N/log2N processors on a shared-memory model of computation that prohibits simultaneous reads or writes (EREW PRAM). These algorithms are the first polylogarithmic-time EREW algorithms with a processor x time product of the same order as that of their sequential counterparts, thereby permitting optimal speed-ups using any number of processors up to N/log2N. We also use the techniques developed in the paper to provide an N/log N-processor, O(log N)-time algorithm for a shared-memory model that allows both simultaneous reads and simultaneous writes (CRCW PRAM).

[1]  S. N. Maheshwari,et al.  Parallel Algorithms for the Connected Components and Minimal Spanning Tree Problems , 1982, Inf. Process. Lett..

[2]  G. Huet,et al.  Equations and rewrite rules: a survey , 1980 .

[3]  Richard P. Brent,et al.  The Parallel Evaluation of General Arithmetic Expressions , 1974, JACM.

[4]  Richard M. Karp,et al.  A Survey of Parallel Algorithms for Shared-Memory Machines , 1988 .

[5]  Gabriel M. Kuper,et al.  Efficient parallel algorithms for anti-unification and relative complement , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[6]  Dilip V. Sarwate,et al.  Computing connected components on parallel computers , 1979, CACM.

[7]  Richard Cole,et al.  Approximate Parallel Scheduling. Part I: The Basic Technique with Applications to Optimal Parallel List Ranking in Logarithmic Time , 1988, SIAM J. Comput..

[8]  Keith L. Clark,et al.  PARLOG: parallel programming in logic , 1986, ACM Trans. Program. Lang. Syst..

[9]  I. V. Ramakrishnan,et al.  Term Matching on Parallel Computers , 1989, J. Log. Program..

[10]  Richard Cole,et al.  Parallel merge sort , 1988, 27th Annual Symposium on Foundations of Computer Science (sfcs 1986).

[11]  Richard Cole,et al.  Deterministic Coin Tossing with Applications to Optimal Parallel List Ranking , 2018, Inf. Control..

[12]  Cynthia Dwork,et al.  Parallel Algorithms for Term Matching , 1988, SIAM J. Comput..

[13]  John C. Mitchell,et al.  On the Sequential Nature of Unification , 1984, J. Log. Program..

[14]  Jan Maluszynski,et al.  Unification-Free Execution of Logic Programs , 1985, SLP.

[15]  Lee Naish,et al.  Most specific logic programs , 1990, Annals of Mathematics and Artificial Intelligence.

[16]  Ehud Shapiro,et al.  A subset of Concurrent Prolog and its interpreter , 1988 .

[17]  Robert E. Tarjan,et al.  Finding Biconnected Components and Computing Tree Functions in Logarithmic Parallel Time (Extended Summary) , 1984, FOCS.

[18]  Jeffrey Scott Vitter,et al.  New Classes for Parallel Complexity: A Study of Unification and Other Complete Problems for P , 1986, IEEE Transactions on Computers.