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

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

论文摘要

随着多核处理器的普及,在以后的数年里,各个领域的计算机都将很快发展成并行计算机,这包括服务器,笔记本等个人电脑,手机等等。这和传统处理器有着本质区别,因为一直以来,处理器的厂商都是通过不断提高主频来提高处理器的性能,但从体系结构来看,这种传统处理器体系结构技术面临瓶颈,晶体管的集成度已超过数亿个,很难单纯地通过提高主频来提升性能,另一方面,主频的提高将同时导致功耗的提高。因此,多核成为处理器发展的必然趋势。而软件也将面临很大的挑战,当然,这对软件行业来讲,同时也是机遇。因为软件的性能不会像传统模式那样简单地随着硬件的升级而得到显著地提升,除非是适合并行计算的软件。但是,如果完全重新开发适合多核平台的并行软件,不仅浪费大量的传统程序资源,而且也不能在短期内满足应用需求。本文针对多核通用开发,在Linux下运用并行开发模型和方法,结合使用Intel多核系列开发工具,对多媒体应用中的一个串行程序运用Intel Vtune Performance Analyzer(性能分析器)进行并行化分析,找到应用程序的热点,设计并行流程,并基于Intel同构多核平台,运用Intel并行时库TBB (Intel Thread Building Blocks)进行相应的并行化改造,并在调试和优化阶段运用Intel Thread Checkerl(线程检测器)检测发现看似正确的程序的潜在错误。实验结果表明,应用程序并行化以后,性能得到明显提升。本设计实现了在Linux下对传统串行程序的多核并行化,对其它多核软件开发具有一定的借鉴意义。

