Dynamic Computing Resource Allocation in Distributed Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional high-performance computing systems often dedicate hardware to single long-running programs, making it difficult to dynamically reallocate computation-intensive processing and resulting in inefficiencies when resources need to be reassigned.
Innovation Solution
A distributed computing system that allows for reservations and dynamic allocation of computing resources, enabling efficient allocation based on availability and priority, allowing multiple users to access a shared infrastructure for compute-dense calculations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If hardware is dedicated to single long-running programs, then program reliability is improved, but resource utilization deteriorates
Solution Approach 1:
The system implements dynamic resource allocation where computing resources can be reassigned from completed long-running programs to new requests in real-time. The resource manager continuously monitors program completion and dynamically reallocates freed resources without requiring program termination, thus maintaining reliability while improving utilization.
Solution Approach 2:
The computing resources are designed to serve multiple functions and multiple programs sequentially. Instead of dedicated hardware for single programs, the system creates a universal resource pool that can be allocated to any program that completes, enabling one hardware resource to serve multiple purposes across different programs and users.
2Adaptability or versatility
If computing resources are reallocated from one program to another, then resource flexibility is improved, but program continuity deteriorates
Solution Approach 1:
The system performs preliminary allocation of computing resources to programs before they complete. When resources need to be reassigned, the system has already prepared alternative resource assignments in advance, allowing seamless transitions without interrupting program execution. This preliminary preparation enables flexibility while maintaining continuity.
Solution Approach 2:
The resource manager acts as an intermediary layer between programs and physical computing resources. It handles all resource allocation and reassignment operations, absorbing the complexity of resource management while presenting a stable interface to programs. This intermediary protects program continuity by managing resource transitions transparently without requiring program intervention.
3Productivity
If computing resources are allocated to multiple requests simultaneously, then resource utilization is improved, but allocation complexity increases
Solution Approach 1:
The system segments resource allocation into discrete units corresponding to individual program requests. Each computing resource can be independently allocated to different requests in a modular fashion. This segmentation simplifies management by breaking down complex multi-program allocation into manageable individual allocations that can be handled sequentially by the resource manager.
Solution Approach 2:
The resource manager implements continuous feedback monitoring of resource usage and program completion status. Based on this feedback, the system automatically adjusts allocations in real-time, allocating freed resources to waiting requests. This feedback-driven approach simplifies complex allocation by using simple reactive rules based on current system state rather than complex predictive algorithms.
Data Source
AI summary
In certain aspects, the invention features a system and method for (1) receiving reservations for a first subset of computing resources of a distributed computing system (DCS), wherein each of the reservations specifies a time period, (2) allocating the first subset according to the reservations, (3) receiving requests for use of at least a second subset of the DCS's computing resources, wherein each of the requests specifies a time period, (4) determining whether enough unallocated resources are available to fulfill all of the requests, wherein the unallocated resources include the DCS's resources not allocated according to the reservations, (5) allocating resources according to the requests, if there are enough unallocated resources available, and (6) allocating resources in accordance with an allocation criteria if there are not enough unallocated resources available.


