Hybrid Parallelization for MapReduce Machine Learning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large-scale machine learning on MapReduce platforms faces inefficiencies due to lack of task parallelism support, leading to poor performance with small datasets and memory constraints, making it difficult to achieve scalability and efficiency across various workloads.

Innovation Solution

The implementation of a hybrid parallelization strategy using the ParFOR construct, which combines task and data parallelism, along with access-aware data partitioning and a memory- and time-based cost model, to optimize the execution of machine learning programs by automatically creating optimal parallel execution plans at runtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional MapReduce paradigm is used for machine learning, then data parallelism is supported, but task parallelism is not supported leading to poor performance

Engineering Contradiction:
Improveexecution efficiencyVSAvoidparallelism support
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments the parallel execution plan into multiple independent tasks that can be executed in parallel. Each task processes a subset of iterations, and the system dynamically determines the number of tasks and their allocation to map reduce operations, enabling both task and data parallelism simultaneously

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically determines the optimal number of tasks and their distribution based on runtime conditions. The parallel execution plan is generated at runtime rather than being static, allowing the system to adapt to different workload characteristics and optimize performance for various dataset sizes

Inventive Principle:
Principle #15Dynamics

2Productivity

If MapReduce is used for large-scale analytics, then scalability is achieved, but memory constraints limit efficiency with small datasets

Engineering Contradiction:
Improveexecution efficiencyVSAvoidmemory usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system changes the execution parameters dynamically based on dataset characteristics. For small datasets, it adjusts the number of map reduce operations and task allocations to minimize memory overhead, while for large datasets it scales up the parallel execution resources. The cost model evaluates different parameter configurations to optimize memory usage versus execution efficiency

Inventive Principle:
Principle #35Parameter changes

3Productivity

If data is partitioned without considering access patterns, then simple partitioning is achieved, but performance optimization is lost

Engineering Contradiction:
ImproveperformanceVSAvoidpartitioning complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system incorporates feedback from the determined access patterns to optimize data partitioning. The access pattern analysis provides information about how tasks will access the data, and this feedback is used to adjust the partitioning strategy to maximize performance while maintaining manageable complexity through automated decision-making

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10228922B2Hybrid parallelization strategies for machine learning programs on top of mapreduce
Publication Date: 2019.03.12 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10228922B2 patent drawing
  • US10228922B2 patent drawing
  • US10228922B2 patent drawing

AI summary

Parallel execution of machine learning programs is provided. Program code is received. The program code contains at least one parallel for statement having a plurality of iterations. A parallel execution plan is determined for the program code. According to the parallel execution plan, the plurality of iterations is partitioned into a plurality of tasks. Each task comprises at least one iteration. The iterations of each task are independent. Data required by the plurality of tasks is determined. An access pattern by the plurality of tasks of the data is determined. The data is partitioned based on the access pattern.