论文部分内容阅读
在计算机技术高速发展的今天,多核处理器已经成为市场上的主流。近年来在全球市场上发售的PC,服务器以及笔记本电脑中,几乎所有的这些产品都是用了多核处理器,电脑产品已经全面实现了多核化。但目前的大多数的软件依然仅支持单核模式,在多核平台上,这些软件的性能不仅无法提升,甚至会因为多核的附带开销而让软件效率降低。如今IT行业面临的一个巨大的挑战就是如何将原先的仅用于高端应用开发的并行编程方式推广到所有软件开发的过程中,以打造出更多支持多线程并行化运行的应用软件,全面释放多核处理器的性能潜力。多核是软件业发展的一种趋势[1]。对于原有的串行程序,为了节省资源并在短期内实现并行化,我们需要对串行程序进行并行化改造,从而使其适应多核平台。
并行计算可以有效的加快计算速度,扩大计算规模以及节省资源,是解决复杂的计算问题的有效途径。目前并行化库主要有MPI、OpenMP以及TBB(IntelThreadingBuildingBlocks线程构建模块)。MPI(MessagePassingInterface)是一种基于消息传递方式的并行化编程模型。它是一项标准,主要面向分布式存储体。使用MPI时,不同的进程之间通过点对点的消息传递方式来交换信息,每条消息上都会标明消息的发送进程和接收进程,从而保证正确性和安全性。OpenMP应用程序编程接口是一种面向共享内存及分布式共享内存的多处理器上的并行编程标准。OpenMP标准于1997年由SiliconGraphics所领导的工业协会推出。OpenMP基于线程,其中各个线程都能够对共享内存空间的数据进行读写操作。OpenMP编程模型因为其易用性,引起了大家的广泛关注。TBB是由Intel推出的C++并行库,并行化级别在更高的抽象层[2]。TBB是基于任务的编程,它的着重于性能和可扩展的提升,更加适合多核处理器并行化开发。TBB使用标准C++代码实现,它是对C++编程语言的一种扩展而非一种新的语言。TBB有很多好的特性:(1)可移植性,它几乎能够应用于所有的处理器或操作系统上,并且基本适应任何一种C++编译器;(2)易用性,TBB是通过模板的方式来提供一些常见的并行迭代模式,使用TBB的并行模板来对程序进行并行化,好处在于程序员能够在即使不具备负载均衡、同步以及快存优化等知识,也能够很好的进行并行化开发,并得到较好的并行化效果;(3)TBB采用泛型编程、定位于任务编程,它促进了可扩展数据的并行编程技术的发展。另外,TBB也提供嵌套并行化开发,让程序员可以很容易的将小型的并行化组件构造成大型的并行组件。
粒子群优化算法(PSO,ParticleSwarmOptimizationAlgorithm)是Kennedy和Eberhart在通过对鸟群寻找食物的机理的研究中[3],于1995年提出的一种优秀的进化算法。PSO算法是一种基于迭代的优化工具,它具有很多好的特性:(1)搜索速度快,PSO算法中的个体根据粒子自身的搜索经验和同伴的搜索经验来计算出该粒子的下一个位置,在进化过程中,最优的粒子把信息进行记录并共享给其它粒子,达到信息实时共享,使得搜索速度更加快。(2)具有记忆性,在PSO算法中每个个体都有自己的信息记录模块,用以记录历史最优值,并与其它粒子进行实时的交流和更新。(3)算法实现简单,PSO算法参数少,易于控制,算法简易,易于实现。使用粒子群优化算法能够有效的提高问题计算速度。但是对于数据量越大规模越大的优化问题,PSO算法的迭代次数、粒子维度以及粒子数也会相应的增大。因此,使用该优化算法解决大数据量大规模的优化问题同样需要很长的计算时间。考虑到原有的PSO算法基于单线程,无法充分的利用计算机资源。这就需要我们对单线程的PSO算法进行并行优化,从而减少资源浪费以及时间浪费。对于实际应用以及算法研究具有长远的意义。
GIS中的大部分空间运算应用都属于计算密集型问题,具有处理数据量大、计算复杂度高、参与运算和处理的空间数据类型丰富多样等特点。同时,目前的科学技术高速发展,将直接导致这些问题日益显著,如果继续使用传统的算法思路来处理这些复杂的问题,将会变得异常困难。面对这种种问题,急需引入一些高性能优化算法来提高GIS空间数据处理能力,而GIS的并行化研究与实践将大幅度的提高GIS空间数据处理与管理能力[4]。本文提出一种基于TBB的并行化PSO算法,然后将其应用到医院选址此类GIS空间决策问题中,来阐述GIS的并行优化。
本文的工作主要包括:(1)介绍粒子群优化算法,并分析了算法的特点、参数的影响、算法改进以及与其它算法进行比较和分析。(2)分析几种程序并行化改造方案:MPI(MessagePassingInterface)、OpenMP应用程序编程接口、TBB(IntelThreadingBuildingBlocks线程构建模块)。将这些方法进行了性能、实用性、各自特点等方面的比较,最后根据实际情况确立TBB并行化方案来进行本次研究算法的并行化。(3)设计并实现了基于TBB的并行化PSO算法,并将算法使用于医院选址这个GIS中普遍存在的空间决策问题实验中。最后分析实验结果,结果表明该并行化算法在一定环境下相对于优化前的基本算法在效率方面有了很大的提升。