scaler
scaler
is a synthetic placeholder program that always runs for approximately 10 seconds but
reports a fictional runtime given by the formula below. Various behaviors of benchmarks, which are
relevant to the purposes of reporting, can be simulated by changing the parameters of the formula.
We arbitrarily fix the weak scaling efficency of the benchmark to be k^{\log_2(n)}.
runtime = random(0.95,1.05) * m * g * c * v * p * pow(k,log(n,2))
# n : number of MPI ranks
# p : problem size
# k : scaling factor
# m : mpi factor (1.2 for OpenMPI, 1.4 for MPICH/PSMPI)
# g : cuda factor (1.2 for no GPU, 1.4 for GPU)
# c : compiler factor (1.2 for GCC, 1.4 for LLVM, 1.6 for NVHPC)
# v : version factor (random number between 0.8 and 1.2 for different versions)
Usage
-
Ensure that the following dependencies are installed on your system. a. CMake (>= 3.25) b. C++ compiler (>= C++17) c. MPI library (OpenMPI or MPICH)
-
Clone the repository and build the program.
git clone https://gitlab.jsc.fz-juelich.de/exacb/examples/scaler.git
mkdir build
cmake -B build -S scaler
cmake --build build
- Run the program with the following command.
srun [--options] build/scaler --size <problem-size>