基于GPU的并行遗传算法加速方法研究

来源 :中国地质大学(武汉) | 被引量 : 0次 | 上传用户:selanyihao
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学的生物进化过程的计算机计算模型,是一种通过模拟自然进化过程搜索最优解的方法。在本质上,遗传算法是一种不依赖具体问题的直接搜索方法,其在模式识别、神经网络、机器学习、生物科学、社会科学、图像处理、工业优化控制、自适应控制等领域都有着广泛的应用。但是,在科学计算、物理模拟等涉及大规模复杂问题的领域中,往往需要处理大量的数据,应用遗传算法求解却需要大量的时间。因此,能减少求解时间的并行的遗传算法得到了研究者们的青睐。然而,细数当前流行的各大并行计算平台,使用消息传递接口的集群网络、采用多线程技术的多核CPU等计算平台却因网络带宽不够、硬件环境难以获得、多进程间通信复杂、CPU使用串行模拟并行等原因,导致算法的加速比往往都不是太高。   过去的二三十年,计算机的计算能力多是与CPU的时钟频率紧紧联系的,随着制作工艺的不断提高,CPU中包含的晶体管越来越多,CPU的时钟频率也达到了惊人的3GHz,但是,也因此达到了一个性能瓶颈,继而,研究者们采用多核处理器解决了这个瓶颈,也就使得采用并行计算解决传统单处理器计算机所不能解决的大规模问题变得越来越广泛,特别是图形处理器(GPU)的出现。GPU的高性能、高带宽、高并行性、可编程架构,以及在通用计算领域中已取得的应用成果正不断引起更多的研究者的兴趣,虽然GPU在某些方面仍然存在缺点,但这却掩盖不了它的巨大发展潜力,基于GPU的通用计算(GPGPU)正以前所未有速度发展开来。在GPU发展早期,只能通过3D图形APIs来迁移原有运行于CPU的代码,如:Direct3D或OpenGL,这种迁移在复杂应用中简直是灾难性的,同时开发者必须了解图形像素处理机制及图形硬件底层架构,还得采用图形编程的思维转化原有算法。近年来,随着各类GPU API平台的发布,开发GPU端的并行应用才真正变得触手可及。CUDA是NVIDIA公司于2006年末发布的一个GPU编程的统一计算设备架构,它的全称是Compute Unified Device Architecture,它是NVIDIA公司针对自家GPUs产品开发一款并行计算引擎,使得开发人员通过工业标准的编程语言(如:C、C++等)开发GPUs端应用变得更为容易。开发人员首先使用NVCC编译,将代码转化为GPU的内核函数(Kernel),再在GPUs端运行转化好的代码程序,CUDA框架支持大量的计算接口,其中包括OpenCL和微软公司的DirectCompute,同时还支持多种第三方开发语言的封装,如:Python,JAVA,FORTRAN,Matlab等。在该架构下,GPU同时执行多个并发线程,为了提高并行速度,CUDA将多个线程组成一个线程块(Thread Block),线程块中的线程可以读写同一线程块中的共享内存,线程之间的同步也因CUDA架构变得异常容易。   本文针对传统遗传算法早期收敛缓慢的不足,结合GPU的高性能、高并行性的优势,提出了一种基于对立学习的并行遗传算法(OPGA),将遗传算法的自然选择、交叉变异、适应度计算等阶段都转化为GPU的内核函数,使用GPU的并行线程模拟个体,使得OPGA算法在GPU中得到有效的加速。算法在迭代早期采用对立学习机制,在算法迭代后期再恢复传统遗传算法,以求解对称旅行商问题为例,详细描述了算法设计思路和程序实现细节,提供了对不同规模的TSP问题的实验结果,并与相应的串行算法进行比较,分析了基于对立学习的并行遗传算法的优劣势,最后,还通过CUDA Visual Profiler分析各个内核函数的GPU计算时间和性能。实验结果表明算法早期引入的对立学习机制能快速靠近近似解,而在算法后期恢复常规遗传算法有效避免了对立学习的负作用,求得的最优解与传统遗传算法基本一致,同样的运算时间,基于对立学习的并行遗传算法能获得更好的解。
其他文献
数据是信息的载体,信息是数据的内涵。在互联网高速发展和上网人群急剧增长的今天,对于提供网络服务的互联网公司来说,每日都有数以百万计的独立访问用户数,即系统每日要收集大量
学位
随着计算机网格技术的飞速发展,组件式的地理信息系统已经不能满足当前的需求,那么向分布式、网络化的空间信息服务方向发展将成为未来一段时间的趋势,这种异构性、分布性的方式
学位
随着计算机网络和企业信息化的不断发展,网络的安全访问控制越来越重要。访问控制是通过某种途径显示的准许或者限制访问能力和范围的一种方法,在当前的企业环境中,它是解决
目前高校已经构建了很多信息系统,这些系统往往是异构的,彼此之间联系比较少,而实际使用中我们经常要访问多个信息系统,这就需要在不同系统之间来回切换,反复的输入用户名、
本文介绍了全新的Rla(RichInternetApplication)技术,并且与其他web应用程序的对比。RIA提供了桌面软件友好的UI与Web应用的快速和方便部署,而且对音视频通信的支持也是非常
随着社会的发展,国际化趋势已经渗入到社会的各个领域,软件行业也不例外。近年来很多软件公司想要获取更丰厚的利润、开拓更广阔的市场,本国市场已经满足不了其需求,于是纷纷开拓
学位
本课题是基于武汉市交通安全教育基地建设中的软件系统项目展开的,解决适合其所需的视频处理功能模块中视频编码压缩、视频转换编码等问题。   交通安全问题一直是各个国家
学位
随着互联网技术的飞速发展,基于Internet的应用服务种类越来越多,以网络为中心的信息服务和应用服务受到各行各业的重视。在以信息家电、智能家居、智能小区及中央空调的发展为
学位
20世纪科学技术的飞速发展促进了地理学研究的飞跃。随着计算机技术的不断进步与地理信息系统的迅速发展,人们对空间数据信息处理的要求逐步提高。而地理信息系统技术是空间信
学位
插件式体系结构是一种很灵活的体系结构,插件能够动态地插入到系统之中,并且可以被自由删除和替换,从而可以实现系统功能的动态加载。随着GIS应用的深入,不断外延的应用需求