Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Machine Learning
  3. somoclu

somoclu

MITC1.7.6

A massively parallel library for training self-organizing maps on multicore CPUs, GPUs, and clusters with support for dense and sparse data.

Visit WebsiteGitHubGitHub
279 stars74 forks0 contributors

What is somoclu?

Somoclu is a massively parallel library for training self-organizing maps (SOMs), which are unsupervised neural networks used for clustering, visualization, and dimensionality reduction of high-dimensional data. It solves the problem of slow SOM training by parallelizing computations across multicore CPUs, GPUs, and distributed clusters, supporting both dense and sparse data formats.

Target Audience

Data scientists, researchers, and machine learning practitioners working with large datasets who need efficient SOM training for tasks like exploratory data analysis, feature reduction, or pattern discovery in text mining and other domains.

Value Proposition

Developers choose Somoclu for its exceptional speed and scalability, leveraging OpenMP, CUDA, and MPI to handle large maps and datasets that would be infeasible with sequential implementations. Its multi-language interfaces and support for sparse data make it versatile for various research and production workflows.

Overview

Massively parallel self-organizing maps: accelerate training on multicore CPUs, GPUs, and clusters

Use Cases

Best For

  • Training large self-organizing maps with hundreds of thousands of neurons
  • Accelerating SOM computations using GPU hardware
  • Distributed SOM training across compute clusters with MPI
  • Processing high-dimensional sparse data from text mining applications
  • Integrating SOMs into Python, R, Julia, or MATLAB data science pipelines
  • Visualizing complex datasets with compatible tools like Databionic ESOM

Not Ideal For

  • Projects requiring built-in visualization without external tool dependencies
  • Small datasets where parallelization overhead outweighs performance gains
  • Environments without CUDA GPUs or MPI clusters for acceleration
  • Applications needing identical, deterministic results from CPU and GPU executions

Pros & Cons

Pros

Massively Parallel Execution

Exploits OpenMP for multicore CPUs, CUDA for GPU acceleration, and MPI for cluster computing, drastically reducing training time for large-scale datasets as highlighted in the parallelization features.

Multi-Platform and Language Support

Runs on Linux, macOS, and Windows with interfaces for Python, R, Julia, and MATLAB, enabling easy integration into diverse data science workflows as per the README's interface list.

Sparse Data Optimization

Includes a specialized sparse kernel for text mining and high-dimensional sparse vectors, handling efficient training where data is mostly zeros, a key feature mentioned for vector spaces.

Scalable to Large Maps

Capable of training maps with hundreds of thousands of neurons, supporting detailed representations of complex datasets as noted in the large-scale maps feature.

Cons

Kernel Result Inconsistency

GPU and CPU kernels can produce different maps due to single-precision floats and non-sequential reduction in GPU, acknowledged in the README as a known issue that requires awareness.

Limited Interface Features

MPI and sparse kernel support are not available through the Python, R, Julia, and MATLAB interfaces, restricting advanced parallel and sparse data use to command-line only.

Complex GPU Installation

On macOS, GPU support requires specific compilers or conda-forge; on Windows, missing DLLs like vcomp90.dll can cause errors, adding setup hurdles as detailed in the installation notes.

Frequently Asked Questions

Quick Stats

Stars279
Forks74
Contributors0
Open Issues36
Last commit7 months ago
CreatedSince 2013

Tags

#self-organizing-maps#cuda#parallel-computing#mpi#sparse-data#dimensionality-reduction#gpu-acceleration#openmp#data-visualization#machine-learning

Built With

M
MPI
C
CUDA
O
OpenMP
J
Julia
R
R
P
Python
M
MATLAB
C
C++

Links & Resources

Website

Included in

Machine Learning72.2k
Auto-fetched 18 hours ago

Related Projects

Apache SupersetApache Superset

Apache Superset is a Data Visualization and Data Exploration Platform

Stars73,948
Forks17,933
Last commit18 hours ago
PlotlyPlotly

Data Apps & Dashboards for Python. No JavaScript Required.

Stars24,342
Forks2,308
Last commit1 day ago
bokehbokeh

Interactive Data Visualization in the browser, from Python

Stars20,418
Forks4,262
Last commit22 hours ago
ziplinezipline

Zipline, a Pythonic Algorithmic Trading Library

Stars20,001
Forks5,016
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub