NINJA Logo Ninja (Noise INJection Agent) is a smart network noise injector for quickly exposing unindended MPI message races. Ninja uses innovative network noise injection techniques to increase the chances of racy, incorrect MPI message matching within the target MPI application. Ninja has been shown to reproduce unsafe message races consistently within large production applications and can do this up to two orders of magnitude faster than the traditional testing approach (i.e., random noise injection).


Ninja is open-source software and can be obtained on GitHub .

Quick Start


  1. Spack: Recommended for curious users

    Ninja maintains an up-to-date package in the Spack develop branch, which builds all dependencies and Ninja itself. To install via Spack run:

    $ git clone
    $ spack/bin/spack install pruners-ninja

    If you already have Spack, you can omit the first line.

  2. Manual: Recommended for developers and contributors

    Please refer to the installation instructions in