Bootstrap technique in cluster analysis
Pattern Recognition
Algorithms for clustering data
Algorithms for clustering data
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
Using MPI (2nd ed.): portable parallel programming with the message-passing interface
Using MPI (2nd ed.): portable parallel programming with the message-passing interface
Concurrency Control in Distributed Database Systems
ACM Computing Surveys (CSUR)
The Haskell: The Craft of Functional Programming
The Haskell: The Craft of Functional Programming
Concurrent Programming in Java. Second Edition: Design Principles and Patterns
Concurrent Programming in Java. Second Edition: Design Principles and Patterns
Stability-based validation of clustering solutions
Neural Computation
Queue - Computer Architecture
Groovy in Action
Using OpenMP: Portable Shared Memory Parallel Programming (Scientific and Engineering Computation)
Using OpenMP: Portable Shared Memory Parallel Programming (Scientific and Engineering Computation)
Programming Clojure
Stability of k-means clustering
COLT'07 Proceedings of the 20th annual conference on Learning theory
A sober look at clustering stability
COLT'06 Proceedings of the 19th annual conference on Learning Theory
Hi-index | 0.00 |
In recent years, the demand for computational power in data mining applications has increased due to rapidly growing data sets. As a consequence, standard algorithms need to be parallelized for fast processing of the generated data sets. Unfortunately, most approaches for parallelizing algorithms require a careful software design and a deep knowledge about thread-safe programming. As a consequence they are hardly applicable for rapid prototyping of new algorithms. We outline the process of multi-core parallelization using Clojure, a new functional programming language utilizing the Java Virtual Machine (JVM) that does not require knowledge of thread-safe programming. We provide some benchmark results for our multi-core algorithm to demonstrate its computational power. The rationale behind Clojure is combining the industry-standard JVM with functional programming, immutable data structures, and a built-in concurrency support via software transactional memory. This makes it a suitable tool for parallelization and rapid prototyping in many areas. In this case study we present a multi-core parallel implementation of the k-means cluster algorithm. The multi-core algorithm shows an increase in computation speed up to a factor of 10 compared to R or network based parallelization.