a high level reversible language for modular average case analysis

22
Reversible Computation - RC 2009 A Satellite Workshop of ETAPS 2009 March 22nd,2009 York M.Schellekens,D.Early,E.Popovici,and D.Vasudevan(p) Centre for Efficiency Oriented Languages UCC,Ireland A High Level Reversible Language for Modular Average Case Analysis

Upload: roddy

Post on 01-Feb-2016

41 views

Category:

Documents


0 download

DESCRIPTION

A High Level Reversible Language for Modular Average Case Analysis. M.Schellekens,D.Early,E.Popovici,and D.Vasudevan (p) ‏ Centre for Efficiency Oriented Languages UCC,Ireland. Reversible Computation - RC 2009 A Satellite Workshop of ETAPS 2009 March 22nd,2009 York. Outline. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: A High Level Reversible Language for Modular Average Case Analysis

Reversible Computation - RC 2009 A Satellite Workshop of ETAPS 2009

March 22nd,2009York

M.Schellekens,D.Early,E.Popovici,and D.Vasudevan(p)

Centre for Efficiency Oriented Languages

UCC,Ireland

A High Level Reversible Language for Modular Average Case Analysis

Page 2: A High Level Reversible Language for Modular Average Case Analysis

Outline

Introduction Reversible Computing MOQA Overview Reversible MOQA The Cost of Operations Reversible Languages Conclusion

Page 3: A High Level Reversible Language for Modular Average Case Analysis

MotivationMotivation

MOQA

Static Average Case Analysis

Static Timing/Power Analysis

ReversibleLanguage

Reversibility

Reversible MOQA

Page 4: A High Level Reversible Language for Modular Average Case Analysis

Introduction

The MOQA “language" developed at CEOL: suite of data-structuring operations together with conditionals, for-loops and recursion.

MOQA is implemented at CEOL in Java 5.0 as MOQA-Java

The associated static analysis tool Distri-Track: modular derivation of the average case time of MOQA programs

Modular Property

Reuse

MOQA enables the finitary representation and tracking of the distribution of data states throughout computations

unlocks the true potential of modular reasoning.

Page 5: A High Level Reversible Language for Modular Average Case Analysis

Introduction Overview of some MOQA features and discuss some links

with reversible computing.

Reversible aspect of MOQA focusing on one of its main operations - Product.

We show how this operation can be made reversible

We indicate how MOQA enables the derivation of the cost of the operation as well as the cost of its reversal.

Discuss on some available Reversible Languages

Applications

Page 6: A High Level Reversible Language for Modular Average Case Analysis

Reversible Computing

Reversibility - For any output it is possible to recompute the input which gave rise to the output in question.

Reversibility - low power design.

MOQA ( With certain modifications) - a high level reversible language - low power analysis- using static average-case analysis.

The use of MOQA as a high level reversible language - a new type of application - Modular Static Average-Case Analysis.

Random bag preservation – a formal way to track distributions in the MOQA context

established via a one-to-one correspondence between inputs and outputs of basic MOQA operations.

Page 7: A High Level Reversible Language for Modular Average Case Analysis

Reversible Computing

The reversible aspects of MOQA -used not only to determine the average-case power – also to achieve power optimization based on traditional reversible approaches.

A few exceptions focus on high-level reversible languages, including the language JANUS.

Page 8: A High Level Reversible Language for Modular Average Case Analysis

MOQA Overview Basic Data Structure – Labelled Partial Orders(LPO).

An LPO is a triple(A,⊑,l),

where

A is a set (assumed to be finite),

⊑ is a partial order on A (that is, ⊑ is a subset of A x A which is reflexive, transitive and anti-symmetric).

l is an increasing injection from A into a totally ordered set (known as the set of labels).

Random Structure – Given a partial order (A,⊑), the random structure over a given label set C is Rc(A), which is the set of all LPOs (A,⊑,l) such that l(A) = C.

Random Bag – A random bag is a multiset of random structures.

Page 9: A High Level Reversible Language for Modular Average Case Analysis

MOQA Overview

A Random Structure over the label set {1,2,3,4,5}

A Hasse Diagram

5

1

4

2 3

5

1

4

3 2

