Hybrid Parallelization for MapReduce Machine Learning
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Productivity
If MapReduce is used for large-scale analytics, then scalability is achieved, but memory constraints limit efficiency with small datasets
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
3Productivity
If data is partitioned without considering access patterns, then simple partitioning is achieved, but performance optimization is lost
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
Data Source
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.


