7 releases

Uses new Rust 2024

0.1.7 Dec 6, 2025
0.1.6 Jun 7, 2025

#266 in Concurrency

Download history 136/week @ 2025-11-13 178/week @ 2025-11-20 285/week @ 2025-11-27 273/week @ 2025-12-04 475/week @ 2025-12-11 574/week @ 2025-12-18 439/week @ 2025-12-25 414/week @ 2026-01-01 533/week @ 2026-01-08 588/week @ 2026-01-15 469/week @ 2026-01-22 471/week @ 2026-01-29 578/week @ 2026-02-05 836/week @ 2026-02-12 445/week @ 2026-02-19 714/week @ 2026-02-26

2,621 downloads per month
Used in 15 crates (3 directly)

BSD-3-Clause OR Apache-2.0

20KB
349 lines

novtb – Simple Zoned Data-Parallelism with Core Affinity

novtb provides a lightweight, brute-force data-parallel execution model with support for core pinning (CPU affinity). It's useful for workloads where threads should be pinned to specific cores for improved cache locality or performance consistency.

Features

  • Zone-based parallel iteration over chunked data
  • Explicit thread pool with core affinity
  • Simple API without complex task graphs or scheduling overhead

Some examples

let pool = novtb::ThreadPool::new(thread_count as usize);
pool.parallel_for(|thread_index| {
    // Perform thread-specific heavy work here
);
let pool = novtb::ThreadPool::new(thread_count as usize);
dst.tb_par_chunks_mut(dst_stride as usize * tile_size)
    .for_each_enumerated(&pool, |cy, dst_rows| {
    // Process a tile at row 'cy' in 'dst_rows'
    });

This project is licensed under either of

  • BSD-3-Clause License (see LICENSE)
  • Apache License, Version 2.0 (see LICENSE)

at your option.

Dependencies

~51–265KB