CN110135584B - 基于自适应并行遗传算法的大规模符号回归方法及系统 - Google Patents

基于自适应并行遗传算法的大规模符号回归方法及系统 Download PDF

Info

Publication number
CN110135584B
CN110135584B CN201910254056.2A CN201910254056A CN110135584B CN 110135584 B CN110135584 B CN 110135584B CN 201910254056 A CN201910254056 A CN 201910254056A CN 110135584 B CN110135584 B CN 110135584B
Authority
CN
China
Prior art keywords
gpu
sub
population
cpu
adaptive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201910254056.2A
Other languages
English (en)
Other versions
CN110135584A (zh
Inventor
钟竞辉
黄至行
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201910254056.2A priority Critical patent/CN110135584B/zh
Publication of CN110135584A publication Critical patent/CN110135584A/zh
Application granted granted Critical
Publication of CN110135584B publication Critical patent/CN110135584B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Genetics & Genomics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Physiology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于自适应并行遗传算法的大规模符号回归方法及系统,所述系统包括:主进程模块,用于初始化,调用CPU线程模块,同步障与迁移操作;CPU线程模块,用于执行遗传编程算法,EV的更新,以及调用GPU适应值评估模块;GPU适应值评估模块,包括CPU辅助线程、CUDA库函数、及CUDA自定义函数,用于执行适应值评估。本发明为遗传编程算法引入自适应的多种群进化机制与异构计算资源的并行计算系统,运用自适应的多种群进化机制成功提取出有效构建元素,从而提高遗传编程算法在多构建元素的复杂问题中的性能,通过设计异构计算资源的并行计算系统,充分利用了CPU与GPU的计算资源,显著提高了搜索效率。

Description

基于自适应并行遗传算法的大规模符号回归方法及系统
技术领域
本发明涉及智能计算和高性能计算两大领域,主要涉及一种基于自适应并行遗传算法的大规模符号回归方法及系统。
背景技术
遗传编程算法是一种被广泛应用于符号回归问题、数据知识发现、规则挖掘的算法。早在2005年,Koza与Poli已将遗传编程算法应用于符号回归问题中并取得巨大的成功。经过十多年的发展,遗传编程算法领域已涌现了大量的改进变体,这些变体在各种应用中都证明了遗传编程算法的有效性与潜力。目前,遗传编程算法在金融分析,气候数据分析等领域有着广泛应用,具有巨大的经济价值。
然而现阶段,遗传编程算法仍有两个主要的不足。一是其在大规模的复杂问题中成功率较低,不易找出解空间中有效构建元素并得到符合数据的知识规律;二是其需要大量的迭代以达到充分进化,搜索速度较慢。为解决以上两个问题,目前研究者们已有各种不同的解决方案。一方面,研究者设计出不同的遗传算子以提高算法的全局搜索能力,如基于语法,语义的遗传变异,基于Levy概率分布的遗传算子和基于自定义函数的遗传算子等。但是目前已有的遗传算子仍难以解决含大量构建元素(如函数,终端符号)的复杂问题。另一方面,研究者使用各种高性能计算平台对遗传编程算法进行加速,如GPU-CUDA,MPI,SPARK等。现有的高性能计算框架已在算法加速问题上取得巨大成功,但是他们仅关注一种计算资源,如GPU。然而在实际应用生产中,往往存在多种异构的计算资源,如CPU与GPU。如何充分利用异构的计算资源协同计算,仍有待进一步研究。围绕上述问题,本发明通过自适应环境向量(EV)的多种群进化机制提取解空间中的有效构建元素,并基于该多种群进化机制设计异构计算资源并行计算系统,以有效解决大规模高维符号回归问题。
发明内容
针对上述技术问题之一,本发明提供了一种基于自适应并行遗传算法的大规模符号回归方法及系统。该方法主要涉及自适应多种群遗传编程算法,以及根据该方法的计算特点设计的异构计算资源并行框架。该自适应多种群遗传编程算法主要采用EV控制多种群的协同进化,异构计算资源并行框架以GPU和CPU作为计算资源。
本发明采用如下技术方案实现:
一种基于自适应并行遗传算法的大规模符号回归方法,包括步骤:
1)根据问题的构建元素集生成Ns个准正交的稀疏初始环境向量EV,并根据EV初始化Ns个子种群,每个子种群含Ms个个体;创建NTC个CPU线程以及在GPU内存中申请NB个GPU块、每个块中NT个GPU线程与足够的内存空间,准备计算;
2)启动NTC个CPU线程同时执行子种群的独立进化,所述子种群的独立进化包含遗传编程算法与EV更新操作,所述EV更新操作主要依据该子种群中各构建元素的出现频率进行调整;所述独立进化过程中的适应值评估由调用GPU计算资源完成;调用时,CPU线程首先将该子种群的信息进行解码,载入缓存,然后等待GPU返回结果,完成适应值评估;一个CPU线程等待GPU时,其他CPU线程可继续完成对应子种群的独立进化;子种群不断循环遗传算子直至到达同步障,当一个子种群到达同步障后,对应的CPU线程重新查询是否有子种群仍未执行独立进化,若有,CPU线程转去该子种群执行计算,若无,继续重新查询;
3)周期性检查缓存数据,当GPU检测来自CPU的到适应值评估请求时,GPU把缓存数据,即待适应值评估的子种群载入GPU内存,并启动GPU块及其中的GPU线程执行计算,当缓存中的所有个体完成计算后,GPU把计算结果汇总,并返回给CPU,完成适应值评估;
4)所有子种群到达同步障后,执行个体迁移操作,所述个体迁移操作包含个体的迁入与迁出;
5)迁移操作完成后,如果达到结束条件则终止,否则返回步骤2)。
进一步地,所述的步骤1)中,
为使初始环境向量EV正交化,假定每个初始环境向量EV中共有vt(vf)个终端符号的概率设成1,其余终端符号(函数)的概率设成1/T(1/F);设成1的终端符号即为所述子种群的必选构建元素,所述vt(vf)由公式(1)决定:
Figure BDA0002013184620000031
T为终端符号的数量,每个初始环境向量EV设成1的终端符号不尽相同,以实现准正交化,随后根据初始环境向量EV初始化子种群中每个个体的每个基因片段,初始化过程对每个个体的基因根据EV进行赋值。
进一步地,所述的步骤1)中,
在申请GPU内存空间时,需要分配五个矩阵:输入数据矩阵TI,标签矩阵TO,个体数据矩阵DEV,适应值矩阵FIT,当前值矩阵CV,个矩阵的大小分别为MI×MV,MI,NB×L,NB,NB×MI,其中MI是输入数据量,MV是数据的维度,NB是GPU块的数目,L是个体的长度。
进一步地,所述的步骤1)中,
CPU线程的创建及启动采用Window自带的API中的CreateThread函数完成。
进一步地,步骤2)中,所述EV更新操作主要依据该子种群中各构建元素的出现频率进行调整具体包括:
针对第i个子种群的l+1代EV更新公式如公式(2)所示:
Figure BDA0002013184620000041
其中,τ是更新的动量系数,是0到1间的一个随机数,Pt,i和Pf,i是第i个子种群中,各构建元素的出现频率,它们的每个分量由公式(3)计算:
Figure BDA0002013184620000042
其中na是第a个终端符号在第i个子种群中的出现次数,每次更新完EV,都要对EV进行归一化为下一代根据EV执行遗传算子做准备,EV的每个分量的归一化如公式(4)所示:
Figure BDA0002013184620000051
进一步地,进行适应值评估具体包括步骤:
GPU中的流处理器簇(SM)从GPU内存中把个体信息读入高速缓存,每个流处理器簇下拥有多个物理核,每个核能负责计算多个GPU块,每个GPU块对应一个个体,GPU块中的各GPU线程对应测试数据的不同输入;
GPU线程接受输入并计算对应个体在不同输入时的输出后,个体的输出结果临时存放到当前值矩阵CV中,由于GPU是SIMD并行结构,GPU线程重新调度以计算个体输出与目标输出间的误差;
最后把各输入数据的误差求和,作为最终适应值评估结果放入适应值矩阵FIT中,一旦GPU完成计算并返回,CPU辅助线程重新调用cudaMemcpy把GPU内存中的适应值矩阵FIT导出到CPU中,完成适应值评估。
进一步地,所述的步骤4)具体包括:
首先,根据EV计算各个子种群间的相似度,若相似度低于预先设定的阈值,该子种群对不发生迁移操作,在迁入操作中,现计算阶段适应值最优的子种群把最优个体迁入到其他子种群,替换掉其他子种群的最优个体;在迁出操作中,任意两个子种群随机选出一个个体进行比较,适应值较优个体替换较差个体以实现迁出操作。
进一步地,步骤4)中,迁移操作采用余弦距离公式(5)来衡量两个子种群的相似性:
Figure BDA0002013184620000061
其中,G是现计算阶段最优适应值个体所在的子种群,K是待进行迁入操作的子种群序号,i,j是任意两个执行迁出操作的子种群,EVt与EVf分别是子种群关于终端符号与函数的EV,仅当Ω(·)小于阈值ω时,迁移操作才会执行,为了实际应用中的鲁棒性与灵活性,所述阈值ω是一个0到1之间的随机数,如公式(6)所示:
ω=rand(0,1) (6)。
一种基于自适应并行遗传算法的大规模符号回归系统,包括:
主进程模块,用于根据求解问题的构建元素集生成若干个准正交的环境向量EV,并根据EV初始化遗传编程算法的多种群;其后,主进程模块调用CPU多线程模块进行多种群的独立进化,当子种群完成独立进化,到达同步障后,主进程模块执行迁移操作(含个体的迁入操作,迁出操作)以共享搜索信息。
CPU线程模块,用于每个子种群按照给定的算子独自进行遗传编程算法的进化,每个子种群的计算由一个CPU线程负责,多个CPU线程采用流水线并行技术异步地同时计算;各子种群的进化受各自对应的EV控制,进化结果对EV产生调整;每个子种群进化中的适应值评估通过调用GPU适应值评估模块实现;
GPU适应值评估模块,用于当GPU检测到解码后的子种群信息载入缓存后,把缓存数据拷入GPU内存并执行计算,每个GPU块对应子种群的一个个体的适应值评估,每个GPU线程对应测试数据的一个输入,计算完成后,GPU把计算结果返回给CPU。
进一步地,所述的GPU适应值评估模块包括一个CPU辅助线程、CUDA库函数,及CUDA自定义函数组成,所述CPU辅助线程周期性检查缓存,当缓存空间曾被写入或已被写满后,所述CPU辅助线程使用CUDA库函数cudaMemcpy把缓存中的数据载入GPU内存中并启动CUDA自定义函数执行适应值评估。
相比现有技术,本发明具有如下有益效果:
1、本发明从四个方面来提高遗传编程算法的搜索能力:第一方面是采用划分多个子种群的方式提高遗传编程算法的局部搜索能力;第二方面是采用EV对多种群的进化进行规划提高全局搜索能力;第三方面是采用个体迁移实现全局搜索信息的共享;第四方面是采用子种群根据搜索过程对EV进行调整从而实现解空间中有效构建元素的提取。
2、本发明从三方面加速遗传编程算法的计算速度:一方面使用GPU计算数据重复率高,数值运算密集的适应值评估环节;第二方面采用CPU多线程技术计算其他复杂算子;第三方面采用缓存缩短GPU与CPU相互等待的时间,实现并行流水线作业。
3、本发明充分利用了CPU与GPU的计算资源,显著提高了搜索效率,为算法的实际应用做了进一步的推进,以有效解决大规模高维符号回归问题。
附图说明
图1基于自适应并行遗传算法的大规模符号回归系统框架示意图。
图2为GPU适应值评估的一般步骤示意图。
具体实施方式
下面结合附图对本发明的方法作进一步的描述。
假设问题中含有T(F)个终端符号(函数),这些终端符号与函数共同构成构建元素集。终端符号与函数在每个子种群中有其对应的EV。遗传编程算法需要利用这些给定的构建元素找到满足训练数据与目标函数的数学式。
一种基于自适应并行遗传算法的大规模符号回归方法,包括步骤:
1)根据问题的构建元素集生成Ns个准正交的稀疏初始环境向量EV,并根据EV初始化Ns个子种群,每个子种群含Ms个个体;创建NTC个CPU线程以及在GPU内存中申请NB个GPU块、每个块中NT个GPU线程与足够的内存空间,准备计算;
2)启动NTC个CPU线程同时执行子种群的独立进化,所述子种群的独立进化包含遗传编程算法与EV更新操作,所述EV更新操作主要依据该子种群中各构建元素的出现频率进行调整;所述独立进化过程中的适应值评估由调用GPU计算资源完成;调用时,CPU线程首先将该子种群的信息进行解码,载入缓存,然后等待GPU返回结果,完成适应值评估;一个CPU线程等待GPU时,其他CPU线程可继续完成对应子种群的独立进化;子种群不断循环遗传算子直至到达同步障,当一个子种群到达同步障后,对应的CPU线程重新查询是否有子种群仍未执行独立进化,若有,CPU线程转去该子种群执行计算,若无,继续重新查询;
3)周期性检查缓存数据,当GPU检测到来自CPU的适应值评估请求时,GPU把缓存数据,即待适应值评估的子种群载入GPU内存,并启动GPU块及其中的GPU线程执行计算,当缓存中的所有个体完成计算后,GPU把计算结果汇总,并返回给CPU,完成适应值评估;
4)所有子种群到达同步障后,执行个体迁移操作,所述个体迁移操作包含个体的迁入与迁出;
5)迁移操作完成后,如果达到结束条件则终止,否则返回步骤2)。
下面结合附图1详细介绍本发明中的主进程模块,CPU线程模块与GPU适应值评估模块。
一种基于自适应并行遗传算法的大规模符号回归系统,包括主进程模块,CPU线程模块与GPU适应值评估模块。
1、主进程模块
主进程模块包含初始化,调用CPU线程模块,同步障与迁移操作。初始化操作分为三步:一是初始化EV并根据EV初始化Ns个子种群;二是创建NTC个CPU线程;三是申请足够数量的GPU内存。EV实际上是各子种群选择终端符号(函数)参与构建个体的概率向量。为使多种群遗传编程算法具有较好的全局性,各子种群均匀地分配到解空间的不同子空间,即各初始EV需要尽量正交化。为使初始EV正交化,假定每个初始EV中共有vt(vf)个终端符号(函数)的概率设成1,其余终端符号(函数)的概率设成1/T(1/F)。设成1的终端符号(函数)即该子种群的必选构建元素。所述vt(vf)由公式(1)决定:
Figure BDA0002013184620000101
每个初始EV设成1的终端符号(函数)不尽相同,以实现准正交化。随后根据EV初始化子种群中每个个体的每个基因片段。初始化过程主要包含对每个个体的基因根据EV进行赋值。以终端符号的赋值为例,设x为待赋值的一个基因,初始化的具体步骤如算法(1)所示。
Figure BDA0002013184620000102
其中,EVt,i,a是第i个子种群关于终端符号的EV向量的第a个分量。因此EV分量越大的终端符号越容易被选中参与个体的构建中。基于EV的函数的赋值与算法(1)同理。在申请GPU内存中,需要分配五个矩阵:输入数据矩阵TI,标签矩阵TO,个体数据矩阵DEV,适应值矩阵FIT,当前值矩阵CV,它们的大小分别为MI×MV,MI,NB×L,NB,NB×MI,其中MI是输入数据量,MV是数据的维度,NB是GPU块的数目,L是个体的长度。完成初始化后,主进程启动CPU线程模块并等待其完成独立进化。当所有子种群到达同步障后,主进程执行迁移操作。在本发明中,对CPU线程的创建及启动采用Window自带的API,CreateThread函数完成。迁移操作采用余弦距离公式(2)来衡量两个子种群的相似性:
Figure BDA0002013184620000111
其中,G是计算现阶段最优适应值个体所在的子种群,K是待进行迁入操作的子种群序号,i,j是任意两个执行迁出操作的子种群,EVt与EVf分别是子种群关于终端符号与函数的EV。只有当Ω(·)小于阈值ω时,迁移操作才会执行。为了实际应用中的鲁棒性与灵活性,阈值ω是一个0到1之间的随机数,如公式(3)所示。
主进程不断循环CPU线程模块的调用,同步障,与迁移操作,直至算法到达终止条件。
ω=rand(0,1) (3)。
2、CPU线程模块
CPU线程模块主要执行遗传编程算法,EV的更新,以及调用GPU适应值评估模块。遗传编程算法的常见遗传算子包括交叉,变异与选择。交叉主要思想是现有种群中个体的基因相互交换而变异则是修改单个个体的基因。交叉与变异都主要用于产生新个体。值得注意的是这里的变异也是基于EV对基因进行赋值,如上文算法(1)所示。选择是根据适应值评估从新个体与已有种群中选择适应值较优的个体组成下一代种群的过程。子种群的每一代进化后,EV都需要被更新以调整子种群的搜索范围。第i个子种群的l+1代EV更新公式如公式(4)所示:
Figure BDA0002013184620000121
其中,τ是更新的动量系数,与ω一样是0到1间的一个随机数。Pt,i(Pf,i)是第i个子种群中,各构建元素的出现频率,他们的每个分量由公式(5)计算。
Figure BDA0002013184620000122
其中na是第a个终端符号(或函数)在第i个子种群中的出现次数。每次更新完EV,都要对EV进行归一化为下一代根据EV执行遗传算子做准备,EV的每个分量的归一化如公式(6)所示。
Figure BDA0002013184620000123
随着子种群个体适应值的不断提高,有效构建元素在子种群中的频率会不断提高,EV所描述的各构建元素的比重逐渐准确,这也使得子种群逐渐由搜索初期追求多样性逐渐转为追求精确性。CPU线程模块调用GPU适应值评估模块需要先把数据解码载入缓存区。缓存区是一个由多个CPU线程共享的内存空间,可以一次容纳多个子种群的信息。每个CPU线程执行适应值评估时,先把子种群解码并紧接缓存的已有数据后面载入缓存,然后等待GPU返回适应值评估结果。GPU返回结果后,缓存的数据将被清空。多个CPU线程采用流水线并行技术异步地执行遗传编程算法,EV更新与适应值评估。
3、GPU适应值评估模块
GPU适应值评估模块由一个CPU辅助线程,CUDA库函数,及CUDA自定义函数组成。CPU辅助线程周期性检查缓存,当缓存空间曾被写入或已被写满后,CPU辅助线程使用CUDA库函数cudaMemcpy把缓存中的数据载入GPU内存中并启动CUDA自定义函数执行适应值评估。结合附图2,GPU适应值评估模块的一般步骤是GPU中的流处理器簇(SM)首先从GPU内存中把个体信息读入高速缓存。每个SM下拥有多个物理核,每个核能负责计算多个GPU块。每个块对应一个个体,块中的各GPU线程对应输入数据的不同输入。GPU线程把接受输入后,个体的输出结果临时存放到当前值矩阵(CV)中。由于GPU是SIMD并行结构,GPU线程需要重新调度以计算个体输出与目标输出间的误差。最后把各输入数据的误差求和作为最终适应值评估结果放入FIT矩阵中。一旦GPU完成计算并返回,CPU辅助线程重新调用cudaMemcpy把GPU内存中的FIT矩阵导出到CPU中。完成适应值评估。
为了测试和评估发明的算法框架的性能,以12个数据集进行仿真测试,其中9个为人工定制数据集,3个为实际应用生产中的数据,分别为蒸馏塔的气体成分色谱分析数据,NASA航空飞机噪声数据,以及北京2010年至2012年PM2.5水平数据,本发明的算法的参数设置为:Ns=6,Ms=256,NB=512,NT=256。最终的结果显示,本发明的算法在多次的仿真测试中在成功率,均方误差,及平均运行时间上都要明显优于一些前沿的遗传编程算法和已有的并行计算框架。这说明采用本发明在提高遗传编程算法的搜索能力与搜索效率上是十分有效的。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种基于自适应并行遗传算法的大规模符号回归方法,其特征在于,包括步骤:
1)根据问题的构建元素集生成Ns个准正交的稀疏初始环境向量EV,并根据EV初始化Ns个子种群,每个子种群含Ms个个体;创建NTC个CPU线程以及在GPU内存中申请NB个GPU块、每个块中NT个GPU线程与足够的内存空间,准备计算;
2)启动NTC个CPU线程同时执行子种群的独立进化,所述子种群的独立进化包含遗传编程算法与EV更新操作,所述EV更新操作主要依据该子种群中各构建元素的出现频率进行调整;所述独立进化过程中的适应值评估由调用GPU计算资源完成;调用时,CPU线程首先将该子种群的信息进行解码,载入缓存,然后等待GPU返回结果,完成适应值评估;一个CPU线程等待GPU时,其他CPU线程可继续完成对应子种群的独立进化;子种群不断循环遗传算子直至到达同步障,当一个子种群到达同步障后,对应的CPU线程重新查询是否有子种群仍未执行独立进化,若有,CPU线程转去该子种群执行计算,若无,继续重新查询;
3)周期性检查缓存数据,当GPU检测到来自CPU的适应值评估请求时,GPU把缓存数据,即待适应值评估的子种群载入GPU内存,并启动GPU块及其中的GPU线程执行计算,当缓存中的所有个体完成计算后,GPU把计算结果汇总,并返回给CPU,完成适应值评估;
4)所有子种群到达同步障后,执行个体迁移操作,所述个体迁移操作包含个体的迁入与迁出;
5)迁移操作完成后,如果达到结束条件则终止,否则返回步骤2)。
2.根据权利要求1所述的基于自适应并行遗传算法的大规模符号回归方法,其特征在于,所述的步骤1)中,
为使初始环境向量EV正交化,假定每个初始环境向量EV中共有vt个终端符号的概率设成1,其余终端符号的概率设成1/T;每个初始环境向量EV中共有vf个函数的概率设成1,其余函数的概率设成1/F;设成1的终端符号即为所述子种群的必选构建元素,所述vt、vf由公式(1)决定:
Figure FDA0003810760750000021
T为终端符号的数量,每个初始环境向量EV设成1的终端符号不尽相同,以实现准正交化,随后根据初始环境向量EV初始化子种群中每个个体的每个基因片段,初始化过程对每个个体的基因根据EV进行赋值。
3.根据权利要求1所述的基于自适应并行遗传算法的大规模符号回归方法,其特征在于,所述的步骤1)中,
在申请GPU内存空间时,需要分配五个矩阵:输入数据矩阵TI,标签矩阵TO,个体数据矩阵DEV,适应值矩阵FIT,当前值矩阵CV,个矩阵的大小分别为MI×MV,MI,NB×L,NB,NB×MI,其中MI是输入数据量,MV是数据的维度,NB是GPU块的数目,L是个体的长度。
4.根据权利要求1所述的基于自适应并行遗传算法的大规模符号回归方法,其特征在于,所述的步骤1)中,
CPU线程的创建及启动采用Window自带的API中的CreateThread函数完成。
5.根据权利要求1所述的基于自适应并行遗传算法的大规模符号回归方法,其特征在于,步骤2)中,所述EV更新操作主要依据该子种群中各构建元素的出现频率进行调整,具体包括:
针对第i个子种群的l+1代EV更新公式如公式(2)所示:
Figure FDA0003810760750000031
其中,τ是更新的动量系数,是0到1间的一个随机数,Pt,i和Pf,i是第i个子种群中,各构建元素的出现频率,它们的每个分量由公式(3)计算:
Figure FDA0003810760750000032
其中na是第a个终端符号或函数在第i个子种群中的出现次数,每次更新完EV,都要对EV进行归一化为下一代根据EV执行遗传算子做准备,EV的每个分量的归一化如公式(4)所示:
Figure FDA0003810760750000033
6.根据权利要求1所述的基于自适应并行遗传算法的大规模符号回归方法,其特征在于,进行适应值评估具体包括步骤:
GPU中的流处理器簇从GPU内存中把个体信息读入高速缓存,每个流处理器簇下拥有多个物理核,每个核能负责计算多个GPU块,每个GPU块对应一个个体,GPU块中的各GPU线程对应测试数据的不同输入;
GPU线程接受输入并计算对应个体在不同输入时的输出后,个体的输出结果临时存放到当前值矩阵CV中,由于GPU是SIMD并行结构,GPU线程重新调度以计算个体输出与目标输出间的误差;
最后把各输入数据的误差求和,作为最终适应值评估结果放入适应值矩阵FIT中,一旦GPU完成计算并返回,CPU辅助线程重新调用cudaMemcpy把GPU内存中的适应值矩阵FIT导出到CPU中,完成适应值评估。
7.根据权利要求1所述的基于自适应并行遗传算法的大规模符号回归方法,其特征在于,所述的步骤4)具体包括:
首先,根据EV计算各个子种群间的相似度,若相似度低于预先设定的阈值,该子种群对不发生迁移操作,在迁入操作中,现计算阶段适应值最优的子种群把最优个体迁入到其他子种群,替换掉其他子种群的最优个体;在迁出操作中,任意两个子种群随机选出一个个体进行比较,适应值较优个体替换较差个体以实现迁出操作。
8.根据权利要求1所述的基于自适应并行遗传算法的大规模符号回归方法,其特征在于,步骤4)中,迁移操作采用余弦距离公式(5)来衡量两个子种群的相似性:
Figure FDA0003810760750000051
其中,G是现计算阶段最优适应值个体所在的子种群,K是待进行迁入操作的子种群序号,i,j是任意两个执行迁出操作的子种群,EVt与EVf分别是子种群关于终端符号与函数的EV,仅当Ω(·)小于阈值ω时,迁移操作才会执行,为了实际应用中的鲁棒性与灵活性,所述阈值ω是一个0到1之间的随机数,如公式(6)所示:
ω=rand(0,1) (6)。
9.一种基于自适应并行遗传算法的大规模符号回归系统,其特征在于,包括:
主进程模块,用于根据求解问题的构建元素集生成若干个准正交的环境向量EV,并根据EV初始化遗传编程算法的多种群;其后,主进程模块调用CPU多线程模块进行多种群的独立进化,当子种群完成独立进化,到达同步障后,主进程模块执行迁移操作以共享搜索信息;
CPU线程模块,用于每个子种群按照给定的算子独自进行遗传编程算法的进化,每个子种群的计算由一个CPU线程负责,多个CPU线程采用流水线并行技术异步地同时计算;各子种群的进化受各自对应的EV控制,进化结果对EV产生调整;每个子种群进化中的适应值评估通过调用GPU适应值评估模块实现;
GPU适应值评估模块,用于当GPU检测到解码后的子种群信息载入缓存后,把缓存数据拷入GPU内存并执行计算,每个GPU块对应子种群的一个个体的适应值评估,每个GPU线程对应测试数据的一个输入,计算完成后,GPU把计算结果返回给CPU。
10.根据权利要求要求9所述的一种基于自适应并行遗传算法的大规模符号回归系统,其特征在于:
所述的GPU适应值评估模块包括一个CPU辅助线程、CUDA库函数,及CUDA自定义函数组成,所述CPU辅助线程周期性检查缓存,当缓存空间曾被写入或已被写满后,所述CPU辅助线程使用CUDA库函数cudaMemcpy把缓存中的数据载入GPU内存中并启动CUDA自定义函数执行适应值评估。
CN201910254056.2A 2019-03-30 2019-03-30 基于自适应并行遗传算法的大规模符号回归方法及系统 Expired - Fee Related CN110135584B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910254056.2A CN110135584B (zh) 2019-03-30 2019-03-30 基于自适应并行遗传算法的大规模符号回归方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910254056.2A CN110135584B (zh) 2019-03-30 2019-03-30 基于自适应并行遗传算法的大规模符号回归方法及系统

