IP Library Granted Patent US 7,343,363
Granted Patent B1
US 7,343,363 · App. 10/952,632 · Granted Mar 11, 2008

Methods and apparatus for grouping elements of element pairs into element sets

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,343,363
App. No.
10/952,632
Granted
Mar 11, 2008
Kind
B1
Abstract

Methods and apparatus for grouping elements of element pairs into element sets are disclosed. A master processor transmits number pairs corresponding to the element pairs to worker processors, selectively assigns processing of one or more of the number pairs to the worker processors, receives developed sets of numbers from the worker processors, and processes the developed sets of numbers to generate the element sets. Worker processors process the assigned number pairs using a row hash table and a column hash table created from the number pairs corresponding to the element pairs to develop the sets of numbers.

Claims (84)

1. A method for grouping elements of element pairs into element sets comprising the steps of:

transmitting number pairs corresponding to the element pairs to a plurality of worker processors;

selectively assigning processing of one or more of the number pairs within the transmitted number pairs to the plurality of worker processors responsive to ready to process indicators received from the plurality of worker processors, wherein each worker processor processes each number pair assigned for processing by that worker processor to develop a corresponding set of numbers from the transmitted number pairs;

receiving the developed sets of numbers from the plurality of worker processors;

processing the developed sets of numbers to generate the element sets; and

outputting the generated element sets to a memory.

2. The method of claim 1 , further comprising the steps of:

selecting a hash base; and

transmitting the hash base to the plurality of worker processors;

wherein the plurality of worker processors process the transmitted number pairs using the hash base to create a row hash table and a column hash table for use in developing the sets of numbers.

3. The method of claim 1 , further comprising the steps of:

calculating a grouping count for assigning number pairs to the plurality of worker processors; and

transmitting the grouping count to the plurality of worker processors, wherein the number pairs are assigned and processed in groups based on the grouping count.

4. The method of claim 1 , further comprising the step of maintaining a status for each number pair, the status of each number pair indicating an unprocessed status, an in progress status, or a processed status and wherein the selectively assigning step comprises:

selectively assigning, to one or more of the plurality of worker processors, processing of one or more number pairs within the transmitted number pairs having an unprocessed status; and

selectively assigning, to one or more of the plurality of worker processors, processing of one or more number pairs within the transmitted number pairs having an in progress status if there are no number pairs with an unprocessed status.

5. The method of claim 1 , further comprising the steps of:

assigning numbers to the elements of the element pairs; and

converting the elements within the element pairs with the assigned numbers to develop the number pairs.

6. The method of claim 1 , wherein the numbers of the number pairs correspond to elements and wherein the method further comprise the steps of:

sorting the developed sets of numbers;

comparing the developed sets of numbers to identify duplicate sets and subsets;

discarding duplicate sets and subsets; and

converting the numbers within the sets of numbers that are not discarded with the corresponding element to develop the element sets.

7. The method of claim 1 , wherein the assigning step is performed using threads such that multiple assignments for processing occur concurrently.

8. The method of claim 1 , wherein one or more of the worker processors are located in remote processing systems connected by at least one of (i) a global information network or (ii) and intranet and wherein the method further comprises the step of:

establishing communication with the one or more worker processors located in the remote processing systems.

9. A method for developing sets of numbers from numbers within a plurality of number pairs, the method comprising the steps of:

receiving a plurality of number pairs from a master processor;

creating a row hash table and a column hash table from the plurality of number pairs;

sending a ready to process indicator to the master processor after creating the row hash table and the column hash table;

processing a number pair within the plurality of number pairs using the row hash table and the column hash table to develop a corresponding set of numbers; and

storing the developed corresponding set of numbers to a memory.

10. The method of claim 9 , further comprising the steps of:

receiving a hash base, for creating the row hash table and the column hash table from a master processor.

11. The method of claim 9 , further comprising the step of:

receiving a reference number associated with the number pair from a master processor, wherein the processing step is performed responsive to receipt of the reference number.

12. The method of claim 11 , further comprising the step of:

receiving a grouping count from the master processor, wherein the processing step is performed for the number pair associated with the received reference number and for additional number pairs based on the grouping count.

13. The method of claim 9 , wherein the number pairs each include a first number and a second number and wherein the processing step comprises the steps of:

adding the first and second numbers of the number pair associated with the reference number pair to a proposed set;

processing number pairs in the row hash table having first numbers equal to the first number of the number pair associated with the reference number and adding the second number of the processed number pairs to the proposed set if each number in the proposed set combined with the second number is one of the number pairs; and

processing number pairs in the column hash table having second numbers equal to the second number of the number pair associated with the reference number and adding the first number of the processed number pairs to the proposed set if each number in the proposed set combined with the first number is one of the number pairs.

14. The method of claim 9 , wherein the number pairs each include a first number and a second number and wherein the step of creating the row hash table and the column hash table comprises the steps:

receiving a hash base from a master processor;

assigning each number pair to hash rows of the row hash table based on the first number of each number pair processed using the hash base; and

assigning each number pair to hash rows of the column hash table based on the second number of each number pair processed using the hash base.

