Pith. sign in

REVIEW 3 major objections 3 minor 32 references

PyClustrPath: An efficient Python package for generating clustering paths with GPU acceleration

T0 review · 3 major / 3 minor · reviewed 2026-08-10 · deepseek-v4-flash

Pith's one-line read PyClustrPath claims to be the first GPU-enabled Python package for convex clustering paths, with roughly 10x speedups on large datasets.

desk verdict A genuinely useful GPU package for convex clustering with plausible speedups, but the exact factors are softer than the abstract implies because CPU baselines are time-censored on the largest datasets. read the letter →

arxiv 2501.15964 v1 pith:Q6WSDTQI submitted 2025-01-27 math.OC

classification math.OC MSC 90C2562H30
keywords convexclusteringpathGPUaccelerationSSNALADMMfastAMAPythonpackageunsupervisedlearning
verification ladder T0 review T1 audit T2 compute T3 formal

The pith

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The reading

PyClustrPath is a new Python package that generates clustering paths by solving the convex clustering model (CCM), a strongly convex optimization problem whose solution path reveals clusters without knowing the number of clusters in advance. The paper's central claim is that porting the three standard algorithms—ADMM, fast AMA, and SSNAL—to GPU through PyTorch makes path generation roughly an order of magnitude faster on large datasets while keeping the same stopping criterion. For example, GPU-accelerated SSNAL solves the 100-problem MNIST path in 889.87 seconds, compared with 8928.26 seconds for its CPU counterpart. The package is modular, so new algorithms can be added without changing the solver core.

What carries the argument

The central object is the convex clustering model (CCM): minimize over cluster centers the squared error to the data points plus a weighted sum-of-norms fusion penalty, with γ controlling how strongly points are pulled together. Solving the model for a sequence of γ values produces the clustering path. The machinery that carries the argument is the trio of optimization algorithms, especially SSNAL, whose semismooth Newton iterations require sparse Cholesky factorizations and preconditioned conjugate gradient; PyClustrPath accelerates the dense operations with PyTorch tensors on GPU and uses the cholespy library for sparse Cholesky factorization.

What would settle it

Re-run all solvers on one machine with the paper's 100-value γ sequence and verify that each reported runtime reaches the paper's exact duality gap on the paper's primal-dual pair; the speedup claim fails if GPU SSNAL does not finish the MNIST path in under 15 minutes while solving all 100 problems, or if a CPU solver reaches the same gap in comparable wall-clock time.

Watch

Extended reading notes

Core claim

The paper establishes, on its own terms, that the linear algebraic operations dominating all three convex-clustering algorithms—matrix-vector products, matrix additions, and matrix factorizations—can be executed on a GPU with PyTorch while preserving convergence behavior. The headline empirical result is that SSNAL with GPU acceleration reaches the same relative duality gap tolerance, η ≤ 1e-6, about 10 times faster than the best CPU implementation on COIL-20, LUNG, and MNIST. PyClustrPath is presented as the first package for convex clustering to support GPU computation and the first to offer the SSNAL algorithm in Python.

Load-bearing premise

The load-bearing premise is that the relative duality gap η = |fp − fd| / (1 + |fp| + |fd|) ≤ 1e-6 is computed from the same primal-dual pair in every package, so equal η means equal solution accuracy and a faster runtime truly reflects a faster solver.

Editorial extensions

If this is right

  • Generating a full clustering path on MNIST's 10,000 samples drops from roughly 2.5 hours on CPU to about 15 minutes on a single GPU, making path-based analysis practical at that scale.
  • On LUNG, GPU SSNAL completes the 100-problem path in 67.34 seconds versus 660.14 seconds for CPU, a speedup of about 10x.
  • The same Python interface runs ADMM, fast AMA, and SSNAL on CPU or GPU, so comparing algorithms no longer requires switching between R and Matlab packages.
  • Because PyClustrPath is modular, a newly proposed convex-clustering solver can be dropped into the package and benchmarked against existing algorithms on identical problems without reimplementation.

