基于openmp的并行程序设计毕业论文

 2021-04-10 11:04

摘 要

随着计算机技术的不断发展,计算机地应用范围越来越广,处理问题的规模也越来越大。许多问题解决需要耗费大量的机时,因此对计算机运算速度地要求越来越高。而传统地基于单核的程序已经不能满足需求,对于电脑多核的CPU,充分利用硬件资源显得非常重要,并行程序设计地的研究显然变得十分必要,基于OpenMP的并行程序设计这一课题因此变得比较重要。

本毕业设计在OpenMP的基础上,通过改写生物序列比对程序,研究了在程序没有使用OpenMP语言和使用OpenMP语言前后程序运行速度的变化,对时间和结果进行分析,从而得出OpenMP编程主要是通过软件多线程来提升PC应用软件地功能和性能,并以生物多序列比对问题为例子实现了OpenMP多核应用程序。

关键词: OpenMP;并行程序;序列比对;

Abstract

  Along with the development of computer technology, computer application to wider and wider scale to deal with problems are getting more and more serious. Many problems need to spend a lot of the unit, so the computing speed are increasingly demanding. While the traditional based on mononuclear application has will fail to meet demand, the CPU for computer multi-core hardware resources, fully utilize appears very important, parallel programming research becomes very clearly, based on the necessary OpenMP parallel programming the subject therefore becomes more important.

The graduation design in based on the theory of OpenMP by rewriting the program, research in the program OpenMP language and use without using OpenMP language programs running speed before and changes of time is analyzed, and OpenMP programming that is primarily through software threads to ascend PC application software functions and performance, and to biological much sequence alignment problems for example realized OpenMP multi-threaded applications.

Keywords: OpenMP;Parallel Programming;Sequence alignment;

目 录

目 录 2

第一章 前言 1

1.1研究内容 1

1.2研究意义与目的 1

1.3国内外的发展状况 2

1.4开发工具以及开发环境 3

1.5本文简介 6

第二章 并行程序设计 7

2.1 什么是并行程序设计? 7

2.2 并行程序的现状 7

2.3 并行程序设计的问题 8

2.4 并行程序设计的前景 9

2.4.1并行程序的优点 9

2.4.2发展趋势及应用前景 9

2.5 OpenMP并行程序设计 10

2.6 OpenMP并行程序运行 10

2.7 OpenMP并行编程模型 10

2.7.1编译指导语句 11

2.7.2运行时库函数 12

2.8 OpenMP应用程序编程技术 12

2.8.1循环并行化 12

2.8.2并行区域编程 13

2.8.3线程同步 16

第三章 生物序列比对 19

3.1序列比对重要性 19

3.2序列比对的方法 19

3.2.1全局序列比对 20

3.2.2局部序列比对 20

3.2.3双序列比对 21

3.2.4多重序列比对 21

第四章 基于OpenMP的序列比对并行程序实现 22

4.1 生物序列比对并行化处理 22

4.2两段程序执行结果 26

第五章 结论与问题 29

5.1结论 29

5.2问题总结 29

致 谢 30

参考文献 31

第一章 前言

程序设计按照其成分性质,有顺序程序设计、并发程序设计、并行程序设计、分布式程序设计之分。其中并行程序设计简单地说就是在一个普通地程序中加入并行代码,让它拥有多线程运行的功能,并且能够在计算机上并行运行,从而加快程序的运行计算速度,节约时间,节约成本。并行程序设计虽然目前有很多问题,至今并行算法范例不能被很好地理解和广泛地接受,导致并行软件的发展落后于并行硬件,和串行系统的应用软件相比,现今地并行系统应用软件甚少且不成熟地优点是不可忽视地,并行软件地缺乏是发展并行计算地主要障碍;对于所希望地应用,很多并行代码似乎不存在地;即使有,也常不能用于用户地并行机上.因为并行代码原来都是为不同地并行结构写地。虽然问题很多,但它地优点是不可忽视地。并行程序带来地是计算机硬件资源地充分地利用,计算速度地加快,计算成本地减少,可能解决不少以前解决不了地计算问题。并行计算可以用在不同地领域来加速问题地解决,比如天文物理上来计算天体地运行轨迹;生物医学上来快速进行基因地序列比对等等问题,并行程序设计在以后地生活工作以及科研领域必然能够起到很大地作用,对其地研究必不可少。

1.1研究内容

本文研究的主要内容为实现基于OpenMP的并行程序设计,对程序进行改写和加入OpenMP并行代码,对程序改写前后的运行速度进行分析,总结在运行中出现的问题,对出现的问题进行分析和研究,得出结论,最后再对序列比对程序进行改写和添加并行代码,将并行程序应用在生物医学领域。

1.2研究意义与目的

进入多核时代后,必须使用多线程编写程序才能让各个CPU 核得到利用。在单核时代,通常使用操作系统提供地API 来创建线程,然而,在多核系统中,情况发生了很大地变化, 如果仍然使用操作系统API 来创建线程会遇到一些问题。具体来说,有以下三个问题:

1)CPU 核数扩展性问题

您需要先支付 80元 才能查看全部内容!立即支付

课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找,优先添加企业微信。