Patent Document ID: 9798755
Application ID: 14620892
Patent Status: 1

Claim One:
1. A computer-implemented method, comprising: using multiple threads to generate a cross-product matrix in a single pass through data, wherein the data is associated with at least one classification variable, wherein the cross-product matrix is stored in contiguous memory, and wherein generating the cross-product matrix includes: receiving the data, wherein receiving includes storing the data in memory; associating each of the multiple threads with a unique portion of the memory in which the data is stored; generating multiple binary trees with respect to each of the at least one classification variable, wherein each of the binary trees is generated by a different one of the multiple threads, and wherein each binary tree is associated with observations in the portion of memory associated with the thread which generated that binary tree; forming a combined tree for each of the at least one classification variable, wherein forming the combined tree includes combining the multiple binary trees generated with respect to the classification variable; generating partial sub-matrices of the cross-product matrix using the combined trees, wherein generating includes storing the sub-matrices in non-contiguous memory to facilitate growing the sub-matrices in the single pass, and wherein generating the partial submatrices includes dynamically growing the sub-matrices according to the combined trees; and ordering elements of the sub-matrices in the contiguous memory; and generating a model using the cross-product matrix.