An interesting class of irregular algorithms are tree traversal algorithms, which repeatedly traverse spatial trees to perform efficient computations. Optimizing tree traversal algorithms requires understanding specific characteristics of these algorithms which affect their behavior and govern which types of optimizations are likely to perform well. In this work, we present a set of tree traversal applications, drawn from multiple domains, called Treelogy. This benchmark suite can be studied through the use of an ontology that characterizes tree traversal algorithms according to structural properties of the algorithm. We describe how each of these attributes constrains or allows different kinds of traversal optimizations. We characterize the applications of Treelogy both according to our structural ontology as well as by various applicationand input-dependent metrics that measure the irregularity of these applications. We then show the scalability of these applications implemented using generic frameworks for GPU, shared memory, and distributed memory systems. We also find that for certain input distributions, Barnes-Hut and 2-point correlation yield better performance when implemented with tree types other than the "standard" tree.
['Nikhil Hegde', 'Jianqiao Liu', 'Milind Kulkarni']
Treelogy: a benchmark suite for tree traversal applications