CPU- and GPU-based Distributed Sampling in Dirichlet Process Mixtures for Large-scale Analysis