Spark作业性能建模及参数优化

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ISSN 1002-4956 CN11-2034/T
实验技术与管理
Experimental Technology and Management
第38卷第3期2021年3月
Vol.38 No.3 Mar. 2021
DOI: 10.16791/ki.sjg.2021.03.030 S p a rk作业性能建模及参数优化
崔晓龙,张敏,刘祥,郭茜
(北京科技大学计算机与通信工程学院,材料领域知识工程北京市重点实验室,北京100083 )
摘要:Apache Spark分布式大数据计算框架应用广泛,但是其配置参数繁多导致使用难度较大,且不合理的配置将严重影响作业执行性能,研究Spark参数对性能的影响并进一步对参数进行自动优化具有重要意义。

该文分析了Spark作业中影响系统行为的关键参数,建立了性能模型,并进一步探索了Spark参数自动优化的方法和策略。

通过提取作业执行过程中对性能有影响的参数,对主流的19种回归模型进行了对比测试,获得通用性和拟合效果都比较好的6种回归模型,并针对不同类型的Spark任务在特定集群上建立性能模型,最后依据建立的性能模型在参数空间中利用改进的多起点爬山搜索算法寻找最优的参数组合。

实验证明经参数优化后Spark作业性能有较大提升。

关键词:Apache S p a rk;性能建模;机器学习;参数调优;搜索算法
中图分类号:TP302.7 文献标识码:A 文章编号:1002-4956(2021)03-0146-07
Performance modeling and parameter optimization of Spark job
CUI Xiaolong,ZHANG Min,LIU Xiang,GUO Xi
(Beijing Key Laboratory of Materials Science Knowledge Engineering, School of Computer and
Communication Engineering, University of Science and Technology Beijing, Beijing 100083, China)
Abstract: Apache Spark, a distributed big data computing framework, is widely used, but its numerous configuration parameters make it difficult to use, and unreasonable configuration will seriously affect the performance of j ob execution. It has important meaning to study the impact of Spark parameters on performance and further automatic optimization of parameters. This paper analyzes the key parameters that affect the behavior of the system in Spark jobs, establishes a performance model, and explores the methods and strategies of automatic optimization of Spark parameters. By extracting the parameters that affect the performance in the process of job execution, 6 regression models with good generality and fitting effect are obtained through the comparison test of 19 mainstream regression models to build performance models on specific clusters for different types of Spark jobs. Finally, according to the established performance model, an improved multi-point mountain climbing search algorithm is used to find a better combination of parameters in the parameter space. The experiment shows that the performance of Spark job is greatly improved after parameter optimization.
Key words: Apache Spark; performance modeling; machine learning; parameter optimization; search algorithm
进人21世纪以来,互联网产业飞速发展,互联网 接入设备和用户数量急剧增多。

为了应对随之而来的 海量数据,大数据相关技术和高性能计算应运而生。

S p a rk以其快速、通用、可扩展的巨大优势在分布式 计算框架中脱颖而出,被工业界广泛使用。

然而,在实际的使用过程中,S p a rk分布式计算平台往往需要 设置复杂的参数来约束其在集群的运行状况,而不同 的参数设置会对作业运行效率产生直接或间接的影 响,不合理的参数配置甚至会导致作业运行失败,这 与并行计算平台提升工作效率的初衷相违背。

收稿日期:2020-06-02
基金项目:国家自然科学基金项目(61602031 );中央高校基本科研业务费专项资金资助项目(FRF-BD-19-012A);北京科技大学重大教 学改革项目(JG2019ZD02)
作者简介:崔晓龙(1989—),男,山东日照,博士研究生,工程师.研究方向为大数据分析、隐私保护、网络与网络安全,****************.cn。

引文格式:崔晓龙,张敏,刘祥,等.Spark作业性能建模及参数优化[J].实验技术与管理,2021,38(3): 146-152.
Cite this article: CUI X L, ZHANG M, LIU X, et al. Performance modeling and parameter optimization of Spark job[J]. Experimental Technology and Management, 2021, 38(3): 146-152. (in Chinese)
崔晓龙,等:S p a r k作业性能建模及参数优化147
由于集群环境的复杂性以及S park内部逻辑的抽 象性,人工找出-•个合理的参数方案是一件非常耗费 时间和精力的事情,而且也很难满足实时系统的需要。

