#optimization #parallel #task

sas

Salty-and-Sweet one-line Rust Runtime Performance Optimization Library

4 releases

0.1.3 Feb 5, 2024
0.1.2 Feb 4, 2024
0.1.1 Feb 4, 2024
0.1.0 Feb 4, 2024

#416 in Concurrency

MIT/Apache

11KB
122 lines

SAS

SAS logo

SAS crate SAS documentation

SAS (Salty-And-Sweet) is an one-line Rust runtime optimization library.

Features

  • NUMA-aware rayon: numa feature should be enabled
    • If you have 1 NUMA nodes, you can experience about 20% performance improvements if the tasks are completed at approximately equal times.
    • If you have 2+ NUMA nodes, you can experience extreme performance improvements.

Install

Simple one-shot mode

fn main() {
    // That's end!
    sas::init();

    // ... your heavy works
}

Advanced mode

TBD

Benchmarks

This sections describes the benchmark results. It uses default package features (zero-touch).

Note that the benchmark metrics are sensitive to process, so please benchmark each metric separately!

The lower elapsed time is the better.

Machine OS (in Docker) Kernel Metric Elapsed time (OFF) Elapsed time (ON) Performance Boost
NVIDIA DGX-2 Ubuntu 22.04 5.14.0-284.11.1.el9_2.x86_64 rayon_sum 5,175,824 ns/iter (+/- 2,767,386) 247,236 ns/iter (+/- 6,151) 20.93x

License

SAS is distributed under the terms of both the MIT license and the Apache License (Version 2.0). See LICENSE-APACHE and LICENSE-MIT for details. Opening a pull request is assumed to signal agreement with these licensing terms.

Dependencies

~4–12MB
~144K SLoC