<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">DEPARTMENT OF COMPUTER SCIENCE<div><br class="webkit-block-placeholder"></div><div>UNIVERSITY OF CHICAGO</div><div><br class="webkit-block-placeholder"></div><div>Date: Friday, April 4, 2008</div><div>Time: 2:30 p.m.</div><div>Place: Ryerson 251, 1100 E. 58th Street</div><div><br class="webkit-block-placeholder"></div><div>----------------------------------------------------------</div><div><br class="webkit-block-placeholder"></div><div>Speaker:<span class="Apple-tab-span" style="white-space: pre; ">        </span>Chi-Keung Luk</div><div><br class="webkit-block-placeholder"></div><div>From:<span class="Apple-tab-span" style="white-space: pre; ">                </span>Intel Corporation</div><div><br class="webkit-block-placeholder"></div><div>Web page:<span class="Apple-tab-span" style="white-space: pre; ">        <a href="http://www.cs.princeton.edu/~frances/">http://www.ckluk.org/ck/</a></span></div><div><br class="webkit-block-placeholder"></div><div>Title: Dynamic Compilation in Practice: From Instrumentation to Parallelization</div><div><br class="webkit-block-placeholder"></div><div>Abstract:&nbsp;As the complexity of computer systems continues to grow, the
job of a compiler is increasingly challenging as it strives to generate
optimized code for many different runtime environments. One promising approach
to addressing this challenge is via dynamic compilation, a technique that
compiles a program while it runs and thus has the complete runtime information.
Despite its potential, the success of dynamic compilation has been largely
limited to providing architectural compatibility---the best known example is
the translation of Java bytecodes to native machine codes. Looking forward, I
argue that dynamic compilation should be more heavily used in the software
stack. In this talk, I present two new usages of dynamic compilation originated
from my research at Intel, namely instrumentation and parallelization.</div>
<!--StartFragment-->



<div class="MsoNormal">&nbsp;<o:p></o:p></div>

<div class="MsoNormal">In the first part, I will present the Pin instrumentation
system, which has become very popular for developing architectural and program
analysis tools. By using dynamic compilation to insert instrumentation codes on
the fly, Pin can perform very fine-grain monitoring of the architectural state
of a program. And by providing a simple-to-use API, programmers can easily
write a variety of tools ranging from cache simulators to memory-leak checkers
to data-race detectors. I will discuss the dynamic compilation techniques
behind Pin. In addition, I will present an extension of Pin called PinOS, which
performs whole-system instrumentation (i.e. including both OS and applications)
by using a novel combination of dynamic compilation and virtualization
techniques.</div>

<div class="MsoNormal">&nbsp;<o:p></o:p></div>

<div class="MsoNormal">In the second part, I will present the Qilin parallel
programming system, a research prototype that I am building to exploit the
hardware parallelism available on machines with a multicore CPU and a GPU.
Qilin provides a C++ API for writing data-parallel operations so that the
compiler is alleviated from the difficult job of extracting parallelism from
serial code. At runtime, the Qilin compiler automatically partitions these API
calls into tasks and intelligently maps these tasks to the underlying hardware.
Preliminary results show that our parallel system can achieve significant
speedups (above 10x) over the serial case for some important computation
kernels.</div>

<div class="MsoNormal">&nbsp;<o:p></o:p></div>

<span style=""><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="font-size: 13px;">At the end, I will outline my future works in
parallel programming, compilation, and virtualization.</span></font></span><!--EndFragment-->



<p class="MsoNormal">---------------------------------------------------------</p><p class="MsoNormal">Host:<span class="Apple-tab-span" style="white-space: pre; ">        </span>John Reppy</p></body></html>