多核并行编程技术在加速数字图像处理中的应用

多核并行编程技术在加速数字图像处理中的应用

论文摘要

随着多核处理器硬件的不断发展,多核处理器最迫切需求是系统软件支持和应用软件开发,软件针对处理器进行性能调优,才能使基于多核处理器的软件实现最佳性能。如果不针对多核进行软件开发,不仅多核提供的强大计算能力得不到利用,相反还可能不如单核CPU高效。因此,如何设计和开发基于多核的软件应用程序,以充分发挥多核的计算优势来提升系统的性能,成为现阶段软件开发面临的主要问题。本文的主要内容如下:(1)针对多核处理器和多核技术在国内外的研究现状分析多核并行编程所存在的关键问题,多核编程与单核编程之间的区别,进一步剖析了多线程编程技术:线程的同步和线程间的通信,深入研究了符合实际应用的多核并行编程模式。(2)对数字图像处理中存在的运算量大、运行速度慢等问题,分析数字图像处理的特点和整体框架结构,利用多核并行编程技术设计了快速数字图像处理方法库,并借助Intel(?) VTune和Intel(?) Parallel Studio工具得出数字图像处理程序中的瓶颈及热点区域,总结出具体可利用多线程进行并行优化的部分,然后采用多线程开发工具OpenMP对这些瓶颈及热点区域进行并行化编程。(3)结合数字图像处理程序,就循环并行化和数据保护、动态线程个数设置和线程调度策略三方面进行并行优化设计,提出了一种多核并行程序的调试步骤和分析方法,该调试方法具有良好的可扩展性。(4)通过在双核和四核的环境下进行串行和并行运行时间统计,分别计算出双核和四核下的加速比值。实验证明了程序优化后的执行时间缩短了原来串行程序执行时间的40%~60%,提高了程序的加速性能,验证了多核平台、并行程序设计理论和并行编程模式相结合开发的优越性,达到了预期的优化目标。

