diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index fb29c5b43c..96a7494e52 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -32,13 +32,13 @@ steps: - "julia --project -e 'using Pkg; Pkg.precompile()'" - "julia --project -e 'using Pkg; Pkg.status()'" - - echo "--- Instantiate climacore exp env" + - echo "--- Instantiate ClimaCore experiments env" - "julia --project=experiments/ClimaCore/ -e 'using Pkg; Pkg.instantiate(;verbose=true)'" - "julia --project=experiments/ClimaCore/ -e 'using Pkg; Pkg.add(\"MPI\"); Pkg.add(\"CUDA\")'" - "julia --project=experiments/ClimaCore/ -e 'using Pkg; Pkg.precompile()'" - "julia --project=experiments/ClimaCore/ -e 'using Pkg; Pkg.status()'" - - echo "--- Instantiate ClimaEarth env" + - echo "--- Instantiate ClimaEarth experiments env" - "julia --project=experiments/ClimaEarth/ -e 'using Pkg; Pkg.develop(path=\".\")'" - "julia --project=experiments/ClimaEarth/ -e 'using Pkg; Pkg.instantiate(;verbose=true)'" - "julia --project=experiments/ClimaEarth/ -e 'using Pkg; Pkg.add(\"MPI\"); Pkg.add(\"CUDA\");'" @@ -67,7 +67,7 @@ steps: steps: - label: "MPI Regridder unit tests" key: "regridder_mpi_tests" - command: "srun julia --color=yes --project=test/ test/mpi_tests/regridder_mpi_tests.jl --config_file $CONFIG_PATH/regridder_mpi.yml" + command: "srun julia --color=yes --project=test/ test/mpi_tests/regridder_mpi_tests.jl" timeout_in_minutes: 20 env: CLIMACOMMS_CONTEXT: "MPI" @@ -78,7 +78,7 @@ steps: - label: "MPI Checkpointer unit tests" key: "checkpointer_mpi_tests" - command: "srun julia --color=yes --project=test/ test/mpi_tests/checkpointer_mpi_tests.jl --job_id checkpointer_mpi" + command: "srun julia --color=yes --project=test/ test/mpi_tests/checkpointer_mpi_tests.jl" timeout_in_minutes: 20 env: CLIMACOMMS_CONTEXT: "MPI" @@ -88,7 +88,7 @@ steps: - label: "MPI Utilities unit tests" key: "utilities_mpi_tests" - command: "srun julia --color=yes --project=test/ test/utilities_tests.jl --job_id utilities_mpi" + command: "srun julia --color=yes --project=test/ test/utilities_tests.jl" timeout_in_minutes: 20 env: CLIMACOMMS_CONTEXT: "MPI" @@ -108,10 +108,7 @@ steps: - group: "Integration Tests" steps: - - # Drivers for release > - - # SLABPLANET + # SLABPLANET EXPERIMENTS # Slabplanet default: # - this is the most lightweight example with conservation and visual checks, with CLI specification as follows @@ -155,13 +152,6 @@ steps: agents: slurm_mem: 20GB - - label: "Slabplanet: albedo from static map" - key: "slabplanet_albedo_static_map" - command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/slabplanet_albedo_static_map.yml --job_id slabplanet_albedo_static_map" - artifact_paths: "experiments/ClimaEarth/output/slabplanet/slabplanet_albedo_static_map/artifacts/total_energy*.png" - agents: - slurm_mem: 20GB - - label: "Slabplanet: albedo from temporal map" key: "slabplanet_albedo_temporal_map" command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/slabplanet_albedo_temporal_map.yml --job_id slabplanet_albedo_temporal_map" @@ -190,72 +180,25 @@ steps: agents: slurm_mem: 20GB - # AMIP - - # ... - - # < end Drivers for release - - # CLIMACORE EXPERIMENTS - - - label: "sea_breeze" - command: "julia --color=yes --project=experiments/ClimaCore experiments/ClimaCore/sea_breeze/run.jl" - artifact_paths: "experiments/ClimaCore/sea_breeze/output/*" - agents: - slurm_mem: 20GB - - - label: "heat-diffusion" - command: "julia --color=yes --project=experiments/ClimaCore/ experiments/ClimaCore/heat-diffusion/run.jl" - artifact_paths: "experiments/ClimaCore/output/heat-diffusion/artifacts/*" + - label: "Slabplanet: timevarying insolation + rayleigh sponge" + command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/slabplanet_realinsol_rayleigh.yml --job_id slabplanet_realinsol_rayleigh" + artifact_paths: "experiments/ClimaEarth/output/slabplanet/slabplanet_realinsol_rayleigh/artifacts/total_energy*.png" agents: slurm_mem: 20GB - # AMIP AND SLABPLANET EXPERIMENTS - - - label: "Moist earth with slab surface - default: monin gray no_sponge idealinsol freq_dt_cpl" - command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/default_mono.yml --job_id default_mono" - artifact_paths: "experiments/ClimaEarth/output/slabplanet/default_mono/artifacts/total_energy*.png" - agents: - slurm_mem: 20GB - - - label: "Moist earth with slab surface - notmono: monin gray no_sponge idealinsol freq_dt_cpl notmono" - command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/default_notmono.yml --job_id default_notmono" - artifact_paths: "experiments/ClimaEarth/output/slabplanet/default_notmono/artifacts/total_energy*.png" - agents: - slurm_mem: 20GB - - # - label: "Moist earth with slab surface - test: monin allsky sponge idealinsol infreq_dt_cpl" - # command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --FLOAT_TYPE Float64 --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad allskywithclear --rayleigh_sponge true --alpha_rayleigh_uh 0 --alpha_rayleigh_w 10 --energy_check true --mode_name slabplanet --t_end 10days --dt_save_to_sol 3600secs --dt_cpl 21600 --dt 200secs --dt_rad 6hours --mono_surface true --h_elem 4 --precip_model 0M --job_id target_params_in_slab_test1" # Unconverged SF (reproduced locally); works with 200s dt_cpl - # artifact_paths: "experiments/ClimaEarth/output/slabplanet/target_params_in_slab_test1/artifacts/total_energy*.png" - - - label: "Moist earth with slab surface - test: bulk allsky sponge realinsol infreq_dt_cpl" - command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/target_params_in_slab_test2.yml --job_id target_params_in_slab_test2" - artifact_paths: "experiments/ClimaEarth/output/slabplanet/target_params_in_slab_test2/artifacts/total_energy*.png" - agents: - slurm_mem: 20GB - - - label: "Moist earth with slab surface - test: monin gray sponge realinsol infreq_dt_cpl" - command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/target_params_in_slab_test3.yml --job_id target_params_in_slab_test3" - artifact_paths: "experiments/ClimaEarth/output/slabplanet/target_params_in_slab_test3/artifacts/total_energy*.png" - agents: - slurm_mem: 20GB - - # breaking: - # - label: "Moist earth with slab surface - monin allsky no_sponge idealinsol infreq_dt_cpl" - # command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad allskywithclear --rayleigh_sponge false --energy_check true --mode_name slabplanet --t_end 10days --dt_save_to_sol 3600secs --dt_cpl 21600 --dt 200secs --dt_rad 6hours --idealized_insolation true --mono_surface true --h_elem 4 --precip_model 0M --job_id target_params_in_slab1" - # artifact_paths: "experiments/ClimaEarth/output/slabplanet/target_params_in_slab1/artifacts/total_energy*.png" + # AMIP EXPERIMENTS - label: "AMIP target: albedo from function" key: "target_amip_albedo_function" - command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/target_amip_albedo_function.yml --job_id target_amip_albedo_function" + command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/amip_albedo_function.yml --job_id target_amip_albedo_function" artifact_paths: "experiments/ClimaEarth/output/amip/target_amip_albedo_function/artifacts/*" agents: slurm_mem: 20GB - label: "AMIP - Float64 + hourly checkpoint" key: "amip" - command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/coarse_single_ft64_hourly_checkpoints.yml --job_id coarse_single_ft64_hourly_checkpoints" - artifact_paths: "experiments/ClimaEarth/output/amip/coarse_single_ft64_hourly_checkpoints/artifacts/*" + command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/amip_coarse_ft64_hourly_checkpoints.yml --job_id amip_coarse_ft64_hourly_checkpoints" + artifact_paths: "experiments/ClimaEarth/output/amip/amip_coarse_ft64_hourly_checkpoints/artifacts/*" env: FLAME_PLOT: "" BUILD_HISTORY_HANDLE: "" @@ -263,30 +206,23 @@ steps: slurm_ntasks: 1 slurm_mem: 20GB - - label: "AMIP - Float64 test" - command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/coarse_single_ft64.yml --job_id coarse_single_ft64" - artifact_paths: "experiments/ClimaEarth/output/amip/coarse_single_ft64/artifacts/*" - agents: - slurm_ntasks: 1 - slurm_mem: 20GB - - label: "AMIP - Float32 test" - command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/coarse_single_ft32.yml --job_id coarse_single_ft32" - artifact_paths: "experiments/ClimaEarth/output/amip/coarse_single_ft32/artifacts/*" + command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/amip_coarse_ft32.yml --job_id amip_coarse_ft32" + artifact_paths: "experiments/ClimaEarth/output/amip/amip_coarse_ft32/artifacts/*" agents: slurm_ntasks: 1 slurm_mem: 20GB - label: "AMIP - Component dts test" - command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/target_amip_component_dts.yml --job_id target_amip_component_dts" + command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/amip_component_dts.yml --job_id target_amip_component_dts" artifact_paths: "experiments/ClimaEarth/output/amip/target_amip_component_dts/artifacts/*" agents: slurm_ntasks: 1 slurm_mem: 20GB - label: "MPI AMIP" - command: "srun julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/coarse_mpi_n4.yml --job_id coarse_mpi_n4" - artifact_paths: "experiments/ClimaEarth/output/amip/coarse_mpi_n4/artifacts/*" + command: "srun julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/amip_coarse_mpi.yml --job_id amip_coarse_mpi" + artifact_paths: "experiments/ClimaEarth/output/amip/amip_coarse_mpi/artifacts/*" timeout_in_minutes: 240 env: CLIMACOMMS_CONTEXT: "MPI" @@ -294,76 +230,40 @@ steps: slurm_ntasks: 4 slurm_mem: 32GB - # short high-res performance test - label: "Unthreaded AMIP FINE" # also reported by longruns with a flame graph key: "unthreaded_amip_fine" - command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/target_amip_n1_shortrun.yml --job_id target_amip_n1_shortrun" + command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/amip_n1_shortrun.yml --job_id target_amip_n1_shortrun" artifact_paths: "experiments/ClimaEarth/output/amip/target_amip_n1_shortrun/artifacts/*" env: BUILD_HISTORY_HANDLE: "" agents: slurm_mem: 20GB - - group: "Hierarchy tests (1d)" - steps: - - label: ":construction: Dry Held Suarez" - key: "dry_held_suarez" - command: - - sed 's/t_end = "1000days"/t_end = "1days"/' experiments/ClimaEarth/run_dry_held_suarez.jl > experiments/ClimaEarth/run_dry_held_suarez_short.jl - - "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_dry_held_suarez_short.jl" - artifact_paths: "dry_held_suarez/dry_held_suarez/clima_atmos/*" - agents: - slurm_mem: 20GB - - - label: ":construction: Moist Held Suarez" - key: "moist_held_suarez" - command: - - sed 's/t_end = "1000days"/t_end = "1days"/' experiments/ClimaEarth/run_moist_held_suarez.jl > experiments/ClimaEarth/run_moist_held_suarez_short.jl - - "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_moist_held_suarez_short.jl" - artifact_paths: "moist_held_suarez/moist_held_suarez/clima_atmos/*" - agents: - slurm_mem: 20GB - - - label: ":construction: Cloudless Aquaplanet" - key: "cloudless_aquaplanet" - command: - - sed 's/t_end = "1000days"/t_end = "1days"/' experiments/ClimaEarth/run_cloudless_aquaplanet.jl > experiments/ClimaEarth/run_cloudless_aquaplanet_short.jl - - "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_cloudless_aquaplanet_short.jl" - artifact_paths: "cloudless_aquaplanet/cloudless_aquaplanet/clima_atmos/*" - agents: - slurm_mem: 20GB - - - label: ":construction: Cloudy Aquaplanet" - key: "cloudy_aquaplanet" - command: - - sed 's/t_end = "1000days"/t_end = "1days"/' experiments/ClimaEarth/run_cloudy_aquaplanet.jl > experiments/ClimaEarth/run_cloudy_aquaplanet_short.jl - - "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_cloudy_aquaplanet_short.jl" - artifact_paths: "cloudy_aquaplanet/cloudy_aquaplanet/clima_atmos/*" - agents: - slurm_mem: 20GB + # CLIMACORE EXPERIMENTS - - label: ":construction: Cloudy Slabplanet" - key: "cloudy_slabplanet" - command: - - sed 's/t_end = "1000days"/t_end = "1days"/' experiments/ClimaEarth/run_cloudy_slabplanet.jl > experiments/ClimaEarth/run_cloudy_slabplanet_short.jl - - "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_cloudy_slabplanet_short.jl" - artifact_paths: "cloudy_slabplanet/cloudy_slabplanet/clima_atmos/*" + - label: "sea_breeze" + command: "julia --color=yes --project=experiments/ClimaCore experiments/ClimaCore/sea_breeze/run.jl" + artifact_paths: "experiments/ClimaCore/sea_breeze/output/*" agents: slurm_mem: 20GB - - wait - - label: ":construction: Hierarchy plots" - key: "hierarchy_plots" - command: - - "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/hierarchy/climate_plots.jl" - artifact_paths: "paper_figs/*" + - label: "heat-diffusion" + command: "julia --color=yes --project=experiments/ClimaCore/ experiments/ClimaCore/heat-diffusion/run.jl" + artifact_paths: "experiments/ClimaCore/output/heat-diffusion/artifacts/*" agents: slurm_mem: 20GB - group: "GPU integration tests" steps: # GPU RUNS: slabplanet + - label: "GPU Slabplanet: default" + key: "gpu_slabplanet_default" + command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/slabplanet_default.yml --job_id gpu_slabplanet_default" + artifact_paths: "experiments/ClimaEarth/output/slabplanet/gpu_slabplanet_default/artifacts/*" + agents: + slurm_mem: 20GB + - label: "GPU Slabplanet: albedo from function" key: "gpu_slabplanet_albedo_function" command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/slabplanet_albedo_function.yml --job_id gpu_slabplanet_albedo_function" @@ -374,16 +274,6 @@ steps: slurm_mem: 20GB slurm_gpus: 1 - - label: "GPU Slabplanet: albedo from static map" - key: "gpu_slabplanet_albedo_static_map" - command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/slabplanet_albedo_static_map.yml --job_id gpu_slabplanet_albedo_static_map" - artifact_paths: "experiments/ClimaEarth/output/slabplanet/gpu_slabplanet_albedo_static_map/artifacts/*" - env: - CLIMACOMMS_DEVICE: "CUDA" - agents: - slurm_mem: 20GB - slurm_gpus: 1 - - label: "GPU Slabplanet: albedo from temporal map" key: "gpu_slabplanet_albedo_temporal_map" command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/slabplanet_albedo_temporal_map.yml --job_id gpu_slabplanet_albedo_temporal_map" @@ -405,30 +295,30 @@ steps: slurm_gpus: 1 # GPU RUNS: AMIP - - label: "GPU AMIP test: albedo from function" - key: "gpu_amip_albedo_function" - command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/gpu_amip_albedo_function.yml --job_id gpu_amip_albedo_function" - artifact_paths: "experiments/ClimaEarth/output/amip/gpu_amip_albedo_function/artifacts/*" + - label: "GPU AMIP: default" + key: "gpu_amip_default" + command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/amip_default.yml --job_id gpu_amip_default" + artifact_paths: "experiments/ClimaEarth/output/amip/gpu_amip_default/artifacts/*" env: CLIMACOMMS_DEVICE: "CUDA" agents: slurm_mem: 20GB slurm_gpus: 1 - - label: "GPU AMIP target: topography and diagnostic EDMF" - key: "gpu_amip_target_topo_diagedmf_shortrun" - command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/gpu_amip_target_topo_diagedmf_shortrun.yml --job_id gpu_amip_target_topo_diagedmf_shortrun" - artifact_paths: "experiments/ClimaEarth/output/amip/gpu_amip_target_topo_diagedmf_shortrun/artifacts/*" + - label: "GPU AMIP test: albedo from function" + key: "gpu_amip_albedo_function" + command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/amip_albedo_function.yml --job_id gpu_amip_albedo_function" + artifact_paths: "experiments/ClimaEarth/output/amip/gpu_amip_albedo_function/artifacts/*" env: CLIMACOMMS_DEVICE: "CUDA" agents: slurm_mem: 20GB slurm_gpus: 1 - - label: "GPU AMIP: albedo from static map" - key: "gpu_amip_albedo_static_map" - command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/gpu_amip_albedo_static_map.yml --job_id gpu_amip_albedo_static_map" - artifact_paths: "experiments/ClimaEarth/output/amip/gpu_amip_albedo_static_map/artifacts/*" + - label: "GPU AMIP target: topography and diagnostic EDMF" + key: "gpu_amip_target_topo_diagedmf_shortrun" + command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/amip_target_topo_diagedmf_shortrun.yml --job_id gpu_amip_target_topo_diagedmf_shortrun" + artifact_paths: "experiments/ClimaEarth/output/amip/gpu_amip_target_topo_diagedmf_shortrun/artifacts/*" env: CLIMACOMMS_DEVICE: "CUDA" agents: @@ -437,7 +327,7 @@ steps: - label: "GPU AMIP: albedo from temporal map + 0M" key: "gpu_amip_albedo_temporal_map" - command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/gpu_amip_albedo_temporal_map.yml --job_id gpu_amip_albedo_temporal_map" + command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/amip_albedo_temporal_map.yml --job_id gpu_amip_albedo_temporal_map" artifact_paths: "experiments/ClimaEarth/output/amip/gpu_amip_albedo_temporal_map/artifacts/*" env: CLIMACOMMS_DEVICE: "CUDA" @@ -447,7 +337,7 @@ steps: - label: "GPU AMIP: albedo from temporal map + 1M" key: "gpu_amip_albedo_temporal_map_1M" - command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/gpu_amip_albedo_temporal_map_1M.yml --job_id gpu_amip_albedo_temporal_map_1M" + command: "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_amip.jl --config_file $CONFIG_PATH/amip_albedo_temporal_map_1M.yml --job_id gpu_amip_albedo_temporal_map_1M" artifact_paths: "experiments/ClimaEarth/output/amip/gpu_amip_albedo_temporal_map_1M/artifacts/*" env: CLIMACOMMS_DEVICE: "CUDA" @@ -472,3 +362,59 @@ steps: - build_history staging # name of branch to plot artifact_paths: - "build_history.html" + + - group: "Hierarchy tests (1d)" + steps: + - label: ":construction: Dry Held Suarez" + key: "dry_held_suarez" + command: + - sed 's/t_end = "1000days"/t_end = "1days"/' experiments/ClimaEarth/run_dry_held_suarez.jl > experiments/ClimaEarth/run_dry_held_suarez_short.jl + - "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_dry_held_suarez_short.jl" + artifact_paths: "dry_held_suarez/dry_held_suarez/clima_atmos/*" + agents: + slurm_mem: 20GB + + - label: ":construction: Moist Held Suarez" + key: "moist_held_suarez" + command: + - sed 's/t_end = "1000days"/t_end = "1days"/' experiments/ClimaEarth/run_moist_held_suarez.jl > experiments/ClimaEarth/run_moist_held_suarez_short.jl + - "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_moist_held_suarez_short.jl" + artifact_paths: "moist_held_suarez/moist_held_suarez/clima_atmos/*" + agents: + slurm_mem: 20GB + + - label: ":construction: Cloudless Aquaplanet" + key: "cloudless_aquaplanet" + command: + - sed 's/t_end = "1000days"/t_end = "1days"/' experiments/ClimaEarth/run_cloudless_aquaplanet.jl > experiments/ClimaEarth/run_cloudless_aquaplanet_short.jl + - "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_cloudless_aquaplanet_short.jl" + artifact_paths: "cloudless_aquaplanet/cloudless_aquaplanet/clima_atmos/*" + agents: + slurm_mem: 20GB + + - label: ":construction: Cloudy Aquaplanet" + key: "cloudy_aquaplanet" + command: + - sed 's/t_end = "1000days"/t_end = "1days"/' experiments/ClimaEarth/run_cloudy_aquaplanet.jl > experiments/ClimaEarth/run_cloudy_aquaplanet_short.jl + - "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_cloudy_aquaplanet_short.jl" + artifact_paths: "cloudy_aquaplanet/cloudy_aquaplanet/clima_atmos/*" + agents: + slurm_mem: 20GB + + - label: ":construction: Cloudy Slabplanet" + key: "cloudy_slabplanet" + command: + - sed 's/t_end = "1000days"/t_end = "1days"/' experiments/ClimaEarth/run_cloudy_slabplanet.jl > experiments/ClimaEarth/run_cloudy_slabplanet_short.jl + - "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/run_cloudy_slabplanet_short.jl" + artifact_paths: "cloudy_slabplanet/cloudy_slabplanet/clima_atmos/*" + agents: + slurm_mem: 20GB + + - wait + - label: ":construction: Hierarchy plots" + key: "hierarchy_plots" + command: + - "julia --color=yes --project=experiments/ClimaEarth/ experiments/ClimaEarth/hierarchy/climate_plots.jl" + artifact_paths: "paper_figs/*" + agents: + slurm_mem: 20GB diff --git a/README.md b/README.md index f2a26042da..7eb83f0788 100644 --- a/README.md +++ b/README.md @@ -56,9 +56,9 @@ julia --project=experiments/ClimaEarth experiments/ClimaEarth/run_amip.jl When running from the terminal, you can also specify a configuration file to use for the simulation setup, and a job ID to keep track of this run's output. Existing configuration files are specified in the `config/` directory within ClimaCoupler.jl. -For example, to run a coarse AMIP run using Float64, you could use the following command: +For example, to run the default AMIP configuration, you could use the following command: ```julia -julia --project=experiments/ClimaEarth experiments/ClimaEarth/run_amip.jl --config_file config/ci_configs/coarse_single_ft64.jl --job_id coarse_single_ft64 +julia --project=experiments/ClimaEarth experiments/ClimaEarth/run_amip.jl --config_file config/ci_configs/amip_default.jl --job_id amip_default ``` Output from your run will be saved in the folder `experiments/ClimaEarth/output/amip//` for AMIP runs, or @@ -71,10 +71,10 @@ The output will take up approximately 1GB of space, and the simulation will take while running the driver interactively, you'll need to manually set the values for `parsed_args["config_file"]` and `parsed_args["job_id"]`. ->For example, to use the configuration file found at `config/ci_configs/coarse_single_ft64.yml`, you would use add the following lines in the `run_amip` driver: +>For example, to use the configuration file found at `config/ci_configs/amip_default.yml`, you would use add the following lines in the `run_amip` driver: ``` -parsed_args["config_file"] = "config/ci_configs/coarse_single_ft64.yml" -parsed_args["job_id"] = "coarse_single_ft64" +parsed_args["config_file"] = "config/ci_configs/amip_default.yml" +parsed_args["job_id"] = "amip_default" ``` ### A Note about ClimaComms and MPI @@ -146,3 +146,5 @@ module load common For additional information about these clusters, including how to gain access for the first time, see our slurm-buildkite wiki pages for [Central](https://github.com/CliMA/slurm-buildkite/wiki/Central) and [clima](https://github.com/CliMA/slurm-buildkite/wiki/clima). + +## Buildkite pipelines diff --git a/config/ci_configs/target_amip_albedo_function.yml b/config/ci_configs/amip_albedo_function.yml similarity index 100% rename from config/ci_configs/target_amip_albedo_function.yml rename to config/ci_configs/amip_albedo_function.yml diff --git a/config/ci_configs/gpu_amip_albedo_temporal_map.yml b/config/ci_configs/amip_albedo_temporal_map.yml similarity index 100% rename from config/ci_configs/gpu_amip_albedo_temporal_map.yml rename to config/ci_configs/amip_albedo_temporal_map.yml diff --git a/config/ci_configs/gpu_amip_albedo_temporal_map_1M.yml b/config/ci_configs/amip_albedo_temporal_map_1M.yml similarity index 100% rename from config/ci_configs/gpu_amip_albedo_temporal_map_1M.yml rename to config/ci_configs/amip_albedo_temporal_map_1M.yml diff --git a/config/ci_configs/coarse_single_ft32.yml b/config/ci_configs/amip_coarse_ft32.yml similarity index 100% rename from config/ci_configs/coarse_single_ft32.yml rename to config/ci_configs/amip_coarse_ft32.yml diff --git a/config/ci_configs/coarse_single_ft64_hourly_checkpoints.yml b/config/ci_configs/amip_coarse_ft64_hourly_checkpoints.yml similarity index 100% rename from config/ci_configs/coarse_single_ft64_hourly_checkpoints.yml rename to config/ci_configs/amip_coarse_ft64_hourly_checkpoints.yml diff --git a/config/ci_configs/coarse_single_ft64_hourly_checkpoints_restart.yml b/config/ci_configs/amip_coarse_ft64_hourly_checkpoints_restart.yml similarity index 100% rename from config/ci_configs/coarse_single_ft64_hourly_checkpoints_restart.yml rename to config/ci_configs/amip_coarse_ft64_hourly_checkpoints_restart.yml diff --git a/config/ci_configs/coarse_mpi_n4.yml b/config/ci_configs/amip_coarse_mpi.yml similarity index 100% rename from config/ci_configs/coarse_mpi_n4.yml rename to config/ci_configs/amip_coarse_mpi.yml diff --git a/config/ci_configs/target_amip_component_dts.yml b/config/ci_configs/amip_component_dts.yml similarity index 100% rename from config/ci_configs/target_amip_component_dts.yml rename to config/ci_configs/amip_component_dts.yml diff --git a/config/ci_configs/gpu_amip_albedo_function.yml b/config/ci_configs/amip_default.yml similarity index 90% rename from config/ci_configs/gpu_amip_albedo_function.yml rename to config/ci_configs/amip_default.yml index 99384ab85d..f88629ea37 100644 --- a/config/ci_configs/gpu_amip_albedo_function.yml +++ b/config/ci_configs/amip_default.yml @@ -6,7 +6,6 @@ dt_save_to_sol: "1days" dz_bottom: 30 dz_top: 3000 h_elem: 4 -land_albedo_type: "function" mode_name: "amip" moist: "equil" precip_model: "0M" diff --git a/config/ci_configs/target_amip_n1_shortrun.yml b/config/ci_configs/amip_n1_shortrun.yml similarity index 100% rename from config/ci_configs/target_amip_n1_shortrun.yml rename to config/ci_configs/amip_n1_shortrun.yml diff --git a/config/ci_configs/gpu_amip_target_topo_diagedmf_shortrun.yml b/config/ci_configs/amip_target_topo_diagedmf_shortrun.yml similarity index 100% rename from config/ci_configs/gpu_amip_target_topo_diagedmf_shortrun.yml rename to config/ci_configs/amip_target_topo_diagedmf_shortrun.yml diff --git a/config/ci_configs/coarse_single_ft64.yml b/config/ci_configs/coarse_single_ft64.yml deleted file mode 100644 index 0f7fae7a36..0000000000 --- a/config/ci_configs/coarse_single_ft64.yml +++ /dev/null @@ -1,14 +0,0 @@ -anim: true -apply_limiter: false -dt: "400secs" -dt_cpl: 400 -dt_save_to_sol: "100days" -energy_check: false -h_elem: 6 -mode_name: "amip" -moist: "equil" -mono_surface: false -precip_model: "0M" -rad: "allskywithclear" -t_end: "10days" -vert_diff: "true" diff --git a/config/ci_configs/default_mono.yml b/config/ci_configs/default_mono.yml deleted file mode 100644 index 370c293e01..0000000000 --- a/config/ci_configs/default_mono.yml +++ /dev/null @@ -1,13 +0,0 @@ -apply_limiter: false -dt: "200secs" -dt_cpl: 200 -dt_save_to_sol: "3600secs" -energy_check: true -h_elem: 4 -mode_name: "slabplanet" -moist: "equil" -mono_surface: true -precip_model: "0M" -rad: "gray" -t_end: "10days" -vert_diff: "true" diff --git a/config/ci_configs/default_notmono.yml b/config/ci_configs/default_notmono.yml deleted file mode 100644 index 43b0422200..0000000000 --- a/config/ci_configs/default_notmono.yml +++ /dev/null @@ -1,13 +0,0 @@ -apply_limiter: false -dt: "200secs" -dt_cpl: 200 -dt_save_to_sol: "3600secs" -energy_check: true -h_elem: 4 -mode_name: "slabplanet" -moist: "equil" -mono_surface: false -precip_model: "0M" -rad: "gray" -t_end: "10days" -vert_diff: "true" diff --git a/config/ci_configs/default_unthreaded.yml b/config/ci_configs/default_unthreaded.yml deleted file mode 100644 index 04ee92acd1..0000000000 --- a/config/ci_configs/default_unthreaded.yml +++ /dev/null @@ -1,14 +0,0 @@ -anim: true -apply_limiter: false -dt: "200secs" -dt_cpl: 200 -dt_save_to_sol: "9days" -energy_check: true -h_elem: 4 -mode_name: "slabplanet" -moist: "equil" -mono_surface: true -precip_model: "0M" -rad: "gray" -t_end: "10days" -vert_diff: "true" diff --git a/config/ci_configs/gpu_amip_albedo_static_map.yml b/config/ci_configs/gpu_amip_albedo_static_map.yml deleted file mode 100644 index c998143821..0000000000 --- a/config/ci_configs/gpu_amip_albedo_static_map.yml +++ /dev/null @@ -1,18 +0,0 @@ -apply_limiter: false -dt: "150secs" -dt_cpl: 150 -dt_rad: "1hours" -dt_save_to_sol: "1days" -dz_bottom: 30 -dz_top: 3000 -h_elem: 4 -land_albedo_type: "map_static" -mode_name: "amip" -moist: "equil" -precip_model: "0M" -rad: "gray" -rayleigh_sponge: true -t_end: "300secs" -vert_diff: "true" -z_elem: 50 -z_stretch: false diff --git a/config/ci_configs/regridder_mpi.yml b/config/ci_configs/regridder_mpi.yml deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/config/ci_configs/slabplanet_albedo_static_map.yml b/config/ci_configs/slabplanet_albedo_static_map.yml deleted file mode 100644 index 4a192b93e5..0000000000 --- a/config/ci_configs/slabplanet_albedo_static_map.yml +++ /dev/null @@ -1,14 +0,0 @@ -apply_limiter: false -dt: "200secs" -dt_cpl: 200 -dt_save_to_sol: "3600secs" -energy_check: true -h_elem: 4 -land_albedo_type: "map_static" -mode_name: "slabplanet" -moist: "equil" -mono_surface: true -precip_model: "0M" -rad: "gray" -t_end: "10days" -vert_diff: "true" diff --git a/config/ci_configs/target_params_in_slab_test2.yml b/config/ci_configs/slabplanet_realinsol_rayleigh.yml similarity index 100% rename from config/ci_configs/target_params_in_slab_test2.yml rename to config/ci_configs/slabplanet_realinsol_rayleigh.yml diff --git a/config/ci_configs/target_params_in_slab_test3.yml b/config/ci_configs/target_params_in_slab_test3.yml deleted file mode 100644 index 836dca4296..0000000000 --- a/config/ci_configs/target_params_in_slab_test3.yml +++ /dev/null @@ -1,17 +0,0 @@ -apply_limiter: false -conservation_softfail: true -dt: "200secs" -dt_cpl: 3600 -dt_rad: "6hours" -dt_save_to_sol: "3600secs" -energy_check: true -h_elem: 6 -insolation: "timevarying" -mode_name: "slabplanet" -moist: "equil" -mono_surface: true -precip_model: "0M" -rad: "gray" -rayleigh_sponge: true -t_end: "10days" -vert_diff: "true" diff --git a/experiments/ClimaEarth/run_amip.jl b/experiments/ClimaEarth/run_amip.jl index 49aabd1151..eb414199ba 100644 --- a/experiments/ClimaEarth/run_amip.jl +++ b/experiments/ClimaEarth/run_amip.jl @@ -93,9 +93,9 @@ parsed_args = parse_commandline(argparse_settings()) ## modify parsed args for fast testing from REPL #hide if isinteractive() parsed_args["config_file"] = - isnothing(parsed_args["config_file"]) ? joinpath(pkg_dir, "config/ci_configs/coarse_single_ft32.yml") : #interactive_debug.yml") : + isnothing(parsed_args["config_file"]) ? joinpath(pkg_dir, "config/ci_configs/interactive_debug.yml") : parsed_args["config_file"] - parsed_args["job_id"] = "coarse_single_ft32"#"interactive_debug" + parsed_args["job_id"] = "interactive_debug" end ## the unique job id should be passed in via the command line diff --git a/test/mpi_tests/local_checks.sh b/test/mpi_tests/local_checks.sh index 5ce7210ae8..28660f9772 100644 --- a/test/mpi_tests/local_checks.sh +++ b/test/mpi_tests/local_checks.sh @@ -10,7 +10,7 @@ module purge module load climacommon/2024_10_09 export CC_PATH=$(pwd)/ # adjust this to the path of your ClimaCoupler.jl directory -export JOB_ID=coarse_single_ft64_hourly_checkpoints_restart +export JOB_ID=amip_coarse_ft64_hourly_checkpoints_restart export CONFIG_FILE=${CC_PATH}config/ci_configs/${JOB_ID}.yml export RESTART_DIR=experiments/ClimaEarth/output/amip/${JOB_ID}/artifacts/