Introduction to Reversible Computing (Chapman & Hall/CRC Computational Science)

Introduction to Reversible Computing (Chapman & Hall/CRC Computational Science)

Kalyan S. Perumalla

Language: English

Pages: 325

ISBN: 1439873402

Format: PDF / Kindle (mobi) / ePub


Few books comprehensively cover the software and programming aspects of reversible computing. Filling this gap, Introduction to Reversible Computing offers an expanded view of the field that includes the traditional energy-motivated hardware viewpoint as well as the emerging application-motivated software approach.

Collecting scattered knowledge into one coherent account, the book provides a compendium of both classical and recently developed results on reversible computing. It explores up-and-coming theories, techniques, and tools for the application of reversible computing―the logical next step in the evolution of computing systems.

The book covers theory, hardware and software aspects, fundamental limits, complexity analyses, practical algorithms, compilers, efficiency improvement techniques, and application areas. The topics span several areas of computer science, including high-performance computing, parallel/distributed systems, computational theory, compilers, power-aware computing, and supercomputing.

The book presents sufficient material for newcomers to easily get started. It provides citations to original articles on seminal results so that readers can consult the corresponding publications in the literature. Pointers to additional resources are included for more advanced topics. For those already familiar with a certain topic within reversible computing, the book can serve as a one-stop reference to other topics in the field.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Reversible Model 6.6 Universality of Computation and Its Reversal . . . . . . . . . 6.7 Space and Time Complexity of Reversible Execution . . . . . 6.7.1 Complexity of Simple Reversal with One Segment . . 6.7.2 Partitioning Execution into Two Segments . . . . . . 6.7.3 Partitioning Execution into g Segments . . . . . . . . 6.7.4 Optimizing g for Minimal Total Space . . . . . . . . 6.7.5 Generalizing the Time-Space Trade-Off . . . . . . . . 6.8 Pebble Games . . . . . . . . . . . . . . . . . . . .

reversible hardware designs that reduce energy usage in exchange for a lower speed of computation, partial (ir)reversibility in the form of (ir)recoverable energy is possible, which may provide a better trade-off between energy savings and computation speed or memory size [Li and Vitanyi, 1996, Buhrman et al., 2001]. 3.3 Unit of Reversibility The notion of reversibility (at least in relation to the inanimate world) is rather relative. Indeed, many levels of reversibility, and thereby

trace (see also Section 5.7). The program could, for example, encode the redundant bits into a fewer number of bits, and also detect and exploit patterns in the essential bits, and potentially perform other optimizations of such kinds. Unfortunately, despite intuition about the potential for reductions in the number of bits, it is not possible to determine the shortest number of bits needed, as shown next by its relation to Berry’s Paradox [Whitehead and Russell, 1925]. Berry’s Paradox is best

performed on this model cannot be retraced uniquely. Also, it has not been clear how to define a reversible Turing Machine, and if it is indeed possible to achieve reversible execution in general for any computable function. Following a series of efforts by several researchers to resolve this problem, this matter was finally settled in a seminal paper in 1973 by Charles H. Bennett, who showed that it is possible to not only define a reversible execution model, but also simulate the execution of

Normalized { ... goto continue_label; ... continue_label: } In the case of while, for and do-while statements, the position of continue_label is already correctly placed during the normalization phase to preserve the semantics of the continue statement. 10.3.10 break Statements The following normalization is performed on break statements that are present inside the bodies of for, do-while, and while statements. Each break statement is normalized into an equivalent goto statement: Original {

Download sample

Download