Transparent concurrent execution of mutually exclusive alternatives

The task of concurrently computing alternative solutions to a problem where only one of the solutions is needed is examined. In this case the rule for selecting between the solutions is faster first, where the first successful alternative is selected. For problems where the required execution time is unpredictable, this method shows substantial execution time performance increases over other methods. In order to test the utility of the design, it is used for two application areas: distributed execution of recovery blocks and OR-parallelism in Prolog. The authors present: (1) a model for selection of alternatives in a sequential setting: (2) a transformation that allows alternatives to execute concurrently; (3) a description of the semantics-preservation mechanism; and (4) parameterization of where the performance improvements can be expected. Additionally, examples of application areas for the method are given.<<ETX>>

[1]  David R. Jefferson,et al.  Transparent Process Cloning: A Tool for Load Management of Distributed Programs , 1987, ICPP.

[2]  K. H. Kim,et al.  Distributed Execution of Recovery Blocks: An Approach for Uniform Treatment of Hardware and Software Faults in Real-Time Applications , 1989, IEEE Trans. Computers.

[3]  David W. Anderson,et al.  The IBM System/360 model 91: machine philosophy and instruction-handling , 1967 .

[4]  Jonathan M. Smith,et al.  Implementing remote fork() with checkpoint/restart , 1989 .

[5]  Robert H. Thomas,et al.  A Majority consensus approach to concurrency control for multiple copy databases , 1979, ACM Trans. Database Syst..

[6]  Elliott I. Organick,et al.  The Multics system , 1972 .

[7]  J. T. Robinson,et al.  On optimistic methods for concurrency control , 1979, TODS.

[8]  Marc J. Rochkind,et al.  The source code control system , 1975, IEEE Transactions on Software Engineering.

[9]  Vincent J. Kruskal Managing Multi-Version Programs with an Editor , 1984, IBM J. Res. Dev..

[10]  D. Morgan,et al.  The Multics System , 1973, IEEE Trans. Commun..

[11]  Nils J. Nilsson,et al.  Artificial Intelligence , 1974, IFIP Congress.

[12]  Marvin Theimer,et al.  Preemptable remote execution facilities for the V-system , 1985, SOSP '85.

[13]  Daniel G. Bobrow,et al.  TENEX, a paged time sharing system for the PDP - 10 , 1972, CACM.

[14]  K. H. Kim,et al.  Distributed Execution of Recovery Blocks: An Approach to Uniform Treatment of Hardware and Software Faults , 1984, IEEE International Conference on Distributed Computing Systems.

[15]  R CheritonDavid,et al.  Preemptable remote execution facilities for the V-system , 1985 .

[16]  W. F. Clocksin,et al.  Programming in Prolog, 2nd Edition , 1984 .

[17]  Eric C. Cooper Circus: A Replicated Procedure Call Facility , 1984, Symposium on Reliability in Distributed Software and Database Systems.

[18]  Robert E. Strom,et al.  Optimistic recovery in distributed systems , 1985, TOCS.

[19]  Jim A. Crammond A comparative study of unification algorithms for OR-parallel execution of logic languages , 1985, IEEE Transactions on Computers.

[20]  Irving L. Traiger,et al.  The notions of consistency and predicate locks in a database system , 1976, CACM.

[21]  P. M. Melliar-Smith,et al.  A program structure for error detection and recovery , 1974, Symposium on Operating Systems.

[22]  Eric C. Cooper Replicated distributed programs , 1985, SOSP 1985.

[23]  F. Warren Burton,et al.  Speculative computation, parallelism, and functional programming , 1985, IEEE Transactions on Computers.

[24]  David L. Black,et al.  The duality of memory and communication in the implementation of a multiprocessor operating system , 1987, SOSP '87.

[25]  David P. Reed,et al.  Naming and synchronization in a decentralized computer system , 1978 .

[26]  Jim Gray,et al.  Notes on Data Base Operating Systems , 1978, Advanced Course: Operating Systems.

[27]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[28]  Jonathan M. Smith,et al.  Effects of Copy-on-Write Memory Management on the Response Time of UNIX Fork Operations , 1988, Comput. Syst..

[29]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.