Dynamic Computing Resource Allocation in Distributed Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Reliability

If hardware is dedicated to single long-running programs, then program reliability is improved, but resource utilization deteriorates

Engineering Contradiction:
Improveprogram reliabilityVSAvoidresource utilization
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Adaptability or versatility

If computing resources are reallocated from one program to another, then resource flexibility is improved, but program continuity deteriorates

Engineering Contradiction:
Improveresource flexibilityVSAvoidprogram continuity
Core Design Contradiction:
Adaptability or versatilityVSDuration of action of stationary object

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If computing resources are allocated to multiple requests simultaneously, then resource utilization is improved, but allocation complexity increases

Engineering Contradiction:
Improveresource utilizationVSAvoidallocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS7640547B2System and method for allocating computing resources of a distributed computing system
Publication Date: 2009.12.29 JPMORGAN CHASE BANK NA
  • US7640547B2 patent drawing
  • US7640547B2 patent drawing
  • US7640547B2 patent drawing

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.