Publications (2)

Publication Number Publication Date
CN110135584A CN110135584A (zh) 2019-08-16
CN110135584B true CN110135584B (zh) 2022-11-18

Family

ID=67569015

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910254056.2A Expired - Fee Related CN110135584B (zh) 2019-03-30 2019-03-30 基于自适应并行遗传算法的大规模符号回归方法及系统

Country Status (1)

Country Link
CN (1) CN110135584B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990151A (zh) * 2019-11-24 2020-04-10 浪潮电子信息产业股份有限公司 一种基于异构计算平台的业务处理方法
CN111161126B (zh) * 2019-12-17 2023-06-09 北京航空航天大学杭州创新研究院 一种基于gpu的并行进化算法的可靠性评估方法
CN111624631B (zh) * 2020-05-19 2022-11-18 中国科学院国家授时中心 一种并行化信号质量评估方法
CN112133383B (zh) * 2020-08-21 2023-06-13 上海大学 基于遗传符号回归预测钙钛矿比表面积的方法
CN112259168B (zh) * 2020-10-22 2023-03-28 深圳华大基因科技服务有限公司 基因测序数据处理方法和基因测序数据处理装置
CN113111308B (zh) * 2021-03-15 2023-08-22 华南理工大学 基于数据驱动遗传编程算法的符号回归方法及系统
CN113641407B (zh) * 2021-06-18 2024-03-01 北京航空航天大学 一种基于cpu和gpu的混合并行智能优化方法
CN117151212B (zh) * 2023-08-22 2024-03-05 南京中禹智慧水利研究院有限公司 基于自适应策略的并行遗传算法的参数率定方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08272761A (ja) * 1995-03-28 1996-10-18 Nippon Telegr & Teleph Corp <Ntt> パラメータチューニング法
JP2003108972A (ja) * 2001-07-27 2003-04-11 National Institute Of Advanced Industrial & Technology 最適フィッティングパラメータ決定方法および装置、並びに最適フィッティングパラメータ決定プログラム
CN104615869A (zh) * 2015-01-22 2015-05-13 广西大学 一种基于相似度排挤的多种群模拟退火混合遗传算法
CN107103360A (zh) * 2017-03-31 2017-08-29 华南理工大学 一种基于混合云的可靠应用分配分布式遗传算法
CN108197708A (zh) * 2017-12-14 2018-06-22 河海大学 一种基于Spark的并行化遗传算法
CN108347062A (zh) * 2018-01-12 2018-07-31 华南理工大学 基于势博弈的微电网能量管理分布式多目标协同优化算法
CN108549607A (zh) * 2018-04-17 2018-09-18 中国矿业大学 消息传递并行程序多路径覆盖测试数据协同进化生成方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140334561A1 (en) * 2013-05-13 2014-11-13 Blackberry Limited Method and System for Symbol Detection Using Matrix Decomposition
US10452989B2 (en) * 2015-05-05 2019-10-22 Kyndi, Inc. Quanton representation for emulating quantum-like computation on classical processors

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08272761A (ja) * 1995-03-28 1996-10-18 Nippon Telegr & Teleph Corp <Ntt> パラメータチューニング法
JP2003108972A (ja) * 2001-07-27 2003-04-11 National Institute Of Advanced Industrial & Technology 最適フィッティングパラメータ決定方法および装置、並びに最適フィッティングパラメータ決定プログラム
CN104615869A (zh) * 2015-01-22 2015-05-13 广西大学 一种基于相似度排挤的多种群模拟退火混合遗传算法
CN107103360A (zh) * 2017-03-31 2017-08-29 华南理工大学 一种基于混合云的可靠应用分配分布式遗传算法
CN108197708A (zh) * 2017-12-14 2018-06-22 河海大学 一种基于Spark的并行化遗传算法
CN108347062A (zh) * 2018-01-12 2018-07-31 华南理工大学 基于势博弈的微电网能量管理分布式多目标协同优化算法
CN108549607A (zh) * 2018-04-17 2018-09-18 中国矿业大学 消息传递并行程序多路径覆盖测试数据协同进化生成方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Master-Slave Parallel Vector-Evaluated Genetic Algorithm for Unmanned Aerial Vehicle’s Path Planning";Djamalladine Mahamat Pierre等;《2011 11th International Conference on Hybrid Intelligent Systems》;20111208;第517-520页 *

