Parallel Data Processing Optimization via Dynamic Subset Sizing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Developing optimized programming code for parallel data processing on hardware platforms with multiple processing units is challenging due to variations in execution time based on hardware architecture, memory access speeds, and data transfer efficiencies.
Innovation Solution
A method that determines the maximum number of tasks executable in parallel, optimizes data subset sizes, and generates new processing spaces by selecting integer multiples for improved execution performance, using criteria such as execution time, to achieve efficient task distribution and data processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data subsets are divided into smaller units for parallel processing, then processing parallelism is improved, but execution time increases due to overhead and suboptimal memory access patterns
Solution Approach 1:
The patent changes the parameter of data subset size from fixed small units to variable sizes that are multiples of optimal block sizes (2, 4, or 8 elements). This allows the system to maintain parallelism while using larger, more efficient data blocks that reduce overhead and improve memory access patterns, thereby reducing execution time.
Solution Approach 2:
The patent introduces dynamic adjustment of data subset sizes based on hardware platform characteristics and performance metrics. The system dynamically selects optimal subset sizes from a set of multiples during compilation or runtime, adapting to different hardware configurations to achieve both high parallelism and efficient execution.
2Loss of time
If data subset sizes are increased to reduce overhead, then execution efficiency is improved, but the ability to utilize all processing units in parallel is reduced
Solution Approach 1:
The patent segments the total data set into multiple subsets, where each subset size is a multiple of optimal block sizes (2, 4, or 8 elements). This segmentation strategy ensures that data is divided into manageable chunks that are large enough to be processed efficiently by each processing unit while still allowing sufficient numbers of subsets to utilize all available processing units in parallel.
3Loss of time
If programming code is manually optimized for specific hardware architectures, then execution performance is improved, but development complexity and time increase
Solution Approach 1:
The patent implements a self-service optimization system where the compilation process automatically determines optimal data subset sizes based on the target hardware platform characteristics. The compiler or build system performs benchmarking and analysis to select the best configuration without requiring manual intervention from developers, thereby maintaining high execution performance while reducing programming complexity.
Solution Approach 2:
The patent performs optimization analysis and determination of optimal data subset sizes during the compilation or build phase, before the actual execution. This preliminary action allows the system to pre-calculate and embed the optimal configuration for the specific hardware platform, eliminating the need for runtime adjustments or manual optimization efforts during development.
Data Source
Figure 1~2
Figure 3~4
Figure 5
AI summary
The invention relates to a method for optimising the parallel processing of data on a hardware platform, said hardware platform comprising at least one computing unit including a plurality of processing units that can execute a plurality of executable tasks in parallel, the data to be processed forming a data set that can be broken down into data subsets, with the same series of operations being performed on each data subset.