[176889] |
Title: Mapping Dynamic Programming Algorithms on Graphics Processing Units. |
Written by: Muhammad Kashif Hanif |
in: July (2014). |
Volume: Number: |
on pages: |
Chapter: |
Editor: |
Publisher: |
Series: 20140703-phdthesis-hanif.pdf |
Address: Hamburg / Germany |
Edition: |
ISBN: 10.15480/882.1184 |
how published: 14-30 Hanif14 PhD |
Organization: |
School: Hamburg University of Technology |
Institution: School of Electrical Engineering, Computer Science and Mathematics |
Type: Ph.D. Thesis. |
DOI: |
URL: |
ARXIVID: |
PMID: |
Note: AEG
Abstract: The Graphics Processing Unit (GPU) is a highly parallel, many-core streaming architecture that can execute hundreds of threads concurrently. The data parallel architecture of the GPU is suitable to perform computation intensive applications. In recent years, the use of GPUs for general purpose computation has increased and a large set of problems can be tackled by mapping onto GPUs. The programming model CUDA enables to design C like programs with some extensions which leverages programmers to efficiently use the graphics API.<br /> Alignment is the fundamental operation used to compare biological sequences and in this way to identify regions of similarity that are eventually consequences of structural, functional, or evolutionary relationships. Multiple sequence alignment is an important tool for the simultaneous alignment of three or more sequences. Efficient heuristics exist to cope with this problem.<br /> In the thesis, progressive alignment methods and their parallel implementation by GPUs are studied. More specifically, the dynamic programming algorithms of profile-profile and profile-sequence alignment are mapped onto GPU. Wavefront and matrix-matrix product techniques are discussed which can deal well with the data dependencies. The performance of these methods is analyzed. Simulations show that one order of magnitude of speed-up over the serial version can be achieved.<br /> ClustalW is the most widely used progressive sequence alignment method which aligns more closely related sequences first and then gradually adds more divergent sequences. It consists of three stages: distance matrix calculation, guide tree compilation, and progressive alignment. In this work, the efficient mapping of the alignment stage onto GPU by using a combination of wavefront and matrix-matrix product techniques has been studied.<br /> In the hidden Markov model, the Viterbi algorithm is used to find the most probable sequence of hidden states that has generated the observation. In the thesis, the parallelism exhibited by the compute intensive tasks is studied and a parallel solution based on the matrix-matrix product method onto GPU is devised. Moreover, the opportunity to use optimized BLAS library provided by CUDA is explored. Finally, the performance by fixing the number of states and changing the number of observations and vice versa is portrayed.<br /> At the end, general principles and guidelines for GPU programming of matrix-matrix product algorithms are discussed.