Add randomization option to allow random reads and writes to nixlbench (#1711)
## What? nixlbench currently does sequential transfers from each memory location to a matching location on storage transfers. To maintain a more real-world scenario, randomizing the storage addresses has been introduced. ## Why? This is a requested feature to do a randomized read / write pattern ## How? There are now two modes for randomized location usage, byte aligned and block aligned. Byte aligned randomizes the offset used for the transfers, block aligned reorders the iov's (which are originally sequentially block aligned) that are sent to be transferred. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a new --randomize_location_mode option (none, blockaligned, bytealigned; default: none) to control how storage-backed benchmarks randomize block/offset locations. The setting is shown in benchmark configuration output. * Storage I/O now supports shuffling and byte-/block-aligned offset randomization; worker-side RNG added to drive randomized behavior. * **Bug Fixes / Reliability** * Invalid mode values are validated and reported to prevent misconfiguration. * Empty-sample handling and several conditional branches made more explicit for clearer behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Ofer Achler <ofer.achler@gmail.com> Co-authored-by: Guy Ealey Morag <guymorag142@gmail.com> Co-authored-by: Adit Ranadive <aranadive@nvidia.com>
O
Ofer Achler committed
53be1d43a415ff3a14b8bc942ca7242307adb70d
Parent: 2183708
Committed by GitHub <noreply@github.com>
on 7/29/2026, 5:17:34 PM