IP Library › Granted Patent US 11,200,056
Granted Patent B2
US 11,200,056 · App. 16/967,866 · Granted Dec 14, 2021

Parallel union control device, parallel union control method, and storage medium

Inventors: Harumichi Yokoyama (Tokyo, JP); Takuya Araki (Tokyo, JP); Haoran Li (Tokyo, JP)
Assignee: NEC CORPORATION
G06F9/30036G06F9/30014G06F9/30032G06F9/30043G06F9/30101G06F9/3885G06F17/16
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 11,200,056
App. No.
16/967,866
Granted
Dec 14, 2021
Kind
B2
Abstract

A parallel union control device includes: at least one memory storing a set of instructions; and at least one processor configured to execute the set of instructions to cause each of the plurality of arithmetic units included in an parallel computer including a vector register to: successively compare input elements of a pair of input sets to undergo union processing, the pair being stored in an input operand register in the vector register; select one of the input elements as an output element of an output set, based on a comparison result; and store the output element into an output operand register in the vector register; shift a pointer pointing to the input element; load the input sets into the input operand register from a memory; store the output sets into the memory from the output operand register; and determine whether union processing performed in parallel is ended.

Claims (167)

1. A parallel union control device, comprising:

at least one memory storing a set of instructions; and

at least one processor configured to execute the set of instructions to

cause a parallel computer including a plurality of arithmetic units and a vector register to:

perform union processing on pairs of input sets in parallel among the pairs, each of the input unit pairs being a sorted set; and

output output sets each being stored sets, wherein

the at least one processor is configured to execute the set of instructions to:

cause each of the plurality of arithmetic units to:

successively compare input elements of a pair of input sets to undergo union processing, the pair being stored in an input operand register in the vector register;

select one of the input elements as an output element of an output set, based on a comparison result; and

store the output element into an output operand register in the vector register;

shift a pointer pointing to the input element;

load the input sets into the input operand register from a memory;

store the output sets into the memory from the output operand register; and

determine whether union processing performed in parallel is ended.

2. The parallel union control device according to claim 1 , wherein

the sorted set is a set in which one or more elements are arranged in ascending order, and

the at least one processor is further configured to execute the set of instructions to:

perform:

causing an arithmetic unit of the plurality of the arithmetic units to select a smaller input element as the output element; and

incrementing a pointer pointing to the smaller input element

when the comparison result indicates inequality and perform:

causing the arithmetic unit to select the input element as the output element; and

incrementing pointers pointing to both input elements when the comparison result indicates equality.

3. The parallel union control device according to claim 1 , wherein, further comprising

the at least one processor is further configured to execute the set of instructions to:

divide the input set into a plurality of input subsets;

performing control in such a way as to output a plurality of output subsets in place of the output set from the plurality of arithmetic units by use of a pair of input subsets in place of the pair of input sets; and

acquire the output set by combining the plurality of output subsets.

4. The parallel union control device according to claim 3 , wherein

the at least one processor is further configured to execute the set of instructions to:

determine a number of divisions of the plurality of input subsets;

divide the input set into the plurality of input subsets, based on a determined number of divisions; and

combine the plurality of output subsets into the output set.

5. A multi-union-control device including the parallel union control device according to claim 1 , the multi-union-control device comprising:

at least one second memory storing a second set of instructions; and

at least one second processor configured to execute the second set of instructions to:

repeatedly cause the parallel computer to perform the union processing; and

cause the parallel computer to output a final output set including one sorted set, wherein

the at least one second processor to execute the second set of instructions to:

generate a pair of input sets being inputs to parallel union processing;

store a generated pair of input sets into the input operand register; and

determine whether entire union processing is completed.

6. A multi-union-control device including a first parallel union control device and a second parallel union control device each of which is the parallel union control device according to claim 1 , the multi-union-control device comprising:

at least one second memory storing a second set of instructions; and

at least one second processor configured to execute the second set of instructions to:

repeatedly cause the parallel computer to perform the union processing; and

