基于人工蜂群算法的多维函数优化加速方法技术

技术编号:33132533 阅读:27 留言:0更新日期:2022-04-17 00:52
本发明专利技术涉及农业数据处理技术领域,尤其为基于人工蜂群算法的多维函数优化加速方法,其方法包括如下步骤:为了评估ABC算法的性能,采用四个不同求极值的多维函数来测试ABC算法性能,利用CPU+DCU的异构架构模式,采用HIP异构语言的多线程技术并行优化,在DCU平台上,计算任务划分到不同的线程;本发明专利技术提高了ABC算法对多维函数求最优解的效率,相对于串行ABC算法和GPU

【技术实现步骤摘要】
基于人工蜂群算法的多维函数优化加速方法


[0001]本专利技术涉及农业数据处理
,具体为基于人工蜂群算法的多维函数优化加速方法。

技术介绍

[0002]农业农村数据历史长、数量大、类型多,但长期存在核心数据缺失、数据处理质量不高、开发利用不够等问题,无法满足新时期农业农村发展需要。依托于超级计算、云计算等多种先进计算应用与分析方法的出现,为农业农村发展有效积累了海量数据处理的经验,为解决农业农村大数据发展面临的困难和问题提供了有效途径。
[0003]针对函数优化问题的传统优化算法,如进化计算、黄金分割法和多项式近似法等优化算法,已经无法满足现阶段农业农村大数据处理的需求,原因是其局部最优解的结果具有较大的局限性,并且数值之间的依赖性较强,需要并行性和随机性强的优化算法对数据进行优化处理,人工蜂群算法是一种群智能算法,该算法模拟了自然界中蜜蜂寻找最好蜜源的过程来寻找问题的最优解,具备预设参数少、实现简便、并行性强等优点,但是该算法对于多维函数的求解问题,该算法求解耗时过长,仍不能满足行业大数据处理需求。研发出先进大数据安全技术,保证农业农村核心数据的安全,确保满足新时期农业农村发展的需要。

技术实现思路

[0004]本专利技术的目的在于提供基于人工蜂群算法的多维函数优化加速方法,以解决上述
技术介绍
中提出的问题。
[0005]为实现上述目的,本专利技术提供如下技术方案:基于人工蜂群算法的多维函数优化加速方法,其方法包括如下步骤:
[0006](1)关键函数:为了评估ABC算法的性能,采用四个不同求极值的多维函数来测试ABC算法性能,利用CPU+DCU的异构架构模式,采用HIP异构语言的多线程技术并行优化;
[0007](2)任务划分:在DCU平台上,计算任务划分到不同的线程,线程对蜜源和蜂群的数目进行计算任务的划分;
[0008](3)数据分布:使用共享内存来代替全局内存实现数据的存储与计算,在数据进行计算之前,先将即将计算的数据从全局内存读取到共享内存中,需要计算时从共享内存中直接读取,并将结果临时存在共享内存里,待计算完全结束后将最终的计算结果写回全局内存;
[0009](4)同步操作:通过采用数据分布的方法,block里面的线程可以采用协同计算方式,建立线程之间的屏障,将线程都同步进行,在block内使用syncthreads函数创建屏障用于同步线程之间的运算;
[0010](5)任务并行:经过任务划分、数据分布和同步操作对蜜源信息和适应度信息处理后,在DCU端实现数据的计算任务,在CPU端启动任务并行的函数,在DCU端执行并行任务;
[0011](6)实验结果与分析:实验平台是采用混合异构的超级计算系统,使用调度系统对计算任务进行调度和管理,ABC算法的串行和优化后算法的最大迭代次数都设定为150次,最大循环次数设定为3000,局部寻找最优解的次数按照公式limit=0.25*NP*D来计算。
[0012]优选的,所述步骤(1)中,四个不同求极值的多维函数具体为Sphere函数、Rosenbrock函数、Griewank函数和Rastrigin函数。
[0013]优选的,所述步骤(1)中,多线程技术并行优化的每个计算结点有1颗CPU处理器和4块DCU加速卡,其中DCU加速卡上使用的编程模型为ROCmHIP异构编程模型,HIP异构编程模型将应用程序在CPU上运行的程序称作主机端程序,在DCU上运行的程序称为设备端程序,DCU的主要计算结构由CU构成,每个CU包含4个SIMD计算组,包含1个标量计算单元,标量计算单元被CU内4个SIMD共享,同时每个CU内拥有64kb的共享内存LDS,其中每个CU内的LDS各自独立。
[0014]优选的,所述步骤(2)中,将蜜源进行一维维度的划分,将线程划分成block

Idx*blockDim+threadIdx的形式,其中blockDim保存块中的线程数,blockIdx是当前块的索引值,threadIdx表示的是块中当前线程的数量,每个block又可以分成多个thread,将寻找最优蜜源的过程进行一维block维度线程的划分,即threadIdx的形式。
[0015]优选的,所述步骤(2)中,HIP模型的线程组织分为block和thread两个层级,其中block对内部的thread进行分配,grid对内部的block进行分配。
[0016]优选的,所述步骤(3)中,若蜜源和适应度值的信息全部都传输到DCU芯片的全局内存中,那么读和写入相关的数据都会增加大量的运行时间,为了提升DCU的运算性能,使用了DCU架构中的共享内存部件。
[0017]优选的,所述步骤(4)中,全局内存中的蜜源和适应度信息被存储到共享内存中,每一个block都有自己的共享内存空间,block里面的每个线程都可以访问其内部共享内存中的数据,线程之间进行相互协作,大大减少了所需要全局内存的带宽,使用共享内存可以提升数据访问操作的速度。
[0018]优选的,所述步骤(5)中,并行任务的划分先对适应度值进行初始化,判断蜂群数量是否大于分配的线程数量,然后执行各个蜂群种类的并行计算任务,蜜蜂在对应的蜜源及其附近进行搜索,并计算得出最好的蜜源,对于满足条件的蜜源进行更新蜜源的位置信息,然后继续寻找更好的蜜源。
[0019]优选的,所述步骤(5)中,syncthreads语句用于协调同一个block中线程之间的通信,将block内的各个线程分开,使得每一部分对共享存储器独自进行操作,避免出现各自划分的部分访问到共享内存中的数据。
[0020]优选的,所述步骤(6)中,超级计算系统中的每个节点均采用一颗32核心的Hygon CPU和4块Hygon DCU加速部件,并通过调度系统对计算任务进行调度和管理。
[0021]与现有技术相比,本专利技术的有益效果如下:
[0022]本专利技术提出一种基于人工蜂群算法的多维函数优化加速方法,该方法以国产海光处理器为硬件基础,提高了ABC算法对多维函数求最优解的效率,相对于串行ABC算法和GPU

ABC算法,该方法能够得到较好的性能,提高了对多维函数的运算效率,能够进一步高效处理农业农村发展带来海量数据,接下来将扩充到多个运算节点,同时,还可以进行向量化的优化方法,更加充分的发现算法中的并行性,处理其中的数据依赖关系,大幅度挖掘程
序加速比的潜力,最大程度地提升算法的执行效率。
附图说明
[0023]图1为本专利技术基于CPU+DCU的ABC算法模型图;
[0024]图2为本专利技术的多线程技术并行优化方法图;
[0025]图3为本专利技术的任务划分方式图;
[0026]图4为本专利技术的数据分布划分图;
[0027]图5为本专利技术的线程同步操作图;
[0028]图6为本专利技术的并行任务划分图;
[0029]图7为本专利技术的串行ABC算法和DCU

ABC算法本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于人工蜂群算法的多维函数优化加速方法,其特征在于:其方法包括如下步骤:(1)关键函数:为了评估ABC算法的性能,采用四个不同求极值的多维函数来测试ABC算法性能,利用CPU+DCU的异构架构模式,采用HIP异构语言的多线程技术并行优化;(2)任务划分:在DCU平台上,计算任务划分到不同的线程,线程对蜜源和蜂群的数目进行计算任务的划分;(3)数据分布:使用共享内存来代替全局内存实现数据的存储与计算,在数据进行计算之前,先将即将计算的数据从全局内存读取到共享内存中,需要计算时从共享内存中直接读取,并将结果临时存在共享内存里,待计算完全结束后将最终的计算结果写回全局内存;(4)同步操作:通过采用数据分布的方法,block里面的线程可以采用协同计算方式,建立线程之间的屏障,将线程都同步进行,在block内使用syncthreads函数创建屏障用于同步线程之间的运算;(5)任务并行:经过任务划分、数据分布和同步操作对蜜源信息和适应度信息处理后,在DCU端实现数据的计算任务,在CPU端启动任务并行的函数,在DCU端执行并行任务;(6)实验结果与分析:实验平台是采用混合异构的超级计算系统,使用调度系统对计算任务进行调度和管理,ABC算法的串行和优化后算法的最大迭代次数都设定为150次,最大循环次数设定为3000,局部寻找最优解的次数按照公式limit=0.25*NP*D来计算。2.根据权利要求1所述的基于人工蜂群算法的多维函数优化加速方法,其特征在于:所述步骤(1)中,四个不同求极值的多维函数具体为Sphere函数、Rosenbrock函数、Griewank函数和Rastrigin函数。3.根据权利要求1所述的基于人工蜂群算法的多维函数优化加速方法,其特征在于:所述步骤(1)中,多线程技术并行优化的每个计算结点有1颗CPU处理器和4块DCU加速卡,其中DCU加速卡上使用的编程模型为ROCmHIP异构编程模型,HIP异构编程模型将应用程序在CPU上运行的程序称作主机端程序,在DCU上运行的程序称为设备端程序,DCU的主要计算结构由CU构成,每个CU包含4个SIMD计算组,包含1个标量计算单元,标量计算单元被CU内4个SIMD共享,同时每个CU内拥有64kb的共享内存LDS,其中每个CU内的LDS各自独立。4.根据权利要求1所述的基于人工蜂群算法的多维函数优化加速方法,其特征在于:所述步骤(2)中,将蜜源进行一维维度...

【专利技术属性】
技术研发人员:李辉韩林王威陶红伟于哲
申请(专利权)人:青岛农业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1