EasyHPS: A Multilevel Hybrid Parallel System for Dynamic Programming

Dynamic programming approach solves complex problems efficiently by breaking them down into simpler sub-problems, and is widely utilized in scientific computing. With the increasing data volume of scientific applications and development of multi-core/multi-processor hardware technologies, it is necessary to develop efficient techniques for parallelizing dynamic programming algorithms, particularly in multilevel computing environment. The intrinsically strong data dependency of dynamic programming also makes it difficult and error-prone for the programmer to write a correct and efficient parallel program. In order to make the parallel programming easier and more efficient, we have developed a multilevel hybrid parallel runtime system for dynamic programming named EasyHPS based on the Directed Acyclic Graph(DAG) Data Driven Model in this paper. The EasyHPS system encapsulates details of parallelization implementation, such as task scheduling and message passing, and provides easy API for users to reduce the complexity of parallel programming parallelization. In the DAG Data Driven Model, the entire application is initially partitioned by data partitioning into sub-tasks that each sub-task processing a data block. Then all sub-tasks are modeled as a DAG, in which each vertex represents a sub-task and each edge indicates the communication dependency between the two sub-tasks. In task scheduling, a dynamic approach is proposed based on DAG Data Driven Model to achieve load balancing. Data partitioning and task scheduling are both done on processor-level and thread-level in the multilevel computing environment. In addition, experimental results demonstrate that the proposed dynamic scheduling approach in EasyHPS is more efficient in comparison with those static ones such as block-cyclic based wave front.

[1]  Weiguo Liu,et al.  Parallel Pattern-Based Systems for Computational Biology: A Case Study , 2006, IEEE Transactions on Parallel and Distributed Systems.

[2]  Xiaoqiu Huang,et al.  A space-efficient parallel sequence comparison algorithm for a message-passing multiprocessor , 1990, International Journal of Parallel Programming.

[3]  Mikkel Thorup,et al.  Optimal evolutionary tree comparison by sparse dynamic programming , 1994, Proceedings 35th Annual Symposium on Foundations of Computer Science.

[4]  M S Waterman,et al.  Identification of common molecular subsequences. , 1981, Journal of molecular biology.

[5]  Jean-Cédric Chappelier,et al.  An FPGA-based coprocessor for the parsing of context-free grammars , 2000, Proceedings 2000 IEEE Symposium on Field-Programmable Custom Computing Machines (Cat. No.PR00871).

[6]  D. Eisenberg,et al.  A method to identify protein sequences that fold into a known three-dimensional structure. , 1991, Science.

[7]  Weiguo Liu,et al.  A Generic Parallel Pattern-Based System for Bioinformatics , 2004, Euro-Par.

[8]  Jerrold R. Griggs,et al.  Algorithms for Loop Matchings , 1978 .

[9]  Alan George,et al.  Dynamic Programming on a Shared-Memory Multiprocessor , 1993, Parallel Comput..

[10]  David K. Lowenthal,et al.  A Parallel, Out-of-Core Algorithm for RNA Secondary Structure Prediction , 2006, 2006 International Conference on Parallel Processing (ICPP'06).

[11]  Zvi Galil,et al.  Parallel Algorithms for Dynamic Programming Recurrences with More than O(1) Dependency , 1994, J. Parallel Distributed Comput..

[12]  Guang R. Gao,et al.  A parallel dynamic programming algorithm on a multi-core architecture , 2007, SPAA '07.

[13]  Tao Zhang,et al.  EasyPDP: An Efficient Parallel Dynamic Programming Runtime System for Computational Biology , 2012, IEEE Transactions on Parallel and Distributed Systems.

[14]  Ninghui Sun,et al.  Locality and Parallelism Optimization for Dynamic Programming Algorithm in Bioinformatics , 2006, ACM/IEEE SC 2006 Conference (SC'06).

[15]  Francisco Almeida,et al.  Optimal tiling for the RNA base pairing problem , 2002, SPAA '02.