论文目录

  • 摘要
  • ABSTRACT
  • 1 绪论
  • 1.1 课题背景
  • 1.2 多核技术的研究现状
  • 1.2.1 多核处理器的研究现状
  • 1.2.2 多核技术的研究现状
  • 1.3 课题的主要研究内容
  • 1.4 本论文的内容安排
  • 2 多核并行编程的核心问题
  • 2.1 多核并行编程所存在的问题
  • 2.1.1 CPU空闲问题
  • 2.1.2 并发性问题
  • 2.1.3 加速比性能问题
  • 2.1.4 扩展性问题
  • 2.2 多核编程与单核多线程编程之间的区别
  • 2.2.1 单核多线程与多核多线程的区别
  • 2.2.2 锁竞争导致串行化的区别
  • 2.2.3 负载均衡的区别
  • 2.2.4 任务调度策略的区别
  • 2.3 小结
  • 3 多核并行编程的关键技术
  • 3.1 多线程编程技术
  • 3.1.1 线程的同步
  • 3.1.2 线程间的通信
  • 3.2 多核并行编程模式
  • 3.2.1 数据分解模式
  • 3.2.2 分治模式
  • 3.2.3 流水线模式
  • 3.2.4 任务并行模式
  • 3.3 多核并行程序的性能分析
  • 3.3.1 并行程序性能评价
  • 3.3.2 并行性能分析工具
  • 3.3.3 多核并行程序的分析方法
  • 3.4 小结
  • 4 多核并行编程在数字图像处理程序优化中的应用
  • 4.1 数字图像处理的概述
  • 4.2 快速数字图像处理方法库的设计
  • 4.3 数字图像处理的可并行性分析
  • 4.3.1 数字图像处理的热点及瓶颈分析
  • 4.3.2 数字图像处理的可并行性分析
  • 4.4 数字图像处理的优化设计
  • 4.4.1 循环并行化和数据保护
  • 4.4.2 动态线程个数的设置
  • 4.4.3 线程调度策略
  • 4.5 数字图像处理的并行优化实现与调试分析
  • 4.5.1 数字图像处理的并行化实现
  • 4.5.2 并行代码的调试分析
  • 4.6 小结
  • 5 实验与结果分析
  • 5.1 实验环境介绍
  • 5.2 实验结果分析
  • 5.2.1 CPU运行性能分析
  • 5.2.2 VTune计数器监控实验
  • 5.2.3 优化之后性能对比
  • 5.2.4 串行与并行时间的对比
  • 5.2.5 加速比性能的对比
  • 5.3 小结
  • 6 总结与展望
  • 6.1 课题回顾总结
  • 6.2 研究应用展望
  • 致谢
  • 参考文献
  • 攻读硕士学位期间发表论文及科研工作
  • 相关论文文献

    • [1].多核并行编程技术在中文分词程序优化中的应用[J]. 计算机工程与设计 2010(24)
    • [2].并行编程,大势所趋[J]. 程序员 2010(05)
    • [3].一种跨平台的并行编程框架设计与实现[J]. 计算机工程 2014(08)
    • [4].组合CC++并行编程并行块研究[J]. 河南科技 2012(06)
    • [5].基于标记语言的跨平台并行编程框架设计[J]. 计算机系统应用 2020(10)
    • [6].基于对象的隐式并行编程众核体系结构研究[J]. 计算机工程与设计 2013(02)
    • [7].基于Linux并行编程模式的研究与实现[J]. 电脑开发与应用 2008(08)
    • [8].新书点评[J]. 电脑编程技巧与维护 2014(01)
    • [9].基于模式的CPPVM并行编程方法[J]. 计算机工程 2008(03)
    • [10].基于CMP多核集群的混合并行编程技术研究[J]. 计算机科学 2014(02)
    • [11].基于CMP系统的并行编程模式研究[J]. 计算机技术与发展 2014(07)
    • [12].Win32平台基于通信的多核并行编程方法[J]. 计算机应用与软件 2014(04)
    • [13].Altera发布面向FPGA的OpenCL计划[J]. 电视技术 2011(23)
    • [14].一种基于循环并行模式的多核优化方法[J]. 厦门大学学报(自然科学版) 2010(06)
    • [15].MPJ并行编程框架的实现及安装配置[J]. 计算机与现代化 2009(08)
    • [16].Altera发布面向FPGA的OpenCL计划[J]. 单片机与嵌入式系统应用 2012(01)
    • [17].多核SMP集群混合并行编程技术的研究[J]. 微型机与应用 2017(04)
    • [18].MIC商用并行编程性能优化分析[J]. 深圳信息职业技术学院学报 2013(01)
    • [19].UPPA:面向异构众核系统的统一并行编程架构[J]. 计算机学报 2020(06)
    • [20].CUDA平台下多核GPU高性能并行编程研究[J]. 河南机电高等专科学校学报 2011(01)
    • [21].共享内存并行编程最优同步方法的研究[J]. 科学技术与工程 2015(08)
    • [22].消除有扰射频:基于LabVIEW和NI USRP进行射频/通信物理层研究[J]. 国外电子测量技术 2012(09)
    • [23].3D_EW在MIC并行编程中的移植与实现研究[J]. 实验室研究与探索 2017(04)
    • [24].多核SMP集群Hybrid并行编程模式的研究与分析[J]. 电子技术 2016(02)
    • [25].多核时代下的并行编程架构[J]. 国外电子测量技术 2009(08)
    • [26].多核时代下的并行编程架构[J]. 电子测试 2009(10)
    • [27].基于Python的并行编程技术在批量气象规范报表入库处理中的应用[J]. 软件 2018(07)
    • [28].多核多线程并行编程模型研究及应用[J]. 阴山学刊(自然科学) 2012(02)
    • [29].C语言开发者使用NI Lab Windows/CVI 2013提升硬件速度[J]. 国外电子测量技术 2013(10)
    • [30].MPI并行编程及集群构建[J]. 内江科技 2012(02)

    标签:;  ;  ;  ;  

    多核并行编程技术在加速数字图像处理中的应用
    下载Doc文档

    猜你喜欢