[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