The virtual time machine

Abstract : Existing multiprocessors and multicomputers require the programmer or compiler to perform data dependence analysis at compile time. The author proposes a parallel computer that performs this task at runtime. In particular, the Virtual Time Machine (VTM) detects violations of data dependence constraints as they occur, and automatically recovers from them. A sophisticated memory system that is addressed using both a spatial and a temporal coordinate is used to efficiently implement this mechanism. Initially targeted for discrete event simulation applications, many of the ideas used in the machine architecture have direct application in the more general realm of parallel computation. The long term goal of this work is to develop a general purpose parallel computer that will support a wide range of parallel programming paradigms. This paper outlines the motivations behind the VTM architecture, the underlying computation model, a proposed implementation, and initial performance results. A recurring theme that pervades the entire paper is our contention that existing shared memory and message-base machines do not pay adequate attention to the dimension of time. We argue that this architectural deficiency is the underlying reason behind many difficult problems in parallel computation today.

[1]  Peter Tinker Task Scheduling for General Rollback Computing , 1989, ICPP.

[2]  Yale N. Patt,et al.  Checkpoint Repair for High-Performance Out-of-Order Execution Machines , 1987, IEEE Transactions on Computers.

[3]  Pete Tinker,et al.  Parallel execution of sequential scheme with ParaTran , 1988, LISP and Functional Programming.

[4]  Kai Li,et al.  IVY: A Shared Virtual Memory System for Parallel Computing , 1988, ICPP.

[5]  Raphael A. Finkel,et al.  Handling Timing Errors in Distributed Programs , 1988, IEEE Trans. Software Eng..

[6]  Douglas W. Jones,et al.  An empirical comparison of priority-queue and event-set implementations , 1986, CACM.

[7]  Alan Jay Smith,et al.  Branch Prediction Strategies and Branch Target Buffer Design , 1995, Computer.

[8]  Richard M. Fujimoto,et al.  Time Warp on a Shared Memory Multiprocessor , 1989, ICPP.

[9]  N. S. Barnett,et al.  Private communication , 1969 .

[10]  David L. Kuck,et al.  The Structure of Computers and Computations , 1978 .

[11]  Gregory Francis Pfister,et al.  The Yorktown Simulation Engine: Introduction , 1982, DAC 1982.

[12]  Thomas F. Knight An architecture for mostly functional languages , 1986, LFP '86.

[13]  H. T. Kung,et al.  On optimistic concurrency control , 1981 .

[14]  Thomas J. LeBlanc,et al.  Debugging Parallel Programs with Instant Replay , 1987, IEEE Transactions on Computers.

[15]  Robert E. Tarjan,et al.  Self-adjusting binary search trees , 1985, JACM.

[16]  Jayadev Misra,et al.  Distributed discrete-event simulation , 1986, CSUR.

[17]  David R. Jefferson,et al.  Virtual time , 1985, ICPP.

[18]  Richard M. Fujimoto,et al.  Performance Measurements of Distributed Simulation Strategies. , 1987 .