Reading between the lines

Editorial extensions of the paper, not claims the author makes directly.

  • The same GPU-porting strategy should transfer to related fusion-penalty clustering models, such as sparse convex clustering or convex hierarchical clustering, since those models share the same dominant linear algebra.
  • The reported speedups are tied to the specific test hardware (an RTX 4090) and to the 1e-6 duality-gap tolerance; on GPUs with weaker double-precision throughput, or at looser tolerances, the gap between GPU and CPU may narrow.
  • The performance profiles in the paper suggest the GPU advantage grows with dataset size, so the largest benefits should appear in exactly the regimes where clustering paths are currently too slow to generate.
  • A fair re-test should confirm that every runtime listed in Table 3 ends with the same duality gap; if CPU runs are stopped at a looser gap, the speedup ratio would be overstated.
Share X Bluesky LinkedIn Reddit HN

Signed reviews

No signed human review yet.

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, and a circularity audit.

Referee Report

3 major / 3 minor

Summary. The paper introduces PyClustrPath, a Python package for solving the convex clustering model (CCM) and generating clustering paths over a sequence of regularization parameters γ. The package implements three algorithms—ADMM, fast AMA, and SSNAL—supports both CPU and GPU execution through PyTorch and a sparse Cholesky library, and provides a modular API and visualization tools. The numerical section benchmarks PyClustrPath against the existing R package cvxclustr and Matlab package ConvexClustering on five datasets (LIBRAS-6, LIBRAS, COIL-20, LUNG, MNIST), using 100 γ values per dataset and a relative duality gap tolerance of ε = 1e-6. The central claim is that GPU-accelerated SSNAL achieves roughly 10× speedups over CPU implementations, e.g., solving the MNIST path in 889.87 seconds versus 8928.26 seconds for the CPU version.

Significance. If the reported speedups are reliable, PyClustrPath is a useful contribution to the convex clustering toolbox: it appears to be the first package to provide GPU support for SSNAL and the other implemented algorithms, and its modular design should make it easy to extend. The paper also has strengths in transparency: the code is publicly available, the termination criterion is fixed across experiments as a relative duality gap, and performance profiles are included. However, the quantitative headline—'about 10× speedup'—rests on benchmark comparisons in which several CPU solver times are censored by the 10T time cap, so the exact speedup factors are not established by the reported experiments.

major comments (3)
  1. [§4, Table 3] The headline speedup figures are computed from a mixture of completed and time-censored runs. For COIL-20, ConvexClustering CPU SSNAL solves only 48 of the 100 problems in 469.28 seconds, while PyClustrPath GPU SSNAL solves all 100 in 46.78 seconds; for MNIST, the CPU SSNAL entry solves only 95 problems in 8928.26 seconds, while the GPU run completes the full path in 889.87 seconds. Statements in §4.1 such as 'about 10× speedup on both datasets' and 'more than 10× speedup' therefore compare a full-run time with a stopped-clock time, not a time-to-complete the same 100-problem path. To support the exact speedup factors, the CPU solvers must be run to completion on the same 100-problem path, or the censored entries must be extrapolated under an explicitly stated and validated model.
  2. [§4, Table 3] All wall-clock times in Table 3 are single runs with no repeated trials, variance measures, or confidence intervals. Since the comparisons are the main evidence for the package's efficiency, at least a small number of repeated runs with reported medians and spreads is needed to establish that the speedups and per-algorithm rankings are not artifacts of machine variability or measurement noise.
  3. [§4, termination criterion] The paper states that all algorithms are terminated by the relative duality gap η = |fp − fd|/(1 + |fp| + |fd|) ≤ ε, but it does not specify whether fp and fd are computed from the identical primal-dual pair for every solver, including the R, Matlab, and Python packages. If the dual constructions or the definitions of fp and fd differ across implementations, then equal η values do not correspond to equal solution accuracy, and the runtime comparison is biased. The paper should explicitly give the primal and dual forms used and verify that each package evaluates the same gap expression.
