Runtime Piggybacking for Task-Parallel ML Jobs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large-scale machine learning (ML) on MapReduce or Spark faces challenges in optimizing execution plans for ML programs with convergence-based computations, where the number of iterations and conditional control flow are initially unknown, limiting the potential for task parallelism and cluster utilization, especially in small or highly utilized clusters.

Innovation Solution

Implementing runtime piggybacking of concurrent jobs in task-parallel ML programs by intercepting and queuing executable MapReduce jobs and looped jobs, optimizing processing based on worker type, degree of parallelism, and minimum time thresholds, allowing for dynamic merging and redistribution of job results.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If runtime piggybacking is implemented to improve cluster utilization, then cluster utilization and processing efficiency improve, but system complexity increases

Engineering Contradiction:
Improvecluster utilizationVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a runtime piggybacking system that acts as an intermediary layer between the ML program execution and the underlying MapReduce/Spark infrastructure. This intermediary intercepts job streams, queues executable jobs, and dynamically merges or separates them based on worker availability and job characteristics, thereby improving cluster utilization without requiring changes to the core ML algorithms or data infrastructure.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system dynamically adjusts the execution plan at runtime based on changing cluster resources and job characteristics. It monitors worker availability, job progress, and resource utilization to make real-time decisions about merging or separating jobs, allowing the system to adapt to varying workloads and resource conditions rather than following a fixed execution plan.

Inventive Principle:
Principle #15Dynamics

2Ease of manufacture

If compile-time optimization is used to simplify execution planning, then execution plan generation is simpler, but it cannot address task parallelism opportunities in convergence-based computations with unknown iteration counts

Engineering Contradiction:
Improveexecution plan generation simplicityVSAvoidhandling of unknown iteration counts
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The system performs preliminary analysis at compile-time to identify potential task parallelism opportunities and common inputs shared by multiple iterations, but defers the actual execution plan generation to runtime. This allows the system to prepare optimization strategies in advance while maintaining the flexibility to adapt to the actual number of iterations and control flow decisions that are only known during execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The runtime piggybacking system continuously monitors job execution progress, worker availability, and resource utilization, using this feedback to dynamically adjust the execution plan. It observes which iterations are completing, whether workers are available for piggybacking, and adjusts the merging/separation decisions accordingly, creating a closed-loop control system that adapts to actual runtime conditions.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10198291B2Runtime piggybacking of concurrent jobs in task-parallel machine learning programs
Publication Date: 2019.02.05 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10198291B2 patent drawing
  • US10198291B2 patent drawing
  • US10198291B2 patent drawing

AI summary

One embodiment provides a method for runtime piggybacking of concurrent data-parallel jobs in task-parallel machine learning (ML) programs including intercepting, by a processor, executable jobs including executable map reduce (MR) jobs and looped jobs in a job stream. The processor queues the executable jobs, and applies runtime piggybacking of multiple jobs by processing workers of different types. Runtime piggybacking for a ParFOR (parallel for) ML program is optimized including configuring the runtime piggybacking based on processing worker type, degree of parallelism and minimum time thresholds.