Job Resource Simulation for Distributed Computing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computational jobs involving multiple vertices in distributed computing systems often require optimal resource allocation to minimize processing time, but determining the appropriate number of resources is challenging, leading to inefficiencies and potential resource wastage.

Innovation Solution

A simulation module estimates the efficacy of processing computational jobs by simulating different resource sets based on dependencies and historical data, with a resource set recommendation module applying rules to select and allocate the most suitable resources, either automatically or with user input.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If more resources are allocated to processing nodes, then job completion speed is improved, but resource cost and potential waste increase

Engineering Contradiction:
Improvejob completion speedVSAvoidresource waste
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The system performs preliminary simulation and estimation of job execution time before actual resource allocation. By using historical data and vertex dependencies to model expected completion times under different resource scenarios, the system identifies the optimal resource count that minimizes both execution time and resource waste, avoiding both over-provisioning and under-provisioning of resources.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If resource allocation is determined manually or without simulation, then implementation complexity is reduced, but allocation efficiency and accuracy deteriorate

Engineering Contradiction:
Improveallocation efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system creates a virtual copy or model of the computing environment and job execution process through simulation. Instead of physically testing different resource allocations, the system uses historical execution data and vertex dependency models to simulate job completion times under various resource scenarios, selecting the optimal allocation based on these simulations without actual physical trial-and-error.

Inventive Principle:
Principle #26Copying

3Loss of time

If resource allocation is optimized precisely, then processing time is minimized, but the complexity of determining optimal resources increases

Engineering Contradiction:
Improveprocessing timeVSAvoidoptimal resource determination difficulty
Core Design Contradiction:
Loss of timeVSDifficulty of detecting and measuring

Solution Approach 1:

The system uses historical job execution data as feedback to continuously refine its resource allocation models. By analyzing past performance across multiple vertices and jobs, the system learns patterns in resource consumption and execution time, improving the accuracy of its completion time estimates and enabling more precise optimal resource determination over time.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10509683B2Modeling resource usage for a job
Publication Date: 2019.12.17 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10509683B2 patent drawing
  • US10509683B2 patent drawing
  • US10509683B2 patent drawing

AI summary

Simulation of a computational job using various sets of resources, and potentially also the automated or semi-automated allocation of an appropriate set of resources for accomplishing a computational job comprising multiple vertices. For each of multiple potential sets of resources, a simulation module simulates processing of the computational job. While the simulation does not actually perform the vertex on each processing node, the simulation does use dependencies between vertices, and historical data regarding the processing of instances of such vertices, in order to determine the efficacy of processing of each vertex, and to put the estimations together into an overall simulation result.