ACM Journal of Experimental Algorithmics · 2000 · 10 citations · 22 references
ComputingComputer EngineeringComputer ScienceAlgorithmsComputer ArchitectureData StructuresAlgorithm AnalysisCache Behavior AnalysisCachingMemory HierarchyMemory Hierarchy DesignMemory Hierarchy OptimizationCache DesignCache Line SizeHeap AnalysisHeap OrganizationHeapsHierarchical Memory ArchitectureMemory Hierarchy AnalysisMemory Hierarchy Performance
The behaviour of three methods for constructing a binary heap on a computer with a hierarchical memory is studied. The methods considered are the original one proposed by Williams [1964], in which elements are repeatedly inserted into a single heap; the improvement by Floyd [1964], in which small heaps are repeatedly merged to bigger heaps; and a recent method proposed, e.g., by Fadel et al. [1999] in which a heap is built layerwise. Both the worst-case number of instructions and that of cache misses are analysed. It is well-known that Floyd's method has the best instruction count. Let <i>N</i> denote the size of the heap to be constructed, <i>B</i> the number of elements that fit into a cache line, and let <i>c</i> and <i>d</i> be some positive constants. Our analysis shows that, under reasonable assumptions, repeated insertion and layerwise construction both incur at most <i>cN/B</i> cache misses, whereas repeated merging, as programmed by Floyd, can incur more than (<i>dN</i> log<inf>2</inf> <i>B</i>)/<i>B</i> cache misses. However, for our memory-tuned versions of repeated insertion and repeated merging the number of cache misses incurred is close to the optimal bound <i>N</i>/<i>B</i>. In addition to these theoretical findings, we communicate many practical experiences which we hope to be valuable for others doing experimental algorithmic work.
22
Manuel Blum, Robert W. Floyd, Vaughan Pratt et al. · Journal of Computer and System Sciences · 1973 · 1.2K citations
C. A. R. Hoare · Communications of the ACM · 1961 · 539 citations
John W. Williams · Communications of the ACM · 1964 · 471 citations · Full text
C. A. R. Hoare · Communications of the ACM · 1961 · 423 citations