## Ahnentafel indexing into Morton-ordered arrays, or matrix locality for free (2000)

Venue: | In Euro-Par 2000 – Parallel Processing |

Citations: | 26 - 5 self |

### BibTeX

@INPROCEEDINGS{Wise00ahnentafelindexing,

author = {David S. Wise},

title = {Ahnentafel indexing into Morton-ordered arrays, or matrix locality for free},

booktitle = {In Euro-Par 2000 – Parallel Processing},

year = {2000},

pages = {774--784},

publisher = {Springer}

}

### Years of Citing Articles

### OpenURL

### Abstract

Abstract. Definitions for the uniform representation of d-dimensional matrices serially in Morton-order (or Z-order) support both their use with cartesian indices, and their divide-and-conquer manipulation as quaternary trees. In the latter case, d-dimensional arrays are accessed as 2 d-ary trees. This data structure is important because, at once, it relaxes serious problems of locality and latency, and the tree helps schedule multiprocessing. It enables algorithms that avoid cache misses and page faults at all levels in hierarchical memory, independently of a specific runtime environment. This paper gathers the properties of Morton order and its mappings to other indexings, and outlines for compiler support of it. Statistics elsewhere show that the new ordering and block algorithms achieve high flop rates and, indirectly, parallelism without any low-level tuning.

### Citations

1175 |
The Design and Analysis of Spatial Data Structures
- Samet
- 1990
(Show Context)
Citation Context ... for spatial data bases in three. It is remarkable how often these basic properties of Morton ordering have been reintroduced in different contexts [3, 7, 9, 12, 16]. Samet gives an excellent history =-=[13]-=-. When first introduced, it might appear that Morton indexing is poor for large arrays that are not square or whose size is not a power of two, because in those cases its gaps seem to waste space. Wit... |

570 | A Transformation System for Developing Recursive Programs
- Burstall, Darlington
- 1976
(Show Context)
Citation Context ...block fits [8]. None of the indices, themselves, need be stacked. Each can be shifted right to effect a stack pop or incremented to refer to a sibling. Still, innermost recursions need to be unfolded =-=[2]-=-, just as the C compiler unrolls loops, in order to obtain straight-line code for superscalar processors. See [18] for more details; all the speed improvements are due to good locality [5]. The formal... |

180 | The Art of Computer Programming: Fundamental Algorithms, volume 1. Addison-Wesley, 3rd edition - Knuth - 1997 |

145 |
A class of data structures for associative searching
- Orenstein, Merrett
- 1984
(Show Context)
Citation Context ...dexing attractive for graphics in two dimensions and for spatial data bases in three. It is remarkable how often these basic properties of Morton ordering have been reintroduced in different contexts =-=[3, 7, 9, 12, 16]-=-. Samet gives an excellent history [13]. When first introduced, it might appear that Morton indexing is poor for large arrays that are not square or whose size is not a power of two, because in those ... |

139 |
A computer oriented geodetic data base and a new technique in file sequencing
- Morton
- 1966
(Show Context)
Citation Context ... vary naturally (they undulate) to fit the chunks transferred between levels of the memory hierarchy. 2 BASIC DEFINITIONS Morton presented his ordering in 1966 to index frames in a geodetic data base =-=[11]-=-. He defines the indexing of the “units” in a two-dimensional array much as in Figure 1, and he points out the truncated indices available for enveloping blocks (subtrees), similar to Figure 3. Finall... |

76 | Auto-blocking matrix-multiplication or tracking blas3 performance from source code
- FRENS, S
- 1997
(Show Context)
Citation Context ...dexing attractive for graphics in two dimensions and for spatial data bases in three. It is remarkable how often these basic properties of Morton ordering have been reintroduced in different contexts =-=[3, 7, 9, 12, 16]-=-. Samet gives an excellent history [13]. When first introduced, it might appear that Morton indexing is poor for large arrays that are not square or whose size is not a power of two, because in those ... |

39 |
The history of FORTRAN
- Backus
- 1981
(Show Context)
Citation Context ..., paging, compilers, quadtree matrices. 1 INTRODUCTION Maybe we’ve not been representing them efficiently for some time. Matrix problems have been fodder for higher-level languages from the beginning =-=[1]-=-, and row- or column-major representations for matrices are universally assumed. Both use the same space, both still survive. But maybe both are archaic perspectives on matrix structure, which might b... |

