其他分享
首页 > 其他分享> > 2021华为软件精英挑战总结

2021华为软件精英挑战总结

作者:互联网

2021华为软件精英挑战赛总结

今年的软挑最终止步于粤港澳赛区第16名,总成本为16亿3979万6349,赛区第一名总成本为15亿3903万4817。

虽然没进入决赛,但是拿到了华为面试直通卡,也喜提广州一日游,算不虚此行了。决赛虽然还在继续,但是已与我无关,遂写一篇博客记录比赛历程,分享经验。

0.赛题描述

初赛赛题与复赛赛题略有不同,但是我们团队的思路初赛、复赛均适用,所以此处只描述复赛题目。另外,赛题为华为版权所有,此处只做简单描述。

云上资源的规划和调度是云计算场景中非常重要的一个优化问题。好的优化算法能够为云运营商节约上亿的运营成本,并为客户提供更稳定、更流畅的云端体验。

0.1服务器

服务器类型:在公有云的运营场景中,我们的数据中心可以选购的服务器类型有多种,服务器可以分为A 和B两个节点,服务器拥有的资源(CPU 和内存)均匀分布在这两个节点上。

服务器成本:数据中心使用每台服务器的成本由两部分构成:硬件成本和能耗成本。硬件成本是在采购服务器时的一次性支出,能耗成本是后续服务器使用过程中的持续支出。

0.2虚拟机

虚拟机类型:我们面向用户提供了多种类型的虚拟机售卖服务,用户可以根据自己的需求来自由选购。不同的虚拟机类型,有不同的CPU、内存需求。

单节点/双节点部署:由于服务器存在两个节点,对应的虚拟机也存在两种部署方式:单节点部署或双节点部署。单节点部署指的是一台虚拟机所需的资源(CPU和内存)完全由主机上的一个节点提供;双节点部署指的是一台虚拟机所需的资源(CPU 和内存)必须由一台服务器的两个节点同时提供,并且每个节点提供总需求资源的一半。

0.3资源规划与调度

0.4输入输出

image-20210417173652361

本题使用交互式评测,你的程序应该从标准输入读取输入,并将输出打印至标准输出。交互协议如下:

0.5输入输出样例

<---- input ----> (用于说明,该行非实际交互数据)
2
(NV603, 92, 324, 53800, 500)
(NV604, 128, 512, 87800, 800)
2
(c3.large.4, 2, 8, 0)
(c3.8xlarge.2, 32, 64, 1)
3 2
2
(add, c3.large.4, 5)
(add, c3.large.4, 0)
2
(del, 0)
(add, c3.8xlarge.2, 1)
<---- output ----> (用于说明,该行非实际交互数据)
(purchase, 2)
(NV603, 1)
(NV604, 1)
(migration, 0)
(0, A)
(0, B)
<---- input ----> (用于说明,该行非实际交互数据)
3
(add, c3.large.4, 2)
(del, 1)
(del, 2)
<---- output ----> (用于说明,该行非实际交互数据)
(purchase, 0)
(migration, 0)
(1)
(purchase, 0)
(migration, 0)
(1, B)

0.6评分规则

总成本低的方案胜出。总成本包含两部分:购买服务器的整体硬件成本以及服务器消耗的整体能耗成本。整体硬件成本即将选手输出的方案中所有购买的服务器的硬件成本相加。整体能耗成本的计算方式为:在处理完每一天的所有操作后(包括迁移,创建和删除),裁判程序会将当前有负载(至少部署了一台虚拟机)的服务器视为开机状态,没有任何负载的服务器视为关机状态,以此计算当天的能耗成本。整体能耗成本即每一天的能耗成本的总和。

1.思路探索(心路历程)

2.最终思路

image-20210417223830704

最终的思路基本是延续了上面的心路历程中的最终版本,基本的流程图如上,其中,迁移部分一直使用着最简单朴素的方式,在流程图中未画出。

3.可继续优化的点

4.比赛代码(java)

未经整理的代码:https://gitee.com/MicahYin/code-craft2021/tree/master

5.个人总结

标签:请求,精英,虚拟机,CPU,华为,2021,服务器,迁移,节点
来源: https://blog.csdn.net/Alger_/article/details/115820641