Shared-Memory Multiprocessor Parallel Sorting
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current technologies face challenges in efficiently sorting large-scale table data in shared-memory multiprocessor systems, particularly due to limitations in existing sorting algorithms like counting sort, and there is a lack of effective methods for parallel sorting in such environments.
Innovation Solution
The implementation of an information processing method that utilizes an information block-based data management mechanism, where field values are represented by sequence numbers, allowing for parallel processing across multiple processors to sort records efficiently, including integers, fixed-point numbers, and character strings, by dividing records, counting local occurrences, and rearranging them using global cumulative numbers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If counting sort is used for sorting large-scale table data, then sorting efficiency is improved, but the method is limited by requirements that objects must be integers with known upper and lower limits and not exceedingly large differences between them
Solution Approach 1:
The patent transforms field values of any data type into field value sequence numbers (integers starting from 0) that represent the order of the original values. This parameter transformation enables counting sort to handle any data type while maintaining the efficiency benefits, as the sequence numbers satisfy the integer requirements of counting sort regardless of the original data type's characteristics
Solution Approach 2:
The patent introduces field value sequence numbers as an intermediary representation between the original field values and the sorting process. These sequence numbers serve as mediators that convert arbitrary data types into a format suitable for counting sort, eliminating the need to directly sort the original values while preserving their ordinal relationships
2Speed
If parallel processing is introduced to process large-scale data at high speed, then processing speed is improved, but the complexity of the system increases
Solution Approach 1:
The patent divides the table data into multiple sections and assigns each section to a different processor. Each processor independently sorts its assigned section using counting sort, then the sorted sections are combined. This segmentation enables parallel processing while keeping each processor's task manageable and the overall system architecture relatively simple
Solution Approach 2:
The patent introduces a new dimension to the sorting process by using field value sequence numbers instead of directly sorting the original field values. This dimensional transformation enables parallel processing to proceed independently on different data segments while maintaining correct ordinal relationships, thus achieving high-speed processing without excessive complexity
3Reliability
If shared-memory multiprocessor system is used, then processor-to-processor communication efficiency is improved, but traffic between processors and shared memory becomes a bottleneck
Solution Approach 1:
The patent segments the data into portions that can be processed independently by different processors. Each processor works on its assigned data segment without requiring constant communication with the shared memory or other processors, reducing the traffic bottleneck while maintaining efficient communication when needed for coordination
Solution Approach 2:
The patent performs preliminary sorting of data segments by individual processors before final consolidation. This preliminary action reduces the amount of data that needs to be communicated and processed together in subsequent stages, thereby reducing the impact of memory traffic bottlenecks on overall system throughput
Data Source
AI summary
Large-scale table data stored in a shared memory are sorted by a plurality of processors in parallel. According to the present invention, the records subjected to processing are first divided for allocation to the plurality of processors. Then, each processor counts the numbers of local occurrences of the field value sequence numbers associated with the records to be processed. The numbers of local occurrences of the field value sequence numbers counted by each processor is then converted into global cumulative numbers, i.e., the cumulative numbers used in common by the plurality of processors. Finally, each processor utilizes the global cumulative numbers as pointers to rearrange the order of the allocated records.


