🤖 AI Summary
This work addresses the challenge in bioinformatics of efficiently implementing dynamic programming algorithms, where performance and development productivity are often compromised by the tight coupling between computation order and pruning strategies. The authors propose FILTR, a domain-specific language and accompanying compilation framework that, for the first time, treats pruning as an approximate computation mechanism decoupled from scheduling logic. This separation enables independent specification of recurrence rules, pruning policies, and execution schedules. The framework automatically generates high-performance C++ code that matches or exceeds the speed of hand-optimized libraries across multiple sequence alignment benchmarks, achieving speedups ranging from 0.95× to 30×. This advancement significantly accelerates the exploration and deployment of novel heuristic methods in dynamic programming–based bioinformatics applications.
📝 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.95x to 30x faster across biological benchmarks.