A Practical Approach to Tiling Zuker's RNA Folding Using the Transitive Closure of Loop Dependence Graphs

RNA secondary structure prediction is a computationally-intensive task that lies at the core of search applications in bioinformatics. In this paper, we consider Zuker’s RNA folding algorithm, which is challenging to optimize because it is resource intensive and has a large number of non-uniform dependences. We describe the application of a previously published approach, proposed by us, to automatic tiling Zuker’s RNA Folding loop nest using the exact polyhedral representation of dependences exposed for this nest. First, rectangular tiles are formed within the iteration space of Zuker’s loop nest. Then tiles are corrected to honor all dependences, exposed for the original loop nest, by means of applying the exact transitive closure of a dependence graph. We implemented our approach as a part of the source-to-source TRACO compiler. The experimental results present the significant speed-up factor of tiled code on a single core of a modern processor. Related work and future algorithm improvements are discussed.

[1]  Uday Bondhugula,et al.  A practical automatic polyhedral parallelizer and locality optimizer , 2008, PLDI '08.

[2]  Anna Beletska,et al.  An Iterative Algorithm of Computing the Transitive Closure of a Union of Parameterized Affine Integer Tuple Relations , 2010, COCOA.

[3]  Marek Palkowski,et al.  Tiling arbitrarily nested loops by means of the transitive , 2016, Int. J. Appl. Math. Comput. Sci..

[4]  Roger D. Chamberlain,et al.  Rapid RNA Folding: Analysis and Acceleration of the Zuker Recurrence , 2010, 2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines.

[5]  David A. Bader,et al.  GTfold: a scalable multicore code for RNA secondary structure prediction , 2009, SAC '09.

[6]  Li Liu,et al.  Efficient Nonserial Polyadic Dynamic Programming on the Cell Processor , 2011, 2011 IEEE International Symposium on Parallel and Distributed Processing Workshops and Phd Forum.

[7]  Marek Palkowski,et al.  Parallel tiled Nussinov RNA folding loop nest generated using both dependence graph transitive closure and loop skewing , 2017, BMC Bioinformatics.

[8]  William Pugh,et al.  An Exact Method for Analysis of Value-based Array Data Dependences , 1993, LCPC.

[9]  François Irigoin,et al.  Supernode partitioning , 1988, POPL '88.

[10]  Martin Griebl,et al.  Automatic Parallelization of Loop Programs for Distributed Memory Architectures , 2004 .

[11]  Uday Bondhugula,et al.  Tiling for Dynamic Scheduling , 2014 .

[12]  Michael Zuker,et al.  Optimal computer folding of large RNA sequences using thermodynamics and auxiliary information , 1981, Nucleic Acids Res..

[13]  Uday Bondhugula,et al.  The Pluto+ Algorithm , 2016, ACM Trans. Program. Lang. Syst..

[14]  Michael Zuker,et al.  UNAFold: software for nucleic acid folding and hybridization. , 2008, Methods in molecular biology.

[15]  Sean R Eddy,et al.  How do RNA folding algorithms work? , 2004, Nature Biotechnology.