[论文解读] A massively parallel algorithm for constructing the BWT of large string sets
该论文提出 set-bwte,一种大规模并行、增量式的算法,用于构建大型字符串集合(如基因组测序读取)的 Burrows-Wheeler 变换(BWT)和 FM-index。该算法采用分块的正向处理方法,结合 GPU 加速的后缀数组构建与 CPU 基于的排名计算,通过最小化外部内存瓶颈,仅使用 O(n log σ) 的系统内存和恒定的高带宽内存,相较于现有最先进方法在长读长数据上实现了高达 6.5 倍的加速。
We present a new scalable, lightweight algorithm to incrementally construct the BWT and FM-index of large string sets such as those produced by Next Generation Sequencing. The algorithm is designed for massive parallelism and can effectively exploit the combination of low capacity high bandwidth memory and slower external system memory typical of GPU accelerated systems. Particularly, for a string set of n characters from an alphabet with σsymbols, it uses a constant amount of high-bandwidth memory and at most 3n log(σ) bits of system memory. Given that deep memory hierarchies are becoming a pervasive trait of high performance computing architectures, we believe this to be a relevant feature. The implementation can handle reads of arbitrary length and is up to 2 and respectively 6.5 times faster than state-of-the-art for short and long genomic reads
研究动机与目标
- 解决大规模基因组字符串集合在 BWT 构造中因外部内存访问缓慢而导致的性能瓶颈。
- 实现 BWT 和 FM-index 的增量构造,支持动态添加新序列而无需重新计算。
- 设计一种高度并行的算法,有效利用具备深层内存层次结构的现代 GPU 加速系统。
- 通过仅使用 O(n log σ) 的系统内存和恒定的高带宽内存,降低内存占用,使其适用于大规模生物信息学工作负载。
提出的方法
- 该算法将输入字符串集合划分为多个块,并在正向循环中顺序处理,实现增量更新。
- 使用基于 GPU 的 32 位字键多关键字基数排序(MSD radix sort),为每个块构建后缀数组。
- 对于每个块,通过反向应用 Ferragina 等人提出的排名引理,计算其后缀相对于现有外部 BWT 的排名,实现每个块 O(|Bint|) 的计算量。
- 根据其字典序排名重新排列新块中的 BWT 符号,并使用一种新型分页数据结构实现高度并行的插入操作,将符号插入外部 BWT。
- 通过多缓冲技术重叠 I/O、GPU 后缀排序以及 CPU 基于的排名与插入阶段,以最大化吞吐量。
- 维护一个分页数组和出现次数计数器,分页数组使用 2n log σ 位,计数器最多使用 n log σ 位,系统内存总使用量 ≤ 3n log σ 位。
实验结果
研究问题
- RQ1是否可以设计一种既大规模并行又支持增量更新的 BWT 构造算法,实现对索引的动态更新?
- RQ2在大规模 BWT 构造中,如何减少外部内存访问带来的性能瓶颈?
- RQ3在具备深层内存层次结构的 GPU 加速 BWT 构造中,实现高吞吐量的最优内存访问模式是什么?
- RQ4在现代共享内存系统中,分块正向处理方法是否能比反向处理或分块排序方法实现更好的性能?
主要发现
- 对于短基因组读长(101bp),set-bwte 的速度比之前最快的非增量算法(ropebwt-bcr)快最多 2 倍,且比最先进的增量算法(ropebwt2)快近 3 倍。
- 对于更长的读长(875bp),相较于 ropebwt2 的性能提升达到 6.5 倍,表明其在读长增加时具有更优的可扩展性。
- 在 Xeon E5-2597-v2 系统上,短读长的排名阶段成为性能瓶颈,耗时接近 GPU 后缀排序阶段的三倍。
- 在 NA12878 数据集上,流水线的吞吐量达到:后缀排序 77 Mbp/s,插入阶段 98 Mbp/s,而排名阶段最慢,为 37 Mbp/s。
- 该算法仅使用恒定的高带宽内存,系统内存最多使用 3n log σ 位,因此在大规模应用中具有高度内存效率。
- 该算法的性能对平均读长变化不敏感,表明其在多种基因组数据集上均具有良好的鲁棒性。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。