Skip to main content
QUICK REVIEW

[论文解读] ERA: Efficient Serial and Parallel Suffix Tree Construction for Very Long Strings

Essam Mansour, Amin Allam|arXiv (Cornell University)|Sep 30, 2011
Algorithms and Data Compression参考文献 8被引用 4
一句话总结

本文提出ERa,一种基于磁盘的后缀树构建算法,通过动态地在垂直和水平方向上划分字符串处理过程,以最小化I/O操作并优化内存使用。该算法在标准8核桌面电脑(配备16GB内存)上实现了19分钟内构建人类基因组后缀树,性能超越以往需要数千核超算资源的方法。

ABSTRACT

The suffix tree is a data structure for indexing strings. It is used in a variety of applications such as bioinformatics, time series analysis, clustering, text editing and data compression. However, when the string and the resulting suffix tree are too large to fit into the main memory, most existing construction algorithms become very inefficient. This paper presents a disk-based suffix tree construction method, called Elastic Range (ERa), which works efficiently with very long strings that are much larger than the available memory. ERa partitions the tree construction process horizontally and vertically and minimizes I/Os by dynamically adjusting the horizontal partitions independently for each vertical partition, based on the evolving shape of the tree and the available memory. Where appropriate, ERa also groups vertical partitions together to amortize the I/O cost. We developed a serial version; a parallel version for shared-memory and shared-disk multi-core systems; and a parallel version for shared-nothing architectures. ERa indexes the entire human genome in 19 minutes on an ordinary desktop computer. For comparison, the fastest existing method needs 15 minutes using 1024 CPUs on an IBM BlueGene supercomputer.

研究动机与目标

  • 解决现有后缀树构建算法在处理超出主内存容量的超长字符串时效率低下的问题。
  • 设计一种方法,以最小化I/O操作,并动态适应树结构的演变和可用内存。
  • 实现在通用硬件(包括共享内存、共享磁盘和无共享架构)上的高效串行与并行后缀树构建。
  • 在真实世界的大规模数据集(如人类基因组和金融时间序列)上实现高性能。

提出的方法

  • ERa将后缀树构建过程在垂直方向上划分为多个独立的子树,每个子树小到足以容纳在主内存中。
  • 进一步将每个子树在水平方向上划分为可被输入字符串单次顺序扫描处理的分区。
  • 根据树结构的动态演变和可用内存,动态调整水平分区的大小,以最大化内存利用率。
  • 将垂直分区组合在一起,以在多个子树之间分摊I/O成本。
  • 该方法支持串行执行和多种并行架构,包括共享内存、共享磁盘和无共享集群。
  • 使用对输入字符串的顺序I/O访问,其速度远超现代磁盘上的随机I/O。

实验结果

研究问题

  • RQ1当数据超出主内存容量时,能否使超长字符串的后缀树构建变得高效?
  • RQ2在基于磁盘的后缀树构建中,如何在保持高内存利用率的同时最小化I/O开销?
  • RQ3能否设计一种单一算法,高效支持在包括桌面和集群在内的多种架构上的串行与并行执行?
  • RQ4与现有方法相比,该算法在字符串长度和字母表大小增加时的可扩展性如何?
  • RQ5动态分区和I/O分摊在真实数据集(如人类基因组)上能多大程度提升性能?

主要发现

  • ERa在普通8核桌面电脑(16GB内存)上仅用19分钟就完成了人类基因组后缀树的构建,性能优于以往需要超算的方法。
  • 在每节点4GB内存的16节点集群上,ERa仅用8.3分钟完成构建,是该任务报告的最快时间。
  • 与现有串行算法相比,ERa至少快50%,且在超长字符串和大字母表下性能提升更为显著。
  • 在无共享集群中,ERa在4096MBps输入速率下相比WaveFront有2.5倍的性能优势,且性能下降速率更慢。
  • 在共享内存和集群环境中,ERa实现了接近最优的加速比,表明其负载均衡和可扩展性极佳。
  • 通过垂直分区分组和动态水平分区,ERa实现了I/O成本的分摊,与以往方法相比显著降低了磁盘I/O开销。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。