cause the parallel computer to output a final output set including one sorted set, wherein

the at least one second processor to execute the second set of instructions to:

generate a pair of input sets being inputs to parallel union processing;

store a generated pair of input sets into the input operand register;

switch between the first parallel union control device and the second parallel union control device; and

determine whether entire union processing is completed, wherein

the at least one processor of the second parallel union control device is configured to execute the instructions to:

divide the input set into a plurality of input subsets;

perform control in such a way as to output a plurality of output subsets in place of the output set from the plurality of arithmetic units by use of a pair of input subsets in place of the pair of input sets; and

acquire the output set by combining the plurality of output subsets.

7. The multi-union-control device according to claim 6 , wherein

the at least one processor of the second parallel union control device is configured to execute the instructions to

determine a number of divisions of the plurality of input subsets;

divide the input set into the plurality of input subsets, based on a determined number of divisions; and

combine the plurality of output subsets into the output set.

8. A parallel union control method for, comprising:

causing a parallel computer including a plurality of arithmetic units and a vector register to:

perform union processing on pairs of input sets in parallel among the pairs, each of the input unit pairs being a sorted set; and

output output sets each being stored sets, wherein

the method includes:

causing each of the plurality of arithmetic units to:

successively compare input elements of a pair of input sets to undergo union processing, the pair being stored in an input operand register in the vector register;

select one of the input elements as an output element of an output set, based on a comparison result; and

store the output element into an output operand register in the vector register;

shifting a pointer pointing to the input element;

loading the input sets into the input operand register from a memory;

storing the output sets into the memory from the output operand register; and

determining whether union processing performed in parallel is ended.

9. The parallel union control method according to claim 8 , wherein

the sorted set is a set in which one or more elements are arranged in ascending order, and

the method includes:

performing:

causing an arithmetic unit of the plurality of the arithmetic units to select a smaller input element as the output element; and

incrementing a pointer pointing to the smaller input element when the comparison result indicates inequality; and

performing:

causing the arithmetic unit to select the input element as the output element, and

incrementing pointers pointing to both input elements when the comparison result indicates equality.

10. The parallel union control method according to claim 8 , further comprising:

dividing the input set into a plurality of input subsets; and

performing control in such a way that a plurality of output subsets are output in place of the output set from the the plurality of arithmetic units by use of a pair of input subsets in place of the pair of input sets; and

acquiring the output set by combining the plurality of output subsets.

11. The parallel union control method according to claim 10 , further comprising;

determining a number of divisions of the plurality of input subsets, wherein

the dividing the input set includes dividing the input set into the plurality of input subsets, based on a determined number of divisions, and the method further includes

combining the plurality of output subsets into the output set.

12. A multi-union-control method including the parallel union control method according to claim 8 , the multi-union-control method comprising:

repeatedly causing the parallel computer to perform the union processing; and

causing the parallel computer to output a final output set including one sorted set, wherein

the multi-union-control method further including:

generating a pair of input sets being inputs to parallel union processing;

storing a generated pair of input sets into the input operand register; and

determining whether entire union processing is completed.

13. A multi-union-control method including a first parallel union control method and a second parallel union control method each of which is the parallel union control method according to claim 8 , the multi-union-control method comprising:

repeatedly causing the parallel computer to perform the union processing; and

causing the parallel computer to output a final output set including one sorted set, wherein

the multi-union-control method further includes:

generating a pair of input sets being inputs to parallel union processing;

storing a generated pair of input sets into the input operand register;

switching between the first parallel union control method and the second parallel union control method; and

determining whether entire union processing is completed, wherein

the second parallel union control method further includes:

dividing the input set into a plurality of input subsets;

performing control in such a way that a plurality of output subsets are output in place of the output set from the plurality of arithmetic units by use of a pair of input subsets in place of the pair of input sets; and

acquiring the output set by combining the plurality of output subsets.

14. The multi-union-control method according to claim 13 , wherein

the second parallel union control method includes:

determining a number of divisions of the plurality of input subsets, and

