Skip to content

Community Benchmark

Matt Norman edited this page Sep 9, 2022 · 6 revisions

The community benchmark exists to use miniWeatherML as a 3-D cloud model performance comparison between machines.

Workflow

git clone git@github.com:mrnorman/miniWeatherML.git
cd miniWeatherML
git submodule update --init
cd build
source machines/[machine_name]/[environment_file]
./cmakescript ../experiments/community_benchmark
make -j8
[mpirun_command_and_arguments] ./driver ./inputs/input_euler3d.yaml

Instead of running the MPI command directly, you'll often want to submit a job batch script instead. You'll want to cd into the /path/to/miniWeather/build directory, then source your machine file, and then run the MPI run command. And example Summit batch script is below:

#!/bin/bash
#BSUB -P stf006
#BSUB -W 0:10
#BSUB -nnodes 16
#BSUB -q batch
#BSUB -J miniWeatherML
#BSUB -o miniWeatherML.%J
#BSUB -e miniWeatherML.%J

nodes=16
mydir=job_$nodes
ntasks=`echo "6*$nodes" | bc`

cd /gpfs/alpine/proj-shared/[PROJ_ID]/$USER/miniWeatherML/build
source machines/summit/summit_gpu.env

echo "Nodes: $nodes"
echo "Tasks: $ntasks"
echo "Dir:   `pwd`/$mydir"

mkdir -p $mydir
cp ./driver $mydir
cp ./inputs/input_euler3d.yaml $mydir
cd $mydir

jsrun -r 6 -n $ntasks -a 1 -c 1 -g 1 ./driver ./input_euler3d.yaml 2>&1 | tee job_output.txt

Requirements

miniWeatherML requires the following packages / libraries aside from the compilers you need for CPU or GPU simulation:

Hardware Backends

miniWeatherML is capable of running on CPUs, Nvidia GPUs, and AMD GPUs. The portable C++ library can run on Intel GPUs, but the user-defined literal suffix for floating point literals is not supported by Intel at this time due to a compiler bug.

Clone this wiki locally