A Fast Cache Oblivious Mesh Layout with Theoretical Guarantees

One important bottleneck when visualizing large data sets is the data transfer between processor and memory. Cache-aware (CA) and cache-oblivious (CO) algorithms take into consideration the memory hierarchy to design cache efficient algorithms. CO approaches have the advantage to adapt to unknown and varying memory hierarchies. Recent CA and CO algorithms developed for 3D mesh layouts significantly improve performance of previous approaches. However, these algorithms are based on heuristics. We propose in this paper a new CO algorithm for meshes that has both a low theoretical complexity and proven quality. We guarantee that a coherent traversal of an N-size mesh in dimension d will induce less than N/B+N/M^{1/d}) cache misses where B and M are the block size and the cache size. We compare our layout with previous ones on several 3D meshes.

[1]  David Eppstein,et al.  Approximating center points with iterated radon points , 1993, SCG '93.

[2]  Lars Arge,et al.  Cache-Oblivious Data Structures , 2004, Handbook of Data Structures and Applications.

[3]  Charles E. Leiserson,et al.  Cache-Oblivious Algorithms , 2003, CIAC.

[4]  Hugues Hoppe,et al.  Optimization of mesh locality for transparent vertex caching , 1999, SIGGRAPH.

[5]  Gang Lin,et al.  An improved vertex caching scheme for 3D mesh rendering , 2006, IEEE Transactions on Visualization and Computer Graphics.

[6]  Peter Lindstrom,et al.  Mesh Layouts for Block-Based Caches , 2006, IEEE Transactions on Visualization and Computer Graphics.

[7]  Antoine Petitet,et al.  Minimizing development and maintenance costs in supporting persistently optimized BLAS , 2005 .

[8]  Michael Bader,et al.  Cache oblivious matrix multiplication using an element ordering based on the Peano curve , 2006 .

[9]  Jeffrey Scott Vitter,et al.  External memory algorithms and data structures: dealing with massive data , 2001, CSUR.

[10]  S. Vavasis,et al.  Geometric Separators for Finite-Element Meshes , 1998, SIAM J. Sci. Comput..

[11]  R. C. Whaley,et al.  Minimizing development and maintenance costs in supporting persistently optimized BLAS , 2005, Softw. Pract. Exp..

[12]  Pedro V. Sander,et al.  Fast triangle reordering for vertex locality and reduced overdraw , 2007, SIGGRAPH 2007.

[13]  Alok Aggarwal,et al.  The input/output complexity of sorting and related problems , 1988, CACM.

[14]  Craig Gotsman,et al.  Universal Rendering Sequences for Transparent Vertex Caching of Progressive Meshes , 2002, Comput. Graph. Forum.

[15]  Rolf Niedermeier,et al.  Towards optimal locality in mesh-indexings , 1997, Discret. Appl. Math..

[16]  Gary L. Miller,et al.  Geometric mesh partitioning: implementation and experiments , 1995, Proceedings of 9th International Parallel Processing Symposium.

[17]  Renato Pajarola,et al.  Out-Of-Core Algorithms for Scientific Visualization and Computer Graphics , 2002 .

[18]  D. Manocha,et al.  Cache-oblivious mesh layouts , 2005, ACM Trans. Graph..