As the sizes of graphs grow rapidly, currently many real-world graphs can hardly be loaded in the main memory. It becomes a hot topic to compute depth-first search (DFS) results, i.e., depth-first order or DFS-Tree, on semi-external memory model. Semi-external algorithms assume the main memory could at least hold a spanning tree T of a graph G, and gradually restructure T into a DFS-Tree, which is non-trivial. In this paper, we present a comprehensive study of semi-external DFS problem. Based on our theoretical analysis of its main challenge, we introduce a new semi-external DFS algorithm, named EP-DFS, with a lightweight index N+-index. Unlike traditional algorithms, we focus on addressing such complex problem efficiently not only with less I/Os, but also with simpler CPU calculation (implementation-friendly) and less random I/O accesses (key-to-efficiency). Extensive experimental evaluation is conducted on both synthetic and real graphs. The experimental results confirm that our EP-DFS algorithm significantly outperforms existing algorithms.
翻译:由于图形的大小迅速增长,目前许多真实世界的图表很难在主内存中加载。它成为一个热门话题,用来计算半外部内存模型的深度第一次搜索(DFS)结果,即深度第一顺序或DFS-Tree。半外部算法假定主内存至少可以保持图G的横线T树,并逐渐将T重组成一个非三角的DFS-T。在本文中,我们对半外部的DFS问题进行了全面研究。根据我们对其主要挑战的理论分析,我们采用了一个新的半外部的DFS算法,名为EP-DFS,使用轻量级指数N+-index。与传统的算法不同,我们不仅以较少I/Os,而且以较简单的CPU计算(方便实施)和较不随机的I/O访问(关键到效率)来有效处理这类复杂问题。我们进行的广泛实验结果证实我们的EPFS-DFS算法大大超出现有的算法。