因此,对S park的运行情况进行性能建模,并且找出 自动化的参数调优策略具有重要意义[1]。

本文通过对S park作业性能进行建模分析,建立 S p a rk作业性能的最优化模型,同时实现一个Spark 作业配置的自动优化系统,并对不同的系统参数配置 策略进行对比分析与自动调优。

首先搭建一个针对 S p a rk作业的性能监控系统,不断收集集群的作业信 息,用于提供建模的原始数据和对作业性能进行检测 与评估;然后在S park集群上运行基准测试程序测试 Spark性能模型和不同自动参数配置方法的准确性。

1背景知识及相关技术
1.1 Spark技术概述
Apache Spark是为了提高MapReduce在分布式计 算平台上的迭代速度而开发的新一代通用计算引擎。

它最早由美国加利福尼亚州大学伯克利分校的AMP 实验室开发,后来开源至GitHub,得到了许多开发者 的共同完善和维护。

它使用S cala语言开发,因此天 然具有并行性,能够在内存中完成对弹性分布式数据 集(RD D)的函数式处理,具有运行速度快、易用性 好、通用性强和适应性强等优点[2]。

Spark共有超过200个配置参数,这使Spark的参 数配置变得非常复杂。

可以根据参数的功能将Spark 的配置参数分为13大类,分别为:应用程序的属性、运行环境相关、Shuffle相关行为、Spark的U I、压缩 和序列化、运行时行为、网络、调度相关属性、动态 分配、安全、加密、Spark Streaming、YARN相关参 数。

这些参数会对作业执行情况产生影响进而影响作 业执行性能。

然而,S p a rk的参数配置非常复杂,在 调试的过程中,参数调试人员会将一部分参数设置为 默认参数,对其余的主要参数根据经验和运行情况调 节。

但是,由于参数分布空间的庞大性,往往采用默 认参数不能取得很好的效果,而且Spark众多参数之 间还存在着各种依赖关系。

参数调试人员需要十分了 解这些参数的实际意义以及对作业不同方面的影响,经过多次试错后才能得到相对较优的参数配置组合。

相同的S park配置参数和作业对于不同的集群也可能 会有完全不同的作业效率,因此要将作业移植到另一 个集群上时,也需要重新进行参数配置[3]。

1.2 Spark性能建模
实现S park参数的自动配置与调优需要对Spark 在集群上的性能进行建模,使其能够准确预测Spark 作业的运行时间。

目前,学术界针对Spark平台的性能预测研究还比较少W ang等通过分析Spark作业的 详细运行机理,把运行时间用数学方式详细地表征出 来。

这种方法可以得到良好的效果,但是需要对每个 作业都进行详细分析,耗时又费力,不具有普适性和 通用性[4]。

W ang等W使用机器学习方法进行拟合,通过庞大 的数据集和强大的计算力去寻找运行时间与S park作 业的潜在关系,直接提取以往运行的参数和运行时间 进行黑盒训练。

这种方法具有很好的普适性和通用性,而且以往的运行数据也很容易获得,在计算能力足够 的集群上训练也耗时不多[5],因此逐渐成为学术界主 流的研究方向。

但是,这种完全黑盒的方法忽略了 S p a rk作业运行时的内部原理,模型选择和超参数没 有调整好时,经常会出现收敛速度慢、性能曲线只有 一部分吻合的情况。

为了克服上述缺点,葛庆宝等[6_7]提出了关键阶段 (stage)的概念,在此基础上通过机器学习的方法建 立Spark作业性能预测模型:首先对S park的基准性 能预测项S在运行过程中产生的日志进行抓取,从中 提取出每个作业中每个stage的相关属性设置和运行时 间,然后通过回归训练等机器学习方法得到作业输入 相关参数和Spark作业关键阶段运行时间的关系。

