Cargando…

Profiling the BLAST bioinformatics application for load balancing on high-performance computing clusters

BACKGROUND: The Basic Local Alignment Search Tool (BLAST) is a suite of commonly used algorithms for identifying matches between biological sequences. The user supplies a database file and query file of sequences for BLAST to find identical sequences between the two. The typical millions of database...

Descripción completa

Detalles Bibliográficos
Autores principales: Cheng, Trinity, Chin, Pei-Ju, Cha, Kenny, Petrick, Nicholas, Mikailov, Mike
Formato: Online Artículo Texto
Lenguaje:English
Publicado: BioMed Central 2022
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9758941/
https://www.ncbi.nlm.nih.gov/pubmed/36526957
http://dx.doi.org/10.1186/s12859-022-05029-7
_version_ 1784852145658396672
author Cheng, Trinity
Chin, Pei-Ju
Cha, Kenny
Petrick, Nicholas
Mikailov, Mike
author_facet Cheng, Trinity
Chin, Pei-Ju
Cha, Kenny
Petrick, Nicholas
Mikailov, Mike
author_sort Cheng, Trinity
collection PubMed
description BACKGROUND: The Basic Local Alignment Search Tool (BLAST) is a suite of commonly used algorithms for identifying matches between biological sequences. The user supplies a database file and query file of sequences for BLAST to find identical sequences between the two. The typical millions of database and query sequences make BLAST computationally challenging but also well suited for parallelization on high-performance computing clusters. The efficacy of parallelization depends on the data partitioning, where the optimal data partitioning relies on an accurate performance model. In previous studies, a BLAST job was sped up by 27 times by partitioning the database and query among thousands of processor nodes. However, the optimality of the partitioning method was not studied. Unlike BLAST performance models proposed in the literature that usually have problem size and hardware configuration as the only variables, the execution time of a BLAST job is a function of database size, query size, and hardware capability. In this work, the nucleotide BLAST application BLASTN was profiled using three methods: shell-level profiling with the Unix “time” command, code-level profiling with the built-in “profiler” module, and system-level profiling with the Unix “gprof” program. The runtimes were measured for six node types, using six different database files and 15 query files, on a heterogeneous HPC cluster with 500+ nodes. The empirical measurement data were fitted with quadratic functions to develop performance models that were used to guide the data parallelization for BLASTN jobs. RESULTS: Profiling results showed that BLASTN contains more than 34,500 different functions, but a single function, RunMTBySplitDB, takes 99.12% of the total runtime. Among its 53 child functions, five core functions were identified to make up 92.12% of the overall BLASTN runtime. Based on the performance models, static load balancing algorithms can be applied to the BLASTN input data to minimize the runtime of the longest job on an HPC cluster. Four test cases being run on homogeneous and heterogeneous clusters were tested. Experiment results showed that the runtime can be reduced by 81% on a homogeneous cluster and by 20% on a heterogeneous cluster by re-distributing the workload. DISCUSSION: Optimal data partitioning can improve BLASTN’s overall runtime 5.4-fold in comparison with dividing the database and query into the same number of fragments. The proposed methodology can be used in the other applications in the BLAST+ suite or any other application as long as source code is available.
format Online
Article
Text
id pubmed-9758941
institution National Center for Biotechnology Information
language English
publishDate 2022
publisher BioMed Central
record_format MEDLINE/PubMed
spelling pubmed-97589412022-12-18 Profiling the BLAST bioinformatics application for load balancing on high-performance computing clusters Cheng, Trinity Chin, Pei-Ju Cha, Kenny Petrick, Nicholas Mikailov, Mike BMC Bioinformatics Research BACKGROUND: The Basic Local Alignment Search Tool (BLAST) is a suite of commonly used algorithms for identifying matches between biological sequences. The user supplies a database file and query file of sequences for BLAST to find identical sequences between the two. The typical millions of database and query sequences make BLAST computationally challenging but also well suited for parallelization on high-performance computing clusters. The efficacy of parallelization depends on the data partitioning, where the optimal data partitioning relies on an accurate performance model. In previous studies, a BLAST job was sped up by 27 times by partitioning the database and query among thousands of processor nodes. However, the optimality of the partitioning method was not studied. Unlike BLAST performance models proposed in the literature that usually have problem size and hardware configuration as the only variables, the execution time of a BLAST job is a function of database size, query size, and hardware capability. In this work, the nucleotide BLAST application BLASTN was profiled using three methods: shell-level profiling with the Unix “time” command, code-level profiling with the built-in “profiler” module, and system-level profiling with the Unix “gprof” program. The runtimes were measured for six node types, using six different database files and 15 query files, on a heterogeneous HPC cluster with 500+ nodes. The empirical measurement data were fitted with quadratic functions to develop performance models that were used to guide the data parallelization for BLASTN jobs. RESULTS: Profiling results showed that BLASTN contains more than 34,500 different functions, but a single function, RunMTBySplitDB, takes 99.12% of the total runtime. Among its 53 child functions, five core functions were identified to make up 92.12% of the overall BLASTN runtime. Based on the performance models, static load balancing algorithms can be applied to the BLASTN input data to minimize the runtime of the longest job on an HPC cluster. Four test cases being run on homogeneous and heterogeneous clusters were tested. Experiment results showed that the runtime can be reduced by 81% on a homogeneous cluster and by 20% on a heterogeneous cluster by re-distributing the workload. DISCUSSION: Optimal data partitioning can improve BLASTN’s overall runtime 5.4-fold in comparison with dividing the database and query into the same number of fragments. The proposed methodology can be used in the other applications in the BLAST+ suite or any other application as long as source code is available. BioMed Central 2022-12-16 /pmc/articles/PMC9758941/ /pubmed/36526957 http://dx.doi.org/10.1186/s12859-022-05029-7 Text en © This is a U.S. Government work and not under copyright protection in the US; foreign copyright protection may apply 2022 https://creativecommons.org/licenses/by/4.0/Open AccessThis article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/ (https://creativecommons.org/licenses/by/4.0/) . The Creative Commons Public Domain Dedication waiver (http://creativecommons.org/publicdomain/zero/1.0/ (https://creativecommons.org/publicdomain/zero/1.0/) ) applies to the data made available in this article, unless otherwise stated in a credit line to the data.
spellingShingle Research
Cheng, Trinity
Chin, Pei-Ju
Cha, Kenny
Petrick, Nicholas
Mikailov, Mike
Profiling the BLAST bioinformatics application for load balancing on high-performance computing clusters
title Profiling the BLAST bioinformatics application for load balancing on high-performance computing clusters
title_full Profiling the BLAST bioinformatics application for load balancing on high-performance computing clusters
title_fullStr Profiling the BLAST bioinformatics application for load balancing on high-performance computing clusters
title_full_unstemmed Profiling the BLAST bioinformatics application for load balancing on high-performance computing clusters
title_short Profiling the BLAST bioinformatics application for load balancing on high-performance computing clusters
title_sort profiling the blast bioinformatics application for load balancing on high-performance computing clusters
topic Research
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9758941/
https://www.ncbi.nlm.nih.gov/pubmed/36526957
http://dx.doi.org/10.1186/s12859-022-05029-7
work_keys_str_mv AT chengtrinity profilingtheblastbioinformaticsapplicationforloadbalancingonhighperformancecomputingclusters
AT chinpeiju profilingtheblastbioinformaticsapplicationforloadbalancingonhighperformancecomputingclusters
AT chakenny profilingtheblastbioinformaticsapplicationforloadbalancingonhighperformancecomputingclusters
AT petricknicholas profilingtheblastbioinformaticsapplicationforloadbalancingonhighperformancecomputingclusters
AT mikailovmike profilingtheblastbioinformaticsapplicationforloadbalancingonhighperformancecomputingclusters