华为2018软赛心得(西北36强)

赛题:

本次赛题基本描述

        由于租户对ECS实例(虚拟机,VM)请求的行为具有一定规律,可以通过对历史ECS实例请求的分析,预测到未来一段时间的ECS实例请求,然后对预测的请求分配资源(如图1所示),这样可以找到一个接近最优的分配策略,实现资源最大化利用,同时也能参考预测的结果制定云数据中心的建设计划。

图1 智能预测与资源调度示例

本次赛题通用性描述

        物理服务器:云数据中心通常由大规模的物理服务器集群所组成,通过虚拟化技术,可以对每个物理节点的资源(如CPU、内存、硬盘等)进行隔离,使得每台物理机上可以同时容纳多个虚拟机,这些虚拟机即共享该物理服务器上的所有资源。为了保证每台虚拟机的运行性能,通常物理资源不能“超分”,即每台物理服务器上所有虚拟机的虚拟资源总量不能超过其物理资源总量。这里假设物理服务器只有一种规格大小。

        虚拟机规格:云平台通常预先定义了各种类型虚拟机的规格(flavor),便于租户选择购买。例如,如果租户对计算要求低,而内存要求相对高,可以选择4个vCPU、16GB内存的配置。由于不考虑物理资源的“超分”,虚拟机的资源占用可与物理资源进行一比一的映射。当然,不同规格的虚拟机有不同的性能,价格也不一。

        资源维度:如上述,虚拟机正常工作需要多个维度的资源同时配合,如CPU、内存、硬盘、网络等等,每种资源都可能成为瓶颈,并且每种资源分配不合理都可能产生碎片。这里假设只需要考虑单个维度资源的使用,即尽可能最大化每台物理服务器的CPU或者内存(Mem)的利用率,但在考虑某个维度资源优化的同时,要保证其他资源不能超分。

        历史请求数据:租户在云平台上每申请一台虚拟机都会在后台的数据库产生一条数据,每条数据包含了虚拟机的ID、虚拟机的规格大小以及创建时间等。如果我们可以获取到云平台在过去一段时间的所有虚拟机请求数据,通过训练这些数据特征,可以预测下一个时间段可能到来的虚拟机请求分布。

        比赛程序内容:请你设计一个程序能够精确预测未来某个时间段内的虚拟机的请求情况,并寻找最佳的资源分配方案:对输入的虚拟机历史请求数据进行建模分析以及训练,确定系数给出预测模型,然后对给定预测时间段内不同规格的虚拟机数量进行预测,最后根据预测结果把虚拟机部署到物理服务器上,使得服务器的资源利用率最大化。

赛题介绍详细信息请参见华为软件挑战赛官网信息点击打开链接http://codecraft.devcloud.huaweicloud.com/home/detail

思路:

1.多变量线性回归+遗传算法

2.单层BP神经网络+遗传算法+判分公式+装箱增补

3.局部加权线性回归+格拉布斯去噪+遗传算法+装箱增补

(最终使用第三个思路,进入复赛,止步于决赛)

学习与编程过程:

        刚看到赛题,其实一脸懵逼,自己没有参加过什么竞赛也没有任何经验,去年抱着师兄大腿参加了一届软挑,没有贡献什么输出,今年就自己组队来做主力,真正体验一把。大概用了两天时间深入理解了赛题:预测阶段+分配阶段,依据去年的经验,没有急于上手,找了队友和师兄一起讨论思路,而且初赛文档中也给出了最简单的思路,由于没有做过机器学习有关的,因此首先按照初赛文档给出的思路进行编程。

        最初版用的多变量线性回归进行预测,模型是根据机器学习笔记02:多元线性回归、梯度下降和Normal equation这篇博客进行编程实现,核心思路就是用最小二乘的结果作为迭代的方向,不断更新权值(更新公式见

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值