John Owens
Associate Professor, Electrical and Computer Engineering
University of California, Davis

office: Kemper Engineering Building (Engineering II) Room 3175 (map)
postal: Electrical and Computer Engineering, University of California, One Shields Avenue, Davis, CA 95616-5294
office phone: 530-754-4289     fax: 530-752-8428
email: web: http://www.ece.ucdavis.edu/~jowens/

picture of John
						  Owens
“Sir George Darwin's [son of Charles, and professor of astronomy at Cambridge] contribution to science was mostly theories that were later to be disproved. Most egregiously he calculated mathematically that the moon was created by being torn away from the cooling earth—an idea now universally discredited. He also wrote papers on contemporary fashion, and claimed never to do more than three hours' work a day.” —Simon Winchester, Krakatoa, HarperCollins (2003), p. 273

Our research group is affiliated with the Institute of Data Analysis and Visualization and concentrates on a variety of interesting problems in graphics architecture and programming environments for graphics hardware. The large problem in which we are most interested is how to build parallel systems that are both high-performance and programmable. Recently, we have been particularly interested in the use of graphics hardware for general-purpose computation (GPGPU, also known as GPU computing). I am the lead author on a comprehensive survey of GPGPU, which appeared in Computer Graphics Forum in 2007 (a revision of our 2005 GPGPU survey). Within this field we are investigating graphics architecture, programming environments, models, and abstractions for the GPU, compilers and their suitability for graphics hardware, and applications.

In solving these problems, I am delighted to work with an amazing and talented group of graduate students, including Shubhabrata (“Shubho”) Sengupta, Andy Riffel, Yao Zhang (张尧), Pınar Muyan-Özçelik, Eric Lengyel, Jeff Stuart, Kshitij Gupta, Anjul Patney, Vladimir Glavtchev, Andrew Davidson, Will Kohut, and Stanley Tzeng in pursuing these goals. Mark Silberstein and Andrew joined us in summer 2007 as visiting students, and I've also had the pleasure of collaborating with Brian Budge and Luke Gosink, both advised by Ken Joy. Recent graduates from our group are Aaron Lefohn (currently at Intel after its acquisition of Neoptica) and Adam Moerschell (AMD). I expect a lot from our students and I am delighted when they are recognized for their hard work and talent. For instance, Anjul was recently awarded an NVIDIA Fellowship (2009–10), following the success of Shubho, who won in 2007–8 and 2008–9. Pınar was a finalist in 2009 for the Google Anita Borg Scholarship. Shubho also won the CS department's 2008 Best Graduate Researcher Award, and Aaron Lefohn's dissertation was named the “Best Doctoral Dissertation” of 2006 by the Computer Science Department. Our students often also spend summers at top research institutes and labs; recent summer internships from students in our group include Apple, BMW, Disney, Google, HP Labs, Intel, Los Alamos National Laboratory, Microsoft Research, NVIDIA, NVIDIA Research, and Pixar.

As part of the UC Davis Institute for Data Analysis and Visualization and the Department of Energy SciDAC Institute for Ultra-Scale Visualization (headquartered at UC Davis), we are investigating how to build programming abstractions for GPUs and how to extend those abstractions onto large clusters of hybrid CPU-GPU machines.

One of our major research efforts is investigating fundamental algorithms and data structures on graphics hardware. One piece of recent work concentrates on a parallel primitive called scan. With Mark Harris of NVIDIA, we have shown both efficient implementations of scan and segmented scan on the GPU as well as a set of fundamental primitives that run atop scan. This work is available as open-source software (a modified BSD license) as the CUDPP (CUDA Data Parallel Primitives) library.

Another interesting recent piece of work has concentrated on the problem of specifying and implementing efficient and flexible data structures on graphics hardware with a framework we call “Glift”. Our recent paper on this topic appears in ACM Transactions on Graphics. We also presented two of the applications enabled by this work (multiresolution adaptive shadow maps and 3D octree paint) as sketches at ACM SIGGRAPH 2005. Our shadow work, centering on our improvements to the adaptive shadow map algorithm and their implementation on GPUs, was published in ACM Transactions on Graphics.

Adam led a project on extending GPU computing to multiple GPUs with a distributed-shared memory abstraction and implementation across multiple GPUs. This abstraction allows multiple GPUs to share a common memory address space and could dynamically share, request, and migrate data from other GPUs transparently to the programmer.

Andy, Aaron, Kiril Vidimce and Mark Leone (from Pixar), and I published a paper entitled Mio: Fast Multipass Partitioning via Priority-Based Instruction Scheduling at Graphics Hardware 2004 that explored partitioning large shader programs into smaller ones that meet the constraints of the graphics hardware.

Aaron and I were recently both instructors of the day-long GPGPU Tutorial at Supercomputing 2006 in November. I also presented tutorials in 2007 at ACM SIGGRAPH and Supercomputing 2007, and in 2008 at ASPLOS I also recently gave a talk at Intel (April 2007) about GPGPU and our work, as well as a talk at Berkeley in summer 2006 (the careful observer will note that new hardware has rendered some of my points incorrect.) The slides from my invited talk at the High-Performance Embedded Computing conference (HPEC 8) at MIT Lincoln Labs in September 2004 may be interesting as well.

I am on the organizing committee, and am currently the papers chair, of the annual SIGGRAPH/Eurographics Graphics Hardware conference. I was publicity chair for the past 3 years.

My graduate class on graphics hardware, EEC 277: Graphics Architecture, addresses many of the interesting problems we find in our research. Thus far the course has been well-received and has many interesting guest speakers. It is taught in the winter quarter each year, including winter 2008 and winter 2009.

If you are a Davis student or admit and interested in computer systems research, in particular the projects above, please drop me a line.


Our work is supported by the SciDAC Institute for Ultra-Scale Visualization, a Department of Energy Early Career Principal Investigator Award, the National Science Foundation, an NVIDIA Fellowship and an NVIDIA Teaching Fellowship, a CARE grant with Pat McCormick of Los Alamos National Laboratory, a National Science Foundation Graduate Research Fellowship, Lockheed-Martin, generous donations from Chevron with matching funds from UC MICRO, and UC Davis startup funds. We also greatly appreciate the hardware donations and the invaluable developer contacts from NVIDIA and AMD.