Job Decomposition for Distributed Computing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing distributed computing frameworks like MapReduce, Spark, and Ray require significant upfront design and programming efforts, making it difficult to convert existing programs into distributed computing models, especially in the context of high worker mobility in the Internet industry where programs need frequent modifications.

Innovation Solution

A job decomposition processing method that analyzes a source program to determine function call graphs and feature information, recommends execution strategies, and inserts a distributed computing framework like MapReduce, Spark, or Ray, allowing for distributed execution without modifying the source program, thereby reducing human intervention and ensuring repeatability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If distributed computing frameworks (MapReduce, Spark, Ray) are used, then computing efficiency and parallel processing capability are improved, but program complexity and design difficulty increase significantly

Engineering Contradiction:
Improvecomputing efficiencyVSAvoidprogram complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a job decomposition processing system as an intermediary between the source program and distributed computing frameworks. This system automatically analyzes source programs, decomposes them into executable tasks, and submits them to distributed computing resources without requiring users to manually design distributed programs. The intermediary handles the complexity of framework integration, task scheduling, and resource management, allowing users to benefit from distributed computing efficiency while avoiding program complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The job decomposition processing system performs self-service by automatically analyzing source programs, identifying parallelizable operations, decomposing them into distributed tasks, and managing execution on computing resources. The system autonomously handles program analysis, task generation, resource allocation, and result aggregation without requiring user intervention in the complex distributed programming process, thus improving productivity while minimizing the burden on users.

Inventive Principle:
Principle #25Self-service

2Speed

If existing programs are converted to distributed computing models, then processing speed and scalability are improved, but modification difficulty and time consumption increase

Engineering Contradiction:
Improveprocessing speedVSAvoidmodification time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The system performs preliminary action by pre-analyzing source programs to identify parallelizable operations and decomposition opportunities before actual execution. The job decomposition processing system maintains a library of analysis results and decomposition patterns that can be reused across different programs and execution contexts. This preliminary analysis enables rapid conversion of existing programs to distributed models without requiring time-consuming manual redesign, thus improving processing speed while minimizing modification time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent employs copying by generating multiple identical or variant copies of computational tasks that can be executed in parallel across distributed resources. Instead of fundamentally redesigning existing programs, the system creates replicated task instances from the original program logic, distributing them across multiple computing nodes. This copying approach preserves the original program structure while enabling parallel execution, thus improving processing speed without significant modification effort.

Inventive Principle:
Principle #26Copying

3Reliability

If manual program modification for distributed computing is performed, then execution control and optimization are improved, but human resource cost and subjectivity increase

Engineering Contradiction:
Improveexecution controlVSAvoidhuman resource cost
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The job decomposition processing system performs self-service by automatically analyzing source programs, determining optimal decomposition strategies, generating executable tasks, and managing distributed execution. The system autonomously handles program analysis, task generation, resource allocation, and result aggregation without requiring user intervention in the complex distributed programming process, thus improving productivity while minimizing the burden on users.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system implements feedback mechanisms by monitoring execution performance, resource utilization, and task completion status in real-time. Based on this feedback, the job decomposition processing system dynamically adjusts task distribution, resource allocation, and decomposition strategies to optimize execution control. This automated feedback loop ensures reliable execution while eliminating the need for continuous human monitoring and adjustment, thus reducing human resource costs while maintaining execution reliability.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11907693B2Job decomposition processing method for distributed computing
Publication Date: 2024.02.20 ZHEJIANG LAB
  • US11907693B2 patent drawing
  • US11907693B2 patent drawing
  • US11907693B2 patent drawing

AI summary

A job decomposition processing method for distributed computing, which comprises: analyzing a source program to be run by program static analysis to determine a function call graph contained in the source program; determining feature information of functions contained in the source program by program dynamics analysis or/and a program intelligent decomposition algorithm, wherein the feature information of the functions is used to characterize relevant information when each function is being running; decomposing the source program based on the feature information of the functions, a function relationship and available resource information of a computing platform to form an execution recommendation for each function on the computing platform, i.e., which hardware resources are used for computing each function; finally inserting a modifier in the source program and starting computation on the computing platform.