一种异构系统的并行混合人工蜂群方法

文档序号:6634209阅读:165来源:国知局
一种异构系统的并行混合人工蜂群方法
【专利摘要】本发明公开一种异构系统的并行混合人工蜂群方法,包括以下步骤:S1:处理器划分初始数据集得到多个初始数据子集,多线程并行地向异构系统中的计算设备分发不同的初始数据子集;S2:计算设备接收数据子集后,根据混合人工蜂群算法进行一轮进化,获得该轮计算结果,并将该轮计算结果发送至处理器以更新数据集,其中,该轮计算结果包括该轮局部最优解;S3:处理器判断是否满足停止条件,若是,处理器根据该轮局部最优解得到全局最优解,若否,将更新后的数据集重新划分为多个更新的数据子集,多线程并行地分发给多个计算设备,之后返回S2。本发明公开的上述方法,通过将人工蜂群算法应用至异构系统以解决优化过程中寻找最优解时间比较长的问题。
【专利说明】一种异构系统的并行混合人工蜂群方法

【技术领域】
[0001] 本发明涉及机器学习领域、高性能计算领域,尤其涉及高性能计算中的异构计算 领域,涉及一种异构系统的并行混合人工蜂群方法。

【背景技术】
[0002] 优化问题是一个古老的话题,优化问题的探索也是人类一直的研究主题之一。随 着经济的发展与社会进歩,优化问题取得不断发展的同时,新的挑战也随之而来。总的来 说,新型优化问题有以下几个主要特征:高维、大量的限制条件、多峰值以及不连续。而传统 优化方法主要利用数学解析、迭代求解等方法来解决实际问题。虽然这些方法具有完备的 理论分析和数学证明,在连续、低维优化问题上也取得了良好效果,但是对于多峰、高维以 及不连续的优化问题却显得无能为力。
[0003] 传统优化算法一般都有明确目标,这也是其在复杂高维问题上没有良好表现的主 要原因之一。于是,学者们开始探寻更好的方法来解决这些问题。生物自然界中有许多群 体智能生物,如飞鸟、鱼、昆虫等。其中单个个体只有简单智能,但由个体组成的群体却表现 出远远超出个体相加的智能,它们相互协调与合作的自组织能力能够很好的完成复杂精细 的任务。特别是近几十年,随着人们对自然现象更深入的理解,提出了具有较强适用性的优 化方法--智能优化算法,这为解决复杂大系统问题创造了条件。这类型的算法主要有蚁 群算法(Ant Colony Optimization, AC0)、模拟退火算法(Simulated Annealing, SA)、粒子 群优化算法、人工蜂群算法等。
[0004] 其中,人工蜂群算法(Artificial Bee Colony, ABC)是一种基于群体智能的全局优 化算法,同其它算法相比,该算法具有实现简单、参数少和寻优速度快等特点。人工蜂群算 法最初由Karaboga提出,受启发于人工生命、社会心理学和群体理论的一些知识。同时,人 工蜂群算法也是一种进化计算,同其他演化计算类似,人工蜂群算法随机初始化一组种群 解,循环迭代进化寻优。作为典型的群体智能优化算法之一,人工蜂群算法是一种基于种群 的启发式搜索算法,它能充分利用群体中个体之间的相互协作与信息共享,在蜂巢周围寻 找食物最丰富、路径最短的食物源。
[0005] 在人工蜂群算法中,蜜蜂采蜜的过程(即寻找高质量的蜜源)类似于进化计算中 的寻找待优化问题中最优解的过程。在采蜜模型中,蜜源表示可能的解,采蜜行为相当于搜 索最优解,蜜源质量可视为适应度函数,此函数决定整个算法的进化方向。
[0006] 人工蜂群算法的主要步骤描述如下:
[0007] Step 1 :设置初始参数:种群数量、最大循环次数、维数等,其中采蜜蜂和观察蜂各 一半;
[0008] St印2 :初始化,并计算蜜源适宜度值,进入循环;
[0009] Step 3 :采蜜蜂采蜜并共享蜜源信息阶段;
[0010] Step 4 :观察蜂获得蜜源信息,并选择蜜源采蜜阶段;
[0011] St印5 :经过有限次数后,蜜源适宜度仍不达标则放弃,采蜜蜂变为侦察蜂继续搜 索,并按(公式I. 1)更新位置;
[0012] Step 6 :记录最优解并循环次数加1,判断是否满足停止条件(通常是最大迭代代 数),若是则结束,否则转到Step 3。
[0013] xf = X^n + ^xliJ (1.1)
[0014] 人工蜂群算法广泛应用在现实生活中的各个方面,可以说,人工蜂群算法基本可 以解决凡是遗传算法等进化算法能解决的优化问题。可以利用人工蜂群算法来训练神经网 络,比如探寻最优权重;或用人工蜂群算法来求解TSP(Traveling Salesman Problem, TSP) 和 JSP(Job-Shop Schedule Problem, JSP)。
[0015] 英特尔(Intel)公司推出的众核(Many Integrated Core, MIC)处理器面向高性 能计算(High Performance Computing, HPC)领域,旨在引领行业进入百亿亿次计算时代, 其在计算机体系中,并非欲取代CPU,而是作为协处理器存在。跟通用的多核至强处理器相 t匕,众核处理器具有更小的内核和硬件线程,众核处理器计算资源密度更高,片上通信开销 显著降低,具有更多的晶体管和能量,能够胜任更为复杂的并行应用。
[0016] Intel MIC产品基于X86架构,MIC芯片通常有数十个精简的x86核心,提供高度 并行的计算能力。众核处理器,包含50个以上的核心,以及512bit的向量位宽,双精性能 超过 lTFlops。
[0017] MIC拥有极其灵活的编程方式,MIC卡可以作为一个处理器存在,也可以被看作是 一个独立的节点。基本的MIC编程模型是将MIC看作一个处理器,中央处理单元(CPU)根 据程序的指令,将一部分代码运行在MIC端。此时存在两类设备,即CPU端和众核(MIC)处 理器端。原生的CPU程序通常也可以在MIC芯片上运行,这也意味着对现有程序无需进行 大的改动,即可利用MIC的计算资源,充分保护了软件投资。随着开发者们采用较高的并行 度(指令、数据、任务、矢量、线程和集群等),英特尔架构处理器常用的重要且已普及化的 编程模型可扩展至英特尔MIC架构,而无需改变编程工具。
[0018] 现有的不少超级计算机,以及未来的HPC用处理器如NVIDIA Echelon等,均采用 以CPU为主体,主力运算基于GPU的混合加速运算架构(Heterogeneous)。于此不同的是, Knights系列则属于采用和主CPU架构基本相同的多个x86核心集成来辅助主CPU运算的 类型(Homogeneous)。
[0019] 异构系统是目前主流的大规模并行计算系统,它将CPU处理器与MIC处理器结合 起来一同处理大规模计算问题,具备极强的计算能力。如果能够利用这种异构系统强大的 计算能力利用混合人工蜂群去解决实际问题,将极大地加速得到最优解决实际问题过程。 然而,传统的人工蜂群算法都是串行迭代过程,无法充分利用异构系统的并行处理能力,难 以发挥该系统的性能优势。


