Files
obikmer/docmd/installation.md
T
Eric Coissac ea767376bd feat: implement NUMA-aware worker pools for merge command
Replaces the global Rayon pool with per-NUMA-node thread pools that pin worker threads to their respective nodes, leveraging Linux first-touch allocation to reduce cross-NUMA memory contention and improve cache locality. Integrates the `hwlocality` crate with a vendored build, includes graceful fallbacks for single-socket or non-Linux systems, and updates dependency constraints. Also adds installation and architecture documentation, and corrects parallelism detection in the partitioner.
2026-06-14 23:56:52 +02:00

1.7 KiB

Installation

Prerequisites

Rust toolchain

obikmer requires Rust 1.85 or later (edition 2024). Install or update via rustup:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup update stable

C build environment (required for hwloc)

obikmer embeds hwloc (Hardware Locality) for NUMA-aware thread placement on multi-socket machines. hwloc is built from source at compile time via the vendored feature of the hwlocality crate. This requires a standard C build environment.

Linux (Debian/Ubuntu)

apt install build-essential automake libtool autoconf pkg-config

Linux (RHEL/Rocky/AlmaLinux)

dnf install gcc make automake libtool autoconf pkgconfig

HPC clusters

Most HPC clusters provide these tools via the module system:

module load gcc automake libtool autoconf

If in doubt, check whether autoreconf --version and libtool --version return successfully.

macOS

brew install automake libtool autoconf pkg-config

Building

git clone <repository-url>
cd obikmer/src
cargo build --release

The compiled binary is at target/release/obikmer.

NUMA support

NUMA-aware thread placement is active automatically on multi-socket Linux machines (detected at runtime via hwloc). No special build flag is required — the detection is built in and falls back gracefully to the single-pool adaptive strategy on:

  • macOS (Apple Silicon, unified memory)
  • single-socket Linux machines
  • any system where hwloc reports only one NUMA node

Verifying the installation

obikmer --help