32 | High performance Fortran for highly irregular problems
- Hu, Johnsson, et al.
- 1997
(Show Context)
Citation Context ...dexing attractive for graphics in two dimensions and for spatial data bases in three. It is remarkable how often these basic properties of Morton ordering have been reintroduced in different contexts =-=[3, 7, 9, 12, 16]-=-. Samet gives an excellent history [13]. When first introduced, it might appear that Morton indexing is poor for large arrays that are not square or whose size is not a power of two, because in those ... |

25 |
Eicken, “Logp: a practical model of parallel computation
- Culler, Karp, et al.
- 1996
(Show Context)
Citation Context ...be unfolded [2], just as the C compiler unrolls loops, in order to obtain straight-line code for superscalar processors. See [18] for more details; all the speed improvements are due to good locality =-=[5]-=-. The formalism presented here shows how to implement Morton-order matrices, with efficient algorithms for the group of dilated integers for the program that uses cartesian indexing, or with Ahnentafe... |

23 |
Finding neighbors of equal size in linear quadtrees and octrees in constant time
- SCHRACK
- 1992
(Show Context)
Citation Context ...d! Tocher needed fast access into a 32 32 32 boolean array stored on a drum (4kB!). Schrack shows how to effect efficient cartesian indexing from row i and column j indices into Morton-order matrices =-=[14]-=-. The trick is to represent i and j as dilated integers, with information stored only in every other bit. Definition 7 The even-dilated representation of j = P w;1 k=0 jk2 k is P w;1 k=0 jk4 k , denot... |

12 | Cache-oblivious algorithms. Extended abstract submitted for publication
- Frigo, Leiserson, et al.
- 1999
(Show Context)
Citation Context ...ood quadtree algorithm uses recursive descent on Ahnentafel indices, so there is no need to preselect a block size to fit one—or any—level of cache; the algorithm simply accelerates when a block fits =-=[8]-=-. None of the indices, themselves, need be stacked. Each can be shifted right to effect a stack pop or incremented to refer to a sibling. Still, innermost recursions need to be unfolded [2], just as t... |

11 |
Morton-order matrices deserve compilers’ support
- Wise, Frens
- 1999
(Show Context)
Citation Context ... or incremented to refer to a sibling. Still, innermost recursions need to be unfolded [2], just as the C compiler unrolls loops, in order to obtain straight-line code for superscalar processors. See =-=[18]-=- for more details; all the speed improvements are due to good locality [5]. The formalism presented here shows how to implement Morton-order matrices, with efficient algorithms for the group of dilate... |

9 |
Undulant block elimination and integer-preserving matrix inversion. Sci. Comput. Programming (to appear
- Wise
- 1995
(Show Context)
Citation Context ... indexed by its zero-based scheme, it is necessary also to know the level and a Morton index, to identify a specific node. Ahnentafel indices are immensely useful for identifying blocks at all levels =-=[17]-=-. Algorithms that use recursive-descent (divide-and-conquer) to descend to a block of arbitrary size, or to return the index of a selected block, need only this single index to identify any subtree. T... |

5 | The application of automatic computers to sampling experiments - Tocher - 1954 |

3 |
Real-time raster-to-quadtree and quadtree-to-raster conversion algorithms with modest storage requirements
- Burton, Kollias, et al.
- 1986
(Show Context)
Citation Context |

3 |
Matrix Factorization Using a Block-Recursive Structure and Block-Recursive Algorithms
- Frens
- 2002
(Show Context)
Citation Context ...esian indices to Morton-order using dilated indices. We had already demonstrated the ease of tree-wise scheduling parallel processors in [7], and we continue to search for similar quadtree algorithms =-=[17, 6]-=-. It remains to close the gap between these efforts: on the one hand to improve compilers to optimize indexing on Morton-ordered matrices (e.g. unfolding Ahnentafel–controlled recursions and unrolling... |

3 |
A parallel hashed oct-tree N-body problem
- Salmon
- 1993
(Show Context)
Citation Context |

2 |
Cragon A historical note on binary tree
- G
- 1990
(Show Context)
Citation Context ...d level order are easy. Ahnentafel indices come to us from genealogists who invented them for encoding one’s pedigree as a binary, family tree. This generalization to m-ary trees is new. Definition 4 =-=[4]-=- A complete array has Ahnentafel index m;1. A subarray (block) at Ahnentafel index a is either a scalar, or it is composed of m subarrays, with indices ma +0�ma+1�:::�ma+(m;1). Theorem 2. The nodes at... |