From 8b1fed281516e4a9419b9ae71d99a7a1f67462d9 Mon Sep 17 00:00:00 2001 From: Akshay Agrawal Date: Sun, 22 Feb 2026 11:18:26 -0800 Subject: [PATCH] Update docs to mention Rust preprocessing --- README.md | 16 +++++++++++----- docs_src/source/index.rst | 9 +++++++++ 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e420490..70868e2 100644 --- a/README.md +++ b/README.md @@ -14,14 +14,20 @@ simple but general framework for embedding, called _Minimum-Distortion Embedding_ (MDE). With MDE, it is easy to recreate well-known embeddings and to create new ones, tailored to your particular application. -**Fast on CPU, faster on GPU.** PyMDE is competitive in runtime with more specialized embedding methods. With a -GPU, embedding computation can be even faster. +**Fast on CPU, faster on GPU.** PyMDE is competitive in runtime with more +specialized embedding methods. With a GPU, embedding computation can be even +faster. -**Fast preprocessing, implemented in Rust.** PyMDE preprocesses original data matrices +**Fast preprocessing in Rust.** PyMDE preprocesses original data matrices using fast routines implemented in Rust: -* an exact k-nearest neighbor algorithm accelerated with Rayon and BLAS, which in simple -benchmarks is faster than `faiss` and `pynndescent`; +* an approximate k-nearest neighbor algorithm implementing nndescent, with +Rayon for parallelism and SIMD kernels; in simple benchmarks this is +competitive with pynndescent, but without the overhead of Numba's JIT; +* an exact k-nearest neighbor algorithm accelerated with Rayon and BLAS; on +modern machines +with multiple cores, this implementation is faster than `faiss` and competitive with +popular approximate k-nearest neighbor algorithms; * a breadth-first search for computing all-pairs shortest paths. ## Overview diff --git a/docs_src/source/index.rst b/docs_src/source/index.rst index b768bc9..bd3d1b9 100644 --- a/docs_src/source/index.rst +++ b/docs_src/source/index.rst @@ -116,8 +116,17 @@ UMAP, and can scale to datasets with millions of items. With a GPU, it can be even faster. PyMDE scales well with the embedding dimension, meaning that you can easily embed into dimensions such as 50, 100, or 250. +PyMDE preprocesses original data matrices and constructs neighborhood graphs +and shortest path distances using fast routines implemented in Rust, taking +advantage of SIMD, BLAS, and basic parallelsim. + PyMDE draws graphs orders of magnitude faster than NetworkX. +**PyMDE is easy to install.** PyMDE does not depend on Numba, thanks to its +Rust-based preprocessing. This means that it does not inherit the limitations +that Numba imposes on NumPy and Python versions. Find wheels for all modern +Python versions and all architectures on PyPI. + .. toctree:: :hidden: :maxdepth: 2