文件名称:实验结果与性能分析-vs2010 mfc打包成安装文件
文件大小:1.7MB
文件格式:PDF
更新时间:2024-07-05 16:54:06
大数据
3.1 实验环境和测试函数 本实验使用7台Dell服务器构建了一个Spark集群, 分为1个主控节点和6个受控节点,集群的任务调度模式 为standalone。硬件配置:服务器拥有8G内存,四核处理 器。软件配置:集群搭建使用spark-1.2.0-bin-hadoop1 和Hadoop-1.2.1稳定版,Java选用JDK1.7.0_71(Linux 版),操作系统选择ubuntu12.04Server版。 演化算法常用多目标优化(MOP)[7]作为标准测试 问题,本实验采用Deb等人提出的双目标函数ZDT1[8] 作为测试用例,其拥有两个复杂的目标函数和约束条 件,符合大规模复杂优化问题的要求,具体定义如下: 1 1 1 2 2 2 min min .1.0 9 (x,...,x)1.0 1 0 1, 1,...,n n n i i i f x f f g g g x n x i = =� � � �� = -� �� � �� � � � = +� -� £ £ =� � ⑴ 3.2 实验结果与性能分析 3.2.1 mapPartitions和map性能对比 图3 算子调优 首先初始化8个不同大小的种群,然后在相同条件 下使用mapPartitions和map算子实现的SPGA算法在 初始种群上优化求解ZDT1函数的Pareto最优前沿,并 对运行时间进行对比分析。图3评价了mapPartitions 和map算子实现的SPGA算法性能,从中可以看出由 mapPartitions算子编写的算法对所有种群的运行时间 都明显优低于 map 算子,且随着种群规模的增大, mapPartitions和map算子的运行时间都在增加,同时两 者的时间差距也越来越大,这是因为个体数目增多的 同时partition的数目没有变,所以mapPartitions算子没 有增加初始化资源的时间,只是因为种群变大增加了 计算时间,实现的算法效率更高。由于 mapPartitions 算子的性能优异,所以最终选择使用mapPartitions算子 实现SPGA算法的变异和适应度。 3.2.2 算法运行时间对比 本次实验对比了串行遗传算法、基于MapReduce 的并行遗传算法(MRPGA)和基于Spark的并行遗传 算法在不同种群规模下求解ZDT1多目标优化问题的 运行时间。从图4可以看出,在种群规模较小,个体数 量小于0.2*105时,串行遗传算法执行时间最短,其次 是SPGA算法,运行时间最长的是MRPGA算法,这是 因为Spark集群和MapReduce建立作业以及系统通信 需要消耗一定的时间,而且MapReduce作业的初始化 耗时大于Spark作业。当种群规模增大到中等规模 时我们发现,SPGA算法用时最少,串行次之,MRPGA 还是用时最多,在这个阶段串行遗传算法的运行时间 上升最快并且超过了SPGA算法,这是因为相对于串 行算法而言,并行算法会将增加的数据分散到各个节 点并行计算,能够大量节省了计算时间,同时MRPGA 算法由于作业启动和磁盘I/O耗时太多所以整体运行 速度还是最慢。随着种群增长达到大规模,其数量大 于9*105时,集群上并行程序的优势就明显大于串行程 序,SPGA和MRPGA算法的耗时都小于串行遗传算 法,而且 SPGA 算法优于 MRPGA 算法,这是因为 Spark框架是基于内存运算,不需要大量读写磁盘,所 以SPGA算法运行更快。 图4 训练时间对比 ·· 45