paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Filtr: Compiling Bioinformatics Recurrences

Filtr:编译生物信息学递推式
OOPSLA 10(OOPSLA2)2026匹配度 2/10 · 论文属于程序语言/编译器与 DSL 方向,讨论递推规则的剪枝与调度并生成 C++ 代码,但未涉及静态分析、LLM/Agent、浮点程序分析或贝叶斯程序分析等用户核心研究方向;仅与“编译与代码生成”有较弱的领域邻近性。引用 0 inbox
Bala Vinaithirthan, Shiv Sundram, Sneha Goenka, Fredrik Kjolstad
crossref: 2026-10-02

AI 速览

一句话:提出面向生物信息学递推的 DSL 与编译器,将递推规则与剪枝、调度分离并生成高效 C++ 代码。

许多生物信息学算法可表示为动态规划矩阵上的递推方程,但大规模数据的高效实现常需改变单元格计算顺序并剪枝无效区域,手工编码复杂。Filtr 是一个面向生物信息学递推的领域特定语言与编译框架,它将核心递推规则与剪枝、调度策略解耦:剪枝作为近似限制 DP 矩阵中计算哪些单元格,调度决定单元格探索的迭代顺序。Filtr 将这种高层描述编译为优化 C++ 代码,在保持与手工调优实现相当性能的同时支持快速探索新启发式;在生物基准上相较手工优化的序列比对库达到 0.95× 到 30× 的加速。

问题
如何让生物信息学递推算法的高效实现与剪枝、调度策略易于表达和探索,同时不牺牲性能。
方法
提出 Filtr DSL 与编译器,将核心递推规则与剪枝、调度分离,并编译为优化 C++ 代码。
评估
在生物基准上对比手工优化序列比对库,性能范围为 0.95× 到 30× 加速,并与手工调优实现相当。
原文摘要(Abstract)

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

BibTeX
@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}
}