A Scalable Parallel Algorithm for Self-Organizing Maps with Applications to Sparse Data Mining Problems