Huawei Tech Arena 2024

Cloud Computing

Introduction

The whole problem has three parts: maximizing usage, maximizing lifespan, and maximizing profit. These three goals conflict with each other, as improving one can reduce the others. Each goal is made up of many smaller variables. • Usage means how well the system can handle changing server demands at different times. • Lifespan is how long a server can be used before it needs to be replaced. • Profit is the total profit gained by meeting demand.

The goal is to find the best combination that balances these three aspects for the highest overall result.

Approach and Strategy

The core of the problem is finding the best combination of these conflicting factors. This means balancing the three goals to reach an “ideal” point where their combined value is maximized. There are three main approaches: 1. Machine Learning: Define actions and rules so the computer learns patterns and finds solutions automatically. This approach is effective but needs large amounts of data and computing power, which is challenging when simulating millions of servers on the cloud. 2. Linear Programming (Mathematical Programming): This approach turns different relationships into math formulas and uses code to calculate the best solution. This method doesn’t require as much computing power and can use ready-made tools, like Google’s OCTR. However, linear programming is limited because this problem isn’t fully linear. 3. Simple Algorithms: Use human-designed, simpler algorithms. This approach is very fast to run (about 1% of the runtime of the other methods) but has less potential than advanced options like machine learning.

CloudComputing
Test

Choice and Strategy

We chose the third method, using a simple algorithm, and then quickly identified weaknesses and improved it in multiple rounds of updates. • First Algorithm Version: Focused on maximizing profit first, rather than trying to balance all three goals right away. The leader, Zeng Guan, suggested this because: 1. Getting feedback quickly to build a feedback loop was key, since the main structure mattered more than specific details at first. 2. Building something fast would help the team feel a sense of progress. 3. Starting with a simple, “greedy” algorithm would make later changes easier. 4. Zeng Guan wanted to avoid getting stuck on details and delaying progress.

Since the first version only focused on profit, it wasn’t very efficient. • Second Algorithm Version: After finding the issues, the team improved by adding checks for lifespan and usage without hurting profit. The second version was 100 times better than the first and moved the team from last place among 200 teams to the top 10. • Third Algorithm Version: Right after finishing the second version, the team began working on the third. This time, they added state recognition, so the system could act differently based on different conditions. For example, during high demand, the algorithm could focus on buying resources, while during low demand, it could focus on extending server lifespan. After 20 rounds of updates, the third version was completed, doubling the performance of the second version.