Patent classifications
G06F7/36
SIMD instruction sorting pre-sorted source register's data elements into a first ascending order destination register and a second descending destination register
A computer-implemented method is provided for performing bitonic merge operations. The computer-implemented includes receiving a plurality of first values in a first hardware register from a first input stream in ascending order, receiving a plurality of second values in a second hardware register from a second input stream in descending order, performing a bitonic merge operation on the first and second values in the first and second hardware registers, and reversing comparison operations performed by one or more comparators in the bitonic merge operation, outputs of the one or more comparators being loaded into the second hardware register so that output values of the second hardware register are arranged in descending order and placed into an output stream.
Combined sort and aggregation
Innovative techniques are disclosed for performing a combined sort and aggregation operation involving eagerly performing aggregation while sorting. The techniques described herein enable an aggregation and a group-by operation to be performed using an amount of system memory that is far less than the system memory required to store all the data records being processed while minimizing the need to spill data to disk. This combined sort and aggregation operation has better performance than conventional techniques since system memory is used more efficiently. In certain embodiments, a combined sort and aggregation operation is disclosed that enables the efficient sorting and aggregation of data records when the desired aggregation function is composable (such as SUM, COUNT, MIN and MAX aggregate operations).
Combined sort and aggregation
Innovative techniques are disclosed for performing a combined sort and aggregation operation involving eagerly performing aggregation while sorting. The techniques described herein enable an aggregation and a group-by operation to be performed using an amount of system memory that is far less than the system memory required to store all the data records being processed while minimizing the need to spill data to disk. This combined sort and aggregation operation has better performance than conventional techniques since system memory is used more efficiently. In certain embodiments, a combined sort and aggregation operation is disclosed that enables the efficient sorting and aggregation of data records when the desired aggregation function is composable (such as SUM, COUNT, MIN and MAX aggregate operations).
Identifying an appropriate contact across collaborative applications
A computer-implemented method, system and computer program product for identifying an appropriate contact across collaborative applications. Contact information is collected from monitored messages, communication lists and contact lists in each collaborative application. Contact records are generated based on the collected contact information, where such records are inserted into a contact list. After receiving a query from a user containing a keyword(s) that include a nickname (or portion thereof) of a second user whom the user desires to interact via the current collaborative application, a search is performed in the contact list for any record containing a nickname that is similar to the provided keyword(s). Record(s) in the contact list containing a nickname that exceeds a threshold degree of similarity as the keyword(s) are identified. Such identified records may contain a user identifier which is used to identify the appropriate nickname of the second user associated with the current collaborative application.
Sorting device
Disclosed is a sorting device configured to sort N numbers with N rounds of sorting processes from a first round sorting process to an N.sup.th round sorting process and obtain N-rounds sort results from a first-round sort result to an N.sup.th-round sort result, wherein at least two pairs of numbers of the N numbers are sorted in each of the N rounds of sorting processes concurrently, a K.sup.th-round sort result is dependent on a (K−1).sup.th-round sort result, the N.sup.th-round sort result is the N numbers in a descending/ascending order, and the N is an integer greater than two. The sorting device includes sorting circuits and duplicating circuits that are selectively used for each of the N rounds of sorting processes. Each sorting circuit is configured to sort two numbers and obtain the collating sequence of the two numbers. Each duplicating circuit is configured to output a number it received.
Sorting device
Disclosed is a sorting device configured to sort N numbers with N rounds of sorting processes from a first round sorting process to an N.sup.th round sorting process and obtain N-rounds sort results from a first-round sort result to an N.sup.th-round sort result, wherein at least two pairs of numbers of the N numbers are sorted in each of the N rounds of sorting processes concurrently, a K.sup.th-round sort result is dependent on a (K−1).sup.th-round sort result, the N.sup.th-round sort result is the N numbers in a descending/ascending order, and the N is an integer greater than two. The sorting device includes sorting circuits and duplicating circuits that are selectively used for each of the N rounds of sorting processes. Each sorting circuit is configured to sort two numbers and obtain the collating sequence of the two numbers. Each duplicating circuit is configured to output a number it received.
SORTING FOR DATA-PARALLEL COMPUTING DEVICES
Aspects of the disclosure relate to determining relevant content in response to a request for information. One or more computing devices 170 may load data elements into registers 385A-385B, wherein each register is associated with at least one parallel processor in a group of parallel processors 380A-380B. For each of the parallel processors, the data elements loaded in its associated registers may be sorted, in parallel, in descending order. The sorted data elements, for each of the parallel processors, may be merged with the sorted data elements of other processors in the group. The merged and sorted data elements may be transposed and stored.
SORTING FOR DATA-PARALLEL COMPUTING DEVICES
Aspects of the disclosure relate to determining relevant content in response to a request for information. One or more computing devices 170 may load data elements into registers 385A-385B, wherein each register is associated with at least one parallel processor in a group of parallel processors 380A-380B. For each of the parallel processors, the data elements loaded in its associated registers may be sorted, in parallel, in descending order. The sorted data elements, for each of the parallel processors, may be merged with the sorted data elements of other processors in the group. The merged and sorted data elements may be transposed and stored.
File validation using a blockchain
Disclosed are various embodiments for validating documents using a blockchain data. Multiple documents can be included in the validation process using a merge and hash process and a summary terms document. Validation can be performed by hashing and merging operations, followed by comparing hash values.
File validation using a blockchain
Disclosed are various embodiments for validating documents using a blockchain data. Multiple documents can be included in the validation process using a merge and hash process and a summary terms document. Validation can be performed by hashing and merging operations, followed by comparing hash values.