Skip to main content

quill-fastsort-numa

NUMA-aware parallel MSD-radix sort backend for quill-sort. Portable C++17 reimplementation of the original Windows-only compiled wheel, building natively on macOS (arm64/x86_64), Linux (x86_64/aarch64) and Windows.

Provides the entry points quill._backends.NumaBackend (backend name numa) probes for:

numa_sort_i64  numa_sort_u64  numa_sort_i32
numa_sort_u32  numa_sort_f64  numa_sort_f32

Each sorts a contiguous, writable numpy buffer of the matching dtype in place, ascending. The kernel is quillcore::parallel_radix — a top-byte MSD partition across a thread pool followed by an in-bucket LSD radix, with no merge step. On a multi-socket Linux host the backend is NUMA-aware; on single-socket machines (and off Linux) it falls back to plain parallel radix. The extra detect_topology() helper returns (nodes, cores) on multi-socket Linux and None otherwise.

  • Never-lose: results are identical to np.sort on NaN-free numeric data (verified exhaustively against np.sort across dtypes, sizes and adversarial distributions). NaN is stripped by the Quill dispatcher before any kernel runs.
  • Speed: measured 3–11× over single-threaded std::sort for int64 on 8 cores (scales with core count and array size).

Build

pip install .            # needs only a C++17 compiler

The sort kernels are header-only (src/quill_core.hpp, a synced copy of companions/_core/quill_core.hpp — run companions/sync_core.sh after editing the canonical core). No numpy headers or third-party libraries are required.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quill_fastsort_numa-0.2.0.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quill_fastsort_numa-0.2.0-cp313-cp313-macosx_12_0_arm64.whl (19.0 kB view details)

Uploaded CPython 3.13macOS 12.0+ ARM64

File details

Details for the file quill_fastsort_numa-0.2.0.tar.gz.

File metadata

  • Download URL: quill_fastsort_numa-0.2.0.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for quill_fastsort_numa-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4f1bf46151a140a8fdcc35aceca1e09408a3765ffd619822dcebbcc7653f3b7f
MD5 992fd7221ddcdca192cad9085b8aaff5
BLAKE2b-256 9049fa0f0c1c59b515ffef5104fcb92c6c17e47bbe410d50a2e320d6af363125

See more details on using hashes here.

File details

Details for the file quill_fastsort_numa-0.2.0-cp313-cp313-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for quill_fastsort_numa-0.2.0-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 5b458058e1030b2515b0232b8c17e005919b578a13ecf08d5bbe2517f776375e
MD5 1738c6b94e1fa0525e9beb68af84698d
BLAKE2b-256 bbf62ac8a510fc6456c249817dcba9196b113e431d7ee55f54f6afdd3b777ad8

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.0

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page