Setup for benchmarks
This commit is contained in:
56
scripts/buildtestcases.sh
Executable file
56
scripts/buildtestcases.sh
Executable file
@@ -0,0 +1,56 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Modules (!!!)
|
||||
module load gcc/8.3.0 cuda/10.1.168 cmake openmpi/4.0.3-cuda nccl
|
||||
#module load gcc/8.3.0 cuda/10.1.168 cmake hpcx-mpi/2.5.0-cuda nccl
|
||||
#export UCX_MEMTYPE_CACHE=n # Workaround for bug in hpcx-mpi/2.5.0
|
||||
|
||||
load_default_case() {
|
||||
# Pinned or RDMA
|
||||
sed -i 's/#define MPI_USE_PINNED ([0-9]*)/#define MPI_USE_PINNED (0)/' src/core/device.cc
|
||||
|
||||
# Stencil order
|
||||
sed -i 's/#define STENCIL_ORDER ([0-9]*)/#define STENCIL_ORDER (6)/' acc/stdlib/stdderiv.h
|
||||
sed -i 's/#define STENCIL_ORDER ([0-9]*)/#define STENCIL_ORDER (6)/' include/astaroth.h
|
||||
|
||||
# Timings
|
||||
sed -i 's/MPI_COMPUTE_ENABLED (.)/MPI_COMPUTE_ENABLED (1)/' src/core/device.cc
|
||||
sed -i 's/MPI_COMM_ENABLED (.)/MPI_COMM_ENABLED (1)/' src/core/device.cc
|
||||
sed -i 's/MPI_INCL_CORNERS (.)/MPI_INCL_CORNERS (0)/' src/core/device.cc
|
||||
|
||||
# Decomposition
|
||||
sed -i 's/MPI_DECOMPOSITION_AXES (.)/MPI_DECOMPOSITION_AXES (3)/' src/core/device.cc
|
||||
|
||||
# Strong/Weak
|
||||
sed -i 's/const TestType test = .*;/const TestType test = TEST_STRONG_SCALING;/' samples/benchmark/main.cc
|
||||
|
||||
# Num iters
|
||||
sed -i 's/const size_t num_iters = .*;/const size_t num_iters = 1000;/' samples/benchmark/main.cc
|
||||
}
|
||||
|
||||
# $1 test name
|
||||
# $2 grid size
|
||||
create_case() {
|
||||
DIR="benchmark_$1"
|
||||
mkdir -p $DIR
|
||||
cd $DIR
|
||||
/users/pekkila/cmake/build/bin/cmake .. && make -j
|
||||
cd ..
|
||||
}
|
||||
|
||||
# Mesh size
|
||||
load_default_case
|
||||
create_case "meshsize_256"
|
||||
sed -i 's/const size_t num_iters = .*;/const size_t num_iters = 100;/' samples/benchmark/main.cc
|
||||
create_case "meshsize_512"
|
||||
create_case "meshsize_1024"
|
||||
create_case "meshsize_2048"
|
||||
|
||||
# Run batch jobs
|
||||
sbatch benchmark_meshsize_256/benchmark_1.sh
|
||||
sbatch benchmark_meshsize_256/benchmark_2.sh
|
||||
sbatch benchmark_meshsize_256/benchmark_4.sh
|
||||
sbatch benchmark_meshsize_256/benchmark_8.sh
|
||||
sbatch benchmark_meshsize_256/benchmark_16.sh
|
||||
sbatch benchmark_meshsize_256/benchmark_32.sh
|
||||
sbatch benchmark_meshsize_256/benchmark_64.sh
|
41
scripts/postprocess_benchmarks.sh
Executable file
41
scripts/postprocess_benchmarks.sh
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
|
||||
OUTPUT=results.csv
|
||||
rm -i $OUTPUT
|
||||
|
||||
# $1 input dir
|
||||
process_input() {
|
||||
echo $1
|
||||
#cat $1/*.csv | sort -n
|
||||
cat $1/*.csv | sort -k1n -k3n | awk '!a[$1]++'
|
||||
echo ""
|
||||
} >> $OUTPUT
|
||||
|
||||
process_input "benchmark_decomp_1D"
|
||||
process_input "benchmark_decomp_2D"
|
||||
process_input "benchmark_decomp_3D"
|
||||
process_input "benchmark_decomp_1D_comm"
|
||||
process_input "benchmark_decomp_2D_comm"
|
||||
process_input "benchmark_decomp_3D_comm"
|
||||
|
||||
process_input "benchmark_meshsize_256"
|
||||
process_input "benchmark_meshsize_512"
|
||||
process_input "benchmark_meshsize_1024"
|
||||
process_input "benchmark_meshsize_2048"
|
||||
|
||||
process_input "benchmark_stencilord_2"
|
||||
process_input "benchmark_stencilord_4"
|
||||
process_input "benchmark_stencilord_6"
|
||||
process_input "benchmark_stencilord_8"
|
||||
|
||||
process_input "benchmark_timings_control"
|
||||
process_input "benchmark_timings_comp"
|
||||
process_input "benchmark_timings_comm"
|
||||
process_input "benchmark_timings_default"
|
||||
process_input "benchmark_timings_corners"
|
||||
|
||||
process_input "benchmark_weak_128"
|
||||
process_input "benchmark_weak_256"
|
||||
process_input "benchmark_weak_512"
|
||||
|
||||
cat $OUTPUT
|
Reference in New Issue
Block a user