Framework for Evaluating Dynamic Memory Allocators Including a New Equivalence Class Based Cache-conscious Allocator
Software applications’ performance is hindered by a variety of factors, but most notably by the well-known CPU-memory speed gap (often known as the memory wall). This results in the CPU sitting idle waiting for data to be brought from memory to processor caches. The addressing used by caches cause n...
Main Author: | |
---|---|
Other Authors: | |
Format: | Others |
Language: | English |
Published: |
University of North Texas
2013
|
Subjects: | |
Online Access: | https://digital.library.unt.edu/ark:/67531/metadc500151/ |
id |
ndltd-unt.edu-info-ark-67531-metadc500151 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-unt.edu-info-ark-67531-metadc5001512017-03-17T08:41:08Z Framework for Evaluating Dynamic Memory Allocators Including a New Equivalence Class Based Cache-conscious Allocator Janjusic, Tomislav Binary instrumentation application profiling memory allocation Software applications’ performance is hindered by a variety of factors, but most notably by the well-known CPU-memory speed gap (often known as the memory wall). This results in the CPU sitting idle waiting for data to be brought from memory to processor caches. The addressing used by caches cause non-uniform accesses to various cache sets. The non-uniformity is due to several reasons, including how different objects are accessed by the code and how the data objects are located in memory. Memory allocators determine where dynamically created objects are placed, thus defining addresses and their mapping to cache locations. It is important to evaluate how different allocators behave with respect to the localities of the created objects. Most allocators use a single attribute, the size, of an object in making allocation decisions. Additional attributes such as the placement with respect to other objects, or specific cache area may lead to better use of cache memories. In this dissertation, we proposed and implemented a framework that allows for the development and evaluation of new memory allocation techniques. At the root of the framework is a memory tracing tool called Gleipnir, which provides very detailed information about every memory access, and relates it back to source level objects. Using the traces from Gleipnir, we extended a commonly used cache simulator for generating detailed cache statistics: per function, per data object, per cache line, and identify specific data objects that are conflicting with each other. The utility of the framework is demonstrated with a new memory allocator known as equivalence class allocator. The new allocator allows users to specify cache sets, in addition to object size, where the objects should be placed. We compare this new allocator with two well-known allocators, viz., Doug Lea and Pool allocators. University of North Texas Kavi, Krishna M. Cytron, Ron K. Fu, Song Gomathisankaran, Mahadevan Tarau, Paul 2013-08 Thesis or Dissertation Text https://digital.library.unt.edu/ark:/67531/metadc500151/ ark: ark:/67531/metadc500151 English Public Janjusic, Tomislav Copyright Copyright is held by the author, unless otherwise noted. All rights Reserved. |
collection |
NDLTD |
language |
English |
format |
Others
|
sources |
NDLTD |
topic |
Binary instrumentation application profiling memory allocation |
spellingShingle |
Binary instrumentation application profiling memory allocation Janjusic, Tomislav Framework for Evaluating Dynamic Memory Allocators Including a New Equivalence Class Based Cache-conscious Allocator |
description |
Software applications’ performance is hindered by a variety of factors, but most notably by the well-known CPU-memory speed gap (often known as the memory wall). This results in the CPU sitting idle waiting for data to be brought from memory to processor caches. The addressing used by caches cause non-uniform accesses to various cache sets. The non-uniformity is due to several reasons, including how different objects are accessed by the code and how the data objects are located in memory. Memory allocators determine where dynamically created objects are placed, thus defining addresses and their mapping to cache locations. It is important to evaluate how different allocators behave with respect to the localities of the created objects. Most allocators use a single attribute, the size, of an object in making allocation decisions. Additional attributes such as the placement with respect to other objects, or specific cache area may lead to better use of cache memories. In this dissertation, we proposed and implemented a framework that allows for the development and evaluation of new memory allocation techniques. At the root of the framework is a memory tracing tool called Gleipnir, which provides very detailed information about every memory access, and relates it back to source level objects. Using the traces from Gleipnir, we extended a commonly used cache simulator for generating detailed cache statistics: per function, per data object, per cache line, and identify specific data objects that are conflicting with each other. The utility of the framework is demonstrated with a new memory allocator known as equivalence class allocator. The new allocator allows users to specify cache sets, in addition to object size, where the objects should be placed. We compare this new allocator with two well-known allocators, viz., Doug Lea and Pool allocators. |
author2 |
Kavi, Krishna M. |
author_facet |
Kavi, Krishna M. Janjusic, Tomislav |
author |
Janjusic, Tomislav |
author_sort |
Janjusic, Tomislav |
title |
Framework for Evaluating Dynamic Memory Allocators Including a New Equivalence Class Based Cache-conscious Allocator |
title_short |
Framework for Evaluating Dynamic Memory Allocators Including a New Equivalence Class Based Cache-conscious Allocator |
title_full |
Framework for Evaluating Dynamic Memory Allocators Including a New Equivalence Class Based Cache-conscious Allocator |
title_fullStr |
Framework for Evaluating Dynamic Memory Allocators Including a New Equivalence Class Based Cache-conscious Allocator |
title_full_unstemmed |
Framework for Evaluating Dynamic Memory Allocators Including a New Equivalence Class Based Cache-conscious Allocator |
title_sort |
framework for evaluating dynamic memory allocators including a new equivalence class based cache-conscious allocator |
publisher |
University of North Texas |
publishDate |
2013 |
url |
https://digital.library.unt.edu/ark:/67531/metadc500151/ |
work_keys_str_mv |
AT janjusictomislav frameworkforevaluatingdynamicmemoryallocatorsincludinganewequivalenceclassbasedcacheconsciousallocator |
_version_ |
1718432250060603392 |