Cargando…

Tuning iteration space slicing based tiled multi-core code implementing Nussinov’s RNA folding

BACKGROUND: RNA folding is an ongoing compute-intensive task of bioinformatics. Parallelization and improving code locality for this kind of algorithms is one of the most relevant areas in computational biology. Fortunately, RNA secondary structure approaches, such as Nussinov’s recurrence, involve...

Descripción completa

Detalles Bibliográficos
Autores principales: Palkowski, Marek, Bielecki, Wlodzimierz
Formato: Online Artículo Texto
Lenguaje:English
Publicado: BioMed Central 2018
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5769393/
https://www.ncbi.nlm.nih.gov/pubmed/29334891
http://dx.doi.org/10.1186/s12859-018-2008-6
_version_ 1783292890694287360
author Palkowski, Marek
Bielecki, Wlodzimierz
author_facet Palkowski, Marek
Bielecki, Wlodzimierz
author_sort Palkowski, Marek
collection PubMed
description BACKGROUND: RNA folding is an ongoing compute-intensive task of bioinformatics. Parallelization and improving code locality for this kind of algorithms is one of the most relevant areas in computational biology. Fortunately, RNA secondary structure approaches, such as Nussinov’s recurrence, involve mathematical operations over affine control loops whose iteration space can be represented by the polyhedral model. This allows us to apply powerful polyhedral compilation techniques based on the transitive closure of dependence graphs to generate parallel tiled code implementing Nussinov’s RNA folding. Such techniques are within the iteration space slicing framework – the transitive dependences are applied to the statement instances of interest to produce valid tiles. The main problem at generating parallel tiled code is defining a proper tile size and tile dimension which impact parallelism degree and code locality. RESULTS: To choose the best tile size and tile dimension, we first construct parallel parametric tiled code (parameters are variables defining tile size). With this purpose, we first generate two nonparametric tiled codes with different fixed tile sizes but with the same code structure and then derive a general affine model, which describes all integer factors available in expressions of those codes. Using this model and known integer factors present in the mentioned expressions (they define the left-hand side of the model), we find unknown integers in this model for each integer factor available in the same fixed tiled code position and replace in this code expressions, including integer factors, with those including parameters. Then we use this parallel parametric tiled code to implement the well-known tile size selection (TSS) technique, which allows us to discover in a given search space the best tile size and tile dimension maximizing target code performance. CONCLUSIONS: For a given search space, the presented approach allows us to choose the best tile size and tile dimension in parallel tiled code implementing Nussinov’s RNA folding. Experimental results, received on modern Intel multi-core processors, demonstrate that this code outperforms known closely related implementations when the length of RNA strands is bigger than 2500. ELECTRONIC SUPPLEMENTARY MATERIAL: The online version of this article (doi:10.1186/s12859-018-2008-6) contains supplementary material, which is available to authorized users.
format Online
Article
Text
id pubmed-5769393
institution National Center for Biotechnology Information
language English
publishDate 2018
publisher BioMed Central
record_format MEDLINE/PubMed
spelling pubmed-57693932018-01-25 Tuning iteration space slicing based tiled multi-core code implementing Nussinov’s RNA folding Palkowski, Marek Bielecki, Wlodzimierz BMC Bioinformatics Research Article BACKGROUND: RNA folding is an ongoing compute-intensive task of bioinformatics. Parallelization and improving code locality for this kind of algorithms is one of the most relevant areas in computational biology. Fortunately, RNA secondary structure approaches, such as Nussinov’s recurrence, involve mathematical operations over affine control loops whose iteration space can be represented by the polyhedral model. This allows us to apply powerful polyhedral compilation techniques based on the transitive closure of dependence graphs to generate parallel tiled code implementing Nussinov’s RNA folding. Such techniques are within the iteration space slicing framework – the transitive dependences are applied to the statement instances of interest to produce valid tiles. The main problem at generating parallel tiled code is defining a proper tile size and tile dimension which impact parallelism degree and code locality. RESULTS: To choose the best tile size and tile dimension, we first construct parallel parametric tiled code (parameters are variables defining tile size). With this purpose, we first generate two nonparametric tiled codes with different fixed tile sizes but with the same code structure and then derive a general affine model, which describes all integer factors available in expressions of those codes. Using this model and known integer factors present in the mentioned expressions (they define the left-hand side of the model), we find unknown integers in this model for each integer factor available in the same fixed tiled code position and replace in this code expressions, including integer factors, with those including parameters. Then we use this parallel parametric tiled code to implement the well-known tile size selection (TSS) technique, which allows us to discover in a given search space the best tile size and tile dimension maximizing target code performance. CONCLUSIONS: For a given search space, the presented approach allows us to choose the best tile size and tile dimension in parallel tiled code implementing Nussinov’s RNA folding. Experimental results, received on modern Intel multi-core processors, demonstrate that this code outperforms known closely related implementations when the length of RNA strands is bigger than 2500. ELECTRONIC SUPPLEMENTARY MATERIAL: The online version of this article (doi:10.1186/s12859-018-2008-6) contains supplementary material, which is available to authorized users. BioMed Central 2018-01-15 /pmc/articles/PMC5769393/ /pubmed/29334891 http://dx.doi.org/10.1186/s12859-018-2008-6 Text en © The Author(s) 2018 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
Tuning iteration space slicing based tiled multi-core code implementing Nussinov’s RNA folding
title Tuning iteration space slicing based tiled multi-core code implementing Nussinov’s RNA folding
title_full Tuning iteration space slicing based tiled multi-core code implementing Nussinov’s RNA folding
title_fullStr Tuning iteration space slicing based tiled multi-core code implementing Nussinov’s RNA folding
title_full_unstemmed Tuning iteration space slicing based tiled multi-core code implementing Nussinov’s RNA folding
title_short Tuning iteration space slicing based tiled multi-core code implementing Nussinov’s RNA folding
title_sort tuning iteration space slicing based tiled multi-core code implementing nussinov’s rna folding
topic Research Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5769393/
https://www.ncbi.nlm.nih.gov/pubmed/29334891
http://dx.doi.org/10.1186/s12859-018-2008-6
work_keys_str_mv AT palkowskimarek tuningiterationspaceslicingbasedtiledmulticorecodeimplementingnussinovsrnafolding
AT bieleckiwlodzimierz tuningiterationspaceslicingbasedtiledmulticorecodeimplementingnussinovsrnafolding