Parallel Maximum Subset Sum Calculation via SIMD Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for calculating the maximum subset sum of an array, such as the Kadane and Smith methods, are not suitable for parallel processing, limiting their efficiency and preventing reduction in processing time, especially when dealing with streaming data.
Innovation Solution
An information processing device and method that utilize parallel processing to efficiently calculate the maximum subset sum of an array by employing a processor with SIMD operations, dividing the array into sub-blocks, and using bit operations to calculate and combine sub-block values, reducing computational complexity to O(n/α log α.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If the Kadane method is used to calculate maximum subset sum, then the algorithm is simple to implement, but processing time cannot be reduced by parallel processing
Solution Approach 1:
The array is divided into multiple sub-arrays, and the maximum subset sum is calculated for each sub-array independently in parallel. This segmentation allows simultaneous processing of different portions of the data, achieving speedup while maintaining algorithmic simplicity through modular structure.
Solution Approach 2:
The results from parallel processing of sub-arrays are merged by combining adjacent sub-arrays and calculating the maximum subset sum across the merged region. This merging process is repeated hierarchically until the final maximum subset sum for the entire array is obtained, enabling parallel execution while preserving correctness.
2Productivity
If the Smith method is used to calculate maximum subset sum, then parallel processing is theoretically possible, but specific and practical implementation by general-purpose hardware is not discussed
Solution Approach 1:
The array is divided into blocks of manageable size, with each block processed independently to compute local maximum subset sums. This segmentation transforms the theoretical parallel approach into practical units that general-purpose hardware can handle efficiently.
Solution Approach 2:
The processing is organized in a hierarchical structure where small blocks are merged into larger blocks, which are then merged into even larger blocks in successive stages. This nested approach allows parallel processing at each level while managing complexity through progressive aggregation of results.
3Ease of operation
If traditional sequential methods are used for streaming data, then processing is straightforward, but processing time increases and real-time analysis becomes difficult
Solution Approach 1:
The streaming data is processed in fixed-size blocks that can be handled in parallel. Each block is independently processed to compute its maximum subset sum, allowing simultaneous computation across multiple blocks while maintaining simplicity through uniform block processing.
Solution Approach 2:
Blocks of streaming data are pre-processed and stored in memory buffers before final aggregation. This preliminary parallel processing of individual blocks reduces the overall processing time when the complete dataset is available, enabling real-time analysis capabilities.
Data Source
Figure 1~2
Figure 3
Figure 4~5
AI summary
A maximum subset sum of an array is quickly acquired with parallel processing by a program. Provided is an information processing device configured to: acquire blocks, each of the blocks containing a series of a predetermined number of elements and being a part of an array; generate a total sum block, a maximum block, a first maximum block, and a last maximum block for a plurality of sub-blocks obtained by dividing each of the blocks; iteratively execute processing of calculating, for a new sub-block obtained by combining the plurality of sub-blocks, a new total sum block, a new maximum block, a new first maximum block, and anewlast maximum block with predetermined processor instructions for operating, in bulk, values of a plurality of sub-blocks stored in a register; determine, after the processing is executed a predetermined number of times, a total sum of element values, a maximum value of subset sums, a maximum value of subset sums summed from a first element, and a maximum value of subset sums summed to a last element for each of the blocks; and calculate the maximum value of subset sums in the array based on the determined values.