Runtime Piggybacking for Task-Parallel ML Jobs
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Productivity
If runtime piggybacking is implemented to improve cluster utilization, then cluster utilization and processing efficiency improve, but system complexity increases
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.
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.
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
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.
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.
Data Source
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.


