Cargando…

Parallel tiled Nussinov RNA folding loop nest generated using both dependence graph transitive closure and loop skewing

BACKGROUND: RNA secondary structure prediction is a compute intensive task that lies at the core of several search algorithms in bioinformatics. Fortunately, the RNA folding approaches, such as the Nussinov base pair maximization, involve mathematical operations over affine control loops whose itera...

Descripción completa

Detalles Bibliográficos
Autores principales: Palkowski, Marek, Bielecki, Wlodzimierz
Formato: Online Artículo Texto
Lenguaje:English
Publicado: BioMed Central 2017
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5457642/
https://www.ncbi.nlm.nih.gov/pubmed/28578661
http://dx.doi.org/10.1186/s12859-017-1707-8
_version_ 1783241585961467904
author Palkowski, Marek
Bielecki, Wlodzimierz
author_facet Palkowski, Marek
Bielecki, Wlodzimierz
author_sort Palkowski, Marek
collection PubMed
description BACKGROUND: RNA secondary structure prediction is a compute intensive task that lies at the core of several search algorithms in bioinformatics. Fortunately, the RNA folding approaches, such as the Nussinov base pair maximization, involve mathematical operations over affine control loops whose iteration space can be represented by the polyhedral model. Polyhedral compilation techniques have proven to be a powerful tool for optimization of dense array codes. However, classical affine loop nest transformations used with these techniques do not optimize effectively codes of dynamic programming of RNA structure predictions. RESULTS: The purpose of this paper is to present a novel approach allowing for generation of a parallel tiled Nussinov RNA loop nest exposing significantly higher performance than that of known related code. This effect is achieved due to improving code locality and calculation parallelization. In order to improve code locality, we apply our previously published technique of automatic loop nest tiling to all the three loops of the Nussinov loop nest. This approach first forms original rectangular 3D tiles and then corrects them to establish their validity by means of applying the transitive closure of a dependence graph. To produce parallel code, we apply the loop skewing technique to a tiled Nussinov loop nest. CONCLUSIONS: The technique is implemented as a part of the publicly available polyhedral source-to-source TRACO compiler. Generated code was run on modern Intel multi-core processors and coprocessors. We present the speed-up factor of generated Nussinov RNA parallel code and demonstrate that it is considerably faster than related codes in which only the two outer loops of the Nussinov loop nest are tiled.
format Online
Article
Text
id pubmed-5457642
institution National Center for Biotechnology Information
language English
publishDate 2017
publisher BioMed Central
record_format MEDLINE/PubMed
spelling pubmed-54576422017-06-06 Parallel tiled Nussinov RNA folding loop nest generated using both dependence graph transitive closure and loop skewing Palkowski, Marek Bielecki, Wlodzimierz BMC Bioinformatics Research Article BACKGROUND: RNA secondary structure prediction is a compute intensive task that lies at the core of several search algorithms in bioinformatics. Fortunately, the RNA folding approaches, such as the Nussinov base pair maximization, involve mathematical operations over affine control loops whose iteration space can be represented by the polyhedral model. Polyhedral compilation techniques have proven to be a powerful tool for optimization of dense array codes. However, classical affine loop nest transformations used with these techniques do not optimize effectively codes of dynamic programming of RNA structure predictions. RESULTS: The purpose of this paper is to present a novel approach allowing for generation of a parallel tiled Nussinov RNA loop nest exposing significantly higher performance than that of known related code. This effect is achieved due to improving code locality and calculation parallelization. In order to improve code locality, we apply our previously published technique of automatic loop nest tiling to all the three loops of the Nussinov loop nest. This approach first forms original rectangular 3D tiles and then corrects them to establish their validity by means of applying the transitive closure of a dependence graph. To produce parallel code, we apply the loop skewing technique to a tiled Nussinov loop nest. CONCLUSIONS: The technique is implemented as a part of the publicly available polyhedral source-to-source TRACO compiler. Generated code was run on modern Intel multi-core processors and coprocessors. We present the speed-up factor of generated Nussinov RNA parallel code and demonstrate that it is considerably faster than related codes in which only the two outer loops of the Nussinov loop nest are tiled. BioMed Central 2017-06-02 /pmc/articles/PMC5457642/ /pubmed/28578661 http://dx.doi.org/10.1186/s12859-017-1707-8 Text en © The Author(s) 2017 Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License(http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made. The Creative Commons Public Domain Dedication waiver(http://creativecommons.org/publicdomain/zero/1.0/) applies to the data made available in this article, unless otherwise stated.
spellingShingle Research Article
Palkowski, Marek
Bielecki, Wlodzimierz
Parallel tiled Nussinov RNA folding loop nest generated using both dependence graph transitive closure and loop skewing
title Parallel tiled Nussinov RNA folding loop nest generated using both dependence graph transitive closure and loop skewing
title_full Parallel tiled Nussinov RNA folding loop nest generated using both dependence graph transitive closure and loop skewing
title_fullStr Parallel tiled Nussinov RNA folding loop nest generated using both dependence graph transitive closure and loop skewing
title_full_unstemmed Parallel tiled Nussinov RNA folding loop nest generated using both dependence graph transitive closure and loop skewing
title_short Parallel tiled Nussinov RNA folding loop nest generated using both dependence graph transitive closure and loop skewing
title_sort parallel tiled nussinov rna folding loop nest generated using both dependence graph transitive closure and loop skewing
topic Research Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5457642/
https://www.ncbi.nlm.nih.gov/pubmed/28578661
http://dx.doi.org/10.1186/s12859-017-1707-8
work_keys_str_mv AT palkowskimarek paralleltilednussinovrnafoldingloopnestgeneratedusingbothdependencegraphtransitiveclosureandloopskewing
AT bieleckiwlodzimierz paralleltilednussinovrnafoldingloopnestgeneratedusingbothdependencegraphtransitiveclosureandloopskewing