Thomas Gross,



Title: Adaptive Main Memory Compression

Irina Chihaia Tuduce and Thomas Gross
Departement Informatik
ETH Zurich

Applications that use large data sets frequently exhibit poor performance because the size of their working set exceeds the available physical memory. As a result, these applications suffer from excess page faults and ultimately exhibit thrashing behavior. For some applications, compression offers a way to reduce the number of page faults that must be serviced from the disk. We describe here a system that can be implemented with a small number of kernel changes.

The key idea to exploit the benefits of memory compression is to adapt the allocation of real (physical) memory between uncompressed and compressed pages without user involvement. The system manages its resources dynamically on the basis of the varying demands of each application and also on the situational requirements that are data dependent. The technique used to localize page fragments in the compressed area allows the system to reclaim or add space easily if it is advisable to shrink or grow the size of the compressed area.

The design is implemented in Linux, runs on both 32-bit and 64-bit architectures, and has been demonstrated to work in practice under complex workload conditions and memory pressure. The benefits from our approach depend on the relationship between the size of the compressed area, the application’s compression ratio, and the access pattern of the application. For a range of benchmarks and applications, the system shows an increase in performance by a factor of 1.3 to 55.

Short CV
Thomas R. Gross is a Professor of Computer Science at ETH Zurich, Switzerland. He is the head of the Computer Systems Institute, from 1999-2004 he was the deputy director of the NCCR on on “Mobile Information and Communication Systems”, a research center funded by the Swiss National Science Foundation. He is also an Adjunct Professor in the School of Computer Science at Carnegie Mellon University.

Thomas Gross joined CMU in 1984 after receiving a Ph.D. in Electrical Engineering from Stanford University. In 2000, he became a Full Professor at ETH Zurich. He is interested in tools, techniques, and abstractions for software construction and has worked on many aspects of the design and implementation of programs. To add some realism to his research, he has focussed on compilers for uni-processors and parallel systems and has contributed to many areas of compilation (code generation, optimization, debugging, partitioning of computations, data parallelism and task parallelism). Compilers are also interesting systems that illustrate the use of many concepts to structure programs (frameworks, patterns, components). Compilers require a good cost-model of the target environment (e.g., to make space-time tradeoffs) but recent systems have become so complex that simple models no longer suffice. In his current research, Thomas Gross and his colleagues investigate network- and system-aware programs — i.e. programs that can adjust their resource demands in response to resource availability.

In addition to working on compilers, Thomas Gross has been involved in several projects that straddle the boundary between applications and compilers. And since many programs are eventually executed on real computers, He has also participated in the past in the development of several machines: the Stanford MIPS processor, the Warp systolic array, and the iWarp parallel systems. His current work in computer systems concentrates on networks.


Date: 2006-May-03     Time: 10:00:00     Room: Sala 905 (Sala Omega do POSI)

For more information: