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...
Autores principales: | , , , , |
---|---|
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 |