[Colloquium] Talk by Chi-Keung Luk, Intel Corporation on Friday April 4, 2008
caseyk
caseyk at cs.uchicago.edu
Thu Mar 6 13:16:28 CST 2008
DEPARTMENT OF COMPUTER SCIENCE
UNIVERSITY OF CHICAGO
Date: Friday, April 4, 2008
Time: 2:30 p.m.
Place: Ryerson 251, 1100 E. 58th Street
----------------------------------------------------------
Speaker: Chi-Keung Luk
From: Intel Corporation
Web page: http://www.ckluk.org/ck/
Title: Dynamic Compilation in Practice: From Instrumentation to
Parallelization
Abstract: 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.
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.
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.
At the end, I will outline my future works in parallel programming,
compilation, and virtualization.
---------------------------------------------------------
Host: John Reppy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.uchicago.edu/pipermail/colloquium/attachments/20080306/94667507/attachment.html
More information about the Colloquium
mailing list