Exploiting language abstraction to optimize memory efficiency

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 m...

Full description

Bibliographic Details
Main Author: Sartor, Jennifer Bedke
Format: Others
Language:English
Published: 2010
Subjects:
Online Access:http://hdl.handle.net/2152/ETD-UT-2010-08-1919
id ndltd-UTEXAS-oai-repositories.lib.utexas.edu-2152-ETD-UT-2010-08-1919
record_format oai_dc
spelling ndltd-UTEXAS-oai-repositories.lib.utexas.edu-2152-ETD-UT-2010-08-19192015-09-20T16:56:13ZExploiting language abstraction to optimize memory efficiencySartor, Jennifer BedkeManaged languagesDynamic optimizationMemory managementAbstractionMemory efficiencyThe 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. This dissertation exploits the language abstraction to analyze and optimize memory efficiency on emerging hardware. We study the sources of memory inefficiencies on two levels: heap data and hardware storage traffic. We design and implement optimizations that change the heap layout of arrays, and use program semantics to eliminate useless memory traffic. These techniques improve memory system efficiency and performance. We first quantitatively characterize the problem by comparing many data compression algorithms and their combinations in a limit study of Java benchmarks. We find that arrays are a dominant source of heap inefficiency. We introduce z-rays, a new array layout design, to bridge the gap between fast access, space efficiency and predictability. Z-rays facilitate compression and offer flexibility, and time and space efficiency. We find that there is a semantic mismatch between managed languages, with their rapid allocation rates, and current hardware, causing unnecessary and excessive traffic in the memory subsystem. We take advantage of the garbage collector's identification of dead data regions, communicating information to the caches to eliminate useless traffic to memory. By reducing traffic and bandwidth, we improve performance. We show that the memory abstraction in managed languages is not just a cost to be borne, but an opportunity to alleviate the memory bottleneck. This thesis shows how to exploit this abstraction 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.text2010-12-13T20:14:23Z2010-12-13T20:14:30Z2010-12-13T20:14:23Z2010-12-13T20:14:30Z2010-082010-12-13August 20102010-12-13T20:14:30Zthesisapplication/pdfhttp://hdl.handle.net/2152/ETD-UT-2010-08-1919eng
collection NDLTD
language English
format Others
sources NDLTD
topic Managed languages
Dynamic optimization
Memory management
Abstraction
Memory efficiency
spellingShingle Managed languages
Dynamic optimization
Memory management
Abstraction
Memory efficiency
Sartor, Jennifer Bedke
Exploiting language abstraction to optimize memory efficiency
description 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. This dissertation exploits the language abstraction to analyze and optimize memory efficiency on emerging hardware. We study the sources of memory inefficiencies on two levels: heap data and hardware storage traffic. We design and implement optimizations that change the heap layout of arrays, and use program semantics to eliminate useless memory traffic. These techniques improve memory system efficiency and performance. We first quantitatively characterize the problem by comparing many data compression algorithms and their combinations in a limit study of Java benchmarks. We find that arrays are a dominant source of heap inefficiency. We introduce z-rays, a new array layout design, to bridge the gap between fast access, space efficiency and predictability. Z-rays facilitate compression and offer flexibility, and time and space efficiency. We find that there is a semantic mismatch between managed languages, with their rapid allocation rates, and current hardware, causing unnecessary and excessive traffic in the memory subsystem. We take advantage of the garbage collector's identification of dead data regions, communicating information to the caches to eliminate useless traffic to memory. By reducing traffic and bandwidth, we improve performance. We show that the memory abstraction in managed languages is not just a cost to be borne, but an opportunity to alleviate the memory bottleneck. This thesis shows how to exploit this abstraction 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. === text
author Sartor, Jennifer Bedke
author_facet Sartor, Jennifer Bedke
author_sort Sartor, Jennifer Bedke
title Exploiting language abstraction to optimize memory efficiency
title_short Exploiting language abstraction to optimize memory efficiency
title_full Exploiting language abstraction to optimize memory efficiency
title_fullStr Exploiting language abstraction to optimize memory efficiency
title_full_unstemmed Exploiting language abstraction to optimize memory efficiency
title_sort exploiting language abstraction to optimize memory efficiency
publishDate 2010
url http://hdl.handle.net/2152/ETD-UT-2010-08-1919
work_keys_str_mv AT sartorjenniferbedke exploitinglanguageabstractiontooptimizememoryefficiency
_version_ 1716821218963750912