【发明内容】

[0020] 本发明提供一种异构系统的并行混合人工蜂群方法,通过将人工蜂群算法应用至 异构系统以解决优化过程中寻找最优解时间比较长的问题。
[0021] 为解决上述技术问题,本发明提供一种异构系统的并行混合人工蜂群方法,包括 以下步骤:Sl :处理器划分初始数据集得到多个初始数据子集,多线程并行地向异构系统 中的多个计算设备分发不同的初始数据子集;S2 :所述多个计算设备分别接收各自的数据 子集后,分别根据混合人工蜂群算法进行一轮进化,获得各自的该轮计算结果,并将各自的 该轮计算结果发送至所述处理器以更新数据集,其中,该轮计算结果包括该轮局部最优解; S3 :所述处理器判断是否满足停止条件,若是,所述处理器根据所述该轮局部最优解得到全 局最优解,若否,将更新后的数据集重新划分为多个更新的数据子集,多线程并行地分发给 所述多个计算设备,之后返回S2。
[0022] 进一步地,所述步骤Sl的过程包括:处理器分发多个线程,为每个线程分配初始 数据子集,多线程并行地向异构系统中的多个计算设备发送调用请求,所述计算设备在接 收到所述调用请求后,获得各自的初始数据子集。
[0023] 进一步地,所述初始数据集以配置文件的形式存储在处理器的存储系统中。
[0024] 进一步地,所述处理器向计算设备分发的数据子集为经过编码的数据子集。
[0025] 进一步地,所述计算设备为MIC协处理器。
[0026] 进一步地,于步骤S2之后,还包括:所述处理器将迭代次数加一。
[0027] 进一步地,所述停止条件为最大迭代次数。
[0028] 本发明提供的技术方案针对求解最优解过程较慢的问题,通过处理器和计算设备 (MIC处理器)的协同计算,并采用人工蜂群算法,能够极大地加速求解最优解的过程。

