Jump to Content
Wessam Hassanein

Wessam Hassanein

I joined Google in Oct. 2013, and I have been working on performance optimization of the Java Virtual Machine, memory management and Java garbage collection, fleet performance analysis and monitoring. My areas of interest include performance optimizations, memory management and garbage collection, performance monitoring, microprocessor architecture, compiler optimizations, hardware-software co-design, binary translation, virtual machines, security, and large-scale distributed systems.

I received a Ph.D. in Computer Engineering from Purdue University at West-Lafayette, IN, working with Jose Fortes and Rudolf Eigenmann on Processing-In-Memory (PIM) hardware-software codesign designing both a novel microarchitecture and compiler optimizations in 2004. From 2005 to 2009 I worked as an Assistant Professor in Electrical and Computer Engineering, at the University of Calgary, Canada. I created the Multi-threaded Architecture Lab. with research on computer micro-architecture, performance and compiler optimizations, and database and distributed systems. From 2010 to 2013 I worked at Intel Corporation Santa Clara, CA., working on binary translation, performance and compiler optimizations, microarchitecture, performance monitoring, and computer security. In 2002, I interned at Hewlett-Packard in Palo Alto, CA where I worked on performance profiling tools. I received an M.Sc., from Colorado State University in Electrical and Computer Engineering in 1997 working on computer security. From 1997 to 1999, I worked for Cypress Semiconductors doing firmware and hardware design, while studying at Stanford University computer architecture and VLSI design.
Authored Publications
Google Publications
Other Publications
Sort By
  • Title
  • Title, descending
  • Year
  • Year, descending
    Preview abstract Garbage collection (GC) is a critical part of performance in managed run-time systems such as the OpenJDK Java Virtual Machine (JVM). With a large number of latency sensitive applications written in Java the performance of the JVM is imperative. Java application servers run in data centers on a large number of multi-core hardware. Thus load balancing in multi-threaded GC phases is critical. Dynamic load balancing in the JVM GC is achieved through work stealing, a well known and effective method to balance tasks across threads. This paper analyzes the JVM work stealing behavior, and introduces a novel work stealing technique that improves performance, GC CPU utilization, scalability, and cost of Jobs running on Google’s data-centers. We analyze both the Dacapo benchmark suite as well as Google’s data-center jobs. Our results show that the Gmail front-end server shows a 15-20% GC CPU reduction, and a 5% CPU performance improvement. Our analysis of a sample of ~59K jobs shows that GC CPU utilization improves by 38% geomean and 12% weighted geomean, GC pause time improves by 16% geomean, 20% weighted geomean and full GC pause time improves by 34% geomean, 12% weighted geomean. View details
    No Results Found