Links

Tools

Export citation

Search in Google Scholar

Unleashing Parallelism in Longest Common Subsequence Using Dataflow

This paper is available in a repository.
This paper is available in a repository.

Full text: Download

Question mark in circle
Preprint: policy unknown
Question mark in circle
Postprint: policy unknown
Question mark in circle
Published version: policy unknown

Abstract

Finding a longest common subsequence (LCS) of two sequences is an important problem for several fields, such as biology, medicine and linguistics. LCS algorithm is usually implemented with dynamic programming techniques where a score matrix (C) is filled to determine the size of the LCS. Parallelization of this task usually follows the wavefront pattern. When using popular APIs, such as OpenMP, wavefront is implemented by processing the elements of each diagonal of C in parallel. This approach restricts parallelism and forces threads to wait on a barrier at the end of the computation of each diagonal. In this paper we propose a dataflow parallel version of LCS. Multiple tasks are created, each one being responsible for processing a block of C, and task execution is fired when all data dependencies are satisfied. Comparison with OpenMP implementation showed performance gains from 13 to 23%, which suggests that dataflow execution can be an interesting alternative to wavefront applications.