Also Published As

Publication number Publication date
CN110135584A (zh) 2019-08-16

Similar Documents

Publication Publication Date Title
CN110135584B (zh) 基于自适应并行遗传算法的大规模符号回归方法及系统
CN108509270B (zh) 一种国产申威26010众核处理器上K-means算法的高性能并行实现方法
US11620510B2 (en) Platform for concurrent execution of GPU operations
CN110992935A (zh) 用于训练神经网络的计算系统
CN104281495B (zh) 多核处理器共享高速缓存任务调度方法
Gao et al. Deep neural network task partitioning and offloading for mobile edge computing
CN111368484B (zh) 基于神威架构的宇宙n体数值模拟优化方法及系统
CN115437795B (zh) 一种异构gpu集群负载感知的显存重计算优化方法及系统
Du et al. Model parallelism optimization for distributed inference via decoupled CNN structure
Ye et al. A new approach for resource scheduling with deep reinforcement learning
CN114647515A (zh) 一种面向gpu集群的动态资源调度方法
CN115454612A (zh) 一种基于维度学习策略和灰狼优化的云平台任务调度方法
WO2023134453A1 (zh) 一种算子的处理方法及计算机设备
CN115994567A (zh) 一种深度神经网络模型并行计算任务异步调度方法
CN112434785B (zh) 一种面向超级计算机的分布式并行深度神经网络性能评测方法
CN110119375B (zh) 一种将多个标量核链接为单核向量处理阵列的控制方法
CN115756789A (zh) 一种针对深度学习推理服务系统的gpu调度优化方法
Xu et al. Talos: A weighted speedup-aware device placement of deep learning models
US11900239B2 (en) Systems and methods for accelerating sparse neural network execution
US11704562B1 (en) Architecture for virtual instructions
CN114444681A (zh) 神经网络稀疏化的设备、方法及相应产品
Ma et al. A parallel multi-swarm particle swarm optimization algorithm based on CUDA streams
Sun et al. DRL-TA: A Type-aware Task Scheduling and Load Balancing Method based on Deep Reinforcement Learning in Heterogeneous Computing Environment
Zhou et al. Training and Serving System of Foundation Models: A Comprehensive Survey
Wiggins et al. Evaluating multi-agent reinforcement learning on heterogeneous platforms

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20221118

CF01 Termination of patent right due to non-payment of annual fee