论文部分内容阅读
内存计算系统(例如Spark)已经广泛用于处理工业界的海量数据。为了提高这些系统的计算效率和鲁棒性,系统开发人员为用户提供了许多高度可配置的参数。由于高维度的参数空间和复杂的参数交互作用,手工调优这些参数既耗时又低效。因此,用户急需一种内存计算系统的参数自动调优方法。目前参数自动调优常用的方法是基于机器学习的方法(Machine Learning-based, ML-based),ML-based方法中需要解决的一个关键问题是应用程序的性能预测问题。
ML-based方法中为应用程序构建性能预测模型需要应对以下两方面的挑战:(1)收集训练数据需要耗费大量时间;(2)在训练数据有限的情况下,性能预测模型的准确率很低且鲁棒性差。为了应对这些挑战,设计并且实现了一个内存计算系统配置参数的自动调优系统ATCS,它是一种基于生成对抗网络(Generative Adversarial Network, GAN)的新的参数自动调优方法。ATCS可以使用较少的训练数据并且不牺牲模型准确率来构建性能预测模型。此外,在ATCS中使用了优化的遗传算法来探索内存计算系统的参数空间,以获得性能最佳的配置参数组。
为了证明ATCS系统的有效性,在Spark上选择了五个经常使用的工作负载,每个工作负载都在五个不同大小的数据集上运行。实验结果表明,ATCS提高了五个常用Spark工作负载的性能。与默认配置相比,ATCS平均提高了3.5倍的性能,最高可达到6.9倍。实验结果还表明,为了获得相似的模型精度,ATCS训练数据的数量仅为深度神经网络(Deep Neural Networks, DNN)训练数据量的6%,支持向量机(Support Vector Machines, SVM)训练数据量的13%,决策树(Decision Tree, DT)训练数据量的18%。此外,在五种典型的Spark应用程序上,与其他机器学习模型相比,ATCS的平均性能提升为DNN的1.7倍,SVM的1.6倍,DT的1.7倍。
ML-based方法中为应用程序构建性能预测模型需要应对以下两方面的挑战:(1)收集训练数据需要耗费大量时间;(2)在训练数据有限的情况下,性能预测模型的准确率很低且鲁棒性差。为了应对这些挑战,设计并且实现了一个内存计算系统配置参数的自动调优系统ATCS,它是一种基于生成对抗网络(Generative Adversarial Network, GAN)的新的参数自动调优方法。ATCS可以使用较少的训练数据并且不牺牲模型准确率来构建性能预测模型。此外,在ATCS中使用了优化的遗传算法来探索内存计算系统的参数空间,以获得性能最佳的配置参数组。
为了证明ATCS系统的有效性,在Spark上选择了五个经常使用的工作负载,每个工作负载都在五个不同大小的数据集上运行。实验结果表明,ATCS提高了五个常用Spark工作负载的性能。与默认配置相比,ATCS平均提高了3.5倍的性能,最高可达到6.9倍。实验结果还表明,为了获得相似的模型精度,ATCS训练数据的数量仅为深度神经网络(Deep Neural Networks, DNN)训练数据量的6%,支持向量机(Support Vector Machines, SVM)训练数据量的13%,决策树(Decision Tree, DT)训练数据量的18%。此外,在五种典型的Spark应用程序上,与其他机器学习模型相比,ATCS的平均性能提升为DNN的1.7倍,SVM的1.6倍,DT的1.7倍。