论文部分内容阅读
动态规划是求解最优化问题的一种高效的途径和方法,在生物信息学和科学计算中有着广泛的应用。然而,由于求解问题的数据规模的急剧膨胀,传统的串行程序实现在运行时间方面已无法让人接受。既而,动态规划的并行化实现便显得十分的必要和重要。另一方面,由于动态规划自身存在的强依赖性使得并行编程复杂且易出错,开发出一套工具来帮助开发人员简化并行编程显得十分的必要和重要。本文针对动态规划问题,本着简化并行编程的理念和目标,从并行编程模型和并行设计模式的角度出发,首先提出了面向DAG数据驱动型应用的模型,然后基于该模型,设计并实现出了一套面向多核共享存储环境的运行时系统--EasyPDP。通过使用该EasyPDP系统,用户只需要将精力关注于具体算法的串行实现,而对于程序并行实现细节方面,用户无需关注,EasyPDP自动地负责着并行程序中整个线程的创建、数据任务的动态调度和分配、数据化分和容错控制等。本文首先提出了面向DAG数据驱动型应用的模型。从模型的意义和目的角度,对其进行了分析和介绍。接着从模型框架组成方面,对用户应用程序模块、DAG模式图模块、DAG运行时系统模块分别进行了详细地说明。然后,针对动态规划在生物信息学中的应用及其在并行化方面的研究现状,进行了系统的分类和阐述。另外,提出了面向动态规划算法的DAG模式图,以便供用户直接使用。最后,本文对EasyPDP运行时系统进行了详细的介绍和性能分析。分别从EasyPDP系统目标、系统模块、系统数据控制流、容错性能控制机制、性能参数分析建模等角度对系统进行了全方位的剖析。接着进行了实验的性能分析。首先提出了参数分析模型,然后从EasyPDP的配置参数(DataSize, BlockSize, ThreadNum)、EasyPDP的overhead和cache失效、与静态并行实现BCW的性能比较、EasyPDP容错性能评估等角度进行实现分析说明。