Adaptive Parallelization for Distributed Job Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large-scale computing systems face challenges in efficiently classifying and re-classifying items in extensive electronic catalogs, particularly in distributed marketplaces, due to the complexity and cost associated with continuous classification processes.

Innovation Solution

The implementation of adaptive parallelization techniques, where incoming job streams are dynamically partitioned based on an execution time metric and target throughput, allowing for dynamic adjustment of parallelism across computing resources to optimize job execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If continuous classification and re-classification is performed on large electronic catalogs, then item classification accuracy is improved, but processing cost and system complexity increase

Engineering Contradiction:
Improveitem classification accuracyVSAvoidclassification system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent divides the large electronic catalog into multiple partitions, with each partition processed by a separate computing node. This segmentation allows the classification system to handle large catalogs by distributing the workload across multiple independent units, reducing overall system complexity while maintaining classification accuracy for each segment.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic parallelization where the system automatically adjusts the number of computing nodes and partition assignments based on real-time workload characteristics. This dynamic adaptation allows the system to scale resources up or down as needed, reducing complexity during low-demand periods while maintaining high classification accuracy during peak loads.

Inventive Principle:
Principle #15Dynamics

2Productivity

If more computing resources are allocated to classification tasks, then processing throughput is improved, but resource cost increases

Engineering Contradiction:
Improveclassification processing throughputVSAvoidcomputing resource consumption
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system dynamically adjusts the number of computing nodes and partition assignments based on real-time workload characteristics. When workload increases, the system automatically allocates more resources to maintain throughput; when workload decreases, resources are released to reduce costs. This dynamic resource management resolves the contradiction between maintaining high throughput and reducing resource consumption.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes system parameters such as the number of partitions and parallel processing degree based on workload characteristics. By adjusting these parameters dynamically, the system optimizes the balance between processing throughput and resource consumption, allocating more resources only when necessary to handle increased classification demands.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If manual tuning of parallelization parameters is performed, then execution efficiency is improved, but operational complexity increases

Engineering Contradiction:
Improvejob execution efficiencyVSAvoidparameter tuning complexity
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent implements self-service through automatic parallelization parameter tuning. The system monitors workload characteristics and autonomously adjusts the number of partitions, thread counts, and other parallelization parameters without requiring manual intervention. This self-tuning capability maintains high execution efficiency while eliminating the operational complexity of manual parameter adjustment.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system incorporates feedback mechanisms that continuously monitor job execution performance and workload characteristics. Based on this feedback, the system automatically adjusts parallelization parameters to optimize execution efficiency. This closed-loop control eliminates the need for manual tuning while maintaining high productivity through data-driven parameter optimization.

Inventive Principle:
Principle #23Feedback

4Stability of the object's composition

If fixed parallelization is used, then system stability is improved, but adaptability to varying workloads deteriorates

Engineering Contradiction:
Improvesystem configuration stabilityVSAvoidworkload adaptation capability
Core Design Contradiction:
Stability of the object's compositionVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic parallelization where the system automatically adjusts the number of computing nodes and partition assignments based on real-time workload characteristics. This dynamic approach maintains system stability through controlled adaptation, allowing the system to respond to varying workloads while maintaining consistent performance through automated resource management and load balancing.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10296380B1Distributed computing with adaptive parallelization
Publication Date: 2019.05.21 AMAZON TECH INC
  • US10296380B1 patent drawing
  • US10296380B1 patent drawing
  • US10296380B1 patent drawing

AI summary

Methods, systems, and computer-readable media for distributed computing with adaptive parallelization are disclosed. An execution time metric is determined based (at least in part) on execution of a batch of jobs. A quantity of partitions for an additional batch of jobs is determined based (at least in part) on the execution time metric and on a target metric. The additional batch of jobs is divided between a set of partitions of the determined quantity. Execution is initiated of the additional batch of jobs in the set of partitions. The set of partitions comprises at least a first partition and a second partition. A first subset of jobs in the first partition is executed in parallel with a second subset of jobs in the second partition.