1.3 Spark参数调整
建立S park的性能模型后可以在S p ark的参数空 间中进行搜索,寻找最优的参数组合使作业的运行时 间最短,并且可以实时预测作业的运行时间。

然而,现在大多数的S park作业还没有一个成熟有效的自动 参数配置方案。

目前比较主流的Spark作业配置方法 可分为手动和自动两种,而手动法存在着耗时费力的 问题,自动法存在着效果不是很好、普适性不是特别 强的问题。

具体的分析方法分为基于经验规律的、基 于试错法的和机器学习的方法[81。

(1 )基于经验规律的方法。

在Spark问世之初,很多经验丰富的S p ark开发者就凭借着自己对Spark 运行原理的理解和大量实践按需对S park的参数进行 调节,这种方法就称为基于经验规律的方法,它要求 用户拥有扎实的基础知识和丰富的实践经历。

这类方 法每配置-次作业都要从头开始分析和配置,不具有 通用性。

在更换集群或者使用需求时,用户也要进行 相应的参数调整。

很显然,这种方法人力成本很高,实时性很差。

(2)基于白盒的试错方法。

Panagotis等提出了基 于试错法的作业配置调优方法。

此方法只需要对Spark 作业进行少量的几次模拟运行,就可以给参数的配置 得出一个指导性的方向,可以使参数的搜索空间大大 减小。

但是,由于没有考虑S park 配置参数之间的相
148实验技术与管理
互关系,很容易使搜索陷人局部最优解,优化结果也 不是很好[9]。

'
(3 )基于黑盒的机器学习方法。

此方法是先收集 S p a rk历史作业的信息,建立合适的性能模型,然后 寻找参数内部潜在的相互关系及其与作业运行时间的 关系。

与基于经验规律的方法和基于试错法的白盒方 法相比,黑盒的机器学习方法更加简洁有效,只要进 行少量的数据预处理和建立合适的性能模型,就可以 取得不错的调优效果[1<)_12]。

2 S p a r k作业性能建模
建立一个较为准确的S p a rk性能模型是对Spark 作业进行性能预测、参数调优和性能瓶颈发现的前 提。

一个良好的性能模型可以很好地预测S p a rk作 业的运行时间,使调参问题转变成参数空间内的搜索 问题間。

为了得到S p ark作业的执行时间,需要分析出显 著影响作业运行时间的相关参数信息。

影响作业执行 性能的因素主要有3部分:集群的硬件处理能力、S p a r k的参数配置和作业的特征信息。

这些参数会直 接或间接地对作业处理过程产生影响。

考虑固定集群的特定作业类型,S p a rk作业的运行时间是相对于任 务输入参数、S p a rk配置参数的一个函数,如输入数 据的大小会直接影响到S p a rk作业的运行时间,而S p a rk配置参数将影响作业在运行过程中的特征,也 会对性能产生影响。

故而可将性能建模任务描述为:在给定的训练集上,寻找一个映射函数/,使其在测 试集上的预测时间与真实值的偏差尽可能小。

误差采 用常用的均方根误差(RMSE )进行度量。

2.1参数选择与获取
2.1.1 参数选择
S park参数可由用户进行设置,可以对Spark作业 执行过程中的作业行为进行控制。

具体来说,这些参 数可以改变S p ark作业中间过程的数据量,改变内存 磁盘间的数据传输次数以及改变S p ark作业中各个任 务的并行程度。

不同的参数值对S p ark作业的执行性 能会产生不同的影响,同时由于参数之间存在复杂的 相互依赖关系,仅凭经验改变某几个参数值并不能得 到好的执行效率,甚至可能会产生副作用。

对所有参 数进行整体上的合理配置具有一定的难度。

经过分析,影响作业执行性能的参数如表1所示。