minor comments (3)
  1. [§5] In the concluding section, the package name is misspelled as 'PyClusterPath' in the sentence about future improvements; it should be 'PyClustrPath'.
  2. [Table 2] The γ column notation such as '[0.45 : 0.09]' is not explained; it should be stated whether this denotes the start value, step size, and number of values, or a list of parameters.
  3. [§4.1] The bullet points in §4.1 repeat Table 3 numbers without distinguishing completed runs from censored ones; at minimum each speedup statement should cite the corresponding table entries so readers can see which entries are annotated with asterisks.

Circularity Check

0 steps flagged · score 0.0 of 10

No significant circularity: PyClustrPath is an implementation and benchmark paper whose speedup claims are empirical and compared against external packages under a stated stopping rule.

full rationale

This is a software and benchmark paper, not a derivation. The central claims—GPU acceleration improves runtime for ADMM, fast AMA, and SSNAL—are supported by Table 3 timings obtained under a stated termination criterion (relative duality gap η ≤ ε with ε = 1e-6) and a stated 10T time cap. No parameter is fitted to a subset and then renamed a prediction; no result is defined into existence. Citations to prior work by the authors (Yuan et al. 2018; Sun et al. 2021) supply the SSNAL algorithm and the ConvexClustering package used as a CPU baseline; these are legitimate external artifacts, not unverified self-support for the present package. The only notable benchmarking concern is the censoring of CPU runs by the 10T time cap (e.g., MNIST ConvexClustering SSNAL 8920.74*(17)), which could make exact speedup ratios approximate, but this concerns experimental fairness, not circularity; the comparison is still against independently published solvers and does not reduce to the paper's own outputs. No circular self-definition, fitted-input-as-prediction, or imported uniqueness claim was found.

Assumptions & free parameters 0 free parameters · 3 assumptions · 0 invented entities

The paper introduces no new mathematical entities, fitted parameters, or invented mechanisms. It bundles existing algorithms and libraries into a package. The only assumptions are standard optimization facts and the equivalence of the stopping criterion across implementations, which is the main premise of the comparison.

assumptions (3)
  • standard math The convex clustering model (CCM) has a unique solution for each γ > 0 because the objective is strongly convex.
    Section 1 relies on this to guarantee the clustering path is well-defined and that x*(γ) is a continuous function of γ, citing Chi and Lange [2015].
  • domain assumption The ADMM, fast AMA, and SSNAL algorithms converge to a solution of (CCM) under the settings used in the package.
    Section 2 and Section 4 assume the convergence properties established in prior literature (Chi and Lange 2015; Yuan et al. 2018; Sun et al. 2021) hold when the algorithms are implemented in PyClustrPath with the given stopping criterion.
  • domain assumption The relative duality gap η = |fp - fd| / (1 + |fp| + |fd|) is a valid and equivalent stopping criterion across all compared packages.
    Section 4 uses η ≤ ε = 1e-6 for all solvers, assuming the dual objective is formulated consistently so that a given tolerance corresponds to the same solution accuracy in cvxclustr, ConvexClustering, and PyClustrPath.

how reviews work

0 comments
Cite this review

Pith. "Pith review of PyClustrPath: An efficient Python package for generating clustering paths with GPU acceleration." pith.science (2026). https://pith.science/paper/Q6WSDTQI

