An infrastructure for adaptive dynamic optimization
By Derek Bruening, Timothy Garnett, Saman P. Amarasinghe. International Symposium on Code Generation and Optimization, 2003. CGO 2003., 2003
618 citations recorded by the source corpus.
Dynamic optimization is emerging as a promising approach to overcome many of the obstacles of traditional static compilation. But while there are a number of compiler infrastructures for developing static optimizations, there are very few for developing dynamic optimizations. We present a framework for implementing dynamic analyses and optimizations. We provide an interface for building external modules, or clients, for the DynamoRIO dynamic code modification system. This interface abstracts away many low-level details of the DynamoRIO runtime system while exposing a simple and powerful, yet efficient and lightweight API. This is achieved by restricting optimization units to linear streams of code and using adaptive levels of detail for representing instructions. The interface is not restricted to optimization and can be used for instrumentation, profiling, dynamic translation, etc. To demonstrate the usefulness and effectiveness of our framework, we implemented several optimizations. These improve the performance of some applications by as much as 40% relative to native execution. The average speedup relative to base DynamoRIO performance is 12%.
Subfields: Artificial Intelligence, Hardware and Architecture, Software
View Paper: https://www.semanticscholar.org/paper/ef0579f4b7e2e448587f720127614064c98e2335
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Julian Seward
- Nicholas Nethercote
- J. Demmel
- R. Vuduc
- Derek Bruening
- Monica S. Lam
- Olatunji Ruwase
- Heng Yin
In Hardware and Architecture
- Julian Seward
- Nicholas Nethercote
- J. Demmel
- David M. Brooks
- R. Vuduc
- Margaret Martonosi
- Derek Bruening
- Monica S. Lam
In Software
- Julian Seward
- Nicholas Nethercote
- J. Demmel
- R. Vuduc
- Olatunji Ruwase
- Monica S. Lam
- Heng Yin
- David E. Evans
Citations in the corpus
- N-Variant Systems: A Secretless Framework for Security through Diversity (2006, background): “Strata and other software dynamic translators [4, 11] have demonstrated that it is possible to implement software dynamic translation without unreasonable performance penalty.”
- Graphite: A distributed parallel simulator for multicores (2010, methodology): “Currently, Graphite uses Pin [22] as the front end, although Graphite’s modular design means that another dynamic translation tool such as QEMU [4] or DynamoRio [7] could be used instead.”
- Dynamic-Compiler-Driven Control for Microprocessor Energy and Performance (2006, background): “get [3]), we will extend the existing profiling infrastructure to monitor and identify hot functions or loops.”
- Automatic performance tuning of sparse matrix kernels (2003, methodology): “We refer the reader to Smith’s survey [281] and related work on dynamic compilation software architectures [207, 62] for additional references on specific run-time code generation techniques [83, 253, 138].”
- AddressSanitizer: A Fast Address Sanity Checker (2012, methodology): “int *a = new int[2]; // 8-aligned int *u = (int*)((char*)a + 6); *u = 1; // Access to range [6-9]”
- A dynamic compilation framework for controlling microprocessor energy and performance (2005, background): “The most significant one is that, just as for any dynamic optimization technique, every cycle spent for optimization might be a cycle lost to execution (unless optimizations are performed as side-line optimizations on a chip multiple-processor [5]).”
- SoK: Eternal War in Memory (2013, neutral): “We cover enforcing this policy under Section VII-B.”
- Valgrind: a framework for heavyweight dynamic binary instrumentation (2007, methodology): “Variations are also possible; for example, DynamoRIO allows instruction bytes to be modified in-place before being copied through.”
- A Practical Dynamic Buffer Overflow Detector (2004, methodology): “This technique was implemented in the DynamoRIO dynamic code modification system[3, 4].”
- DroidScope: Seamlessly Reconstructing the OS and Dalvik Semantic Views for Dynamic Android Malware Analysis (2012, background): “Dynamic Binary Instrumentation PIN [27], DynamoRIO [5], and Valgrind [32] are powerful dynamic instrumentation tools that analyze user-level programs.”