论文目录

  • 摘要
  • Abstract
  • 第1章 绪论
  • 1.1 引言
  • 1.2 本课题的研究背景
  • 1.2.1 多核软件开发的研究现状和发展
  • 1.2.2 多核软件的应用领域
  • 1.2.3 课题的研究现状
  • 1.2.4 课题的研究意义
  • 1.3 本设计的并行化模型工具
  • 1.3.1 并行模型TBB
  • 1.3.2 辅助并行开发工具
  • 1.4 本设计的预期目标和主要工作内容
  • 1.4.1 预期目标
  • 1.4.2 主要工作内容
  • 1.4.3 课题的难点
  • 1.4.4 课题的创新点
  • 第2章 系统总体设计
  • 2.1 多核开发平台
  • 2.1.1 硬件开发平台——多核处理器
  • 2.1.2 软件开发平台——Linux操作系统对多核处理器的支持
  • 2.2 总体设计
  • 2.2.1 系统分析
  • 2.2.2 并行编程模型的选择
  • 2.2.3 并行化开发工具的选择
  • 2.2.4 并行程序开发模型
  • 2.2.5 系统开发步骤
  • 第3章 串行程序可并行化分析
  • 3.1 串行程序的结构特征
  • 3.1.1 串行程序总体架构
  • 3.1.2 H.264视频解码器的软件编译实现
  • 3.1.3 解码程序实现流程分析
  • 3.1.4 本文解码器性能测试
  • 3.1.5 串行程序的并行化条件
  • 3.1.6 串行程序的并行化可能性
  • 3.2 串行程序的解码性能分析
  • 3.2.1 Vtune性能分析器数据采样分析
  • 3.2.2 Vtune性能分析器调用图分析
  • 3.3 原始程序的并行化方案
  • 3.3.1 原始程序的数据并行化
  • 3.3.2 原始程序的循环并行化
  • 3.3.3 原始程序的功能并行化分析
  • 3.4 原始程序的并行化分析总体解决方案
  • 第4章 并行化方案的设计实现
  • 4.1 传统解决方案
  • 4.1.1 Linux POSⅨ Pthreads线程库
  • 4.1.2 openMP并行方案
  • 4.1.3 MPI并行方案
  • 4.2 本设计开发平台
  • 4.2.1 TBB介绍
  • 4.2.2 并行环境的构建
  • 4.2.3 并行设计模型整体架构
  • 4.3 粒度划分和循环并行化实现
  • for循环并行化设计'>4.3.1 parallelfor循环并行化设计
  • 4.3.2 并行粒度划分设计
  • 4.3.3 粒度的划分实验
  • 4.4 内存并行化实现
  • 4.5 数据并行化实现
  • 4.5.1 数据并行化的具体实现
  • 4.6 流水线并行化实现
  • 4.7 任务级并行化实现
  • 4.7.1 TBB/scheduler init任务调度设计
  • 4.7.2 TBB/task设计
  • 第5章 并行程序调试与评测
  • 5.1 INTEL C++COMPILER编译优化
  • 5.2 INTEL THREAD CHECKER调试
  • 5.3 并行程序评测
  • 5.3.1 评测条件
  • 5.3.2 串行程序评测
  • 5.3.3 并行程序评测
  • 结论
  • 致谢
  • 参考文献
  • 攻读硕士学位期间发表的论文
  • 相关论文文献

    • [1].思政教育融入《Linux基础》课程的探索[J]. 武汉工程职业技术学院学报 2019(04)
    • [2].基于Linux的智能家居控制系统综合实验设计[J]. 实验技术与管理 2020(01)
    • [3].Linux系统教学中关于命名管道文件的解析[J]. 软件 2020(02)
    • [4].基于嵌入式Linux的多关节机器人通信系统设计[J]. 通信电源技术 2020(04)
    • [5].嵌入式Linux下内存泄漏的检查和解决[J]. 现代计算机 2020(11)
    • [6].基于“Linux集群和自动化运维”课程规划与设计[J]. 数字通信世界 2020(04)
    • [7].基于Linux系统服务器网络安全机制[J]. 电子技术与软件工程 2020(09)
    • [8].基于嵌入式Linux系统的电力监控系统优化[J]. 舰船科学技术 2020(14)
    • [9].探析大数据时代的Linux平台网络安全及防范措施[J]. 科技传播 2020(12)
    • [10].Linux操作系统项目情境教学研究[J]. 福建电脑 2020(09)
    • [11].基于嵌入式Linux的电力巡检机器人自动化控制系统设计[J]. 自动化与仪器仪表 2020(10)
    • [12].Linux操作系统探讨[J]. 计算机产品与流通 2019(12)
    • [13].基于Linux的可信计算系统的设计与实现[J]. 电子设计工程 2019(22)
    • [14].Linux平台下网络直播系统的实现[J]. 科技展望 2016(35)
    • [15].任务驱动教学法在linux课程教学中的应用研究[J]. 电子制作 2016(22)
    • [16].从Linux的发展史看职业教育的发展前景[J]. 无线互联科技 2017(01)
    • [17].Linux下自适应网络数据捕获系统设计[J]. 中国新通信 2017(04)
    • [18].Linux调度器免锁优化方法研究[J]. 小型微型计算机系统 2017(04)
    • [19].一种基于Linux标准分区的快照方法[J]. 现代计算机(专业版) 2017(07)
    • [20].Linux网络编程的研究[J]. 电脑编程技巧与维护 2017(06)
    • [21].基于性质制导符号执行的Linux驱动程序缺陷检测研究[J]. 计算机工程与科学 2017(04)
    • [22].基于Linux的嵌入式日志系统设计与实现[J]. 电子科学技术 2017(03)
    • [23].Linux温度控制优化[J]. 信息与电脑(理论版) 2017(08)
    • [24].基于Linux的软件版路由器设计与实现[J]. 电脑编程技巧与维护 2017(14)
    • [25].基于Linux的考勤系统的设计与实现[J]. 电脑知识与技术 2017(18)
    • [26].基于Linux系统的即时通信系统的设计与实现[J]. 电子技术与软件工程 2017(14)
    • [27].基于Linux系统的采煤机调速主控系统设计[J]. 煤炭技术 2017(08)
    • [28].嵌入式Linux根文件系统的构建[J]. 铜陵学院学报 2017(03)
    • [29].Linux系统移植的分析[J]. 信息系统工程 2017(07)
    • [30].基于Linux的智能电表数据采集实现[J]. 软件导刊 2017(09)

    标签:;  ;  ;  ;  

    Linux应用程序多核并行化方法研究与实现
    下载Doc文档

    猜你喜欢