Distributed Computation Partitioning for Dynamic Resource Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing resource allocation methods in distributed computing systems are inefficient in managing dynamic resource availability, leading to stalled computations and resource failures, especially in environments where resources vary over time.

Innovation Solution

A method and system for dynamically allocating computational resources to program portions in a distributed computing system, allowing partial execution with less than requested resources and adapting to resource availability changes by partitioning and repartitioning program components while preserving execution order.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a centralized resource manager allocates computational resources to applications, then resource allocation is managed centrally, but computation may stall when requested resources are not immediately available

Engineering Contradiction:
Improvecomputation continuityVSAvoidcomputation stall time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the computation into multiple independent program portions that can execute separately. When resources are partially available, the system divides the computation graph into sub-graphs that can be executed independently, allowing computation to proceed without waiting for full resource availability. This resolves the contradiction by enabling continuous computation execution while resources are being allocated incrementally.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements partial execution by allowing program portions to run with less than the requested computational resources. The system executes available computation tasks with currently allocated resources, then adds more resources as they become available. This approach eliminates computation stalls by accepting partial action now rather than waiting for complete resource allocation.

Inventive Principle:
Principle #16Partial or excessive action

2Productivity

If computational resources are dynamically allocated to program portions, then resource utilization efficiency improves, but system complexity increases due to partitioning and repartitioning operations

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidsystem management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements feedback mechanisms where the resource manager continuously monitors resource availability and computation progress. Based on this feedback, the system dynamically repartitions computation graphs and reallocates resources. The feedback loop includes tracking which program portions have executed, which are pending, and current resource availability, enabling automated decision-making that manages complexity while maintaining high resource utilization.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent makes the computation graph structure dynamic by allowing continuous partitioning and repartitioning operations. The system can transform a monolithic computation graph into multiple sub-graphs, execute them in parallel or sequence, and recombine results. This dynamic restructuring enables flexible resource allocation that adapts to changing conditions, improving productivity despite increased operational complexity.

Inventive Principle:
Principle #15Dynamics

3Speed

If the computation graph is partitioned into sub-graphs for parallel execution, then computation speed increases, but maintaining execution order becomes more difficult

Engineering Contradiction:
Improvecomputation speedVSAvoidexecution order preservation
Core Design Contradiction:
SpeedVSStability of the object's composition

Solution Approach 1:

The patent resolves the execution order problem by introducing a temporal dimension to the partitioning strategy. Instead of simply dividing the computation graph spatially, the system partitions based on execution phases and data dependencies. Sub-graphs are assigned execution timestamps and dependency markers that ensure correct ordering is maintained across parallel executions. This dimensional approach to partitioning enables both speed improvement through parallelism and stability through ordered execution.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentEP4348425B1Dynamic computational resource allocation
Publication Date: 2025.12.31 AB INITIO TECHNOLOGY LLC
  • EP4348425B1 patent drawingFigure 1
  • EP4348425B1 patent drawingFigure 2a
  • EP4348425B1 patent drawingFigure 2b

AI summary

A method for performing a distributed computation on a computing system using computational resources dynamically allocated using a computational resource manager includes storing information specifying quantities of computational resources associated with respective ones of a number of program portions of the program, where the program portions perform successive transformations of data and each program portion uses computational resources granted by the computational resource manager enabling computation associated with that program portion to be performed in the computing system, requesting a first quantity of computational resources associated with a first program portion of the number of program portions from the computational resource manager, receiving a second quantity of computational resources from the computational resource manager, less than the requested first quantity of computational resources, performing computation associated with the first portion of the program using the second quantity of computational resources, while performing the computation associated with the first portion of the program using the second quantity of computational resources, receiving an additional quantity of computational resources from the computational resource manager, and performing an additional computation associated with the first portion of the program using the additional quantity of computational resources while performing the computation associated with the first portion using the second quantity of computational resources.