论文摘要
随着多核处理器的普及,如何有效利用多核处理器资源,成为了并行计算领域的研究热点。现在很多应用程序都是在单核单线程环境下开发的,在多核环境下还是以单线程形式执行,导致了多核资源的浪费。为了能够充分发挥多核潜力,提升应用程序的性能。本文在深入分析多核并行技术的前提下,研究了基于任务并行策略的多核程序优化技术。任务并行的优势在于它是轻量级的组件,调度任务的开销要比调度进程和线程的开销小。通过研究Intel线程构建模块(TBB),本文提出了基于任务调度器的的并行优化方法。该方法是通过任务调度器创建线程池管理任务,采用任务密取技术负载均衡地把任务自动地映射到多个逻辑线程上并行执行,从而提高多核资源的使用效率和应用程序的性能。针对多核集群环境提出了一种层次任务并行化方法,上层MPI提供节点间进程级的任务并行,下层TBB提供多核节点内部的任务并行。结合两者的优势,实现进程和处理节点以及线程和多处理核的两级并行。为了验证以上两种方法的高效性,以N皇后经典算法为例,分别在共享存储模型TBB和混合并行编程模型MPI+TBB环境下进行了循环迭代的并行化测验。实验结果表明,共享存储模型并行化的加速比和CPU利用率都能达到一个可观的数值,体现了任务调度器并行化的优越性;采用任务划分的混合并行编程模型不但可以减少程序执行时间,获得更好的加速比和执行效率,而且明显地提高了多核集群并行性能。最后本文以模糊C均值算法为例,运用OpenMP工作分区编码,实现了多核平台下的串行程序热点区域的任务并行化。运用Intel parallel studio高性能工具对并行化结果进行验证,从执行时间和并发性方面进行了比较,其性能都有了很大的提高。体现了任务并行策略通用性和可靠性的特点,对多核应用程序的性能优化有很好的实用性。