表1选择的Spark配置参数
参数名称参数意义取值范围spark.task.cpus执行每个Task的CPU核心数1
spark.executor.cores每个Executor的CPU核数1
spark executor memory每个Executor进程的内存使用量1〜14 GB spark—driver—cores driver进程的CPU核数0, 1
spark driver memory drivei■进程的内存使用量[4, 12]xl28 MB spark_reducer_maxsizeinflight从每个reducer任务能获取的map输出的最大值[1, 8]xl2 MB spark_shuffle_compress是否需要压缩map文件〇, 1
spark_shuffle_spill_compress是否需要压缩溢出的spill文件〇, 1
spark_shuffle_file_buffer为shuffle文件设置的内存缓冲区的大小[1, 8]x8 MB spark_broadcast_compress广播变量是否压需要缩0,1 sparkbroadcastblocksize每个广播块的大小[1, 8] MB sparkrpcmessagemaxsize在driver和Executor之间发送信息量的最大值[1, 8]x32 MB spark_memory_fration计算和存储队内存比例[1,9]/10
spark memory storagefration执行和存储的空间比值[1,9]/10 sparkiocompressioncodec压缩编码和解码方式snappy, lzf
2.1.2 参数获取
为了建立性能模型,需要对运行在S p ark集群上 的作业信息进行收集,包含不同的配置参数以及作业 的执行性能信息,以构建训练数据集d Spark-bench是 一个比较规范的测试案例集,集成了很多S p ark支持 的经典测试案例,大致包含机器学习、图形处理、流 处理和数据库查询4种测试案例,这些案例可以体现 出在不同工作负载情况下系统的瓶颈,涵盖了 CPU 型、内存型、S huffle密集型以及10密集型任务。

另外,它还带有一个数据生成器,可以通过修改项目的 配置文件得到任意大小的输人数据,这对于生成数据 集和测试调优效果来说是十分方便的[+15]。

在服务器上成功部署Spark-bench后,每种类型 选取了 1~2个任务进行运行和数据采集工作,选择了 支持向量机(S V M)、PageRank、H ive、Tw itterTag、主成分分析(PCA )和最短路径任务进行测试。

每个
崔晓龙,等:S p a r k 作业性能建模及参数优化149
20 10
10 20 30 40 50 60 70 80 90 100
真实响应/s
图4
P C A 任务提升树回归模型预测值-实际图
30
20
10
10 20 30 40 50 60 70 80 90 100
真实响应/s
图2
SVM 任务二次SVM 模型预测值-实际值
有理二次GPR
指数GPR
Matem5/2 GPR 平方指数GPR
装袋树回归 提升树回归 粗略高斯SVM 中等高斯SVM 精细高斯SVM
三次SVM 二次 S VM 线性SVM 粗略树冋归 中等树回归 精细树回归 逐步线性回归 稳健线性回归 交互线性回归
线性回归
10
20 30RMSE/s
40
图3
P C A 任务不同回归方法的RMSE 对比
预测:模型1.14
100
90
80
可能是因为两端的数据达到了某种计算资源上的瓶 颈,导致模型分段,如果是这种情况的话,那模型在 合理范围内的预测精度要更高一些。

从图3还可以看 出,树状模型的拟合精度要明显高于其他模型,这也 可能是树状模型更加贴近P C A 任务运行时的真实情
预测:模型1.9
100
90 80
任务采集了 1 000〜3 000组数据作为数据集,该数据 记录了待优化参数值和在该配置参数下作业的运行时 间信息。

对采集到的数据进行数据预处理,把字符串 类型的numpy 数组转换成float 类型的二维numpy 数 组,并且完成数据的归一化处理。

由于每个Spark 参 数的含义和单位不相同,如果不进行归一化,训练过 程将很难收敛。

2.2模型选择与建立
针对不同的任务建立性能模型,采用不同的回归 模型在训练集上进行训练并计算RMSE 。

下面以SVM 和P C A 任务为例进行展示。

从图1中可以看出,S V M 任务拟合最优的是二次
SV M 模型,其最优R M SE 达到了 5.459 6 s ,即预测值
和真实值的误差能达到6 s 之内,达到了较好的预测 效果。

由图1还可以看出,除了少数几种模型拟合得 不是很好以外,大多数回归模型拟合的效果还不错。

其中S V M 任务的最优模型的预测值与实际值对比可 以直观地由图2体现出来,大多数点都在拟合直线的 附近,只有少部分点偏离预测直线较远,这可能是因 为这些数据虽然没有运行失败,但是在运行时可能有 一些随机因素的扰动,例如服务器后台巡检程序的启 动占用了 C P U 和内存资源等,去除这些特殊情况的预 测精度可能会更高。

