Litcius/Paper detail

Performance of Parallel K-Means Algorithms in Java

Libero Nigro

2022Algorithms16 citationsDOIOpen Access PDF

Abstract

K-means is a well-known clustering algorithm often used for its simplicity and potential efficiency. Its properties and limitations have been investigated by many works reported in the literature. K-means, though, suffers from computational problems when dealing with large datasets with many dimensions and great number of clusters. Therefore, many authors have proposed and experimented different techniques for the parallel execution of K-means. This paper describes a novel approach to parallel K-means which, today, is based on commodity multicore machines with shared memory. Two reference implementations in Java are developed and their performances are compared. The first one is structured according to a map/reduce schema that leverages the built-in multi-threaded concurrency automatically provided by Java to parallel streams. The second one, allocated on the available cores, exploits the parallel programming model of the Theatre actor system, which is control-based, totally lock-free, and purposely relies on threads as coarse-grain “programming-in-the-large” units. The experimental results confirm that some good execution performance can be achieved through the implicit and intuitive use of Java concurrency in parallel streams. However, better execution performance can be guaranteed by the modular Theatre implementation which proves more adequate for an exploitation of the computational resources.

Topics & Concepts

Computer scienceParallel computingJavaConcurrencyJava concurrencyMulti-core processorImplementationDistributed computingAlgorithmReal time JavaProgramming languageAdvanced Clustering Algorithms ResearchComplex Network Analysis TechniquesData Management and Algorithms