|
实现的算法的伪代码如算法1所示。算法1用于集群识别的主从PGA初始化进化生态系统大小线程块和网格以在GPU上实现最大的并行性:创建初始填充,而在GPU上为TRUE doON:评估所有个体的适用性在GPU上:评估状态和统计GPU:确定是否满足终止标准如果是,则终止算法;在循环时退出;elseContinueend If on GPU:隔离测试个体on GPU:Apply elitismON GPU:Apply scalingON GPU:Apply genetic operator:selectionON GPU:Apply genetic operator:crossoverON GPU:Apply genetic operator:Transoveron GPU:Apply genetic operator:Mutation on GPU:Apply replacement(新一代创建)end whiler Report on Results Clean up(在GPU/CPU上释放内存;释放设备)以实现数据并行性并利用在CUDAthread层次结构中,我们将单个基因映射到二维网格上。使用等式9所示的表示法,假设人口为400人和18只股票:个体={1,2,4,5,7,…,6}个体={9,2,1,1,1,…,2}个体={3,1,3,4,6,…,2}。。。个体={8,1,9,8,7,…,3}将被映射到网格单元,如图1所示。数据网格单元映射到线程,其中每个线程执行一个内核,在相应的XY坐标下处理数据单元。图1:个体到CUDA线程层次的映射鉴于本次调查中使用的硬件(见表1),表2概述了个体基因到线程的所选映射对允许种群范围和种群规模的限制。
|