|
| 1 | +agents: |
| 2 | + queue: clima |
| 3 | + slurm_time: 24:00:00 |
| 4 | + modules: common |
| 5 | + |
| 6 | +env: |
| 7 | + JULIA_NVTX_CALLBACKS: gc |
| 8 | + OPENBLAS_NUM_THREADS: 1 |
| 9 | + OMPI_MCA_opal_warn_on_missing_libcuda: 0 |
| 10 | + SLURM_KILL_BAD_EXIT: 1 |
| 11 | + SLURM_GRES_FLAGS: "allow-task-sharing" |
| 12 | + BENCHMARK_CONFIG_PATH: "config/benchmark_configs" |
| 13 | + |
| 14 | +steps: |
| 15 | + - label: "init :GPU:" |
| 16 | + key: "init_gpu_env" |
| 17 | + command: |
| 18 | + - echo "--- Instantiate experiments/AMIP" |
| 19 | + - julia --project=experiments/AMIP -e 'using Pkg; Pkg.instantiate(;verbose=true)' |
| 20 | + - julia --project=experiments/AMIP -e 'using Pkg; Pkg.precompile()' |
| 21 | + - julia --project=experiments/AMIP -e 'using Pkg; Pkg.status()' |
| 22 | + |
| 23 | + - echo "--- Instantiate test env" |
| 24 | + - "julia --project=test/ -e 'using Pkg; Pkg.develop(path=\".\")'" |
| 25 | + - "julia --project=test/ -e 'using Pkg; Pkg.instantiate(;verbose=true)'" |
| 26 | + - "julia --project=test/ -e 'using Pkg; Pkg.precompile()'" |
| 27 | + - "julia --project=test/ -e 'using Pkg; Pkg.status()'" |
| 28 | + |
| 29 | + - echo "--- Download artifacts" |
| 30 | + - "julia --project=artifacts -e 'using Pkg; Pkg.instantiate(;verbose=true)'" |
| 31 | + - "julia --project=artifacts -e 'using Pkg; Pkg.precompile()'" |
| 32 | + - "julia --project=artifacts -e 'using Pkg; Pkg.status()'" |
| 33 | + - "julia --project=artifacts artifacts/download_artifacts.jl" |
| 34 | + |
| 35 | + agents: |
| 36 | + slurm_gpus: 1 |
| 37 | + slurm_cpus_per_task: 8 |
| 38 | + env: |
| 39 | + JULIA_NUM_PRECOMPILE_TASKS: 8 |
| 40 | + JULIA_MAX_NUM_PRECOMPILE_FILES: 50 |
| 41 | + |
| 42 | + - wait |
| 43 | + |
| 44 | + - group: "CPU benchmarks" |
| 45 | + steps: |
| 46 | + - label: "CPU ClimaAtmos with diagnostic EDMF" |
| 47 | + key: "climaatmos_diagedmf" |
| 48 | + command: "srun julia --color=yes --project=test/ test/component_model_tests/climaatmos_standalone/atmos_driver.jl --config_file $BENCHMARK_CONFIG_PATH/climaatmos_diagedmf.yml" |
| 49 | + artifact_paths: "experiments/AMIP/output/climaatmos/climaatmos_diagedmf_artifacts/*" |
| 50 | + env: |
| 51 | + BUILD_HISTORY_HANDLE: "" |
| 52 | + CLIMACOMMS_DEVICE: "CPU" |
| 53 | + agents: |
| 54 | + slurm_ntasks_per_node: 64 |
| 55 | + slurm_nodes: 1 |
| 56 | + slurm_mem_per_cpu: 4GB |
| 57 | + |
| 58 | + - label: "CPU AMIP with diagnostic EDMF" |
| 59 | + key: "amip_diagedmf" |
| 60 | + command: "srun julia --color=yes --project=experiments/AMIP/ experiments/AMIP/coupler_driver.jl --config_file $BENCHMARK_CONFIG_PATH/amip_diagedmf.yml" |
| 61 | + artifact_paths: "experiments/AMIP/output/amip/amip_diagedmf_artifacts/*" |
| 62 | + env: |
| 63 | + BUILD_HISTORY_HANDLE: "" |
| 64 | + CLIMACOMMS_DEVICE: "CPU" |
| 65 | + agents: |
| 66 | + slurm_ntasks_per_node: 64 |
| 67 | + slurm_nodes: 1 |
| 68 | + slurm_mem_per_cpu: 4GB |
| 69 | + |
| 70 | + - group: "GPU benchmarks" |
| 71 | + steps: |
| 72 | + - label: "GPU ClimaAtmos with diagnostic EDMF" |
| 73 | + key: "gpu_climaatmos_diagedmf" |
| 74 | + command: "srun julia --threads=3 --color=yes --project=test/ test/component_model_tests/climaatmos_standalone/atmos_driver.jl --config_file $BENCHMARK_CONFIG_PATH/gpu_climaatmos_diagedmf.yml" |
| 75 | + artifact_paths: "experiments/AMIP/output/climaatmos/gpu_climaatmos_diagedmf_artifacts/*" |
| 76 | + agents: |
| 77 | + slurm_gpus_per_task: 1 |
| 78 | + slurm_cpus_per_task: 4 |
| 79 | + slurm_ntasks: 4 |
| 80 | + slurm_mem: 16GB |
| 81 | + |
| 82 | + - label: "GPU AMIP with diagnostic EDMF" |
| 83 | + key: "gpu_amip_diagedmf" |
| 84 | + command: "srun julia --threads=3 --color=yes --project=experiments/AMIP/ experiments/AMIP/coupler_driver.jl --config_file $BENCHMARK_CONFIG_PATH/gpu_amip_diagedmf.yml" |
| 85 | + artifact_paths: "experiments/AMIP/output/amip/gpu_amip_diagedmf_artifacts/*" |
| 86 | + agents: |
| 87 | + slurm_gpus_per_task: 1 |
| 88 | + slurm_cpus_per_task: 4 |
| 89 | + slurm_ntasks: 4 |
| 90 | + slurm_mem: 16GB |
| 91 | + |
| 92 | + - group: "Generate output table" |
| 93 | + steps: |
| 94 | + - label: "Compare AMIP/Atmos-only with diagnostic EDMF" |
| 95 | + key: "compare_amip_climaatmos_amip_diagedmf" |
| 96 | + command: "julia --color=yes --project=experiments/AMIP/ experiments/AMIP/user_io/benchmarks.jl --cpu_run_name_coupled amip_diagedmf --cpu_run_name_atmos climaatmos_diagedmf --gpu_run_name_coupled gpu_amip_diagedmf --gpu_run_name_atmos gpu_climaatmos_diagedmf --mode_name amip --build_id $BUILDKITE_BUILD_NUMBER" |
| 97 | + artifact_paths: "experiments/AMIP/output/compare_amip_climaatmos_amip_diagedmf/*" |
| 98 | + depends_on: |
| 99 | + - "climaatmos_diagedmf" |
| 100 | + - "amip_diagedmf" |
| 101 | + - "gpu_climaatmos_diagedmf" |
| 102 | + - "gpu_amip_diagedmf" |
| 103 | + |
| 104 | + - label: ":envelope: Slack report: CPU/GPU AMIP/Atmos-only table" |
| 105 | + depends_on: |
| 106 | + - "compare_amip_climaatmos_amip_diagedmf" |
| 107 | + command: |
| 108 | + - slack-upload -c "#coupler-report" -f experiments/AMIP/output/compare_amip_climaatmos_amip_diagedmf/table.txt -m txt -n compare_amip_climaatmos_amip_diagedmf_table -x "Coupler CPU/GPU Comparison Table" |
0 commit comments