Dynamic Resource Allocation in HPC Clusters via Virtual Machine Scaling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
High Performance Computing (HPC) clusters face challenges in dynamically reallocating resources during application execution, especially for applications with varying resource needs, as existing batch schedulers struggle to efficiently manage resource allocation and reallocation, leading to inefficient use of resources and delayed execution due to the lack of available resources.
Innovation Solution
A method that dynamically allocates resources by creating virtual machines on unused nodes and scaling processes based on demand, allowing for the re-balancing of resource distribution within a cluster without requiring additional resources, thereby optimizing resource usage and avoiding unnecessary allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If batch schedulers allocate resources statically to applications, then resource allocation is simple and predictable, but resource utilization efficiency deteriorates when application needs vary over time
Solution Approach 1:
The patent implements dynamic resource allocation by allowing applications to request additional resources during execution and by automatically creating new compute nodes when resources become available. The batch scheduler continuously monitors resource availability and application needs, dynamically adjusting the allocation rather than maintaining fixed assignments throughout execution.
Solution Approach 2:
The system pre-allocates a baseline set of resources to each application at submission time, ensuring that applications have immediate resources to start execution. This preliminary allocation simplifies initial scheduling while leaving room for subsequent dynamic adjustments as resources become available or application needs change.
2Adaptability or versatility
If additional resources are allocated to applications during execution, then resource needs can be met, but processing time increases due to resource reallocation delays
Solution Approach 1:
The system pre-creates virtual machine instances in an idle state before they are needed. When an application requires additional resources, the scheduler can immediately activate these pre-prepared virtual machines and assign them to the application, avoiding the time delay of creating and configuring resources on-demand.
Solution Approach 2:
The patent introduces virtual machines as an intermediary layer between physical compute nodes and applications. Virtual machines can be rapidly instantiated and configured without the overhead of full node provisioning, serving as a buffer that enables fast resource scaling while minimizing disruption to application execution.
3Adaptability or versatility
If virtual machines are created on unused nodes, then resource flexibility increases, but device complexity increases
Solution Approach 1:
The patent creates virtual machines with standardized configurations that can serve multiple applications and workloads. These virtual machines act as universal resource units that can be dynamically assigned to different applications based on demand, providing flexibility without requiring custom configurations for each scenario.
Solution Approach 2:
The batch scheduler automatically manages the creation, configuration, and assignment of virtual machines without requiring manual intervention. The system self-monitors resource availability, automatically provisions virtual machines on idle nodes, and dynamically reassigns them to applications that need resources, reducing operational complexity despite increased system flexibility.
Data Source
Figure 1
Figure 2~5e
Figure 3~4
AI summary
The invention is aimed in particular at the dynamic allocation of at least one resource of a plurality of resources of a set of resources of a cluster, the resources of said plurality of resources being reserved for the execution of processes of an application. For these purposes, at least one virtual machine is created (305) in at least one resource of said plurality of resources, said at least one virtual machine offering characteristics similar to those of said at least one resource. When at least one currently executing process of said application, which process can be downscaled into at least one other process, is identified, at least one available resource comprising at least one unused virtual machine is identified from among said reserved resources. Said at least one process that can be downscaled is then downscaled (325), at least one process resulting from said downscaling being executed by an unused virtual machine of said at least one identified resource.