【具体实施方式】
[0029] 于本发明较佳实施例中,假定异构系统包括N个处理器及M个计算设备(于此,例 如为协处理器),其中,N及M为大于或等于1的整数。其中,处理器为中央处理器(CPU), 协处理器例如为众核(MIC)处理器。
[0030] 在初始化数据集合及参数时,需要将初始数据集以配置文件的形式存储在处理器 的存储系统中。处理器初始数据集划分得到多个初始数据子集,为了更好地发挥异构系统 的并行处理能力,处理器会发起N个线程(N为大于或等于1的整数),把不同的初始数据子 集同时分发给异构系统中的协处理器。具体而言,处理器发起N个线程,并为每个线程分配 各自的初始数据子集(例如包括数据集合及参数),多线程并行地向协处理器发送调用请 求,协处理器在接收调用请求后,获得各自的初始数据子集。其中,不同协处理器各自的初 始数据子集是不同的。
[0031] 于此,为了能够在数据子集分发过程中尽量减少处理器与协处理器之间的通信 量,在进行数据分发前对不同的数据子集进行编码。由于这些数据子集的数据特点是一样 的,只需一种符合这些数据特点的编码方法即可。
[0032] 协处理器接收各自的数据子集后,根据混合人工蜂群算法进行一轮进化,获得该 轮的计算结果,其中,计算结果包括该轮的局部最优解及对应的参数(包括计算得到的其 他解)。具体而言,对每个协处理器,启动N个线程,每个线程负责对数据子集所对应的子区 间的数据子集,分别进行该轮的进化,并选出本轮进化的最优解。每个协处理器得到的计算 结果(包括局部最优解及对应的参数)依次写回到处理器的配置文件中。若不满足停止条 件,处理器再重新将配置文件中的更新数据集重新划分为M个新的数据子集,以随机分发 的方式把新的数据子集分发给M个协处理器,进行新一轮的进化。其中,重新分发的每个新 的数据子集都包含从M个协处理器得到的局部最优解,S卩,M个局部最优解替换掉新的数据 子集的尾部的M个数据。
[0033] 于此,寻找数据子集的最优特征的过程实际上是一个在这个异构系统上求最小值 的过程。
[0034] 在每轮的进化过程中,每个协处理器都启动相应个数线程同时对数据子集中的样 本进行并行进化更新,直到得到每个协处理器上的局部最优解。由于这些数据之间没有相 关性,并且每次迭代进化过程属于计算密集型,可以通过协处理器进行并行加速计算。
[0035] 当每轮进化结束后,每个协处理器会将计算结果返回至处理器,同时,迭代次数加 一。处理器判断是否满足停止条件。于此,停止条件为最大迭代次数。若满足停止条件,则 处理器从各个协处理器返回的该轮局部最优解中选出全局最优解。若不满足停止条件,则 处理器将根据协处理器返回的计算结果更新的数据集划分成M个更新数据子集,多线程并 行地分发给M个协处理器,协处理器接收更新的数据子集后,继续下一轮进化。上述过程循 环至满足停止条件,获得全局最优解即停止。
[0036] 以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本发明不受上 述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明 精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的 本发明范围内。
【权利要求】
1. 一种异构系统的并行混合人工蜂群方法,其特征在于,包括w下步骤: 51 ;处理器划分初始数据集得到多个初始数据子集,多线程并行地向异构系统中的多 个计算设备分发不同的初始数据子集; 52 ;所述多个计算设备分别接收各自的数据子集后,分别根据混合人工蜂群算法进行 一轮进化,获得各自的该轮计算结果,并将各自的该轮计算结果发送至所述处理器W更新 数据集,其中,该轮计算结果包括该轮局部最优解; 53 ;所述处理器判断是否满足停止条件,若是,所述处理器根据所述该轮局部最优解得 到全局最优解,若否,将更新后的数据集重新划分为多个更新的数据子集,多线程并行地分 发给所述多个计算设备,之后返回S2。
2. 如权利要求1所述的异构系统的并行混合人工蜂群方法,其特征在于,所述步骤S1 的过程包括;处理器分发多个线程,为每个线程分配初始数据子集,多线程并行地向异构系 统中的多个计算设备发送调用请求,所述计算设备在接收到所述调用请求后,获得各自的 初始数据子集。
3. 如权利要求1所述的异构系统的并行混合人工蜂群方法,其特征在于:所述初始数 据集W配置文件的形式存储在处理器的存储系统中。
4. 如权利要求1所述的异构系统的并行混合人工蜂群方法,其特征在于:所述处理器 向计算设备分发的数据子集为经过编码的数据子集。
5. 如权利要求1所述的异构系统的并行混合人工蜂群方法,其特征在于:所述计算设 备为众核one)处理器。
6. 如权利要求1所述的异构系统的并行混合人工蜂群方法,其特征在于,于步骤S2之 后,还包括:所述处理器将迭代次数加一。
7. 如权利要求6所述的异构系统的并行混合人工蜂群方法,其特征在于:所述停止条 件为最大迭代次数。
【文档编号】G06N3/00GK104463322SQ201410645481
【公开日】2015年3月25日 申请日期:2014年11月10日 优先权日:2014年11月10日
【发明者】王娅娟, 张广勇, 吴韶华, 沈铂, 卢晓伟, 吴庆, 张清 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1