最优缓存无关网格布局
数据结构与算法
2009-10-05 v2 计算工程、金融与科学
数学软件
数值分析
摘要
网格是将物理空间划分为规则形状区域的图。网格计算构成了许多应用的基础,例如有限元方法、图像渲染和碰撞检测。在一个称为网格更新的重要网格原语中,每个网格顶点存储一个值,并根据所有相邻顶点存储的值反复更新该值。网格更新的性能取决于网格在内存中的布局。本文展示了如何找到一种内存布局,以保证网格更新对于任何一组内存参数都具有渐近最优的内存性能。这种内存布局被称为缓存无关(cache-oblivious)。形式上,对于维网格、块大小和缓存大小(其中),的网格更新使用次内存传输。本文还展示了当缓存较小即时,网格更新性能如何下降。随后,本文给出了两种寻找缓存无关网格布局的算法。第一种布局算法在 RAM 模型上的期望运行时间和高概率运行时间均为。在缓存无关模型和磁盘访问机(DAM)模型中,其期望内存传输次数为,高概率内存传输次数为。该布局通过寻找的完全平衡分解树,然后对该树的叶子节点进行中序遍历获得。第二种算法在所有三种内存模型中,无论是在期望还是高概率情况下,运行速度都快了将近倍。该布局通过寻找的松弛平衡分解树,然后对该树的叶子节点进行中序遍历获得。
引用
@article{arxiv.0705.1033,
title = {Optimal Cache-Oblivious Mesh Layouts},
author = {Michael A. Bender and Bradley C. Kuszmaul and Shang-Hua Teng and Kebin Wang},
journal= {arXiv preprint arXiv:0705.1033},
year = {2009}
}