Search arXiv⌕ Search

arXiv · 0705.1033

Optimal Cache-Oblivious Mesh Layouts

Abstract

A mesh is a graph that divides physical space into regularly-shaped regions. Meshes computations form the basis of many applications, e.g. finite-element methods, image rendering, and collision detection. In one important mesh primitive, called a mesh update, each mesh vertex stores a value and repeatedly updates this value based on the values stored in all neighboring vertices. The performance of a mesh update depends on the layout of the mesh in memory. This paper shows how to find a memory layout that guarantees that the mesh update has asymptotically optimal memory performance for any set of memory parameters. Such a memory layout is called cache-oblivious. Formally, for a $d$-dimensional mesh $G$, block size $B$, and cache size $M$ (where $M=Ω(B^d)$), the mesh update of $G$ uses $O(1+|G|/B)$ memory transfers. The paper also shows how the mesh-update performance degrades for smaller caches, where $M=o(B^d)$. The paper then gives two algorithms for finding cache-oblivious mesh layouts. The first layout algorithm runs in time $O(|G|\log^2|G|)$ both in expectation and with high probability on a RAM. It uses $O(1+|G|\log^2(|G|/M)/B)$ memory transfers in expectation and $O(1+(|G|/B)(\log^2(|G|/M) + \log|G|))$ memory transfers with high probability in the cache-oblivious and disk-access machine (DAM) models. The layout is obtained by finding a fully balanced decomposition tree of $G$ and then performing an in-order traversal of the leaves of the tree. The second algorithm runs faster by almost a $\log|G|/\log\log|G|$ factor in all three memory models, both in expectation and with high probability. The layout obtained by finding a relax-balanced decomposition tree of $G$ and then performing an in-order traversal of the leaves of the tree.

Explore related subjects

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

Michael A. Bender, Bradley C. Kuszmaul, Shang-Hua Teng, Kebin Wang. 2009-10-05. Optimal Cache-Oblivious Mesh Layouts. https://arxiv.org/abs/0705.1033

Cite the original work for its findings. Save a collection to share your selection of sources.

KEEP EXPLORING

Related papers

Path Enumeration by Position-Visit Counts in Recombining Trinomial Trees

Recombining trinomial trees are a workhorse for modeling discrete-event systems in option pricing, logistics, and feedback control. Because each node stores a state-dependent quantity, a depth-$D$ tree contains $3^D$ raw trajectories, making exhaustive enumeration rapidly infeasible. However, when each node's value depends only on its position, a raw trajectory's aggregate is determined by its position-visit counts. We call these count vectors cardinality tuples and decompose the admissible tuples into weak-composition mass layers. Leveraging these structures, we introduce a mass-shifting enumeration algorithm that slides integer ``masses'' through cardinality tuples to generate exactly one representative of each path-equivalence class, while the accompanying weak-composition bijections yield exact counting formulas for the generated families. This suppresses redundant raw-path orderings a priori rather than enumerating and deduplicating them afterward. For the full-tuple implementation, we prove an output-sensitive running-time bound at each fixed endpoint, together with a uniform worst-case upper bound $\mathscr{O}(D2^D)$ and an exact worst-case exponential growth base of $2$, compared with base $3$ for exhaustive raw-path enumeration. Thus the construction achieves a provable exponential reduction in the enumeration space, up to polynomial factors. The same framework also recovers the information compressed by the equivalence classes: we derive an exact degeneracy formula for the number of raw paths represented by every cardinality tuple. We further prove that the nonnegative return specialization is exactly the classical Motzkin family, recover its recursive and generating-function structure and the Dyck specialization, and derive a multivariate occupation-profile $J$-fraction whose coefficients recover the corresponding cardinality-tuple degeneracies.

cs.DS↗

The Longest Common Bitonic Subsequence: Match-Sensitive Algorithms and Conditional Hardness

The longest common bitonic subsequence problem asks for a longest common subsequence of two ordered sequences whose values strictly increase and then strictly decrease; either phase may be empty. We formulate the problem through increasing and decreasing endpoint values at matching position pairs. This gives a constructive quadratic baseline and a matchsensitive algorithm based on two standard dominance-maximum passes. Its time is the sum of an input-sorting term and the number of matches times a squared logarithmic factor. We state the endpoint interface that permits reuse of increasing subsequence algorithms, and distinguish this specialization from new range searching machinery. A linear-size padding reduction transfers the conditional strongly subquadratic lower bound for longest common increasing subsequence to the bitonic problem. Reproducible implementations, exhaustive small-instance checks, and newly measured synthetic experiments document correctness and the practical tradeoff between sparse and dense processing.

cs.DS↗

Polynomial Time Algorithms for the Kadison-Singer Problem

Marcus, Spielman, and Srivastava [MSS15] established the existence of Kadison--Singer partitions. We provide polynomial-time algorithms for the Kadison--Singer problem. For Hermitian matrices $A_1,\ldots,A_m\in\mathbb C^{n\times n}$ of rank at most one, we give two algorithms that find signs $σ\in\{\pm1\}^m$ satisfying $\|\sum_i σ_iA_i\|\le C\|\sum_i A_i^2\|^{1/2}$. The deterministic algorithm achieves $C=3.3443$ using $\widetilde O(mn^2+n^{4.75})$ arithmetic operations. The randomized algorithm achieves $C=4.8628$ using $\widetilde O(mn^2+n^{3.58})$ arithmetic operations in expectation. For vectors satisfying $\sum_i a_ia_i^*=I$ and $\|a_i\|^2\leα$, the algorithms yield partitions $[m]=I_1\cup I_2$ satisfying $\|\sum_{i\in I_j}a_ia_i^*-I/2\|\le (C/2)\sqrtα$ for $j=1,2$.

cs.DS↗