1. A data processing system having multiple executable threads for generating a cross-product matrix in a single pass through data to be analyzed, the system comprising: memory for receiving the data to be analyzed; one or more processors having a plurality of executable threads for generating thread specific binary trees describing characteristics of classification variables found in the data; instructions for executing on the data processing system for designating a unique portion of the memory to be read by a plurality of executable threads; instructions for execution by a plurality of the executable threads for generating a thread specific binary tree for a classification variable described by the data in the portion of the memory read by the thread; instructions for execution by the data processing system for combining the thread-specific trees for a classification variable into an overall tree for the classification variable; instructions for execution by the data processing system for generating partial sub-matrices of the cross-product matrix using the overall tree for the classification variable, wherein the sub-matrices are to be stored in non-contiguous memory space; and instructions for execution by the data processing system for generating the cross-product matrix by storing and ordering the elements of the non-contiguously stored sub-matrices in contiguous memory space.