A computer system including instructions recorded on a computer-readable medium, the system comprising: a cluster selector configured to determine a plurality of sample clusters, and to reproduce the plurality of sample clusters at each of a plurality of processing cores (108, 110, 112); a sample divider configured to divide a plurality of samples stored in a database into a number of sample subsets (114, 116, 118) corresponding to a number of the plurality of processing cores (108, 110, 112), and further configured to associate each of the number of sample subsets (114, 116, 118) with a correspond-ing one of the plurality of processing cores (108, 110, 112), wherein each of the plurality of samples is associated with attributes of the samples, wherein the attributes are defined for use in a similarity comparison with each of the clusters; a joint operator configured to perform the similarity comparison of each sample of each sample subset (114, 116, 118) at each corresponding core of the plurality of processing cores (108, 110, 112) with respect to each of the plurality of sample clusters reproduced at the corresponding processing core, wherein the similarity comparison is performed at each of the plurality of processing cores (108, 110, 112) between each sample of each sample subset (114, 116, 118) and a center of each cluster, wherein the center of each cluster is determined using an average attribute value of the attributes of the samples included in each cluster; an attribute divider configured to divide the attributes associated with each of the samples into attribute subsets (226, 228) for parallel processing thereof during the performing of the similarity comparison; a sample assigner configured to associate each of the samples with a given one of the clusters based on results of the similarity comparison; and a center selector configured to analyze the thus-formed clusters and included samples, to thereby determine a new or updated center associated with each cluster. a cluster selector configured to determine a plurality of sample clusters, and to reproduce the plurality of sample clusters at each of a plurality of processing cores (108, 110, 112); a sample divider configured to divide a plurality of samples stored in a database into a number of sample subsets (114, 116, 118) corresponding to a number of the plurality of processing cores (108, 110, 112), and further configured to associate each of the number of sample subsets (114, 116, 118) with a correspond-ing one of the plurality of processing cores (108, 110, 112), wherein each of the plurality of samples is associated with attributes of the samples, wherein the attributes are defined for use in a similarity comparison with each of the clusters; a joint operator configured to perform the similarity comparison of each sample of each sample subset (114, 116, 118) at each corresponding core of the plurality of processing cores (108, 110, 112) with respect to each of the plurality of sample clusters reproduced at the corresponding processing core, wherein the similarity comparison is performed at each of the plurality of processing cores (108, 110, 112) between each sample of each sample subset (114, 116, 118) and a center of each cluster, wherein the center of each cluster is determined using an average attribute value of the attributes of the samples included in each cluster; an attribute divider configured to divide the attributes associated with each of the samples into attribute subsets (226, 228) for parallel processing thereof during the performing of the similarity comparison; a sample assigner configured to associate each of the samples with a given one of the clusters based on results of the similarity comparison; and a center selector configured to analyze the thus-formed clusters and included samples, to thereby determine a new or updated center associated with each cluster.