dividing the input set into the plurality of input subsets, based on a determined number of divisions and

combining the plurality of output subsets into the output set.

15. A non-transitory computer readable storage medium storing a parallel union control program causing a controller computer to execute:

processing of causing a parallel computer including a plurality of arithmetic units and a vector register to:

perform union processing on pairs of input sets in parallel among the pairs, each of the input unit pairs being a sorted set; and

output output sets each being stored sets, wherein

the program further causing the controller computer to execute:

element comparison control processing of causing each of the plurality of arithmetic units to:

successively compare input elements of a pair of input sets to undergo union processing, the pair being stored in an input operand register in the vector register;

select one of the input elements as an output element of an output set, based on a comparison result; and

store the output element into an output operand register in the vector register;

processing of shifting a pointer pointing to the input element;

register input-output processing of loading the input sets into the input operand register from a memory;

processing of storing the output sets into the memory from the output operand register; and

end determination processing of determining whether union processing performed in parallel is ended.

16. The storage medium according to claim 15 , wherein

the sorted set is a set in which one or more elements are arranged in ascending order,

the element comparison control processing performs:

causing an arithmetic unit of the plurality of the arithmetic units to select a smaller input element as the output element; and

increment a pointer pointing to the smaller input element

when the comparison result indicates inequality, and

the element comparison control processing performs:

causing the arithmetic unit to select the input element as the output element; and

increment pointers pointing to both input elements

when the comparison result indicates equality.

17. The storage medium according to claim 15 , the program further causing the controller computer to execute

set division-combination processing that performs:

dividing the input set into a plurality of input subsets;

causing the element comparison control processing to perform control in such a way as to output a plurality of output subsets in place of the output set from the plurality of arithmetic units by use of a pair of input subsets in place of the pair of input sets; and

acquiring the output set by combining the plurality of output subsets.

18. The storage medium according to claim 17 , the program further causing the controller computer to execute

number-of-divisions determination processing of determining a number of divisions of the plurality of input subsets, wherein

the set division-combination processing performs:

dividing the input set into the plurality of input subsets, based on a determined number of divisions; and

combining the plurality of output subsets into the output set.

19. A non-transitory computer readable storage medium storing a multi-union-control program including the parallel union control program stored in the storage medium according to claim 15 , the multi-union-control program causing the controller computer to execute:

processing of repeatedly causing the parallel computer to perform the union processing; and

processing of causing the parallel computer to output a final output set including one sorted set, wherein

the multi-union-control program causes the computer to execute:

set pair generation processing of generating a pair of input sets being inputs to parallel union processing, and storing a generated pair of input sets into the input operand register; and

process completion determination processing of determining whether entire union processing is completed.

20. A non-transitory computer readable storage medium storing a multi-union-control program including a first parallel union control program and a second parallel union control program each of which is the parallel union control program stored in the storage medium according to claim 15 , the multi-union-control program causing the controller computer to execute:

processing of repeatedly causing the parallel computer to perform the union processing; and

processing of causing the parallel computer to output a final output set including one sorted set, wherein

the multi-union-control program causes the computer to execute:

set pair generation processing of generating a pair of input sets being inputs to parallel union processing, and storing a generated pair of input sets into the input operand register;

union control program switching processing of switching between the first parallel union control program and the second parallel union control program; and

process completion determination processing of determining whether entire union processing is completed, wherein

the second parallel union control program further causes the computer to execute

set division-combination processing that performs:

dividing the input set into a plurality of input subsets;

causing the element comparison control processing to perform control in such a way as to output a plurality of output subsets in place of the output set from the plurality of arithmetic units by use of a pair of input subsets in place of the pair of input sets; and

acquiring the output set by combining the plurality of output subsets.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2021
From: YOKOYAMA, HARUMICHI; ARAKI, TAKUYA
To: NEC CORPORATION
Reel/Frame 057792/0129 →
Priority Claims (1)
JP JP2018-020953 · Feb 8, 2018 · national
Continuity (1)
Related Publication 20210049012A1 · Feb 18, 2021