有理二次GPR
指数GPR
Matem5/2 GPR 平方指数GPR
装袋树回归 提升树回归 粗略高斯SVM 中等高斯SVM 精细高斯SVM
三次SVM 二次 S VM 线性SVM 粗略树回归 中等树回归 精细树回归 逐步线性回归 稳健线性回归 交互线性回归
线性回归
10
RMSE/s
15
20
图1
SVM 任务不同回归方法的RMSE 对比
对于PC A 任务来说,其模型R M SE 对比和最优 拟合情况如图3所示。

其最优的预测模型是提升树模 型,RM SE 达到了 13.111s ,比SVM 任务要差,这可 能是由于PC A 任务的内部原理更加复杂所致,并且 受到数据集采集不够充分导致模型欠拟合的影响。

由 图4可以看出,位于两端的数据明显拟合不好,这也
o
o
o
o
o 7 6
5 4 3
s /i a s

o
o
o
6 5
4
150实验技术与管理
LR SVR RFR ETR DTR GBR (a) SVM 任务回归方法对比(没使用超参数优化)25
I Average RMSE
■ Std varRMSE
LR SVR RFR ETR DTR GBR
(b) SVM 任务回归方法对比(使用超参数优化后)
25
I Average RMSE
I Std var RMSE
况造成的。

可以通过模型的对比分析针对Spark 任务 进行有效的建模和拟合。

采用同样的方法对其他任务进行性能建模,通过 对比和分析,找出了效果较好的6个模型作为最后的 待选项供用户选择,分别是:线性回归模型(L R )、 支持向量回归模型(SVR )、随机森林回归模型(RFR )、 极端森林回归模型(E T R )、代表决策树回归模型 (DTR )、梯度提升树回归模型(G B R )。

2.3超参数优化
超参数也是回归模型的重要组成部分。

良好的超 参数会使回归模型更贴近数据的真实情况或者可以使 模型的训练时间更短。

本文中所用到的回归模型也会涉及很多超参数,
■ Average RMSE
■ Std var RMSE
这些超参数需要手动指定,如果不指定的话会使用默 认值,可能影响模型的训练时间和模型的准确率,如 果想提高模型准确率需要对模型的超参数进行优化。

一般来说,超参数的默认值已经接近最优了,只需要 在关键超参数默认值的附近选取一些数值进行交叉验 证,选取准确度最高的模型超参数作为最终的超参 数。

以SVM 任务和PC A 任务为例,模型开启超参数 优化和不开启超参数优化的结果如图5所示。

从图5 中可以看出,一般模型使用超参数优化和不使用超参 数优化差别不大,甚至准确率会有所降低,但是SVR 模型开启超参数优化后准确率显著提高。

在S V M 任 务中,SV R 模型开启超参数优化后的模型均方根误差 是开启之前的0.46。

■ Average RMSE
8 " ■ Std var RMSE
7 -
LR SVR RFR ETR DTR GBR LR SVR RFR ETR DTR GBR
(c> PCA 任务回归方法对比(没使用超参数优化)
(d) PCA 任务回归方法对比(使用超参数优化后)
图5
模型超参数优化对比
以SVM 任务的SV R 模型为例,超参数优化的步 骤为:
(1 )找到模型的关键超参数。

对于r b f 类型的 SVR ,关键的超参数就是gam m a 和C ,其中gamma 会影响到最终数学表达式的系数,C 则会影响到拟合 程度,太小会导致欠拟合,太大会导致过拟合。

(2)选定每个超参数的搜索空间。

一般来说,可 以先粗选,找到范围后再在目标区间进行细致的划 分,划分精度要考虑效率和效果的折中,如果划分得 过细了,可能要运行十几个小时,划分得粗略了又不 能得到很好的超参数设置,因此一般可以采用多次交 叉验证的策略,先进行一次粗略的划分,再进行细致
的划分。

(3 )利用 Python 的 sklearn 中的 SearchGridCV (网格搜索)进行超参数优化,一般交叉验证的折数 选3~5折。

3 Spark 参数优化
由Spark 配置参数构成了一个高维解空间,故而 参数优化问题即从高维解空间中寻找一个最优解以满 足目标函数的需求。

同时,由于目标函数的复杂性, 使用一些诸如分支限界或者动态规划等确定性搜索算 法会使得搜索效率非常低下,因此需要用启发式算法 来进行搜索,找出一组最优配置参数。

S /H s
i
崔晓龙,等:S p a rk 作业性能建模及参数优化151
1
最佳时间:38.24886878390028 S
2 最优参败:[50000, 200, 1, 1, 1, 1,
512, 107, 0, 1, 71, 0, 8, 287, 0.2, 0.S , 0]
3 最佳时间:38.29633585830398 S
4 最优#败:[s e e e e , 290, 1, 1, 1, 1, 1, s i 2, 107, e , 1, 71, e , 8, 287, e .8, e .6,
0]
5 •佳时间:38.24886878399028 $
6 最优参数:[58006 , 200, 1, 1, 1, 1, 1, S 12, 107, e , 1, 71, e , 8, 287, 0.3, 0.3, 0]
7 *佳时间:38.2S 97182028033S s
8 最优参败:[s e e e e , 266, l , l , l , l , l , s i 2, i e 7,
0,
l , 71, e , 8t 287,
0.7,
e .2, 0】
9 最诖时间:38.28S 48643940091 S
10 最优#数:[50000 , 200, 1, 1, 1, 1,1,S 12, 107, e , 1, 71, 0, 8, 287, e .2, 0.7, 0]11 最佳时间:38.28548643948091 S
12 f t 优#数:[50000, 200, 1, 1, 1, 1, 1, S 12, 107, 0, 1, 71, 0, 8, 287, 0.5, 0.8, 0]13 最佳时间:38.29633S 85830398 s
14 最优参数:[s e e e e , 2e e , l , l , l , l , l , s i 2, i e 7, e , l , 7i , e , 8, 287, 0.6,
e .7, e ]
15
錢佳时间:38.24886878390028 S
图8多起点爬山算法的运行结果
表2
搜索算法对比
算法
运行时间/S
距离暴力搜索/s
随机选取策略(10 000次循环)19.6 2.331随机选取策略(100 000次循环)193.20.670爬山算法(第1次) 5.40.023爬山算法(第
2
次)
5.3
0多起点爬山算法(第1次)19.60多起点爬山算法(第2
次)
18.30模拟退火
56.7
3.3参数优化效果
以默认参数、随机参数和系统自动调优后参数进 行一组对比实验。

在指定输人数据大小的情况下,选 定Spark 任务以随机参数运行11次,然后以最优参数 运行11次。

以S V M 任务为例(输人数据大小为 50 000和200 ),运行结果如图9所示,可以看出, S p a r k 自动调优参数相较于随机参数和默认参数分别 有34.0%和30.1 %的性能提升。

随机参数
默认参数 系统调优
Q ________|_______|________|________|_______|________|_______|________|________|________
1
2
3
4
5
6
7
8
9
10 11
运行次数
图9 3种参数配置策略优化效果对比
4结语
S p ark 作为主流的大数据计算框架,探索其自动
参数优化的方法将大大方便用户的使用。

首先,在 Spark 的性能建模过程中,对主流的19种回归模型进 行了对比测试,找到了通用性和拟合效果都比较好的 6种回归模型,并对5种类型的Spark 任务进行了测 试,找到了最优模型和测试集上的最优均方根误差 (RMSE ),每种S park 任务的最优拟合效果下误差都
3.1搜索算法
S p a rk 的参数分为离散和连续两种类型,像 spark press 这种参数具有天然的离散性,只 有0和1两种取值,而像spark .driver.memory 则在MB 的量度上是连续的,可以在其相应的参数空间中进行 等距采样,通过提高参数间隔,可以大大减少需要遍 历的参数组合个数。

相应地,如果采样过于粗略,也 会造成求得最优解与实际的全局最优解相差比较大, 因此先对所有参数作一次影响度判断,判定各参数对 运行时间影响的大小,然后找到影响比较大的参数进 行细粒度划分,影响比较小的参数划分的粒度较粗, 从而大大减小了搜索空间。

随机选取策略是在参数空间中生成随机数,得到 参数组合后代人性能模型中进行计算,返回最优的结 果和参数。

这种方法随着选取次数的增多会更接近最 优解,但是直接搜索到最优解的概率是十分小的,而 且需要循环次数很多才有用(10 000次以上),运行时 间长,效率比较低,因此只能作为算法性能分析的对 比,并不具有实际应用价值。

图6所示是随机循环 100 000次的运行结果。

嫌作时间》
38.96192039S39648 s
*
优参败
t [S0000, 200, 1, 1, 1, 3, 1, 768, 84 , 0, 1, 64, 0, 8, 224, 0.3, 0.4, e]
图6 随机选取策略的运行结果
模拟退火算法可以相对有效地找到局部最优解,但 是用时要比爬山算法长,其运行结果如图7所示。

鍰作时
N: 38.24886878390028 S
嬝优参败:【50000, 200, 1, 1, 1, 1, 1, S12,
107, 0, 1, 71, 0, 8, 287, 0.3, 0.3, 0】
图7模拟退火算法的运行结果
本文采用了一种可以找到较好的局部最优解的带 限制条件的多起点爬山算法。

其核心思想是:每次随 机选取一个起点进行爬山,将爬到的局部最优解记录 下来,下一次再换一个起点进行爬山,将爬出来的最 优解和之前的进行比较,如果比之前的要更短则更新 最优解,如果连续3次都没有爬到更好的结果,则认为 当前的最优解就是最好的结果。

实测这种方法基本上 可以在30 s 内收敛到局部最优解,结果如图8所示。

3.2算法实验验证
通过实验对比不同搜索算法的性能和验证带限制 条件的多起点爬山算法的有效性,结果如表2所示。

可以看出:随机选取策略运行时间长且搜索结果不是 很理想;模拟退火算法可以收敛到局部最优解但用时 稍长;爬山算法能够在较短时间内找到局部最优解, 但是存在陷人局部最优的问题;多起点爬山算法可以 在20 s
之内找到更好的局部最优解。

152实验技术与管理
在10%以内。

其次,探索了在巨大的参数空间中求解最优解的算法,使用了随机选取策略、爬山算法和模拟退火算法进行了实现和对比测试,最后在权衡了算法的运行时间和求解效果后,提出了一种效果更好、运行时间更理想的带限制条件的多起点爬山搜索算法,实测可以在30 s内收敛到较优的局部最优解。

参考文献(References)
[1] GOUNARIS A, TORRES J. A methodology for Spark parameter
tuning[J]. Big Data Research, 2017, 11: 22-32.
[2] 陈侨安,李峰,曹越,等.基于运行数据分析的S p a rk任务
参数优化[J].计算机工程与科学,2016, 38(1): 11 -19.
[3] XU J G, WANG G L, LIU S Y, et al. A novel performance
evaluation and optimization model for big data system[C]// Proceedings of the 15th International Symposium on Parallel and Distributed Computing (ISPDC 2016). Fuzhou, 2016: 1765-1773.
[4] WANG K M, KHAN M H. Performance prediction for Apache
Spark platform[C]//2015 IEEE 17th International Conference on High Performance Computing and Communications, 2015 IEEE 7th International Symposium on Cyberspace Safety and Security, and 2015 IEEE 12th International Conference on Embedded Software and Systems. New York, 2015: 166-173. [5] WANG G, XU J, HE B. A novel method for tuning configuration
parameters o f Spark based on machine learning[C]//2016 IEEE 18th International Conference on High Performance Computing and Communications, IEEE 14th International Conference on Smart City, IEEE 2nd International Conference on Data Science and Systems (HPCC/SmartCity/DSS). Sydney, 2016: 586-593.[6]葛庆宝,陶耀东,高岑,等.基于关键阶段分析的S p a rk性
能预测模型[J].计算机系统应用,2018, 27(8)^232-236.
[7] 葛庆宝.基于机器学习的S p a rk作业性能预测模型的研究与
实现m.沈阳:中同科学院大学(中国科学院沈阳计算技术
研究所),2018.
[8]廖湖声,黄珊珊,徐俊刚,等.S p a rk性能优化技术研究综述
[J]•计算机科学,2018, 45(7): 7-15, 37.
[9] PETRIDIS P, GOUNARIS A, TORRES J. Spark parameter
tuning via trial-and-error[M]//Angelov P, Manolopoulos Y, Iliadis
L, et al. Eds. Advances in big data. INNS 2016. Advances in
intelligent systems and computing. Cham: Springer, 2017.
[10] TOUS R, GOUNARIS A, TRIPIANA C, et al. Spark
deployment and performance evaluation on the MareNostrum
supercomputer[C]//2015 IEEE International Conference on Big
Data (Big Data). Santa Clara, 2015: 299-306.
[11]郭硕洋.S p a rk性能建模系统的设计与实现[D].西安:西安电
子科技大学,2019.
[丨2]阮树骅,潘梵梵,陈兴蜀,等.•种S p a rk作业配置参数智 能优化方法[J].工程科学与技术,2020, 52(1): 19卜197.
[13] WANG K, KHAN M. M H, NGUYEN N, et al. Design and
implementation of an analytical framework for interference
aware job scheduling on Apache Spark platform[J]. Cluster
Comput, 2019, 22: 2223-2237.
[14]王婷.成本最小的S p a rk作业配置优化算法研究[D].北京:
北京邮电大学,2019.
[15] ZHAO Y, HU F, CHEN H. An adaptive tuning strategy on Spark
based on in-memory computation characteristics[C]//2016 18th
International Conference on Advanced Communication Technology
(ICACT). Pyeongchang, 2016: 484-488.
(上接第145页)
[3] PAYTON O D, PICCO L, SCOTT T B. High-speed atomic force
microscopy for materials science[J]. International Materials Reviews, 2016, 61(8): 473-494.
[4] LI M, DANG D, XI N, et al. Nanoscale imaging and force
probing of biomolecular systems using atomic force microscopy: From single molecules to living cells[J]. Nanoscale, 2017, 9(45):
17643-17666.
[5] 王岱.A F M在近代物理实验教学中的应用[J].天水师范学院
学报,2009, 29(2): 73-75.
[6] 李帮军.A F M-III型原子力显微镜在实验教学中的使用[J].实
验技术与管理,2005(4): 34-38.
[7] 刘兰娇•原子力显微镜在纳米测量技术中的应用[J].山东工
业技术,2014(21): 18.
[8] 李小凤,蒋沙汝,朱丽媛,等•幅度调制原子力显微镜仿真
平台[J].大学物理,2011,30(7): 51-55.[9]方达渭,黄西荷,朱象云,等.物理实验计算机仿真教学探
讨[J]•大学物理,1998, 17(11): 21-21.
[10]田立朝,姜静,马燕云.虚拟仪器在核技术实验教学中的应
用探索[J]•大学物理,2017, 36(9): 44-48.
[11] GARCIA R, PEREZ R. Dynamic atomic force microscopy
methods[J]. Surface Science Reports, 2002, 47(6-8): 197-301.
[12]陶永华,尹怡欣,葛卢生.新型P I D控制及其应用[M].北京:
机械T业出版社,1988M-6.
[13] LI Y Z, ZHANG L W, SHAN G Q, et al. A homemade atomic
force microscope based on a quartz tuning fork for undergraduate
instruction [J]. American Journal of Physics, 2016, 84(6): 478-482. [14] GIESSIBL F J. The qPlus sensor, a powerful core for the atomic
force microscope[J]. Review o f Scientific Instruments, 2019,
90(1): 011101.
[15] DERJAGUIN B V, MULLER V M, TOPOROV Y P. Effect of
contact deformations on the adhesion of particles[J]. Journal of
Colloid and Interface Science, 1975, 53(2): 314-326.。

相关文档
最新文档