一句话:提出面向生物信息学递推的 DSL 与编译器,将递推规则与剪枝、调度分离并生成高效 C++ 代码。
许多生物信息学算法可表示为动态规划矩阵上的递推方程,但大规模数据的高效实现常需改变单元格计算顺序并剪枝无效区域,手工编码复杂。Filtr 是一个面向生物信息学递推的领域特定语言与编译框架,它将核心递推规则与剪枝、调度策略解耦:剪枝作为近似限制 DP 矩阵中计算哪些单元格,调度决定单元格探索的迭代顺序。Filtr 将这种高层描述编译为优化 C++ 代码,在保持与手工调优实现相当性能的同时支持快速探索新启发式;在生物基准上相较手工优化的序列比对库达到 0.95× 到 30× 的加速。
Many bioinformatics algorithms, such as sequence alignment and structure prediction, can be expressed as recurrence equations over a dynamic programming matrix. Efficient implementations of these algorithms for large-scale biological data often require changing the order in which matrix cells are calculated and pruning ineffectual regions of the matrix from consideration altogether, but these techniques typically complicate implementation. We introduce Filtr, a domain-specific language (DSL) and compiler framework for bioinformatics recurrences. Filtr keeps the core recurrence rules separate from the pruning and scheduling strategies, where pruning acts as an approximation to limit where in the DP matrix cells are computed, and scheduling determines the iteration order for how cells are explored. Filtr compiles these high-level descriptions into optimized C++ code that matches the performance of hand-tuned implementations while enabling rapid exploration of new heuristics. Filtr is competitive with hand-optimized sequence-alignment libraries, ranging from 0.95× to 30× faster across biological benchmarks.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@article{abs-2607-06225,
title = {Filtr: Compiling Bioinformatics Recurrences},
author = {Bala Vinaithirthan and Shiv Sundram and Sneha Goenka and Fredrik Kjolstad},
journal = {Proceedings of the ACM on Programming Languages},
volume = {10},
number = {OOPSLA2},
year = {2026},
doi = {10.1145/3839504}
}