Adaptive Algorithms for Cache-efficient Trie Search
Anurag Acharya
Huican Zhu
Kai Shen
ALENEX'99.
Abstract:
In this paper, we present cache-efficient algorithms for trie search.
There are three key features of these algorithms. First, they use
different data structures (partitioned-array, B-tree, hashtable,
vectors) to represent different nodes in a trie. The choice of the
data structure depends on cache characteristics as well as the fanout
of the node. Second, they adapt to changes in the fanout at a node by
dynamically switching the data structure used to represent the
node. Third, the size and the layout of individual data structures is
determined based on the size of the symbols in the alphabet as well as
characteristics of the cache(s). We evaluate the performance of these
algorithms on real and simulated memory hierarchies. Our evaluation
indicates that these algorithms out-perform alternatives that are
otherwise efficient but do not take cache characteristics into
consideration. A comparison of the number of instructions executed
indicates that these algorithms derive their performance advantage
primarily by making better use of the memory hierarchy.
Postscript
(compressed 99K)
Also available as UCSB TRCS98-19.