GROUPING MECHANISM FOR MULTIPLE PROCESSOR CORE EXECUTION
First Claim
1. A method of grouping a sequence of elements, comprising:
- receiving multiple partitions of a sequence of elements, wherein the available cores of a multiple core processor each receive a separate partition of the multiple partitions for processing;
concurrently grouping each separate partition into a key table of at least one value lists of elements, wherein the elements in each value list include a common key; and
merging each of the key tables together to form a final key table such that all keys and their corresponding value lists are included in the final key table.
2 Assignments
0 Petitions
Accused Products
Abstract
A concurrent grouping operation for execution on a multiple core processor is provided. The grouping operation is provided with a sequence or set of elements. In one phase, each worker receives a partition of a sequence of elements to be grouped. The elements of each partition are arranged into a data structure, which includes one or more keys where each key corresponds to a value list of one or more of the received elements associated with that key. In another phase, the data structures created by each worker are merged so that the keys and corresponding elements for the entire sequence of elements exist in one data structure. Recursive merging can be completed in a constant time, which is not proportional to the length of the sequence.
31 Citations
20 Claims
-
1. A method of grouping a sequence of elements, comprising:
-
receiving multiple partitions of a sequence of elements, wherein the available cores of a multiple core processor each receive a separate partition of the multiple partitions for processing; concurrently grouping each separate partition into a key table of at least one value lists of elements, wherein the elements in each value list include a common key; and merging each of the key tables together to form a final key table such that all keys and their corresponding value lists are included in the final key table. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer readable storage medium storing computer executable instructions for controlling a computing device to perform a method comprising:
-
receiving multiple partitions of a sequence of elements, wherein the multiple partitions correspond with a number of available cores in the multiple core processor, wherein each core receives a separate partition for processing and wherein each element includes a corresponding key; concurrently grouping each separate partition into a corresponding data structure having at least one key, wherein each key in the data structure corresponds with a value list of elements having that key; and repeatedly merging data structures together to form a corresponding merged data structure until all keys and their corresponding value lists from each of the data structures are included in the complete data structure. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer readable storage medium storing a grouping operation including computer executable instructions for controlling a computing device having a multiple core processor including a plurality of cores configured to execute a concurrent application, the grouping operation configured to perform a method comprising:
-
receiving multiple partitions of a sequence of elements, wherein the multiple partitions correspond with a number of available cores in the multiple core processor, assigning each of the multiple partitions to a corresponding available core for processing such that each available core processes a separate partition of the multiple partitions; determining a key for each element in each separate partition; arranging the elements in each of the separate partitions into a corresponding key table through concurrent processing, wherein each key table includes at least one key corresponding with a value list having that key; concurrently combining at least two subgroups of the key tables together to form corresponding partial key tables, wherein the combining includes, adding keys and corresponding value lists into the data structure if the key is present in only one of the key tables in the subgroup; and concatenating value lists of keys present in more than one key table of the subgroup; and recursively and concurrently combining the partial key tables together to form a complete key table including all of the elements in the sequence of elements grouped together by common keys. - View Dependent Claims (20)
-
Specification