linux应用程序多核并行化方法研究与实现

linux应用程序多核并行化方法研究与实现

ID:32334995

大小:3.25 MB

页数:45页

时间:2019-02-03

linux应用程序多核并行化方法研究与实现_第1页
linux应用程序多核并行化方法研究与实现_第2页
linux应用程序多核并行化方法研究与实现_第3页
linux应用程序多核并行化方法研究与实现_第4页
linux应用程序多核并行化方法研究与实现_第5页
资源描述:

《linux应用程序多核并行化方法研究与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、西南交通大学硕士研究生学位论文第4页其次,多核化是进行多核改造而不是多核开发,缩短了开发时间。多核多线程并行化设计如果按照基于传统并行模型开发新版本并行程序,是不适用的。因为这个开发周期太长,而且多线程的开发和调试本身就是技术难题,让对串行开发熟悉的程序员掌握传统并行开发的知识并应用,是一个漫长的过程。因此对现有的串行程序进行多核并行化改造,在不改变串行程序基础架构和算法的基础上,对其局部并行化部分进行并行化设计,利用多核性能调试和优化工具辅助改造,可以加速多核程序设计的开发时间,提高并行化效率

2、。本文提出的解决方案就是基于上述的并行模型思想,因此具有实用价值。第三,本设计通过研究国内外通用的并行化设计方式,总结并行改造流程,综合分析了并行化改造需要考虑的因素,提出的Linux下多核并行化改造的设计模型和解决方案,是对Linux下实现并行化的一个探索,通过一个案例对其它并行化改造和开发提供一个参考方法,具有借鉴意义和应用价值。1.3本设计的并行化模型工具本设计用到的并行化模型工具主要有TBB(IntelThreadBuildingBlocksIntel并行库)和Intel辅助并行化工具I

3、ntelC++Compiler(Intel编译器)、IntelVtunePerformanceAnalyzer(Intel性能分析器)、IntelThreadChecker(Intel线程检查器)。1.3.1并行模型TBBTBB是2007年8月推出的一个开源的C++模板库,能够运行在Windows、Linux以及UNIX等系统上,只要是标准的C++编译器都可以使用它。并行化级别在更高的抽象层。它是基于任务的编程,而不是基于线程。它的主要关注热点在性能和可扩展性,是多核处理器并行化开发的最佳选择。

4、和OpenMP、MPI等传统并行化技术相比,线程构建模块(TBB)的功能和优势主要体现在以下几点【7】:1.基于任务的并行化。在逻辑任务而非物理线程的角度来指定线程功能,任务是比线程更高级的并行抽象,在使用线程构建模块提供的C++模板库时,用户不必关注线程,而只需专注任务本身,这就使开发者无需关心~些具体的线程细节技术,例如负载均衡,优化调度等,线程构建模块自动实现负载平衡,它将通过高效的方式将任务映射到线程,并通过任务窃取(workstealing)来实现自动调度。2.并行算法。从线程构建模块

5、提供的C++模板库中选择高效并行算法模板,即可快速地获得多核处理器带来的优势。3.跨平台支持。编写一次应用就可以应用到多个操作系统中。它支持Intel、Microsoft及GNU的业界领先的编译器。大大加快了在多种多核平台中应用软件的速度。西南交通大学硕士研究生学位论文第5页!--=--=.:===:=======m=m鼍鼍曼皇皇璺皇曼曼曼曼曼鼍曼4.丰富的辅助开发工具。与TBB结合使用的还有许多Intel的辅助开发工具,这些辅助工具的配合使用将极大地提高并行程序的开发和调试效率。1.3.2辅助

6、并行开发工具对多线程程序调试存在很多技术难点而且调试效率低下。Intel提供了多线程调试调优的工具可以解决该问题并提供优化。Intel提供的辅助并行开发工具主要有:1.IntelC++编译器:可以直接通过编译实现初步并行化程序【81。2.IntelVtunePerformanceAnalyzer:用来分析串行程序瓶颈。3.IntelThreadChecker:用来检查线程的死锁和数据竞争,调试并行程序。1.4本设计的预期目标和主要工作内容1.4.1预期目标本设计的预期目标为:1.实现基于FFMP

7、EG[9】的H.264解码程序,分析整个应用在双核机器上面的性能以及运行的情况;2.分析出原始程序中可并行化的部分,用并行编程模式分解程序,提出并行化解决方案;3用TBB运行时库对需要实现并行化的程序进行并行化改造。用tbbparallelfor并行化相对独立的循环层i,用tbb对流水线的每一阶段并行,对_pipelinetbbtaskkilt并行化的任务进行调度;tbbblockedyange设计可扩展的多线程粒度;tbb_work_stealing技术实现多处理器的负载均衡;tbb—atom

8、ic实现多线程间的互斥和同步;4.查错阶段,用IntelC++Complier、IntelThreadChecker帮助调试多线程化和并行化代码,看看有没有相关的错误,以提高并行化编程的质量;5.将调试后的程序在相同的多核机器及软件环境上验证,对比原始程序进行性能评测,并对评测结果进行分析。1.4.2主要工作内容根据并行开发的特点、设计工作的重点和难度,本设计的主要工作分为原始程序的实现、原始程序并行化分析、并行化程序实现、调试优化和性能评测五个方面。原始程序并行化分析方面的主要工作内容为:1.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。