论文部分内容阅读
流应用是从科学计算、多媒体等领域中抽象出的一类应用,并且还成为了微处理器上的主要负载形式。序列比对是生物信息学的基本操作之一,具有计算密集性、并行性和局域性等特点,属于流应用范畴。由于生物技术的发展,数据库容量每年以指数增加,使得序列比对越来越耗时,传统的计算机已经很难满足该应用对实时性的要求,急需要一种新的并行计算平台去实现该应用。NVIDIA GPU从仅用于3D图形渲染扩展到通用计算,而且完全支持流应用,成为了工业界最成功的流体系结构。CUDA统一计算设备架构正是推动NVIDIA GPU成为数据并行通用计算设备的主要动力。本文的研究成果包括:(1)研究了序列比对并行软件的平台适应性,包括在CUDA平台上开发序列比对软件中的粗粒度并行性和开发该软件的核心算法Smith-Waterman算法中的细粒度并行性。(2)从优化计算和访存、负载平衡、开发软件中的粗细粒度并行性和灵活的线程组织方式四个方面优化了序列比对并行软件,包括根据Smith-Waterman算法运行时的行为特征优化GPU线程的计算和访存操作,设计了执行算法Optimized GSW;为了实现GPU线程之间和CPU和GPU之间的负载平衡,分别设计了执行算法G_Optimized GSW和CG_Optimized GSW,提高了计算资源的利用率;灵活使用划分原理,将并行算法和CUDA平台结合,改变了子任务的映射方式,设计了粗细粒度同时并行的算法DL_GSW,同时还指出此方法在CUDA平台的局限性;改变GSW中呆板的线程组织方式,灵活设定grid维度和block维度,从而提高了每个GPU线程的计算能力。(3)实现并评测了四种优化方案,证明了优化方案的高效性,同时这些结论对程序员设计其他流应用在CUDA平台上的映射方法和优化方案有借鉴意义,对CUDA硬件架构的发展也有参考价值。