论文部分内容阅读
多核技术作为提高处理器性能的一个有效可行的方法,不仅在科学领域中产生了推动作用,也给人们的生活带来了方便。纵观当今市场上的PC机、服务器、笔记本电脑,多核已逐渐成为趋势。多核在带来巨大处理潜力的同时,对软件方面提出了巨大的挑战,原有的串行编程模式已不再适应,需要向并行编程模式转变。其中,OpenMP能够为具有统一地址空间的并行系统提供可移植、可扩展的开发接口。但是,使用并行编程模式编写的并行程序同样具有使用串行编程模式编写串行程序时所要面临的性能影响问题。负载均衡就是影响并行程序运行性能的主要因素之一。为了精确分析负载均衡,缓解程序所表现的负载不均衡性,以提高程序运行性能,本文主要对OpenMP多线程负载均衡分析方法以及调度策略展开讨论和研究。本文首先讨论和分析了多核技术的发展及其对软件业所产生的影响;总结和归纳了OpenMP相关研究,包括并行效率和性能的分析与改进、多线程之间的锁同步与竞争、多核编程中的负载均衡以及OpenMP的模型扩展与改进;同时,对支持OpenMP的OMPi编译器以及并行化程序的重要对象循环结构进行了介绍。其次,为了精确分析并行程序所表现的负载均衡问题,优化性能分析流程,本文确定了负载均衡分析单元,度量了负载不均衡程度以及潜在的并行调整效率,并提出了一种以负载均衡分析单元为分析对象来监测、分析、调整OpenMP多线程程序负载均衡的方法。通过实验表明该方法是可行的、有效的。最后,考虑到并行程序中并行任务是依据调度策略来实现负载的分配,为了在调度开销与负载均衡之间获得更好的权衡,本文提出将trapezoid梯式调度策略在开源的、支持OpenMP的OMPi编译器进行实现,以提高OpenMP多线程程序的运行性能。实验结果表明:梯式调度策略在递减以及某些极不规则的循环结构中,在适当的线程数下,与指数调度相比,该调度策略能表现出更好的性能。