Registered user since Tue 22 Jul 2014
I am a Postdoctoral Researcher (working with Lieven Eeckhout) in the Department of Electronics and Information Systems at Ghent University, Belgium.
Research Interests: Managed languages; memory efficiency; memory abstraction; memory management; dynamic optimization; software-hardware co-design
The programming language and underlying hardware determine application performance, and both are undergoing revolutionary shifts. As applications have become more sophisticated and capable, programmers have chosen managed languages in many domains for ease of development. These languages abstract memory management from the programmer, which can introduce time and space overhead but also provide opportunities for dynamic optimization. Optimizing memory performance is in part paramount because hardware is reaching physical limits. Recent trends towards chip multiprocessor machines exacerbate the memory system bottleneck because they are adding cores without adding commensurate bandwidth. Both language and architecture trends add stress to the memory system and degrade application performance.
I exploit the language abstraction to analyze and optimize memory efficiency on emerging hardware. In my dissertation, I studied the sources of memory inefficiencies on two levels: heap data and hardware storage traffic. Finding that arrays are a dominant source of heap inefficiency, I designed and implemented z-rays, a flexible, time and space efficient layout of arrays. When analyzing traffic to main memory, I found a large majority of the traffic is useless. I designed a software-hardware cooperative optimization that invalidates data in cache based on passed-down program semantics in order to eliminate useless traffic. These techniques improve memory system efficiency and performance. We show that the memory abstraction in managed languages is not just a cost to be borne, but an opportunity to improve space and time efficiency and overcome the memory wall. We enhance the productivity and performance of ubiquitous managed languages on current and future architectures.
In broader terms, I am interested in studying more efficient ways for the application, compiler and runtime system, operating system, and underlying architecture to cooperate for optimal system performance. In particular, each layer of this stack has its own method of memory management that can be limited by its narrow view: there should be more coordination to inform dynamic optimization and overcome the high overheads of memory system performance.
View general profile