@misc{pith2026250115964,
  author       = {Pith},
  title        = {Pith review of: PyClustrPath: An efficient Python package for generating clustering paths with GPU acceleration},
  year         = {2026},
  howpublished = {\url{https://pith.science/paper/Q6WSDTQI}},
  note         = {Machine review of arXiv:2501.15964}
}
read the original abstract

Convex clustering is a popular clustering model without requiring the number of clusters as prior knowledge. It can generate a clustering path by continuously solving the model with a sequence of regularization parameter values. This paper introduces {\it PyClustrPath}, a highly efficient Python package for solving the convex clustering model with GPU acceleration. {\it PyClustrPath} implements popular first-order and second-order algorithms with a clean modular design. Such a design makes {\it PyClustrPath} more scalable to incorporate new algorithms for solving the convex clustering model in the future. We extensively test the numerical performance of {\it PyClustrPath} on popular clustering datasets, demonstrating its superior performance compared to the existing solvers for generating the clustering path based on the convex clustering model. The implementation of {\it PyClustrPath} can be found at: https://github.com/D3IntOpt/PyClustrPath.

Figures

Figures reproduced from arXiv: 2501.15964 by the authors.

Figure 1
Figure 1. Components, Workflow and Visualization results. [PITH_FULL_IMAGE:figures/full_fig_p003_1.png] view at source ↗
Figure 2
Figure 2. Demo codes for LIBRAS-6 dataset [PITH_FULL_IMAGE:figures/full_fig_p005_2.png] view at source ↗
Figure 3
Figure 3. A generated clustering path for the LIBRAS-6 dataset. [PITH_FULL_IMAGE:figures/full_fig_p005_3.png] view at source ↗
Figures from the paper (7 more)
Figure 4
Figure 4. Figure 4: Demo codes for the COIL-20 dataset [PITH_FULL_IMAGE:figures/full_fig_p006_4.png]
Figure 5
Figure 5. Figure 5: A generated clustering path for the COIL-20 dataset. [PITH_FULL_IMAGE:figures/full_fig_p006_5.png]
Figure 6
Figure 6. Figure 6: Demo codes for the LUNG dataset [PITH_FULL_IMAGE:figures/full_fig_p007_6.png]
Figure 7
Figure 7. Figure 7: A generated clustering path for the LUNG dataset. [PITH_FULL_IMAGE:figures/full_fig_p007_7.png]
Figure 8
Figure 8. Figure 8: Usage Instructions for MNIST dataset [PITH_FULL_IMAGE:figures/full_fig_p008_8.png]
Figure 9
Figure 9. Figure 9: A generated clustering path for the MNIST dataset. [PITH_FULL_IMAGE:figures/full_fig_p008_9.png]
Figure 10
Figure 10. Figure 10: Performance profiles of different algorithms across the five benchmark datasets. The x-axis [PITH_FULL_IMAGE:figures/full_fig_p011_10.png]

Discussion (0). Continue with ORCID to comment.

Reference graph

Works this paper leans on

32 extracted references · 25 canonical work pages

  1. [1]

    Api design for machine learning software: experiences from the scikit-learn project

    Lars Buitinck, Gilles Louppe, Mathieu Blondel, Fabian Pedregosa, Andreas Mueller, Olivier Grisel, Vlad Niculae, Peter Prettenhofer, Alexandre Gramfort, Jaques Grobler, et al. Api design for machine learning software: experiences from the scikit-learn project. arXiv preprint arXiv:1309.0238, 2013

  2. [2]

    HPR-LP : A n implementation of an HPR method for solving linear programming

    Kaihuang Chen, Defeng Sun, Yancheng Yuan, Guojun Zhang, and Xinyuan Zhao. HPR-LP : A n implementation of an HPR method for solving linear programming. arXiv preprint arXiv:2408.12179, 2024

  3. [3]

    Splitting methods for convex clustering

    Eric C Chi and Kenneth Lange. Splitting methods for convex clustering. Journal of Computational and Graphical Statistics, 24 0 (4): 0 994--1013, 2015

  4. [4]

    Recovering trees with convex clustering

    Eric C Chi and Stefan Steinerberger. Recovering trees with convex clustering. SIAM Journal on Mathematics of Data Science, 1 0 (3): 0 383--407, 2019

  5. [5]

    Provable convex co-clustering of tensors

    Eric C Chi, Brian J Gaines, Will Wei Sun, Hua Zhou, and Jian Yang. Provable convex co-clustering of tensors. Journal of Machine Learning Research, 21 0 (214): 0 1--58, 2020

  6. [6]

    Fast tree inference with weighted fusion penalties

    Julien Chiquet, Pierre Gutierrez, and Guillem Rigaill. Fast tree inference with weighted fusion penalties. Journal of Computational and Graphical Statistics, 26 0 (1): 0 205--216, 2017

  7. [7]

    Libras Movement

    Daniel Dias, Sarajane Peres, and Helton Bscaro. Libras Movement . UCI Machine Learning Repository, 2009

  8. [8]

    Convex hierarchical clustering for graph-structured data

    Claire Donnat and Susan Holmes. Convex hierarchical clustering for graph-structured data. In 2019 53rd Asilomar Conference on Signals, Systems, and Computers, pages 1999--2006. IEEE, 2019

Show all 32 references
  1. [9]

    Sum-of-norms clustering does not separate nearby balls

    Alexander Dunlap and Jean-Christophe Mourrat. Sum-of-norms clustering does not separate nearby balls. arXiv preprint arXiv:2104.13753, 2021

  2. [10]

    A review of convex clustering from multiple perspectives: models, optimizations, statistical properties, applications, and connections

    Qiying Feng, CL Philip Chen, and Licheng Liu. A review of convex clustering from multiple perspectives: models, optimizations, statistical properties, applications, and connections. IEEE Transactions on Neural Networks and Learning Systems, 2023

  3. [11]

    Clusterpath an algorithm for clustering using convex fusion penalties

    Toby Dylan Hocking, Armand Joulin, Francis Bach, and Jean-Philippe Vert. Clusterpath an algorithm for clustering using convex fusion penalties. In 28th International Conference on Machine Learning, pages 745--752, 2011

  4. [12]

    Recovery of a mixture of G aussians by sum-of-norms clustering

    Tao Jiang, Stephen Vavasis, and Chen Wen Zhai. Recovery of a mixture of G aussians by sum-of-norms clustering. Journal of Machine Learning Research, 21 0 (225): 0 1--16, 2020

  5. [13]

    Gradient-based learning applied to document recognition

    Yann LeCun, L \'e on Bottou, Yoshua Bengio, and Patrick Haffner. Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86 0 (11): 0 2278--2324, 1998

  6. [14]

    Biclustering via sparse singular value decomposition

    Mihee Lee, Haipeng Shen, Jianhua Z Huang, and James S Marron. Biclustering via sparse singular value decomposition. Biometrics, 66 0 (4): 0 1087--1095, 2010

  7. [15]

    Clustering using sum-of-norms regularization: With application to particle filter output computation

    Fredrik Lindsten, Henrik Ohlsson, and Lennart Ljung. Clustering using sum-of-norms regularization: With application to particle filter output computation. In 2011 IEEE Statistical Signal Processing Workshop, pages 201--204, 2011

  8. [16]

    Columbia object image library (coil-20)

    Sameer A Nene, Shree K Nayar, and Hiroshi Murase. Columbia object image library (coil-20). Technical Report CUCS-005-96, 1996

  9. [17]

    Large steps in inverse rendering of geometry

    Baptiste Nicolet, Alec Jacobson, and Wenzel Jakob. Large steps in inverse rendering of geometry. ACM Transactions on Graphics (Proceedings of SIGGRAPH Asia), 40 0 (6), 2021. doi:10.1145/3478513.3480501

  10. [18]

    Numerical Optimization

    Jorge Nocedal and Stephen Wright. Numerical Optimization. Springer, 2006

  11. [19]

    Clustering by sum of norms: Stochastic incremental algorithm, convergence and cluster recovery

    Ashkan Panahi, Devdatt Dubhashi, Fredrik D Johansson, and Chiranjib Bhattacharyya. Clustering by sum of norms: Stochastic incremental algorithm, convergence and cluster recovery. In 34th International Conference on Machine Learning, pages 2769--2777, 2017

  12. [20]

    Pytorch: An imperative style, high-performance deep learning library

    Adam Paszke, Sam Gross, Francisco Massa, Adam Lerer, James Bradbury, Gregory Chanan, Trevor Killeen, Zeming Lin, Natalia Gimelshein, Luca Antiga, et al. Pytorch: An imperative style, high-performance deep learning library. Advances in neural information processing systems, 32, 2019

  13. [21]

    Convex clustering shrinkage

    Kristiaan Pelckmans, Joseph De Brabanter, Johan AK Suykens, and B De Moor. Convex clustering shrinkage. In PASCAL Workshop on Statistics and Optimization of Clustering Workshop, 2005

  14. [22]

    Convex clustering via l_1 fusion penalization

    Peter Radchenko and Gourab Mukherjee. Convex clustering via l_1 fusion penalization. Journal of the Royal Statistical Society. Series B (Statistical Methodology), 79 0 (5): 0 1527--1546, 2017

  15. [23]

    Convex clustering: Model, theoretical guarantee and efficient algorithm

    Defeng Sun, Kim-Chuan Toh, and Yancheng Yuan. Convex clustering: Model, theoretical guarantee and efficient algorithm. Journal of Machine Learning Research, 22 0 (9): 0 1--32, 2021

  16. [24]

    Accelerating preconditioned A D M M via degenerate proximal point mappings

    Defeng Sun, Yancheng Yuan, Guojun Zhang, and Xinyuan Zhao. Accelerating preconditioned A D M M via degenerate proximal point mappings. arXiv preprint arXiv:2403.18618, 2024

  17. [25]

    Statistical properties of convex clustering

    Kean Ming Tan and Daniela Witten. Statistical properties of convex clustering. Electronic Journal of Statistics, 9 0 (2): 0 2324--2347, 2015

  18. [26]

    Sparse convex clustering

    Binhuan Wang, Yilong Zhang, Will Wei Sun, and Yixin Fang. Sparse convex clustering. Journal of Computational and Graphical Statistics, 27 0 (2): 0 393--403, 2018

  19. [27]

    Randomly projected convex clustering model: Motivation, realization, and cluster recovery guarantees

    Ziwen Wang, Yancheng Yuan, Jiaming Ma, Tieyong Zeng, and Defeng Sun. Randomly projected convex clustering model: Motivation, realization, and cluster recovery guarantees. arXiv preprint arXiv:2303.16841, 2023

  20. [28]

    An efficient semismooth N ewton based algorithm for convex clustering

    Yancheng Yuan, Defeng Sun, and Kim-Chuan Toh. An efficient semismooth N ewton based algorithm for convex clustering. In 35th International Conference on Machine Learning, pages 5718--5726, 2018

  21. [29]

    A dimension reduction technique for large-scale structured sparse optimization problems with application to convex clustering

    Yancheng Yuan, Tsung-Hui Chang, Defeng Sun, and Kim-Chuan Toh. A dimension reduction technique for large-scale structured sparse optimization problems with application to convex clustering. SIAM Journal on Optimization, 32 0 (3): 0 2294--2318, 2022

  22. [30]

    An efficient H P R algorithm for the W asserstein barycenter problem with O ( D im( P )/ ) computational complexity

    Guojun Zhang, Yancheng Yuan, and Defeng Sun. An efficient H P R algorithm for the W asserstein barycenter problem with O ( D im( P )/ ) computational complexity. arXiv preprint arXiv:2211.14881, 2022

  23. [31]

    H O T : A n efficient H alpern accelerating algorithm for optimal transport problems

    Guojun Zhang, Zhexuan Gu, Yancheng Yuan, and Defeng Sun. H O T : A n efficient H alpern accelerating algorithm for optimal transport problems. arXiv preprint arXiv:2408.00598, 2024

  24. [32]

    Convex optimization procedure for clustering: Theoretical revisit

    Changbo Zhu, Huan Xu, Chenlei Leng, and Shuicheng Yan. Convex optimization procedure for clustering: Theoretical revisit. Advances in Neural Information Processing Systems, 27: 0 1619--1627, 2014

Pith tools

Reviewed August 10, 2026 · model on record in the stance chip above.