Parallel Tiled Cache and Energy Efficient Code for Zuker’s RNA Folding

  • Marek PalkowskiEmail author
  • Wlodzimierz Bielecki
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 12044)


In this paper, we consider Zuker’s RNA folding algorithm, which is a challenging dynamic programming task to optimize because it is resource intensive and has a large number of non-uniform dependences. We apply a previously published approach, proposed by us, to automatically tile and parallelize each loop in the Zuker RNA Folding loop nest, which is within the polyhedral model. First, for each loop nest statement, rectangular tiles are formed within the iteration space of the Zuker loop nest. Then, those tiles are corrected to honor all dependences exposed for the original loop nest. Correction is based on applying the exact transitive closure of a dependence graph. We implemented our approach as a part of the source-to-source TRACO compiler. We compare code performance and energy consumption with those obtained with the state-of-the-art PluTo compiler based on the affine transformation framework as well as with those generated by means of the cache-efficient manual method Transpose. Experiments were carried out on a modern multi-core processor to achieve the significant locality improvement and energy saving for generated code.


RNA folding High-performance computing Zuker algorithm Loop tiling Energy consumption 


  1. 1.
    Bondhugula, U., et al.: A practical automatic polyhedral parallelizer and locality optimizer. SIGPLAN Not. 43(6), 101–113 (2008)CrossRefGoogle Scholar
  2. 2.
    Griebl, M.: Automatic parallelization of loop programs for distributed memory architectures (2004)Google Scholar
  3. 3.
    Intel Corporation: Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 3B: System Programming Guide, Part 2, September 2016.
  4. 4.
    Irigoin, F., Triolet, R.: Supernode partitioning. In: Proceedings of the 15th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1988, pp. 319–329. ACM, New York (1988)Google Scholar
  5. 5.
    Jacob, A.C., Buhler, J.D., Chamberlain, R.D.: Rapid RNA folding: analysis and acceleration of the Zuker recurrence. In: 2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines, pp. 87–94, May 2010Google Scholar
  6. 6.
    Li, J., Ranka, S., Sahni, S.: Multicore and GPU algorithms for Nussinov RNA folding. BMC Bioinformatics 15(8) (2014). S1.
  7. 7.
    Liu, L., Wang, M., Jiang, J., Li, R., Yang, G.: Efficient nonserial polyadic dynamic programming on the cell processor. In: IPDPS Workshops, Anchorage, Alaska, pp. 460–471. IEEE (2011)Google Scholar
  8. 8.
    Markham, N.R., Zuker, M.: UNAFold, pp. 3–31. Humana Press, Totowa (2008)Google Scholar
  9. 9.
    Mathuriya, A., Bader, D.A., Heitsch, C.E., Harvey, S.C.: GTfold: a scalable multicore code for RNA secondary structure prediction. In: Proceedings of the 2009 ACM Symposium on Applied Computing, SAC 2009, pp. 981–988. ACM, New York (2009)Google Scholar
  10. 10.
    Mullapudi, R.T., Bondhugula, U.: Tiling for dynamic scheduling. In: Rajopadhye, S., Verdoolaege, S. (eds.) Proceedings of the 4th International Workshop on Polyhedral Compilation Techniques, Vienna, Austria, January 2014Google Scholar
  11. 11.
    OpenMP Architecture Review Board: OpenMP application program interface version 4.0 (2012).
  12. 12.
    Palkowski, M., Bielecki, W.: Parallel tiled Nussinov RNA folding loop nest generated using both dependence graph transitive closure and loop skewing. BMC Bioinformatics 18(1), 290 (2017)CrossRefGoogle Scholar
  13. 13.
    Palkowski, M., Bielecki, W.: Accelerating minimum cost polygon triangulation code with the TRACO compiler. In: Communication Papers of the 2018 Federated Conference on Computer Science and Information Systems, FedCSIS 2018, Poznań, Poland, 9–12 September 2018, pp. 111–114 (2018)Google Scholar
  14. 14.
    Palkowski, M., Bielecki, W.: Parallel tiled codes implementing the Smith-Waterman alignment algorithm for two and three sequences. J. Comput. Biol. 25(10), 1106–1119 (2018)CrossRefGoogle Scholar
  15. 15.
    Palkowski, M., Bielecki, W.: A practical approach to tiling Zuker’s RNA folding using the transitive closure of loop dependence graphs. In: Świątek, J., Borzemski, L., Wilimowska, Z. (eds.) ISAT 2017. AISC, vol. 656, pp. 200–209. Springer, Cham (2018). Scholar
  16. 16.
    de Melo, A.C.: The new linux ‘perf’ tools. Technical report, Linux Kongress, Georg Simon Ohm University Nuremberg, Germany (2010)Google Scholar
  17. 17.
    Tan, G., Feng, S., Sun, N.: Locality and parallelism optimization for dynamic programming algorithm in bioinformatics. In: SC 2006 Conference, Proceedings of the ACM/IEEE, pp. 41–41 (2006)Google Scholar
  18. 18.
    Verdoolaege, S.: Integer set library - manual. Technical report (2011).
  19. 19.
    Wonnacott, D.G., Strout, M.M.: On the scalability of loop tiling techniques. In: Proceedings of the 3rd International Workshop on Polyhedral Compilation Techniques (IMPACT), January 2013Google Scholar
  20. 20.
    Xue, J.: Loop Tiling for Parallelism. Kluwer Academic Publishers, Norwell (2000)CrossRefGoogle Scholar
  21. 21.
    Zhao, C., Sahni, S.: Cache and energy efficient algorithms for Nussinov’s RNA folding. BMC Bioinformatics 18(15), 518 (2017)CrossRefGoogle Scholar
  22. 22.
    Zuker, M., Stiegler, P.: Optimal computer folding of large RNA sequences using thermodynamics and auxiliary information. Nucleic Acids Res. 9(1), 133–148 (1981)CrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2020

Authors and Affiliations

  1. 1.Faculty of Computer Science and Information SystemsWest Pomeranian University of Technology in SzczecinSzczecinPoland

Personalised recommendations