Virtualized CPU Resource Scheduling via Dynamic Evaluation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In virtualized environments, there is an inefficient use of CPU resources due to the lack of awareness among virtual machines and hypervisors about CPU usage across processes, leading to scenarios where one virtual machine uses CPU heavily while the rest of the hardware remains idle.
Innovation Solution
Implementing a resource evaluator program that determines an evaluation strategy based on current system load and availability of CPU resources, using a combination of 'force' and 'delay' operators to opportunistically evaluate expressions, thereby optimizing CPU usage by forcing evaluation during idle cycles and delaying it during high load conditions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If virtual machines use CPU resources independently without coordination, then each virtual machine can execute its own processes, but CPU resources are not efficiently utilized and idle periods occur
Solution Approach 1:
The hypervisor monitors CPU resource usage across all virtual machines and uses this feedback information to dynamically adjust evaluation strategies. The system continuously tracks CPU availability and adjusts the timing of expression evaluation accordingly, ensuring computations occur during idle periods rather than during high-utilization times.
Solution Approach 2:
The evaluation strategy transitions from static to dynamic by allowing virtual machines to adapt their computation timing based on real-time CPU availability. The system dynamically determines whether to force immediate evaluation or delay evaluation as a promise based on current system load conditions, optimizing resource utilization throughout execution.
2Speed
If expressions are evaluated immediately using strict evaluation, then computation results are obtained quickly, but CPU resources may be unavailable leading to inefficiency
Solution Approach 1:
The system prepares expressions for evaluation in advance by creating promise objects that encapsulate the computation logic. These promises are ready to be executed immediately when CPU resources become available, eliminating the need for re-parsing or re-preparation at evaluation time.
Solution Approach 2:
The evaluation timing becomes dynamic rather than fixed. The system can force immediate evaluation when CPU resources are available, maintaining fast execution speed. When resources are unavailable, evaluation is delayed as a promise, preventing resource contention while preserving the ability to execute quickly when conditions permit.
3Productivity
If delayed evaluation is used to save CPU resources, then CPU utilization is improved, but computation is postponed requiring force operations
Solution Approach 1:
The promise object serves as an intermediary between expression creation and evaluation execution. It encapsulates the computation logic and parameters, allowing the expression to be prepared in advance without immediate execution. The promise can be forced later when CPU resources are available, bridging the gap between early preparation and delayed execution.
4Productivity
If multiple virtual machines run simultaneously, then system throughput increases, but CPU resource contention increases leading to idle periods
Solution Approach 1:
The hypervisor provides real-time feedback on CPU resource availability to multiple virtual machines. Each virtual machine uses this feedback to determine whether to force evaluation of pending expressions or delay them as promises, coordinating their computation timing to avoid contention and utilize idle CPU cycles from other virtual machines.
Data Source
AI summary
Embodiments of the present invention provide methods, computer program products, and systems for evaluating expressions. Embodiments of the present invention can be used to receive a set of program instructions to be evaluated in a virtualized environment and determine an evaluation strategy based, at least in part, on an availability of CPU resources. The CPU resource include resources impacted by use of virtual machines and hypervisors. Embodiments of the present invention can, responsive to determining that there are sufficient CPU resources available, evaluate the set of program instructions according to the evaluation strategy using the CPU resources.


