Dynamo: a transparent dynamic optimization system

  title={Dynamo: a transparent dynamic optimization system},
  author={Vasanth Bala and Evelyn Duesterwald and Sanjeev Banerjia},
  booktitle={PLDI '00},
We describe the design and implementation of Dynamo, a software dynamic optimization system that is capable of transparently improving the performance of a native instruction stream as it executes on the processor. The input native instruction stream to Dynamo can be dynamically generated (by a JIT for example), or it can come from the execution of a statically compiled native binary. This paper evaluates the Dynamo system in the latter, more challenging situation, in order to emphasize the… 

Figures from this paper

Dynamic translation of runtime environments for heterogeneous computing
The design of Caracal is presented, a dynamic compiler that can translate between runtime environments used in heterogeneous computing and the results show that the requirement for structured control flow can impact register pressure, and can degrade performance by as much as 2.5X.
Key-Value Datastores Comparison in AppScale
A simple framework that employs a single API – the D atastore API from the Google App Engine cloud computing platform – to interface to different open source distributed database technologies in use today, which facilitates empirical evaluation and comparison of these disparate systems by web software developers.
Dynamic Optimization Effects on DBT
The influence of trace quality on dynamic optimization is discussed and three dynamic optimizations are presented and it is shown which gain expectations a dynamic optimization system can have.
Java Virtual Machine Interpreter : Porting and Extending . Final Report CSC 2227
This document describes the progress of the project on porting existing YETI [7] for x86 architecture. It shows what changes were made in the existing YETI project, gives short literature survey with
Automated Diversity in Computer Systems
The objective of this effort is to address internet-wide weakness by introducing diversity into computers so that a successful attack on one computer does not necessarily work on another one, even though it may be running identical software.
Comparing Program Phase Detection Techniques
Threedynamic program phase detection techniques are compared- using instruction working sets, basic block vectors (BBV), and conditional branch counts to show that techniques based on procedure granularities don't perform as well as those based on instruction or basic block granularity.
SIND: A Framework for Binary Translation
SIND aims to provide an easily-extensible and flexible framework for research and development of applications and techniques of binary translation, and current research focuses are dynamic optimization of running binaries and dynamic security augmentation and integrity assurance.
Processor-Tracing Guided Region Formation in Dynamic Binary Translation
This article presents a lightweight region formation method guided by processor tracing that leverage the branch history information stored in the processor to reconstruct the program execution profile and effectively form high-quality regions with low cost.
Cold Code Analysis
The amount of additional data-flow information one can obtain by going beyond hot trace boundaries into non-frequently executed (cold) code is measured and it is shown that in some cases, as in liveness analysis, one can considerably improve the information available, thus creating more opportunities for trace optimization.
Customizing the Computation Capabilities of Microprocessors
This dissertation develops strategies to utilize accelerators, without changing the instruction set, by developing a simple microarchitectural interface that supports a plug-and-play model for integrating accelerators into a pre-designed microprocessor.