Cache Oblivious Data Structures

This thesis discusses cache oblivious data structures. These are structures which have good caching characteristics without knowing Z, the size of the cache, or L, the length of a cache line. Since the structures do not require these details for good performance they are portable across caching...

Full description

Bibliographic Details
Main Author: Ohashi, Darin
Format: Others
Language:en
Published: University of Waterloo 2006
Subjects:
Online Access:http://hdl.handle.net/10012/1060
id ndltd-WATERLOO-oai-uwspace.uwaterloo.ca-10012-1060
record_format oai_dc
spelling ndltd-WATERLOO-oai-uwspace.uwaterloo.ca-10012-10602013-01-08T18:49:17ZOhashi, Darin2006-08-22T14:20:37Z2006-08-22T14:20:37Z20012001http://hdl.handle.net/10012/1060This thesis discusses cache oblivious data structures. These are structures which have good caching characteristics without knowing Z, the size of the cache, or L, the length of a cache line. Since the structures do not require these details for good performance they are portable across caching systems. Another advantage of such structures isthat the caching results hold for every level of cache within a multilevel cache. Two simple data structures are studied; the array used for binary search and the linear list. As well as being cache oblivious, the structures presented in this thesis are space efficient, requiring little additional storage. We begin the discussion with a layout for a search tree within an array. This layout allows Searches to be performed in O(log n) time and in O(log n/log L) (the optimal number) cache misses. An algorithm for building this layout from a sorted array in linear time is given. One use for this layout is a heap-like implementation of the priority queue. This structure allows Inserts, Heapifies and ExtractMaxes in O(log n) time and O(log nlog L) cache misses. A priority queue using this layout can be builtfrom an unsorted array in linear time. Besides the n spaces required to hold the data, this structure uses a constant amount of additional storage. The cache oblivious linear list allows scans of the list taking Theta(n) time and incurring Theta(n/L) (the optimal number) cache misses. The running time of insertions and deletions is not constant, however it is sub-polynomial. This structure requires e*n additional storage, where e is any constant greater than zero.application/pdf484832 bytesapplication/pdfenUniversity of WaterlooCopyright: 2001, Ohashi, Darin. All rights reserved.Computer Sciencecache obliviousdata structuresheaplinear listcachingCache Oblivious Data StructuresThesis or DissertationSchool of Computer ScienceMaster of Mathematics
collection NDLTD
language en
format Others
sources NDLTD
topic Computer Science
cache oblivious
data structures
heap
linear list
caching
spellingShingle Computer Science
cache oblivious
data structures
heap
linear list
caching
Ohashi, Darin
Cache Oblivious Data Structures
description This thesis discusses cache oblivious data structures. These are structures which have good caching characteristics without knowing Z, the size of the cache, or L, the length of a cache line. Since the structures do not require these details for good performance they are portable across caching systems. Another advantage of such structures isthat the caching results hold for every level of cache within a multilevel cache. Two simple data structures are studied; the array used for binary search and the linear list. As well as being cache oblivious, the structures presented in this thesis are space efficient, requiring little additional storage. We begin the discussion with a layout for a search tree within an array. This layout allows Searches to be performed in O(log n) time and in O(log n/log L) (the optimal number) cache misses. An algorithm for building this layout from a sorted array in linear time is given. One use for this layout is a heap-like implementation of the priority queue. This structure allows Inserts, Heapifies and ExtractMaxes in O(log n) time and O(log nlog L) cache misses. A priority queue using this layout can be builtfrom an unsorted array in linear time. Besides the n spaces required to hold the data, this structure uses a constant amount of additional storage. The cache oblivious linear list allows scans of the list taking Theta(n) time and incurring Theta(n/L) (the optimal number) cache misses. The running time of insertions and deletions is not constant, however it is sub-polynomial. This structure requires e*n additional storage, where e is any constant greater than zero.
author Ohashi, Darin
author_facet Ohashi, Darin
author_sort Ohashi, Darin
title Cache Oblivious Data Structures
title_short Cache Oblivious Data Structures
title_full Cache Oblivious Data Structures
title_fullStr Cache Oblivious Data Structures
title_full_unstemmed Cache Oblivious Data Structures
title_sort cache oblivious data structures
publisher University of Waterloo
publishDate 2006
url http://hdl.handle.net/10012/1060
work_keys_str_mv AT ohashidarin cacheobliviousdatastructures
_version_ 1716572433742299136