Jeremy J. Sugerman Gates Building, Room 376; Stanford, CA 94305 Professional/Academic Interests: Building systems for, and influencing the design of, many-core commodity systems-- CPUs, GPUs, and heterogeneous hybrids. Designing virtualization / hypervisor architectures, I/O models, and virtual hardware / APIs for virtual machines. Generally interested in the hardware/software boundary and a wide range of systems topics including operating systems, parallelism, graphics hardware, and networking. Education: 09/2003 - 08/2010 Stanford University, Stanford, CA Ph.D.; Computer Science Thesis: "Programming Many-Core Systems with GRAMPS" Advisor: Pat Hanrahan Stanford Graduate Fellow (http://sgf.stanford.edu/) 09/1997 - 06/1998 Stanford University, Stanford, CA M.S.; Computer Science, Systems concentration Advisor: Mendel Rosenblum 09/1994 - 06/1998 Stanford University, Stanford, CA Dual B.S.; Computer Science and Mathematics Advisor: Mendel Rosenblum Graduated with distinction Professional Experience: 04/1998 - 09/2010 VMware Inc., Palo Alto, CA First employee hired, currently Principal Engineer Operate at-large with the CTO and R&D VPs to investigate, challenge, and advise our architectural strategies for the core hypervisors, virtual hardware, desktop virtualization, and GPU virtualization. Help shape our software development and planning processes to scale with an R&D organization and products that have grown rapidly for many years. Advise the Co-Development R&D group in helping partners and interacting with internal development. Prior responsibilities have included: Helped virtualize the x86 architecture. Worked on just about everything pertaining to machine virtualization, in depth on CPU, motherboard / chipset, SCSI and IDE devices, NIC, and graphics emulation and virtualization; Also Guest operating system and virtual BIOS bring-up; Led / Co-led group investigations into disk performance, interactive performance, ACPI support, and Keyboard/Mouse/Graphics support. Mentored new many new employees, both recent college graduates and from elsewhere in industry. Led the creation, staffing, and definition of the R&D side of the Community Source Program and serve as ongoing advisor. Advised on 3D virtualization, hardware assisted I/O virtualization and a variety of infrastructure, scaling, and organizational issues. Championed high level visions of the future for virtual hardware. And the customary assortment of startup odd-jobs (including e.g., wiring phones and teaching people to make Ethernet cables, covering customer support and systems administration, buying snacks, ...). 2009 ACM Software System Award, with Ed Bugnion, Scott Devine, Mendel Rosenblum, and Edward Wang, for VMware Workstation For Linux 1.0. 10/2005 - 05/2006 NVIDIA Corporation, Santa Clara CA Intern (Part-time during the academic year) With a fellow student, designed and analyzed ray tracing for the then-prerelease G80 GPU and CUDA development environment. Produced a ray tracer with written report and accompanying presentation characterizing performance and identifying the architecture's and tool chain's strengths and weaknesses. Some recommendations were incorporated into subsequent products and patents. 06/1997 - 09/1997 06/1996 - 09/1996 Taos Mountain Software, Palo Alto CA (now Santa Clara, CA) Technical Staff Member Contract UNIX system and network administrator. Supported internal PPP / ISDN users and general weekend coverage at Sun Microsystems in 1996. One of two principal network / system administrators at a startup in 1997, fulfilling a wide range of duties. Research Experience: 09/2003 - 08/2010 Stanford University Graphics Lab & Pervasive Parallelism Lab, Stanford, CA Research Assistant with Pat Hanrahan Investigated future graphics pipelines and programming models for many-core CPU and GPU future architectures-- SIMD, threaded, streaming, heterogeneous, ... Previously: Pursued GPGPU work including the BrookGPU programming language, the GPUBench suite of microbenchmarks, and a variety of GPU ray tracing efforts: k-D tree traversal and optimizations, combining OpenGL/D3D rendering with ray tracing. Participated in ray tracing investigation, porting to x86 and Cell processors. Explored unconventional architectures including: Larrabee, Cell, GPUs, Niagara (casually), and others (plus vanilla multi-core CPUs). 04/2004 - 06/2004 04/2007 - 06/2007 Stanford University Computer Science Dept., Stanford CA. Teaching Assistant, CS240: Advanced Topics in Operating Systems Teaching assistant for Dawson Engler. The course covers a mixture of seminal and current papers on key OS topics. Co-wrote and graded exams, led class discussion for a few papers, supported students. 01/1997 - 03/1997 09/1997 - 12/1997 04/1998 - 06/1998 Stanford University Computer Science Dept., Stanford CA. Independent study / Research Assistant with Mendel Rosenblum With a partner, wrote a Pentium CPU simulator for the SimOS project. At its peak, the system booted a then-current Linux kernel. Began as a Senior Project and continued as ongoing research. Honors and Awards: 09/1996 Invited to Tau Beta Pi engineering honor society 06/1998 Graduated with distinction, Stanford University 07/2001 Best Paper Award, 2001 USENIX Annual Technical Conference 2003-2008 Stanford Graduate Fellowship, Stanford University 01/2009 Larrabee paper in IEEE Micro special issue: Top Picks from Computer Architecture Conferences 07/2009 Extended GPU Virtualization paper in ACM SIGOPS Operating Systems Review special issue: Best papers from WIOV '08 and VEE '09 2009 ACM Software System Award: VMware Workstation For Linux 1.0 Publications: Bugnion, E., Devine, S., Rosenblum, M., Sugerman, J., and Wang, E., "Bringing Virtualization to the x86 Architecture with the original VMware Workstation", ACM Transactions on Computer Systems, November 2012 Sanchez, D., Lo, D., Sugerman, J., Yoo, R., and Kozyrakis, C., "Dynamic Fine-Grain Scheduling of Pipeline Parallelism", Parallel Architectures and Compilation Techniques, October 2011 Sugerman J., "Programming Many-Core Systems with GRAMPS", Ph.D. Thesis, Stanford University Computer Science Department, August 2010. Sugerman J., Fatahalian K., Boulos S., Akeley K., and Hanrahan P., "GRAMPS: A Programming Model for Graphics Pipelines", ACM Transactions on Graphics, January 2009. Dowty M., Sugerman J., "GPU Virtualization on VMware's Hosted I/O Architecture", First Workshop on I/O Virtualization, December 2008. Extended and reprinted in a special issue of ACM SIGOPS Operating Systems Review, July 2009. Seiler L., Carmean D., Sprangle E., Forsyth T., Abrash M., Dubey P., Junkins S., Lake A., Sugerman J., Cavin R., Espasa R., Grochowski E., Juan T., Hanrahan P., "Larrabee: A Many-Core x86 Architecture for Visual Computing", Proceedings of ACM SIGGRAPH 2008, August 2008. Reprinted in 2008 IEEE Micro special issue "Top Picks from Computer Architecture Conferences". Horn D., Sugerman J., Houston M, and Hanrahan P., "Interactive k-D tree GPU Ray Tracing", Proceedings of the Symposium on Interactive 3D Graphics, May 2007. Foley T., Sugerman J., "KD-Tree Acceleration Structures for a GPU Raytracer", Proceedings of the conference on Graphics hardware 2005, August 2005. Fatahalian K., Sugerman J., Hanrahan P., "Understanding the Efficiency of GPU Algorithms for Matrix-Matrix Multiplication", Proceedings of the conference on Graphics hardware 2004, August 2004. Buck I., Foley T., Horn D., Sugerman J., Fatahalian K., Houston M., Hanrahan P., "Brook for GPUs: Stream computing on graphics hardware", Proceedings of ACM SIGGRAPH 2004, August 2004. Sugerman, J., Venkitachalam G., Lim, B., "Virtualizing I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor", Proceedings of the 2001 USENIX Annual Technical Conference, July 2001. Best paper award. Posters Presented: Sugerman, J., Foley T., Yoshioka S., Hanrahan P., "Ray Tracing on a Cell Processor with Software Caching", Poster Compendium 2006 IEEE Symposium on Interactive Ray Tracing, Salt Lake City, UT, September 2006 Horn, D., Houston, M., Foley, T., Sugerman, Hanrahan P., "GPU-based rasterization-raytracing hybrid", Poster Compendium 2006 IEEE Symposium on Interactive Ray Tracing, Salt Lake City, UT, September 2006 Unpublished papers: Sugerman J., and Foley T., Internal report on ray tracing algorithms, strategies, and performance characteristics on G80, NVIDIA, May 2006 Program Committees 2008 Program Committee: Symposium on Interactive Ray Tracing (now HPG) 2010 Program Committee: Workshop on I/O Virtualization Patents Filed: "Inter process Communication Based on Queues", Anupam Chanda, Kevin Christopher, Jeremy Sugerman, Petr Vandrovec, and Gustav Wibling (VMware) "Systems and Methods for Voting Among Parallel Threads", John Nickolls, Lars Nyland, Peter Mills, Jeremy Sugerman, Timothy Foley, Brian Fahs, Michael Garland, and David Luebke (NVIDIA) "Virtualization System with a Remote Proxy", Ramesh Dharan, Matt Ginzton, and Jeremy Sugerman (VMware) References are available upon request.