5

2

4

1 3

5

2

4

3 1

5

3

4

1 2

5

4

2

3 1

5

4

2

1 3

5

4

3

2 1

Page 10: A High Level Reversible Language for Modular Average Case Analysis

MOQA Overview Series Operation

Parallel Operation

Partial Order is in Series -Parallel Form, if it is build from single partial orders by series and

parallel operations only.

(i)Series: α ⊗ β = (A1 U A2, ⊑1 U ⊑2 U (A1 x A2))

(i)Parallel: α || β = (A1 U A2, ⊑1 U ⊑2 )

Page 11: A High Level Reversible Language for Modular Average Case Analysis

Book Keeping of MOQA Product

Index needed to reverse the product operation is

If we call the product operation on

an LPO from R(A,⊑ A)

and an LPO from R(B, ⊑ B)

and get an output LPO (A U B ,⊑, l)

and an index i,

Then we can not only determine

- Which members of each of the original random structures the input were,

- Reverse each swap in product operations to uncompute back to original input

A

=i i

xi

1

1

Page 12: A High Level Reversible Language for Modular Average Case Analysis

Algorithm to uncompute product operation step by step

Book Keeping of MOQA Product

i) Replace i) Replace ⊑ with ⊑A U ⊑B (or equivalently, remove ⊑ with ⊑A U ⊑B (or equivalently, remove all the pairs of the form (a,b) for a ∈ A and b all the pairs of the form (a,b) for a ∈ A and b ∈ B)∈ B)

ii) Set j = |A| , A' = {}ii) Set j = |A| , A' = {}

v) Set B' = l (AUB) \ A'v) Set B' = l (AUB) \ A'

vi) Find the smallest positive integer p > |A| such thatvi) Find the smallest positive integer p > |A| such that ccpp ∊∊ A' and the largest positive integer q < |A| such that A' and the largest positive integer q < |A| such that

ccq q ∊ B'∊ B'

iii) Find the least positive integer k iii) Find the least positive integer k ≥≥ j such that j such that

j

k<i

j

k 1

iv) Add civ) Add ck k to A', replace with , and replace j with j-1to A', replace with , and replace j with j-1

. if j > 0, return to step 3.. if j > 0, return to step 3.

j

ki

1

Page 13: A High Level Reversible Language for Modular Average Case Analysis

Reversible MOQA An Example of Product Reversal

9

78

6 5

4 2 3

1

9

78

6 5

4 2 3

1

Input Output

Page 14: A High Level Reversible Language for Modular Average Case Analysis

Reversible MOQA An Example of Product Reversal

9

78

6 5

4 2 3

1

9

78

6 5

4 2 3

1

B A

Step:1

Page 15: A High Level Reversible Language for Modular Average Case Analysis

Reversible MOQAProduct Reversal

Example9

78

6 5

4 2 3

1

9

78

6 2

4 5 3

1

9

78

6 2

4 5 3

1

1

31

7

Page 16: A High Level Reversible Language for Modular Average Case Analysis

The Average Cost of Product Operation

Page 17: A High Level Reversible Language for Modular Average Case Analysis

The Cost of Product Operation-Reversible

Page 18: A High Level Reversible Language for Modular Average Case Analysis

Reversible Languages Janus

Reversible Combinatory Logic – Based on Lambda Calculus

Automata based Structural Approach

Pendulum Assembly Language Reversible MOQA

Potential Applications

Static analysis of average power consumption

Power efficiency

Fault Tolerant Reversible Architectures

Automatic Test Pattern Generation(ATPG)

Page 19: A High Level Reversible Language for Modular Average Case Analysis

Physical Medium

Levels of ReversibilityLevels of Reversibility

Languages/application

Architecture/instruction set

Logic/Gate Level

Transistor

Page 20: A High Level Reversible Language for Modular Average Case Analysis

Conclusion

MOQA Reversible MOQA Cost of Operation for product operation Applications Future work – Extending Reversible MOQA

Page 21: A High Level Reversible Language for Modular Average Case Analysis

Thank You For Your Attention!Thank You For Your Attention!

Page 22: A High Level Reversible Language for Modular Average Case Analysis

Questions ?Questions ?