15. A system for grouping elements of element pairs into element sets, the system comprising:

a plurality of worker processors, each worker processor configured to send a ready to process indicator and to process a number pair within the plurality of number pairs using a row hash table and a column hash table created from the plurality of number pairs to develop a corresponding set of numbers; and

a master processor configured to transmit the number pairs to the plurality of worker processors, receive the ready to process indicator from each worker processor, selectively assign processing of one or more of the number pairs within the transmitted number pairs to the plurality of worker processors responsive to receipt of the ready to process indicators, receive the developed sets of numbers from the plurality of worker processors, and process the developed sets of numbers to generate the element sets.

16. The system of claim 15 , wherein the master processor is further configured to select a hash base and to transmit the hash base to the plurality of worker processors and wherein each of the plurality of worker processors are configured to create the row hash table and the column hash table based on the received hash base.

17. The system of claim 16 , wherein each number pair includes a first number and a second number and wherein the worker processors create the row hash table by assigning each number pair to a row of the row hash table based on processing the first number of each number pair with the hash base and create the column hash table by assigning each number pair to a row of the column hash table based on processing the second number of each number pair with the hash base.

18. A tangible computer readable storage medium including software that is configured to control a computer to implement a method embodied in a computer readable medium for grouping elements of element pairs into element sets, the method including the steps of:

transmitting number pairs corresponding to the element pairs to a plurality of worker processors;

selectively assigning processing of one or more of the number pairs within the transmitted number pairs to the plurality of worker processors responsive to ready to process indicators received from the plurality of worker processors, wherein each worker processor processes each number pair assigned for processing by that worker processor to develop a corresponding set of numbers from the transmitted number pairs;

receiving the developed sets of numbers from the plurality of worker processors; processing the developed sets of numbers to generate the element sets; and

outputting the generated element sets to a memory.

19. The tangible computer readable storage medium of claim 18 , wherein the method implemented by the computer further includes the steps of:

calculating a grouping count for assigning number pairs to the plurality of worker processors; and

transmitting the grouping count to the plurality of worker processors, wherein the number pairs are assigned and processed in groups based on the grouping count.

20. The tangible computer readable storage medium of claim 18 , wherein the method implemented by the computer further includes the step of maintaining a status for each number pair, the status of each number pair indicating an unprocessed status, an in progress status, or a processed status and wherein the selectively assigning step for implementation by the computer comprises:

selectively assigning, to one or more of the plurality of worker processors, processing of one or more number pairs within the transmitted number pairs having an unprocessed status; and

selectively assigning, to one or more of the plurality of worker processors, processing of one or more number pairs within the transmitted number pairs having an in progress status if there are no number pairs with an unprocessed status.

21. The tangible computer readable storage medium of claim 18 , wherein the numbers of the number pairs correspond to elements and wherein the method implemented by the computer further includes the steps of:

sorting the developed sets of numbers;

comparing the developed sets of numbers to identify duplicate sets and subsets;

discarding duplicate sets and subsets; and

converting the numbers within the sets of numbers that are not discarded with the corresponding element to develop the element sets.

22. A tangible computer readable storage medium including software that is configured to control a computer to implement a method embodied in a computer readable medium for developing sets of numbers from numbers within a plurality of number pairs, the method including the steps of:

receiving a plurality of number pairs;

creating a row hash table and a column hash table from the plurality of number pairs;

sending a ready to process indicator to the master processor after creating the row hash table and the column hash table;

processing a number pair within the plurality of number pairs using the row hash table and the column hash table to develop a corresponding set of numbers; and

storing the developed corresponding set of numbers to a memory.

23. The tangible computer readable storage medium of claim 22 , wherein the method implemented by the computer further includes the steps of:

receiving a hash base for creating the row hash table and the column hash table from a master processor.

24. The tangible computer readable storage medium of claim 22 , wherein the number pairs each include a first number and a second number and wherein the processing step for implementation by the computer comprises the steps of:

adding the first and second numbers of the number pair associated with the reference number pair to a proposed set;

processing number pairs in the row hash table having first numbers equal to the first number of the number pair associated with the reference number and adding the second number of the processed number pairs to the proposed set if each number in the proposed set combined with the second number is one of the number pairs; and

processing number pairs in the column hash table having second numbers equal to the second number of the number pair associated with the reference number and adding the first number of the processed number pairs to the proposed set if each number in the proposed set combined with the first number is one of the number pairs.

25. The tangible computer readable storage medium of claim 22 , wherein the number pairs each include a first number and a second number and wherein the row hash table and column hash table creating step for implementation by the computer comprises the step of:

receiving a hash base from a master processor;

assigning each number pair to hash rows of the row hash table based on the first number of each number pair processed using the hash base; and

assigning each number pair to hash rows of the column hash table based on the second number of each number pair processed using the hash base.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 054231/0496 →
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION (SUCCESSOR TO GENERAL ELECTRIC CAPITAL CORPORATION)
To: UNISYS CORPORATION
Reel/Frame 044416/0358 →
SECURITY INTEREST Recorded Oct 6, 2017
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044144/0081 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →