-
Notifications
You must be signed in to change notification settings - Fork 7
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.
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.yamlInstead 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.txtminiWeatherML requires the following packages / libraries aside from the compilers you need for CPU or GPU simulation:
- parallel-netcdf
- libyaml-cpp
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.