From 3ee16827489d19d76cc378c4ceb961b2de8f534a Mon Sep 17 00:00:00 2001 From: Dennis Yatunin Date: Wed, 10 Jul 2024 14:44:20 -0700 Subject: [PATCH] Try using 2 elements --- .buildkite/pipeline.yml | 2116 ++++++++--------- .../box_analytic_cosine_mountain_test.yml | 1 - .../plane_analytic_cosine_mountain_test.yml | 5 +- .../plane_analytic_schar_mountain_test.yml | 5 +- post_processing/ci_plots.jl | 117 +- src/analytic_solutions/analytic_solutions.jl | 8 +- 6 files changed, 1125 insertions(+), 1127 deletions(-) diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index b12990aff8e..03eb3673b4f 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -56,157 +56,157 @@ steps: - wait - - group: "Regression tests" - steps: - - - label: ":computer: Ensure mse tables are reset when necessary" - command: "julia --color=yes --project=examples regression_tests/test_reset.jl" - - - group: "Radiation" - steps: - - - label: ":computer: single column radiative equilibrium gray" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/single_column_radiative_equilibrium_gray.yml - --job_id single_column_radiative_equilibrium_gray - artifact_paths: "single_column_radiative_equilibrium_gray/output_active/*" - - - label: ":computer: single column radiative equilibrium clearsky" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/single_column_radiative_equilibrium_clearsky.yml - --job_id single_column_radiative_equilibrium_clearsky - artifact_paths: "single_column_radiative_equilibrium_clearsky/output_active/*" - - - label: ":computer: single column radiative equilibrium clearsky prognostic surface temperature" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/single_column_radiative_equilibrium_clearsky_prognostic_surface_temp.yml - --job_id single_column_radiative_equilibrium_clearsky_prognostic_surface_temp - artifact_paths: "single_column_radiative_equilibrium_clearsky_prognostic_surface_temp/output_active/*" - - - label: ":computer: single column radiative equilibrium allsky idealized clouds varying insolation" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/single_column_radiative_equilibrium_allsky_idealized_clouds.yml - --job_id single_column_radiative_equilibrium_allsky_idealized_clouds - artifact_paths: "single_column_radiative_equilibrium_allsky_idealized_clouds/output_active/*" - - - group: "Precipitation" - steps: - - label: ":umbrella: 1-moment precipitation sanity test single column" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/single_column_precipitation_test.yml - --job_id single_column_precipitation_test - artifact_paths: "single_column_precipitation_test/output_active/*" - - - group: "Gravity wave" - steps: - - - label: ":computer: non-orographic gravity wave parameterization unit test 3d" - command: "julia --color=yes --project=examples test/parameterized_tendencies/gravity_wave/non_orographic_gravity_wave/nogw_test_3d.jl" - artifact_paths: "nonorographic_gravity_wave_test_3d/*" - agents: - slurm_mem: 20GB - - - label: ":computer: non-orographic gravity wave parameterization test with MiMA output" - command: "julia --color=yes --project=examples test/parameterized_tendencies/gravity_wave/non_orographic_gravity_wave/nogw_test_mima.jl" - artifact_paths: "nonorographic_gravity_wave_test_mima/*" - agents: - slurm_mem: 20GB - - - label: ":computer: non-orographic gravity wave parameterization unit test single column" - command: "julia --color=yes --project=examples test/parameterized_tendencies/gravity_wave/non_orographic_gravity_wave/nogw_test_single_column.jl" - artifact_paths: "nonorographic_gravity_wave_test_single_column/*" - - - label: ":computer: orographic gravity wave parameterization unit test for base flux calculation" - command: "julia --color=yes --project=examples test/parameterized_tendencies/gravity_wave/orographic_gravity_wave/ogwd_baseflux.jl" - artifact_paths: "orographic_gravity_wave_test_baseflux/*" - - - label: ":computer: orographic gravity wave parameterization unit test for 3d calculation" - command: "julia --color=yes --project=examples test/parameterized_tendencies/gravity_wave/orographic_gravity_wave/ogwd_3d.jl" - artifact_paths: "orographic_gravity_wave_test_3d/*" - - - label: ":computer: single column non-orographic gravity wave parameterization" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/single_column_nonorographic_gravity_wave.yml - --job_id single_column_nonorographic_gravity_wave - artifact_paths: "single_column_nonorographic_gravity_wave/*" - - - group: "Column Examples" - steps: - - - label: ":computer: single column hydrostatic balance float64" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/single_column_hydrostatic_balance_ft64.yml - --job_id single_column_hydrostatic_balance_ft64 - artifact_paths: "single_column_hydrostatic_balance_ft64/output_active/*" - - - group: "Box Examples" - steps: - - - label: ":computer: Box hydrostatic balance (ρe_tot)" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/box_hydrostatic_balance_rhoe.yml - --job_id box_hydrostatic_balance_rhoe - artifact_paths: "box_hydrostatic_balance_rhoe/output_active/*" - - - label: ":computer: 3D density current" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/box_density_current_test.yml - --job_id box_density_current_test - artifact_paths: "box_density_current_test/output_active/*" - - - label: ":computer: Box (ρe_tot) rcemipii with diagnostic edmf" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/rcemipii_box_diagnostic_edmfx.yml - --job_id rcemipii_box_diagnostic_edmfx - artifact_paths: "rcemipii_box_diagnostic_edmfx/output_active/*" - soft_fail: true + # - group: "Regression tests" + # steps: + + # - label: ":computer: Ensure mse tables are reset when necessary" + # command: "julia --color=yes --project=examples regression_tests/test_reset.jl" + + # - group: "Radiation" + # steps: + + # - label: ":computer: single column radiative equilibrium gray" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/single_column_radiative_equilibrium_gray.yml + # --job_id single_column_radiative_equilibrium_gray + # artifact_paths: "single_column_radiative_equilibrium_gray/output_active/*" + + # - label: ":computer: single column radiative equilibrium clearsky" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/single_column_radiative_equilibrium_clearsky.yml + # --job_id single_column_radiative_equilibrium_clearsky + # artifact_paths: "single_column_radiative_equilibrium_clearsky/output_active/*" + + # - label: ":computer: single column radiative equilibrium clearsky prognostic surface temperature" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/single_column_radiative_equilibrium_clearsky_prognostic_surface_temp.yml + # --job_id single_column_radiative_equilibrium_clearsky_prognostic_surface_temp + # artifact_paths: "single_column_radiative_equilibrium_clearsky_prognostic_surface_temp/output_active/*" + + # - label: ":computer: single column radiative equilibrium allsky idealized clouds varying insolation" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/single_column_radiative_equilibrium_allsky_idealized_clouds.yml + # --job_id single_column_radiative_equilibrium_allsky_idealized_clouds + # artifact_paths: "single_column_radiative_equilibrium_allsky_idealized_clouds/output_active/*" + + # - group: "Precipitation" + # steps: + # - label: ":umbrella: 1-moment precipitation sanity test single column" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/single_column_precipitation_test.yml + # --job_id single_column_precipitation_test + # artifact_paths: "single_column_precipitation_test/output_active/*" + + # - group: "Gravity wave" + # steps: + + # - label: ":computer: non-orographic gravity wave parameterization unit test 3d" + # command: "julia --color=yes --project=examples test/parameterized_tendencies/gravity_wave/non_orographic_gravity_wave/nogw_test_3d.jl" + # artifact_paths: "nonorographic_gravity_wave_test_3d/*" + # agents: + # slurm_mem: 20GB + + # - label: ":computer: non-orographic gravity wave parameterization test with MiMA output" + # command: "julia --color=yes --project=examples test/parameterized_tendencies/gravity_wave/non_orographic_gravity_wave/nogw_test_mima.jl" + # artifact_paths: "nonorographic_gravity_wave_test_mima/*" + # agents: + # slurm_mem: 20GB + + # - label: ":computer: non-orographic gravity wave parameterization unit test single column" + # command: "julia --color=yes --project=examples test/parameterized_tendencies/gravity_wave/non_orographic_gravity_wave/nogw_test_single_column.jl" + # artifact_paths: "nonorographic_gravity_wave_test_single_column/*" + + # - label: ":computer: orographic gravity wave parameterization unit test for base flux calculation" + # command: "julia --color=yes --project=examples test/parameterized_tendencies/gravity_wave/orographic_gravity_wave/ogwd_baseflux.jl" + # artifact_paths: "orographic_gravity_wave_test_baseflux/*" + + # - label: ":computer: orographic gravity wave parameterization unit test for 3d calculation" + # command: "julia --color=yes --project=examples test/parameterized_tendencies/gravity_wave/orographic_gravity_wave/ogwd_3d.jl" + # artifact_paths: "orographic_gravity_wave_test_3d/*" + + # - label: ":computer: single column non-orographic gravity wave parameterization" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/single_column_nonorographic_gravity_wave.yml + # --job_id single_column_nonorographic_gravity_wave + # artifact_paths: "single_column_nonorographic_gravity_wave/*" + + # - group: "Column Examples" + # steps: + + # - label: ":computer: single column hydrostatic balance float64" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/single_column_hydrostatic_balance_ft64.yml + # --job_id single_column_hydrostatic_balance_ft64 + # artifact_paths: "single_column_hydrostatic_balance_ft64/output_active/*" + + # - group: "Box Examples" + # steps: + + # - label: ":computer: Box hydrostatic balance (ρe_tot)" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/box_hydrostatic_balance_rhoe.yml + # --job_id box_hydrostatic_balance_rhoe + # artifact_paths: "box_hydrostatic_balance_rhoe/output_active/*" + + # - label: ":computer: 3D density current" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/box_density_current_test.yml + # --job_id box_density_current_test + # artifact_paths: "box_density_current_test/output_active/*" + + # - label: ":computer: Box (ρe_tot) rcemipii with diagnostic edmf" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/rcemipii_box_diagnostic_edmfx.yml + # --job_id rcemipii_box_diagnostic_edmfx + # artifact_paths: "rcemipii_box_diagnostic_edmfx/output_active/*" + # soft_fail: true - group: "Plane Examples" steps: - - label: ":computer: Agnesi linear hydrostatic mountain experiment (uniform)" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/plane_agnesi_mountain_test_uniform.yml - --job_id plane_agnesi_mountain_test_uniform - artifact_paths: "plane_agnesi_mountain_test_uniform/output_active/*" + # - label: ":computer: Agnesi linear hydrostatic mountain experiment (uniform)" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/plane_agnesi_mountain_test_uniform.yml + # --job_id plane_agnesi_mountain_test_uniform + # artifact_paths: "plane_agnesi_mountain_test_uniform/output_active/*" - - label: ":computer: Agnesi linear hydrostatic mountain experiment (stretched)" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/plane_agnesi_mountain_test_stretched.yml - --job_id plane_agnesi_mountain_test_stretched - artifact_paths: "plane_agnesi_mountain_test_stretched/output_active/*" + # - label: ":computer: Agnesi linear hydrostatic mountain experiment (stretched)" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/plane_agnesi_mountain_test_stretched.yml + # --job_id plane_agnesi_mountain_test_stretched + # artifact_paths: "plane_agnesi_mountain_test_stretched/output_active/*" - - label: ":computer: Schar mountain experiment (uniform grid)" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/plane_schar_mountain_test_uniform.yml - --job_id plane_schar_mountain_test_uniform - artifact_paths: "plane_schar_mountain_test_uniform/output_active/*" + # - label: ":computer: Schar mountain experiment (uniform grid)" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/plane_schar_mountain_test_uniform.yml + # --job_id plane_schar_mountain_test_uniform + # artifact_paths: "plane_schar_mountain_test_uniform/output_active/*" - - label: ":computer: Schar mountain experiment (stretched grid)" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/plane_schar_mountain_test_stretched.yml - --job_id plane_schar_mountain_test_stretched - artifact_paths: "plane_schar_mountain_test_stretched/output_active/*" + # - label: ":computer: Schar mountain experiment (stretched grid)" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/plane_schar_mountain_test_stretched.yml + # --job_id plane_schar_mountain_test_stretched + # artifact_paths: "plane_schar_mountain_test_stretched/output_active/*" - - label: ":computer: Density current experiment" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/plane_density_current_test.yml - --job_id plane_density_current_test - artifact_paths: "plane_density_current_test/output_active/*" + # - label: ":computer: Density current experiment" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/plane_density_current_test.yml + # --job_id plane_density_current_test + # artifact_paths: "plane_density_current_test/output_active/*" - label: ":computer: Analytic Cosine Mountain Test (2D)" command: > @@ -215,690 +215,690 @@ steps: --job_id plane_analytic_cosine_mountain_test artifact_paths: "plane_analytic_cosine_mountain_test/output_active/*" - - group: "Sphere Examples (Dycore)" - steps: - - - label: ":computer: hydrostatic balance (ρe) float64" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/sphere_hydrostatic_balance_rhoe_ft64.yml - --job_id sphere_hydrostatic_balance_rhoe_ft64 - artifact_paths: "sphere_hydrostatic_balance_rhoe_ft64/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":computer: baroclinic wave (ρe)" - key: sphere_baroclinic_wave_rhoe - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/sphere_baroclinic_wave_rhoe.yml - --job_id sphere_baroclinic_wave_rhoe - artifact_paths: "sphere_baroclinic_wave_rhoe/output_active/*" - - - label: ":computer: no lim ARS baroclinic wave (ρe) equilmoist" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/sphere_baroclinic_wave_rhoe_equilmoist.yml - --job_id sphere_baroclinic_wave_rhoe_equilmoist - - julia --color=yes --project=examples regression_tests/test_mse.jl - --job_id sphere_baroclinic_wave_rhoe_equilmoist - --out_dir sphere_baroclinic_wave_rhoe_equilmoist/output_active - artifact_paths: "sphere_baroclinic_wave_rhoe_equilmoist/output_active/*" - agents: - slurm_constraint: icelake|cascadelake|skylake|epyc - - - label: ":computer: no lim ARS baroclinic wave (ρe) equilmoist (deep sphere)" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/deep_sphere_baroclinic_wave_rhoe_equilmoist.yml - --job_id deep_sphere_baroclinic_wave_rhoe_equilmoist - - julia --color=yes --project=examples regression_tests/test_mse.jl - --job_id deep_sphere_baroclinic_wave_rhoe_equilmoist - --out_dir deep_sphere_baroclinic_wave_rhoe_equilmoist/output_active - artifact_paths: "deep_sphere_baroclinic_wave_rhoe_equilmoist/output_active/*" - agents: - slurm_constraint: icelake|cascadelake|skylake|epyc - - # Add this back when we figure out what to do with SSP and zalesak - # - label: ":computer: SSP zalesak tracer & energy upwind baroclinic wave (ρe_tot) equilmoist" - # command: > - # julia --color=yes --project=examples examples/hybrid/driver.jl - # --config_file $CONFIG_PATH/$$JOB_NAME.yml - # --job_id JOB_NAME - # artifact_paths: "$$JOB_NAME/output_active/*" - # agents: - # slurm_mem: 64GB - # env: - # JOB_NAME: "sphere_zalesak_upwind_tracer_energy_ssp_baroclinic_wave_rhoe_equilmoist" - - - label: ":computer: no lim ARS baroclinic wave (ρe) equilmoist check conservation float64" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl --config_file $CONFIG_PATH/sphere_baroclinic_wave_rhoe_equilmoist_conservation_ft64.yml - --job_id sphere_baroclinic_wave_rhoe_equilmoist_conservation_ft64 - artifact_paths: "sphere_baroclinic_wave_rhoe_equilmoist_conservation_ft64/output_active/*" - - - label: ":computer: held suarez (ρe) hightop" - key: sphere_held_suarez_rhoe_hightop - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/sphere_held_suarez_rhoe_hightop.yml - --job_id sphere_held_suarez_rhoe_hightop - artifact_paths: "sphere_held_suarez_rhoe_hightop/output_active/*" - - - label: ":computer: no lim ARS held suarez (ρe) equilmoist hightop sponge" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/sphere_held_suarez_rhoe_equilmoist_hightop_sponge.yml - --job_id sphere_held_suarez_rhoe_equilmoist_hightop_sponge - - julia --color=yes --project=examples regression_tests/test_mse.jl - --job_id sphere_held_suarez_rhoe_equilmoist_hightop_sponge - --out_dir sphere_held_suarez_rhoe_equilmoist_hightop_sponge/output_active - artifact_paths: "sphere_held_suarez_rhoe_equilmoist_hightop_sponge/output_active/*" - agents: - slurm_constraint: icelake|cascadelake|skylake|epyc - - - group: "Sphere Examples (Aquaplanet)" - steps: - - - label: ":umbrella: aquaplanet (ρe_tot) equil allsky monin_obukhov varying insol gravity wave (gfdl_restart) high top 1-moment" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/sphere_aquaplanet_rhoe_equilmoist_allsky_gw_res.yml - --job_id sphere_aquaplanet_rhoe_equilmoist_allsky_gw_res - artifact_paths: "sphere_aquaplanet_rhoe_equilmoist_allsky_gw_res/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":computer: aquaplanet (ρe_tot) equil allsky monin_obukhov varying insol gravity wave (raw_topo) high top zonally asymmetric" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/sphere_aquaplanet_rhoe_equilmoist_allsky_gw_raw_zonallyasymmetric.yml - --job_id sphere_aquaplanet_rhoe_equilmoist_allsky_gw_raw_zonallyasymmetric - - julia --color=yes --project=examples regression_tests/test_mse.jl - --job_id sphere_aquaplanet_rhoe_equilmoist_allsky_gw_raw_zonallyasymmetric - --out_dir sphere_aquaplanet_rhoe_equilmoist_allsky_gw_raw_zonallyasymmetric/output_active - artifact_paths: "sphere_aquaplanet_rhoe_equilmoist_allsky_gw_raw_zonallyasymmetric/output_active/*" - agents: - slurm_mem: 20GB - slurm_constraint: icelake|cascadelake|skylake|epyc - - - label: ":computer: aquaplanet (ρe_tot) nonequilmoist allsky radiation monin_obukhov varying insolation high top 1-moment" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/sphere_aquaplanet_rhoe_nonequilmoist_allsky.yml - --job_id sphere_aquaplanet_rhoe_nonequilmoist_allsky - artifact_paths: "sphere_aquaplanet_rhoe_nonequilmoist_allsky/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":computer: aquaplanet (ρe_tot) slabocean equilmoist allsky radiation monin_obukhov varying insolation" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/aquaplanet_rhoe_equil_clearsky_tvinsol_0M_slabocean.yml - --job_id aquaplanet_rhoe_equil_clearsky_tvinsol_0M_slabocean - artifact_paths: "aquaplanet_rhoe_equil_clearsky_tvinsol_0M_slabocean/output_active/*" - agents: - slurm_mem: 20GB + # - group: "Sphere Examples (Dycore)" + # steps: + + # - label: ":computer: hydrostatic balance (ρe) float64" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/sphere_hydrostatic_balance_rhoe_ft64.yml + # --job_id sphere_hydrostatic_balance_rhoe_ft64 + # artifact_paths: "sphere_hydrostatic_balance_rhoe_ft64/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":computer: baroclinic wave (ρe)" + # key: sphere_baroclinic_wave_rhoe + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/sphere_baroclinic_wave_rhoe.yml + # --job_id sphere_baroclinic_wave_rhoe + # artifact_paths: "sphere_baroclinic_wave_rhoe/output_active/*" + + # - label: ":computer: no lim ARS baroclinic wave (ρe) equilmoist" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/sphere_baroclinic_wave_rhoe_equilmoist.yml + # --job_id sphere_baroclinic_wave_rhoe_equilmoist + + # julia --color=yes --project=examples regression_tests/test_mse.jl + # --job_id sphere_baroclinic_wave_rhoe_equilmoist + # --out_dir sphere_baroclinic_wave_rhoe_equilmoist/output_active + # artifact_paths: "sphere_baroclinic_wave_rhoe_equilmoist/output_active/*" + # agents: + # slurm_constraint: icelake|cascadelake|skylake|epyc + + # - label: ":computer: no lim ARS baroclinic wave (ρe) equilmoist (deep sphere)" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/deep_sphere_baroclinic_wave_rhoe_equilmoist.yml + # --job_id deep_sphere_baroclinic_wave_rhoe_equilmoist + + # julia --color=yes --project=examples regression_tests/test_mse.jl + # --job_id deep_sphere_baroclinic_wave_rhoe_equilmoist + # --out_dir deep_sphere_baroclinic_wave_rhoe_equilmoist/output_active + # artifact_paths: "deep_sphere_baroclinic_wave_rhoe_equilmoist/output_active/*" + # agents: + # slurm_constraint: icelake|cascadelake|skylake|epyc + + # # Add this back when we figure out what to do with SSP and zalesak + # # - label: ":computer: SSP zalesak tracer & energy upwind baroclinic wave (ρe_tot) equilmoist" + # # command: > + # # julia --color=yes --project=examples examples/hybrid/driver.jl + # # --config_file $CONFIG_PATH/$$JOB_NAME.yml + # # --job_id JOB_NAME + # # artifact_paths: "$$JOB_NAME/output_active/*" + # # agents: + # # slurm_mem: 64GB + # # env: + # # JOB_NAME: "sphere_zalesak_upwind_tracer_energy_ssp_baroclinic_wave_rhoe_equilmoist" + + # - label: ":computer: no lim ARS baroclinic wave (ρe) equilmoist check conservation float64" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl --config_file $CONFIG_PATH/sphere_baroclinic_wave_rhoe_equilmoist_conservation_ft64.yml + # --job_id sphere_baroclinic_wave_rhoe_equilmoist_conservation_ft64 + # artifact_paths: "sphere_baroclinic_wave_rhoe_equilmoist_conservation_ft64/output_active/*" + + # - label: ":computer: held suarez (ρe) hightop" + # key: sphere_held_suarez_rhoe_hightop + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/sphere_held_suarez_rhoe_hightop.yml + # --job_id sphere_held_suarez_rhoe_hightop + # artifact_paths: "sphere_held_suarez_rhoe_hightop/output_active/*" + + # - label: ":computer: no lim ARS held suarez (ρe) equilmoist hightop sponge" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/sphere_held_suarez_rhoe_equilmoist_hightop_sponge.yml + # --job_id sphere_held_suarez_rhoe_equilmoist_hightop_sponge + + # julia --color=yes --project=examples regression_tests/test_mse.jl + # --job_id sphere_held_suarez_rhoe_equilmoist_hightop_sponge + # --out_dir sphere_held_suarez_rhoe_equilmoist_hightop_sponge/output_active + # artifact_paths: "sphere_held_suarez_rhoe_equilmoist_hightop_sponge/output_active/*" + # agents: + # slurm_constraint: icelake|cascadelake|skylake|epyc + + # - group: "Sphere Examples (Aquaplanet)" + # steps: + + # - label: ":umbrella: aquaplanet (ρe_tot) equil allsky monin_obukhov varying insol gravity wave (gfdl_restart) high top 1-moment" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/sphere_aquaplanet_rhoe_equilmoist_allsky_gw_res.yml + # --job_id sphere_aquaplanet_rhoe_equilmoist_allsky_gw_res + # artifact_paths: "sphere_aquaplanet_rhoe_equilmoist_allsky_gw_res/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":computer: aquaplanet (ρe_tot) equil allsky monin_obukhov varying insol gravity wave (raw_topo) high top zonally asymmetric" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/sphere_aquaplanet_rhoe_equilmoist_allsky_gw_raw_zonallyasymmetric.yml + # --job_id sphere_aquaplanet_rhoe_equilmoist_allsky_gw_raw_zonallyasymmetric + + # julia --color=yes --project=examples regression_tests/test_mse.jl + # --job_id sphere_aquaplanet_rhoe_equilmoist_allsky_gw_raw_zonallyasymmetric + # --out_dir sphere_aquaplanet_rhoe_equilmoist_allsky_gw_raw_zonallyasymmetric/output_active + # artifact_paths: "sphere_aquaplanet_rhoe_equilmoist_allsky_gw_raw_zonallyasymmetric/output_active/*" + # agents: + # slurm_mem: 20GB + # slurm_constraint: icelake|cascadelake|skylake|epyc + + # - label: ":computer: aquaplanet (ρe_tot) nonequilmoist allsky radiation monin_obukhov varying insolation high top 1-moment" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/sphere_aquaplanet_rhoe_nonequilmoist_allsky.yml + # --job_id sphere_aquaplanet_rhoe_nonequilmoist_allsky + # artifact_paths: "sphere_aquaplanet_rhoe_nonequilmoist_allsky/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":computer: aquaplanet (ρe_tot) slabocean equilmoist allsky radiation monin_obukhov varying insolation" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/aquaplanet_rhoe_equil_clearsky_tvinsol_0M_slabocean.yml + # --job_id aquaplanet_rhoe_equil_clearsky_tvinsol_0M_slabocean + # artifact_paths: "aquaplanet_rhoe_equil_clearsky_tvinsol_0M_slabocean/output_active/*" + # agents: + # slurm_mem: 20GB - - label: ":computer: aquaplanet (ρe_tot) rcemipii with diagnostic edmf" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/rcemipii_sphere_diagnostic_edmfx.yml - --job_id rcemipii_sphere_diagnostic_edmfx - artifact_paths: "rcemipii_sphere_diagnostic_edmfx/output_active/*" - agents: - slurm_mem: 20GB - - - group: "Sphere Examples (Topography)" - steps: - - - label: ":computer: baroclinic wave (ρe) topography (dcmip)" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/sphere_baroclinic_wave_rhoe_topography_dcmip_rs.yml - --job_id sphere_baroclinic_wave_rhoe_topography_dcmip_rs - artifact_paths: "sphere_baroclinic_wave_rhoe_topography_dcmip_rs/output_active/*" - - - label: ":computer: held suarez (ρe) topography (dcmip)" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/sphere_held_suarez_rhoe_topography_dcmip.yml - --job_id sphere_held_suarez_rhoe_topography_dcmip - artifact_paths: "sphere_held_suarez_rhoe_topography_dcmip/output_active/*" - - - label: ":computer: held suarez (ρe) equilmoist topography (dcmip)" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/sphere_held_suarez_rhoe_equilmoist_topography_dcmip.yml - --job_id sphere_held_suarez_rhoe_equilmoist_topography_dcmip - artifact_paths: "sphere_held_suarez_rhoe_equilmoist_topography_dcmip/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":computer: Diagnostic DCMIP200 surface elevation spectra" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/sphere_ssp_baroclinic_wave_rhoe_equilmoist_dcmip200.yml - --job_id sphere_ssp_baroclinic_wave_rhoe_equilmoist_dcmip200 - artifact_paths: "sphere_ssp_baroclinic_wave_rhoe_equilmoist_dcmip200/output_active/*" - - - label: ":computer: Diagnostic Earth surface elevation spectra" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/sphere_ssp_baroclinic_wave_rhoe_equilmoist_earth.yml - --job_id sphere_ssp_baroclinic_wave_rhoe_equilmoist_earth - artifact_paths: "sphere_ssp_baroclinic_wave_rhoe_equilmoist_earth/output_active/*" - - - group: "MPI Examples" - steps: - - - label: ":computer: Prep restart for MPI" - key: "mpi_baro_wave_make_restart" - command: > - srun julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $MPI_CONFIG_PATH/mpi_make_restart.yml - --job_id mpi_make_restart - artifact_paths: "mpi_make_restart/output_active/*" - env: - CLIMACOMMS_CONTEXT: "MPI" - agents: - slurm_ntasks: 2 - slurm_mem: 16G - - - label: ":computer: Test restart for MPI baroclinic wave" - key: "restart_mpi_baro_wave" - depends_on: "mpi_baro_wave_make_restart" - command: > - tar xvf mpi_make_restart/output_active/hdf5_files.tar -C mpi_make_restart/output_active - - srun julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $MPI_CONFIG_PATH/restart_mpi_baroclinic_wave_rhoe.yml - --job_id restart_mpi_baroclinic_wave_rhoe - artifact_paths: "restart_mpi_baroclinic_wave_rhoe/output_active/*" - env: - CLIMACOMMS_CONTEXT: "MPI" - agents: - slurm_ntasks: 2 - slurm_mem: 16G - timeout_in_minutes: 20 - soft_fail: true - #retry: - # automatic: true - - - label: ":computer: MPI no lim ARS aquaplanet (ρe) equilmoist clearsky radiation" - command: > - srun julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $MPI_CONFIG_PATH/mpi_sphere_aquaplanet_rhoe_equilmoist_clearsky.yml - --job_id mpi_sphere_aquaplanet_rhoe_equilmoist_clearsky - artifact_paths: "mpi_sphere_aquaplanet_rhoe_equilmoist_clearsky/output_active/*" - env: - CLIMACOMMS_CONTEXT: "MPI" - agents: - slurm_ntasks: 2 - slurm_mem: 16GB - - - label: ":computer: Prep for calling remap pipeline" - key: "prep_remap" - command: > - srun julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $MPI_CONFIG_PATH/prep_remap.yml - --job_id prep_remap - artifact_paths: "prep_remap/output_active/*" - env: - CLIMACOMMS_CONTEXT: "MPI" - agents: - slurm_ntasks: 2 - slurm_mem: 16G - - - label: ":computer: Exercise remap pipeline" - key: "remap_pipeline" - depends_on: "prep_remap" - command: > - tar xvf prep_remap/output_active/hdf5_files.tar -C prep_remap/output_active - - julia --color=yes --project=examples post_processing/remap/remap_pipeline.jl - --data_dir prep_remap/output_active --out_dir remap_pipeline_output - artifact_paths: "remap_pipeline_output/*" - - - group: "Configs" - steps: - - - label: ":computer: Test IO" - command: > - julia --color=yes --project=examples --threads=8 examples/hybrid/driver.jl - --config_file $CONFIG_PATH/test_io.yml - --job_id test_io - artifact_paths: "test_io/output_active/*" - agents: - slurm_cpus_per_task: 8 - - - label: ":computer: MPI io test" - command: > - srun julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/test_mpi_io.yml - --job_id test_mpi_io - artifact_paths: "test_mpi_io/output_active/*" - env: - CLIMACOMMS_CONTEXT: "MPI" - agents: - slurm_ntasks: 2 - slurm_mem: 16G - - # TODO: we should somehow decouple this unit test from the perf env / scripts - - label: ":computer: checkbounds" - command: > - julia --color=yes --check-bounds=yes --project=perf perf/benchmark.jl - --config_file $PERF_CONFIG_PATH/checkbounds.yml - --job_id checkbounds - artifact_paths: "checkbounds/output_active/*" - agents: - slurm_mem: 20GB - - - group: "Calibration" - steps: - - label: "Calibration interface unit tests" - command: julia --project=calibration/test calibration/test/interface.jl - - label: "end to end test" - command: julia --project=calibration/test calibration/test/e2e_test.jl - artifact_paths: "calibration_end_to_end_test/*" - - - group: "Diagnostic EDMFX" - steps: - - - label: ":genie: Diagnostic EDMFX test in a box" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/diagnostic_edmfx_test_box.yml - --job_id diagnostic_edmfx_test_box - artifact_paths: "diagnostic_edmfx_test_box/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Diagnostic EDMFX GABLS in a box" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/diagnostic_edmfx_gabls_box.yml - --job_id diagnostic_edmfx_gabls_box - artifact_paths: "diagnostic_edmfx_gabls_box/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Diagnostic EDMFX Bomex in a box" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/diagnostic_edmfx_bomex_box.yml - --job_id diagnostic_edmfx_bomex_box - artifact_paths: "diagnostic_edmfx_bomex_box/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Diagnostic EDMFX Bomex stretched grid in a box" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/diagnostic_edmfx_bomex_stretched_box.yml - --job_id diagnostic_edmfx_bomex_stretched_box - artifact_paths: "diagnostic_edmfx_bomex_stretched_box/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Diagnostic EDMFX DYCOMS_RF01 in a box (explicit)" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/diagnostic_edmfx_dycoms_rf01_explicit_box.yml - --job_id diagnostic_edmfx_dycoms_rf01_explicit_box - artifact_paths: "diagnostic_edmfx_dycoms_rf01_explicit_box/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Diagnostic EDMFX DYCOMS_RF01 in a box" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/diagnostic_edmfx_dycoms_rf01_box.yml - --job_id diagnostic_edmfx_dycoms_rf01_box - artifact_paths: "diagnostic_edmfx_dycoms_rf01_box/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":umbrella: Diagnostic EDMFX DYCOMS_RF02 in a box" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/diagnostic_edmfx_dycoms_rf02_box.yml - --job_id diagnostic_edmfx_dycoms_rf02_box - artifact_paths: "diagnostic_edmfx_dycoms_rf02_box/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":umbrella: Diagnostic EDMFX Rico in a box" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/diagnostic_edmfx_rico_box.yml - --job_id diagnostic_edmfx_rico_box - artifact_paths: "diagnostic_edmfx_rico_box/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":umbrella: Diagnostic EDMFX TRMM in a box" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/diagnostic_edmfx_trmm_box.yml - --job_id diagnostic_edmfx_trmm_box - artifact_paths: "diagnostic_edmfx_trmm_box/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":umbrella: Diagnostic EDMFX TRMM stretched grid in a box" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/diagnostic_edmfx_trmm_stretched_box.yml - --job_id diagnostic_edmfx_trmm_stretched_box - artifact_paths: "diagnostic_edmfx_trmm_stretched_box/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Diagnostic EDMFX TRMM 0M in a box" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/diagnostic_edmfx_trmm_box_0M.yml - --job_id diagnostic_edmfx_trmm_box_0M - artifact_paths: "diagnostic_edmfx_trmm_box_0M/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Diagnostic EDMFX aquaplanet with TKE" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/diagnostic_edmfx_aquaplanet.yml - --job_id diagnostic_edmfx_aquaplanet - - julia --color=yes --project=examples regression_tests/test_mse.jl - --job_id diagnostic_edmfx_aquaplanet - --out_dir diagnostic_edmfx_aquaplanet/output_active - artifact_paths: "diagnostic_edmfx_aquaplanet/output_active/*" - agents: - slurm_mem: 20GB - slurm_constraint: icelake|cascadelake|skylake|epyc - - - group: "Prognostic EDMFX" - steps: - - - label: ":genie: Prognostic EDMFX advection test in a column" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/prognostic_edmfx_adv_test_column.yml - --job_id prognostic_edmfx_adv_test_column - artifact_paths: "prognostic_edmfx_adv_test_column/output_active/*" - - agents: - slurm_mem: 20GB - - - label: ":genie: Prognostic EDMFX simple plume test in a column" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/prognostic_edmfx_simpleplume_column.yml - --job_id prognostic_edmfx_simpleplume_column - artifact_paths: "prognostic_edmfx_simpleplume_column/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Prognostic EDMFX GABLS in a column" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/prognostic_edmfx_gabls_column.yml - --job_id prognostic_edmfx_gabls_column - artifact_paths: "prognostic_edmfx_gabls_column/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Prognostic EDMFX Bomex in a column (pi group)" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/prognostic_edmfx_bomex_pigroup_column.yml - --job_id prognostic_edmfx_bomex_pigroup_column - artifact_paths: "prognostic_edmfx_bomex_pigroup_column/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Prognostic EDMFX Bomex with precribed TKE in a column" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/prognostic_edmfx_bomex_fixtke_column.yml - --job_id prognostic_edmfx_bomex_fixtke_column - artifact_paths: "prognostic_edmfx_bomex_fixtke_column/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Prognostic EDMFX Bomex stretched grid in a column" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/prognostic_edmfx_bomex_stretched_column.yml - --job_id prognostic_edmfx_bomex_stretched_column - artifact_paths: "prognostic_edmfx_bomex_stretched_column/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Prognostic EDMFX Bomex in a column" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/prognostic_edmfx_bomex_column.yml - --job_id prognostic_edmfx_bomex_column - artifact_paths: "prognostic_edmfx_bomex_column/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Prognostic EDMFX Bomex in a column (implicit)" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/prognostic_edmfx_bomex_implicit_column.yml - --job_id prognostic_edmfx_bomex_column_implicit - artifact_paths: "prognostic_edmfx_bomex_column_implicit/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Prognostic EDMFX Dycoms RF01 in a column" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/prognostic_edmfx_dycoms_rf01_column.yml - --job_id prognostic_edmfx_dycoms_rf01_column - artifact_paths: "prognostic_edmfx_dycoms_rf01_column/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":umbrella: Prognostic EDMFX Rico in a column" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/prognostic_edmfx_rico_column.yml - --job_id prognostic_edmfx_rico_column - artifact_paths: "prognostic_edmfx_rico_column/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":umbrella: Prognostic EDMFX TRMM in a column" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/prognostic_edmfx_trmm_column.yml - --job_id prognostic_edmfx_trmm_column - artifact_paths: "prognostic_edmfx_trmm_column/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Prognostic EDMFX TRMM with 0-moment in a column" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/prognostic_edmfx_trmm_column_0M.yml - --job_id prognostic_edmfx_trmm_column_0M - artifact_paths: "prognostic_edmfx_trmm_column_0M/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Prognostic EDMFX GCM driven in a column" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/prognostic_edmfx_gcmdriven_column.yml - --job_id prognostic_edmfx_gcmdriven_column - artifact_paths: "prognostic_edmfx_gcmdriven_column/output_active/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Prognostic EDMFX Bomex in a box" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/prognostic_edmfx_bomex_box.yml - --job_id prognostic_edmfx_bomex_box - artifact_paths: "prognostic_edmfx_bomex_box/*" - agents: - slurm_mem: 20GB - - - label: ":genie: Prognostic EDMFX aquaplanet" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/prognostic_edmfx_aquaplanet.yml - --job_id prognostic_edmfx_aquaplanet - artifact_paths: "prognostic_edmfx_aquaplanet/output_active/*" - agents: - slurm_mem: 20GB + # - label: ":computer: aquaplanet (ρe_tot) rcemipii with diagnostic edmf" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/rcemipii_sphere_diagnostic_edmfx.yml + # --job_id rcemipii_sphere_diagnostic_edmfx + # artifact_paths: "rcemipii_sphere_diagnostic_edmfx/output_active/*" + # agents: + # slurm_mem: 20GB + + # - group: "Sphere Examples (Topography)" + # steps: + + # - label: ":computer: baroclinic wave (ρe) topography (dcmip)" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/sphere_baroclinic_wave_rhoe_topography_dcmip_rs.yml + # --job_id sphere_baroclinic_wave_rhoe_topography_dcmip_rs + # artifact_paths: "sphere_baroclinic_wave_rhoe_topography_dcmip_rs/output_active/*" + + # - label: ":computer: held suarez (ρe) topography (dcmip)" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/sphere_held_suarez_rhoe_topography_dcmip.yml + # --job_id sphere_held_suarez_rhoe_topography_dcmip + # artifact_paths: "sphere_held_suarez_rhoe_topography_dcmip/output_active/*" + + # - label: ":computer: held suarez (ρe) equilmoist topography (dcmip)" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/sphere_held_suarez_rhoe_equilmoist_topography_dcmip.yml + # --job_id sphere_held_suarez_rhoe_equilmoist_topography_dcmip + # artifact_paths: "sphere_held_suarez_rhoe_equilmoist_topography_dcmip/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":computer: Diagnostic DCMIP200 surface elevation spectra" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/sphere_ssp_baroclinic_wave_rhoe_equilmoist_dcmip200.yml + # --job_id sphere_ssp_baroclinic_wave_rhoe_equilmoist_dcmip200 + # artifact_paths: "sphere_ssp_baroclinic_wave_rhoe_equilmoist_dcmip200/output_active/*" + + # - label: ":computer: Diagnostic Earth surface elevation spectra" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/sphere_ssp_baroclinic_wave_rhoe_equilmoist_earth.yml + # --job_id sphere_ssp_baroclinic_wave_rhoe_equilmoist_earth + # artifact_paths: "sphere_ssp_baroclinic_wave_rhoe_equilmoist_earth/output_active/*" + + # - group: "MPI Examples" + # steps: + + # - label: ":computer: Prep restart for MPI" + # key: "mpi_baro_wave_make_restart" + # command: > + # srun julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $MPI_CONFIG_PATH/mpi_make_restart.yml + # --job_id mpi_make_restart + # artifact_paths: "mpi_make_restart/output_active/*" + # env: + # CLIMACOMMS_CONTEXT: "MPI" + # agents: + # slurm_ntasks: 2 + # slurm_mem: 16G + + # - label: ":computer: Test restart for MPI baroclinic wave" + # key: "restart_mpi_baro_wave" + # depends_on: "mpi_baro_wave_make_restart" + # command: > + # tar xvf mpi_make_restart/output_active/hdf5_files.tar -C mpi_make_restart/output_active + + # srun julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $MPI_CONFIG_PATH/restart_mpi_baroclinic_wave_rhoe.yml + # --job_id restart_mpi_baroclinic_wave_rhoe + # artifact_paths: "restart_mpi_baroclinic_wave_rhoe/output_active/*" + # env: + # CLIMACOMMS_CONTEXT: "MPI" + # agents: + # slurm_ntasks: 2 + # slurm_mem: 16G + # timeout_in_minutes: 20 + # soft_fail: true + # #retry: + # # automatic: true + + # - label: ":computer: MPI no lim ARS aquaplanet (ρe) equilmoist clearsky radiation" + # command: > + # srun julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $MPI_CONFIG_PATH/mpi_sphere_aquaplanet_rhoe_equilmoist_clearsky.yml + # --job_id mpi_sphere_aquaplanet_rhoe_equilmoist_clearsky + # artifact_paths: "mpi_sphere_aquaplanet_rhoe_equilmoist_clearsky/output_active/*" + # env: + # CLIMACOMMS_CONTEXT: "MPI" + # agents: + # slurm_ntasks: 2 + # slurm_mem: 16GB + + # - label: ":computer: Prep for calling remap pipeline" + # key: "prep_remap" + # command: > + # srun julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $MPI_CONFIG_PATH/prep_remap.yml + # --job_id prep_remap + # artifact_paths: "prep_remap/output_active/*" + # env: + # CLIMACOMMS_CONTEXT: "MPI" + # agents: + # slurm_ntasks: 2 + # slurm_mem: 16G + + # - label: ":computer: Exercise remap pipeline" + # key: "remap_pipeline" + # depends_on: "prep_remap" + # command: > + # tar xvf prep_remap/output_active/hdf5_files.tar -C prep_remap/output_active + + # julia --color=yes --project=examples post_processing/remap/remap_pipeline.jl + # --data_dir prep_remap/output_active --out_dir remap_pipeline_output + # artifact_paths: "remap_pipeline_output/*" + + # - group: "Configs" + # steps: + + # - label: ":computer: Test IO" + # command: > + # julia --color=yes --project=examples --threads=8 examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/test_io.yml + # --job_id test_io + # artifact_paths: "test_io/output_active/*" + # agents: + # slurm_cpus_per_task: 8 + + # - label: ":computer: MPI io test" + # command: > + # srun julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/test_mpi_io.yml + # --job_id test_mpi_io + # artifact_paths: "test_mpi_io/output_active/*" + # env: + # CLIMACOMMS_CONTEXT: "MPI" + # agents: + # slurm_ntasks: 2 + # slurm_mem: 16G + + # # TODO: we should somehow decouple this unit test from the perf env / scripts + # - label: ":computer: checkbounds" + # command: > + # julia --color=yes --check-bounds=yes --project=perf perf/benchmark.jl + # --config_file $PERF_CONFIG_PATH/checkbounds.yml + # --job_id checkbounds + # artifact_paths: "checkbounds/output_active/*" + # agents: + # slurm_mem: 20GB + + # - group: "Calibration" + # steps: + # - label: "Calibration interface unit tests" + # command: julia --project=calibration/test calibration/test/interface.jl + # - label: "end to end test" + # command: julia --project=calibration/test calibration/test/e2e_test.jl + # artifact_paths: "calibration_end_to_end_test/*" + + # - group: "Diagnostic EDMFX" + # steps: + + # - label: ":genie: Diagnostic EDMFX test in a box" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/diagnostic_edmfx_test_box.yml + # --job_id diagnostic_edmfx_test_box + # artifact_paths: "diagnostic_edmfx_test_box/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Diagnostic EDMFX GABLS in a box" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/diagnostic_edmfx_gabls_box.yml + # --job_id diagnostic_edmfx_gabls_box + # artifact_paths: "diagnostic_edmfx_gabls_box/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Diagnostic EDMFX Bomex in a box" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/diagnostic_edmfx_bomex_box.yml + # --job_id diagnostic_edmfx_bomex_box + # artifact_paths: "diagnostic_edmfx_bomex_box/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Diagnostic EDMFX Bomex stretched grid in a box" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/diagnostic_edmfx_bomex_stretched_box.yml + # --job_id diagnostic_edmfx_bomex_stretched_box + # artifact_paths: "diagnostic_edmfx_bomex_stretched_box/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Diagnostic EDMFX DYCOMS_RF01 in a box (explicit)" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/diagnostic_edmfx_dycoms_rf01_explicit_box.yml + # --job_id diagnostic_edmfx_dycoms_rf01_explicit_box + # artifact_paths: "diagnostic_edmfx_dycoms_rf01_explicit_box/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Diagnostic EDMFX DYCOMS_RF01 in a box" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/diagnostic_edmfx_dycoms_rf01_box.yml + # --job_id diagnostic_edmfx_dycoms_rf01_box + # artifact_paths: "diagnostic_edmfx_dycoms_rf01_box/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":umbrella: Diagnostic EDMFX DYCOMS_RF02 in a box" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/diagnostic_edmfx_dycoms_rf02_box.yml + # --job_id diagnostic_edmfx_dycoms_rf02_box + # artifact_paths: "diagnostic_edmfx_dycoms_rf02_box/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":umbrella: Diagnostic EDMFX Rico in a box" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/diagnostic_edmfx_rico_box.yml + # --job_id diagnostic_edmfx_rico_box + # artifact_paths: "diagnostic_edmfx_rico_box/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":umbrella: Diagnostic EDMFX TRMM in a box" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/diagnostic_edmfx_trmm_box.yml + # --job_id diagnostic_edmfx_trmm_box + # artifact_paths: "diagnostic_edmfx_trmm_box/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":umbrella: Diagnostic EDMFX TRMM stretched grid in a box" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/diagnostic_edmfx_trmm_stretched_box.yml + # --job_id diagnostic_edmfx_trmm_stretched_box + # artifact_paths: "diagnostic_edmfx_trmm_stretched_box/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Diagnostic EDMFX TRMM 0M in a box" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/diagnostic_edmfx_trmm_box_0M.yml + # --job_id diagnostic_edmfx_trmm_box_0M + # artifact_paths: "diagnostic_edmfx_trmm_box_0M/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Diagnostic EDMFX aquaplanet with TKE" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/diagnostic_edmfx_aquaplanet.yml + # --job_id diagnostic_edmfx_aquaplanet + + # julia --color=yes --project=examples regression_tests/test_mse.jl + # --job_id diagnostic_edmfx_aquaplanet + # --out_dir diagnostic_edmfx_aquaplanet/output_active + # artifact_paths: "diagnostic_edmfx_aquaplanet/output_active/*" + # agents: + # slurm_mem: 20GB + # slurm_constraint: icelake|cascadelake|skylake|epyc + + # - group: "Prognostic EDMFX" + # steps: + + # - label: ":genie: Prognostic EDMFX advection test in a column" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/prognostic_edmfx_adv_test_column.yml + # --job_id prognostic_edmfx_adv_test_column + # artifact_paths: "prognostic_edmfx_adv_test_column/output_active/*" + + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Prognostic EDMFX simple plume test in a column" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/prognostic_edmfx_simpleplume_column.yml + # --job_id prognostic_edmfx_simpleplume_column + # artifact_paths: "prognostic_edmfx_simpleplume_column/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Prognostic EDMFX GABLS in a column" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/prognostic_edmfx_gabls_column.yml + # --job_id prognostic_edmfx_gabls_column + # artifact_paths: "prognostic_edmfx_gabls_column/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Prognostic EDMFX Bomex in a column (pi group)" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/prognostic_edmfx_bomex_pigroup_column.yml + # --job_id prognostic_edmfx_bomex_pigroup_column + # artifact_paths: "prognostic_edmfx_bomex_pigroup_column/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Prognostic EDMFX Bomex with precribed TKE in a column" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/prognostic_edmfx_bomex_fixtke_column.yml + # --job_id prognostic_edmfx_bomex_fixtke_column + # artifact_paths: "prognostic_edmfx_bomex_fixtke_column/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Prognostic EDMFX Bomex stretched grid in a column" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/prognostic_edmfx_bomex_stretched_column.yml + # --job_id prognostic_edmfx_bomex_stretched_column + # artifact_paths: "prognostic_edmfx_bomex_stretched_column/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Prognostic EDMFX Bomex in a column" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/prognostic_edmfx_bomex_column.yml + # --job_id prognostic_edmfx_bomex_column + # artifact_paths: "prognostic_edmfx_bomex_column/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Prognostic EDMFX Bomex in a column (implicit)" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/prognostic_edmfx_bomex_implicit_column.yml + # --job_id prognostic_edmfx_bomex_column_implicit + # artifact_paths: "prognostic_edmfx_bomex_column_implicit/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Prognostic EDMFX Dycoms RF01 in a column" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/prognostic_edmfx_dycoms_rf01_column.yml + # --job_id prognostic_edmfx_dycoms_rf01_column + # artifact_paths: "prognostic_edmfx_dycoms_rf01_column/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":umbrella: Prognostic EDMFX Rico in a column" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/prognostic_edmfx_rico_column.yml + # --job_id prognostic_edmfx_rico_column + # artifact_paths: "prognostic_edmfx_rico_column/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":umbrella: Prognostic EDMFX TRMM in a column" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/prognostic_edmfx_trmm_column.yml + # --job_id prognostic_edmfx_trmm_column + # artifact_paths: "prognostic_edmfx_trmm_column/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Prognostic EDMFX TRMM with 0-moment in a column" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/prognostic_edmfx_trmm_column_0M.yml + # --job_id prognostic_edmfx_trmm_column_0M + # artifact_paths: "prognostic_edmfx_trmm_column_0M/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Prognostic EDMFX GCM driven in a column" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/prognostic_edmfx_gcmdriven_column.yml + # --job_id prognostic_edmfx_gcmdriven_column + # artifact_paths: "prognostic_edmfx_gcmdriven_column/output_active/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Prognostic EDMFX Bomex in a box" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/prognostic_edmfx_bomex_box.yml + # --job_id prognostic_edmfx_bomex_box + # artifact_paths: "prognostic_edmfx_bomex_box/*" + # agents: + # slurm_mem: 20GB + + # - label: ":genie: Prognostic EDMFX aquaplanet" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/prognostic_edmfx_aquaplanet.yml + # --job_id prognostic_edmfx_aquaplanet + # artifact_paths: "prognostic_edmfx_aquaplanet/output_active/*" + # agents: + # slurm_mem: 20GB - group: "GPU" steps: - - label: "GPU: baroclinic wave" - key: "gpu_baroclinic_wave_rhoe" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/gpu_baroclinic_wave_rhoe.yml - --job_id gpu_baroclinic_wave_rhoe - artifact_paths: "gpu_implicit_barowave_ref/output_active/*" - env: - CLIMACOMMS_DEVICE: "CUDA" - agents: - slurm_mem: 16G - slurm_gpus: 1 + # - label: "GPU: baroclinic wave" + # key: "gpu_baroclinic_wave_rhoe" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/gpu_baroclinic_wave_rhoe.yml + # --job_id gpu_baroclinic_wave_rhoe + # artifact_paths: "gpu_implicit_barowave_ref/output_active/*" + # env: + # CLIMACOMMS_DEVICE: "CUDA" + # agents: + # slurm_mem: 16G + # slurm_gpus: 1 - - label: "GPU: compare BW with CPU" - command: > - tar xvf sphere_baroclinic_wave_rhoe/output_active/hdf5_files.tar -C sphere_baroclinic_wave_rhoe - - tar xvf gpu_baroclinic_wave_rhoe/output_active/hdf5_files.tar -C gpu_baroclinic_wave_rhoe - - julia --color=yes --project=examples post_processing/compare_outputs.jl - --output_folder_1 sphere_baroclinic_wave_rhoe - --output_folder_2 gpu_baroclinic_wave_rhoe --t_end 10days - --compare_state false - depends_on: - - "sphere_baroclinic_wave_rhoe" - - "gpu_baroclinic_wave_rhoe" - - - label: "GPU: GPU dry baroclinic wave" - key: "target_gpu_implicit_baroclinic_wave" - command: - - mkdir -p target_gpu_implicit_baroclinic_wave - - > - nsys profile --trace=nvtx,cuda --output=target_gpu_implicit_baroclinic_wave/output_active/report - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file ${GPU_CONFIG_PATH}/target_gpu_implicit_baroclinic_wave.yml - --job_id target_gpu_implicit_baroclinic_wave - artifact_paths: "target_gpu_implicit_baroclinic_wave/output_active/*" - env: - CLIMACOMMS_DEVICE: "CUDA" - agents: - slurm_gpus: 1 - slurm_mem: 32G - - - label: "GPU: GPU dry baroclinic wave - 4 gpus" - key: "target_gpu_implicit_baroclinic_wave_4process" - command: - # nsys profile --trace=nvtx,cuda,mpi --output=target_gpu_implicit_baroclinic_wave_4process/output_active/report-%q{PMI_RANK} - - mkdir -p target_gpu_implicit_baroclinic_wave_4process - - > - srun --cpu-bind=threads --cpus-per-task=4 - julia --threads=3 --color=yes --project=examples examples/hybrid/driver.jl - --config_file ${GPU_CONFIG_PATH}/target_gpu_implicit_baroclinic_wave_4process.yml - --job_id target_gpu_implicit_baroclinic_wave_4process - artifact_paths: "target_gpu_implicit_baroclinic_wave_4process/output_active/*" - env: - CLIMACOMMS_CONTEXT: "MPI" - CLIMACOMMS_DEVICE: "CUDA" - agents: - slurm_gpus_per_task: 1 - slurm_cpus_per_task: 4 - slurm_ntasks: 4 - slurm_mem: 32G - - - label: "GPU: GPU moist Held-Suarez" - command: - - > - nsys profile --trace=nvtx,cuda --output=central_gpu_hs_rhoe_equil_55km_nz63_0M/output_active/report - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/central_gpu_hs_rhoe_equil_55km_nz63_0M.yml - --job_id central_gpu_hs_rhoe_equil_55km_nz63_0M - artifact_paths: "central_gpu_hs_rhoe_equil_55km_nz63_0M/output_active/*" - env: - CLIMACOMMS_DEVICE: "CUDA" - agents: - slurm_gpus: 1 - slurm_mem: 16G - - - label: "GPU: GPU moist Held-Suarez cloud diagnostics per stage" - command: - - > - nsys profile --trace=nvtx,cuda --output=central_cloud_diag_gpu_hs_rhoe_equil_55km_nz63_0M/output_active/report - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/central_cloud_diag_gpu_hs_rhoe_equil_55km_nz63_0M.yml - --job_id central_cloud_diag_gpu_hs_rhoe_equil_55km_nz63_0M - artifact_paths: "central_cloud_diag_gpu_hs_rhoe_equil_55km_nz63_0M/output_active/*" - env: - CLIMACOMMS_DEVICE: "CUDA" - agents: - slurm_gpus: 1 - slurm_mem: 16G - - - label: ":umbrella: GPU: gpu_aquaplanet_dyamond" - command: - - mkdir -p gpu_aquaplanet_dyamond - - > - nsys profile --trace=nvtx,cuda --output=gpu_aquaplanet_dyamond/output_active/report - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file ${CONFIG_PATH}/gpu_aquaplanet_dyamond.yml - --job_id gpu_aquaplanet_dyamond - artifact_paths: "gpu_aquaplanet_dyamond/output_active/*" - env: - CLIMACOMMS_DEVICE: "CUDA" - agents: - slurm_gpus: 1 + # - label: "GPU: compare BW with CPU" + # command: > + # tar xvf sphere_baroclinic_wave_rhoe/output_active/hdf5_files.tar -C sphere_baroclinic_wave_rhoe + + # tar xvf gpu_baroclinic_wave_rhoe/output_active/hdf5_files.tar -C gpu_baroclinic_wave_rhoe + + # julia --color=yes --project=examples post_processing/compare_outputs.jl + # --output_folder_1 sphere_baroclinic_wave_rhoe + # --output_folder_2 gpu_baroclinic_wave_rhoe --t_end 10days + # --compare_state false + # depends_on: + # - "sphere_baroclinic_wave_rhoe" + # - "gpu_baroclinic_wave_rhoe" + + # - label: "GPU: GPU dry baroclinic wave" + # key: "target_gpu_implicit_baroclinic_wave" + # command: + # - mkdir -p target_gpu_implicit_baroclinic_wave + # - > + # nsys profile --trace=nvtx,cuda --output=target_gpu_implicit_baroclinic_wave/output_active/report + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file ${GPU_CONFIG_PATH}/target_gpu_implicit_baroclinic_wave.yml + # --job_id target_gpu_implicit_baroclinic_wave + # artifact_paths: "target_gpu_implicit_baroclinic_wave/output_active/*" + # env: + # CLIMACOMMS_DEVICE: "CUDA" + # agents: + # slurm_gpus: 1 + # slurm_mem: 32G + + # - label: "GPU: GPU dry baroclinic wave - 4 gpus" + # key: "target_gpu_implicit_baroclinic_wave_4process" + # command: + # # nsys profile --trace=nvtx,cuda,mpi --output=target_gpu_implicit_baroclinic_wave_4process/output_active/report-%q{PMI_RANK} + # - mkdir -p target_gpu_implicit_baroclinic_wave_4process + # - > + # srun --cpu-bind=threads --cpus-per-task=4 + # julia --threads=3 --color=yes --project=examples examples/hybrid/driver.jl + # --config_file ${GPU_CONFIG_PATH}/target_gpu_implicit_baroclinic_wave_4process.yml + # --job_id target_gpu_implicit_baroclinic_wave_4process + # artifact_paths: "target_gpu_implicit_baroclinic_wave_4process/output_active/*" + # env: + # CLIMACOMMS_CONTEXT: "MPI" + # CLIMACOMMS_DEVICE: "CUDA" + # agents: + # slurm_gpus_per_task: 1 + # slurm_cpus_per_task: 4 + # slurm_ntasks: 4 + # slurm_mem: 32G + + # - label: "GPU: GPU moist Held-Suarez" + # command: + # - > + # nsys profile --trace=nvtx,cuda --output=central_gpu_hs_rhoe_equil_55km_nz63_0M/output_active/report + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/central_gpu_hs_rhoe_equil_55km_nz63_0M.yml + # --job_id central_gpu_hs_rhoe_equil_55km_nz63_0M + # artifact_paths: "central_gpu_hs_rhoe_equil_55km_nz63_0M/output_active/*" + # env: + # CLIMACOMMS_DEVICE: "CUDA" + # agents: + # slurm_gpus: 1 + # slurm_mem: 16G + + # - label: "GPU: GPU moist Held-Suarez cloud diagnostics per stage" + # command: + # - > + # nsys profile --trace=nvtx,cuda --output=central_cloud_diag_gpu_hs_rhoe_equil_55km_nz63_0M/output_active/report + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/central_cloud_diag_gpu_hs_rhoe_equil_55km_nz63_0M.yml + # --job_id central_cloud_diag_gpu_hs_rhoe_equil_55km_nz63_0M + # artifact_paths: "central_cloud_diag_gpu_hs_rhoe_equil_55km_nz63_0M/output_active/*" + # env: + # CLIMACOMMS_DEVICE: "CUDA" + # agents: + # slurm_gpus: 1 + # slurm_mem: 16G + + # - label: ":umbrella: GPU: gpu_aquaplanet_dyamond" + # command: + # - mkdir -p gpu_aquaplanet_dyamond + # - > + # nsys profile --trace=nvtx,cuda --output=gpu_aquaplanet_dyamond/output_active/report + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file ${CONFIG_PATH}/gpu_aquaplanet_dyamond.yml + # --job_id gpu_aquaplanet_dyamond + # artifact_paths: "gpu_aquaplanet_dyamond/output_active/*" + # env: + # CLIMACOMMS_DEVICE: "CUDA" + # agents: + # slurm_gpus: 1 - - label: "GPU: Diagnostic EDMFX aquaplanet" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/gpu_diagnostic_edmfx_aquaplanet.yml - --job_id gpu_diagnostic_edmfx_aquaplanet - artifact_paths: "gpu_diagnostic_edmfx_aquaplanet/output_active/*" - env: - CLIMACOMMS_DEVICE: "CUDA" - agents: - slurm_gpus: 1 - slurm_mem: 20G + # - label: "GPU: Diagnostic EDMFX aquaplanet" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/gpu_diagnostic_edmfx_aquaplanet.yml + # --job_id gpu_diagnostic_edmfx_aquaplanet + # artifact_paths: "gpu_diagnostic_edmfx_aquaplanet/output_active/*" + # env: + # CLIMACOMMS_DEVICE: "CUDA" + # agents: + # slurm_gpus: 1 + # slurm_mem: 20G - - label: "GPU: Prognostic EDMFX aquaplanet" - command: > - julia --color=yes --project=examples examples/hybrid/driver.jl - --config_file $CONFIG_PATH/gpu_prognostic_edmfx_aquaplanet.yml - --job_id gpu_prognostic_edmfx_aquaplanet - artifact_paths: "gpu_prognostic_edmfx_aquaplanet/output_active/*" - env: - CLIMACOMMS_DEVICE: "CUDA" - agents: - slurm_gpus: 1 - slurm_mem: 20G + # - label: "GPU: Prognostic EDMFX aquaplanet" + # command: > + # julia --color=yes --project=examples examples/hybrid/driver.jl + # --config_file $CONFIG_PATH/gpu_prognostic_edmfx_aquaplanet.yml + # --job_id gpu_prognostic_edmfx_aquaplanet + # artifact_paths: "gpu_prognostic_edmfx_aquaplanet/output_active/*" + # env: + # CLIMACOMMS_DEVICE: "CUDA" + # agents: + # slurm_gpus: 1 + # slurm_mem: 20G - label: "GPU: Analytic Schar Mountain Test (2D)" command: > julia --color=yes --project=examples examples/hybrid/driver.jl --config_file $CONFIG_PATH/plane_analytic_schar_mountain_test.yml - --job_id plane_analytic_schar_mountain_test - artifact_paths: "plane_analytic_schar_mountain_test/output_active/*" + --job_id gpu_plane_analytic_schar_mountain_test + artifact_paths: "gpu_plane_analytic_schar_mountain_test/output_active/*" env: CLIMACOMMS_DEVICE: "CUDA" agents: @@ -908,8 +908,8 @@ steps: command: > julia --color=yes --project=examples examples/hybrid/driver.jl --config_file $CONFIG_PATH/plane_analytic_cosine_mountain_test.yml - --job_id plane_analytic_cosine_mountain_test - artifact_paths: "plane_analytic_cosine_mountain_test/output_active/*" + --job_id gpu_plane_analytic_cosine_mountain_test + artifact_paths: "gpu_plane_analytic_cosine_mountain_test/output_active/*" env: CLIMACOMMS_DEVICE: "CUDA" agents: @@ -919,249 +919,249 @@ steps: command: > julia --color=yes --project=examples examples/hybrid/driver.jl --config_file $CONFIG_PATH/box_analytic_cosine_mountain_test.yml - --job_id box_analytic_cosine_mountain_test - artifact_paths: "box_analytic_cosine_mountain_test/output_active/*" - env: - CLIMACOMMS_DEVICE: "CUDA" - agents: - slurm_gpus: 1 - - - group: "Benchmarks" - steps: - - - label: ":computer: Benchmark: GPU implicit baro wave wrt h_elem" - key: "gpu_implicit_barowave_wrt_h_elem" - command: > - - julia --color=yes --project=examples perf/benchmark_dump.jl - --config_file $PERF_CONFIG_PATH/gpu_implicit_barowave_wrt_h_elem.yml - --job_id gpu_implicit_barowave_wrt_h_elem - artifact_paths: "gpu_implicit_barowave_wrt_h_elem/output_active/*" - env: - CLIMACOMMS_DEVICE: "CUDA" - agents: - slurm_gpus: 1 - - - label: ":computer: Benchmark: GPU implicit baro wave" - command: > - - julia --color=yes --project=examples perf/benchmark_step.jl - --config_file $PERF_CONFIG_PATH/gpu_implicit_barowave.yml - --job_id gpu_implicit_barowave - artifact_paths: "gpu_implicit_barowave/output_active/*" + --job_id gpu_box_analytic_cosine_mountain_test + artifact_paths: "gpu_box_analytic_cosine_mountain_test/output_active/*" env: CLIMACOMMS_DEVICE: "CUDA" agents: slurm_gpus: 1 - - label: ":computer: Benchmark: GPU implicit baro wave moist" - command: > - - julia --color=yes --project=examples perf/benchmark_step.jl - --config_file $PERF_CONFIG_PATH/gpu_implicit_barowave_moist.yml - --job_id gpu_implicit_barowave_moist - artifact_paths: "gpu_implicit_barowave_moist/output_active/*" - env: - CLIMACOMMS_DEVICE: "CUDA" - agents: - slurm_mem: 16G - slurm_gpus: 1 - - - label: ":computer: Benchmark: CPU implicit baro wave" - command: > - julia --color=yes --project=examples perf/benchmark_step.jl - --config_file $PERF_CONFIG_PATH/cpu_implicit_barowave.yml - --job_id cpu_implicit_barowave - artifact_paths: "cpu_implicit_barowave/output_active/*" - - # Benchmarks - - label: ":computer: Benchmark: CPU perf target (default)" - command: > - julia --color=yes --project=perf perf/benchmark.jl - --config_file $PERF_CONFIG_PATH/bm_perf_target.yml - --job_id bm_perf_target - agents: - slurm_mem: 24GB - - - label: ":computer: Benchmark: GPU perf target" - command: > - julia --color=yes --project=perf perf/benchmark.jl - --config_file $PERF_CONFIG_PATH/bm_perf_target.yml - --job_id bm_perf_target_gpu - env: - CLIMACOMMS_DEVICE: "CUDA" - agents: - slurm_mem: 24GB - slurm_gpus: 1 - - - label: ":computer: Benchmark: CPU perf target (Threaded)" - command: > - julia --color=yes --threads 8 --project=perf perf/benchmark.jl - --config_file $PERF_CONFIG_PATH/bm_perf_target_threaded.yml - --job_id bm_perf_target_threaded - agents: - slurm_mem: 24GB - slurm_cpus_per_task: 8 - - - label: ":computer: Benchmark: GPU diag edmf" - command: > - julia --color=yes --project=perf perf/benchmark.jl - --config_file ${CONFIG_PATH}/aquaplanet_progedmf.yml - --job_id bm_diag_edmf_gpu - env: - CLIMACOMMS_DEVICE: "CUDA" - agents: - slurm_mem: 24GB - slurm_gpus: 1 - - - label: ":computer: Benchmark: GPU prog edmf" - command: > - julia --color=yes --project=perf perf/benchmark.jl - --config_file ${CONFIG_PATH}/aquaplanet_progedmf.yml - --job_id bm_prog_edmf_gpu - env: - CLIMACOMMS_DEVICE: "CUDA" - agents: - slurm_mem: 24GB - slurm_gpus: 1 - - - group: "Flame graphs" - steps: - - - label: ":fire: Flame graph: perf target (default)" - command: > - julia --color=yes --project=perf perf/flame.jl - --config_file $PERF_CONFIG_PATH/flame_perf_target.yml - --job_id flame_perf_target - artifact_paths: "flame_perf_target/*" - agents: - slurm_mem: 24GB - - - label: ":fire: Flame graph: perf target (with tracers)" - command: > - julia --color=yes --project=perf perf/flame.jl - --config_file $PERF_CONFIG_PATH/flame_perf_target_tracers.yml - --job_id flame_perf_target_tracers - artifact_paths: "flame_perf_target_tracers/*" - agents: - slurm_mem: 24GB - - - label: ":fire: Flame graph: perf target (diagnostic edmfx)" - command: > - julia --color=yes --project=perf perf/flame.jl - --config_file $PERF_CONFIG_PATH/flame_perf_target_diagnostic_edmfx.yml - --job_id flame_perf_target_diagnostic_edmfx - artifact_paths: "flame_perf_target_diagnostic_edmfx/*" - agents: - slurm_mem: 24GB - - - label: ":fire: Flame graph: perf target (prognostic edmfx aquaplanet)" - command: > - julia --color=yes --project=perf perf/flame.jl - --config_file $PERF_CONFIG_PATH/flame_perf_target_prognostic_edmfx_aquaplanet.yml - --job_id flame_perf_target_prognostic_edmfx_aquaplanet - artifact_paths: "flame_perf_target_prognostic_edmfx_aquaplanet/*" - agents: - slurm_mem: 48GB - - - label: ":fire: Flame graph: perf target (frierson diffusion)" - command: > - julia --color=yes --project=perf perf/flame.jl - --config_file $PERF_CONFIG_PATH/flame_perf_target_frierson.yml - --job_id flame_perf_target_frierson - artifact_paths: "flame_perf_target_frierson/*" - agents: - slurm_mem: 48GB - - - label: ":fire: Flame graph: perf target (Threaded)" - command: > - julia --threads 8 --color=yes --project=perf perf/flame.jl - --config_file $PERF_CONFIG_PATH/flame_perf_target_threaded.yml - --job_id flame_perf_target_threaded - artifact_paths: "flame_perf_target_threaded/*" - agents: - slurm_cpus_per_task: 8 - slurm_mem: 24GB - - - label: ":fire: Flame graph: perf target (Callbacks)" - command: > - julia --color=yes --project=perf perf/flame.jl - --config_file $PERF_CONFIG_PATH/flame_perf_target_callbacks.yml - --job_id flame_perf_target_callbacks - artifact_paths: "flame_perf_target_callbacks/*" - agents: - slurm_mem: 24GB - - - label: ":fire: Flame graph: gravity wave" - command: > - julia --color=yes --project=perf perf/flame.jl - --config_file $PERF_CONFIG_PATH/flame_perf_gw.yml - --job_id flame_perf_gw - artifact_paths: "flame_perf_gw/*" - agents: - slurm_mem: 24GB - - - label: ":fire: Flame graph: perf target (diagnostics)" - command: > - julia --color=yes --project=perf perf/flame.jl - --config_file $PERF_CONFIG_PATH/flame_perf_diagnostics.yml - --job_id flame_perf_diagnostics - artifact_paths: "flame_perf_diagnostics/*" - agents: - slurm_mem: 24GB - - - label: ":fire: Flame graph: gpu job" - command: > - julia --color=yes --project=perf perf/flame.jl - --config_file $PERF_CONFIG_PATH/flame_gpu_implicit_barowave_moist.yml - --job_id flame_gpu_implicit_barowave_moist - artifact_paths: "flame_gpu_implicit_barowave_moist/*" - env: - CLIMACOMMS_DEVICE: "CUDA" - agents: - slurm_mem: 48GB - slurm_gpus: 1 - gres: "gpu:p100:1" - - - group: "Inference/Invalidations" - steps: - - # Inference - - label: ":rocket: JET n-failures (inference)" - command: > - julia --color=yes --project=perf perf/jet_test_nfailures.jl - --config_file $PERF_CONFIG_PATH/jet_n_failures.yml - --job_id jet_n_failures - agents: - slurm_mem: 24GB - - # Latency - - label: ":mag::rocket: Invalidations" - command: > - julia --color=yes --project=perf perf/invalidations.jl - artifact_paths: "invalidations/*" - agents: - slurm_mem: 24GB - - - wait: ~ - continue_on_failure: true - - - label: ":robot_face: Print new mse tables" - command: "julia --color=yes --project=examples regression_tests/print_new_mse.jl" - - - label: ":robot_face: Print new reference counter" - command: "julia --color=yes --project=examples regression_tests/print_new_ref_counter.jl" - - - label: ":bar_chart: Tabulate performance summary" - command: "julia --color=yes --project=perf perf/tabulate_perf_summary.jl" - - - label: ":chart_with_downwards_trend: build history" - command: - - build_history main - artifact_paths: - - "build_history.html" - - - wait - - - label: ":robot_face: Move main results" - command: "julia --color=yes --project=examples regression_tests/move_output.jl" + # - group: "Benchmarks" + # steps: + + # - label: ":computer: Benchmark: GPU implicit baro wave wrt h_elem" + # key: "gpu_implicit_barowave_wrt_h_elem" + # command: > + + # julia --color=yes --project=examples perf/benchmark_dump.jl + # --config_file $PERF_CONFIG_PATH/gpu_implicit_barowave_wrt_h_elem.yml + # --job_id gpu_implicit_barowave_wrt_h_elem + # artifact_paths: "gpu_implicit_barowave_wrt_h_elem/output_active/*" + # env: + # CLIMACOMMS_DEVICE: "CUDA" + # agents: + # slurm_gpus: 1 + + # - label: ":computer: Benchmark: GPU implicit baro wave" + # command: > + + # julia --color=yes --project=examples perf/benchmark_step.jl + # --config_file $PERF_CONFIG_PATH/gpu_implicit_barowave.yml + # --job_id gpu_implicit_barowave + # artifact_paths: "gpu_implicit_barowave/output_active/*" + # env: + # CLIMACOMMS_DEVICE: "CUDA" + # agents: + # slurm_gpus: 1 + + # - label: ":computer: Benchmark: GPU implicit baro wave moist" + # command: > + + # julia --color=yes --project=examples perf/benchmark_step.jl + # --config_file $PERF_CONFIG_PATH/gpu_implicit_barowave_moist.yml + # --job_id gpu_implicit_barowave_moist + # artifact_paths: "gpu_implicit_barowave_moist/output_active/*" + # env: + # CLIMACOMMS_DEVICE: "CUDA" + # agents: + # slurm_mem: 16G + # slurm_gpus: 1 + + # - label: ":computer: Benchmark: CPU implicit baro wave" + # command: > + # julia --color=yes --project=examples perf/benchmark_step.jl + # --config_file $PERF_CONFIG_PATH/cpu_implicit_barowave.yml + # --job_id cpu_implicit_barowave + # artifact_paths: "cpu_implicit_barowave/output_active/*" + + # # Benchmarks + # - label: ":computer: Benchmark: CPU perf target (default)" + # command: > + # julia --color=yes --project=perf perf/benchmark.jl + # --config_file $PERF_CONFIG_PATH/bm_perf_target.yml + # --job_id bm_perf_target + # agents: + # slurm_mem: 24GB + + # - label: ":computer: Benchmark: GPU perf target" + # command: > + # julia --color=yes --project=perf perf/benchmark.jl + # --config_file $PERF_CONFIG_PATH/bm_perf_target.yml + # --job_id bm_perf_target_gpu + # env: + # CLIMACOMMS_DEVICE: "CUDA" + # agents: + # slurm_mem: 24GB + # slurm_gpus: 1 + + # - label: ":computer: Benchmark: CPU perf target (Threaded)" + # command: > + # julia --color=yes --threads 8 --project=perf perf/benchmark.jl + # --config_file $PERF_CONFIG_PATH/bm_perf_target_threaded.yml + # --job_id bm_perf_target_threaded + # agents: + # slurm_mem: 24GB + # slurm_cpus_per_task: 8 + + # - label: ":computer: Benchmark: GPU diag edmf" + # command: > + # julia --color=yes --project=perf perf/benchmark.jl + # --config_file ${CONFIG_PATH}/aquaplanet_progedmf.yml + # --job_id bm_diag_edmf_gpu + # env: + # CLIMACOMMS_DEVICE: "CUDA" + # agents: + # slurm_mem: 24GB + # slurm_gpus: 1 + + # - label: ":computer: Benchmark: GPU prog edmf" + # command: > + # julia --color=yes --project=perf perf/benchmark.jl + # --config_file ${CONFIG_PATH}/aquaplanet_progedmf.yml + # --job_id bm_prog_edmf_gpu + # env: + # CLIMACOMMS_DEVICE: "CUDA" + # agents: + # slurm_mem: 24GB + # slurm_gpus: 1 + + # - group: "Flame graphs" + # steps: + + # - label: ":fire: Flame graph: perf target (default)" + # command: > + # julia --color=yes --project=perf perf/flame.jl + # --config_file $PERF_CONFIG_PATH/flame_perf_target.yml + # --job_id flame_perf_target + # artifact_paths: "flame_perf_target/*" + # agents: + # slurm_mem: 24GB + + # - label: ":fire: Flame graph: perf target (with tracers)" + # command: > + # julia --color=yes --project=perf perf/flame.jl + # --config_file $PERF_CONFIG_PATH/flame_perf_target_tracers.yml + # --job_id flame_perf_target_tracers + # artifact_paths: "flame_perf_target_tracers/*" + # agents: + # slurm_mem: 24GB + + # - label: ":fire: Flame graph: perf target (diagnostic edmfx)" + # command: > + # julia --color=yes --project=perf perf/flame.jl + # --config_file $PERF_CONFIG_PATH/flame_perf_target_diagnostic_edmfx.yml + # --job_id flame_perf_target_diagnostic_edmfx + # artifact_paths: "flame_perf_target_diagnostic_edmfx/*" + # agents: + # slurm_mem: 24GB + + # - label: ":fire: Flame graph: perf target (prognostic edmfx aquaplanet)" + # command: > + # julia --color=yes --project=perf perf/flame.jl + # --config_file $PERF_CONFIG_PATH/flame_perf_target_prognostic_edmfx_aquaplanet.yml + # --job_id flame_perf_target_prognostic_edmfx_aquaplanet + # artifact_paths: "flame_perf_target_prognostic_edmfx_aquaplanet/*" + # agents: + # slurm_mem: 48GB + + # - label: ":fire: Flame graph: perf target (frierson diffusion)" + # command: > + # julia --color=yes --project=perf perf/flame.jl + # --config_file $PERF_CONFIG_PATH/flame_perf_target_frierson.yml + # --job_id flame_perf_target_frierson + # artifact_paths: "flame_perf_target_frierson/*" + # agents: + # slurm_mem: 48GB + + # - label: ":fire: Flame graph: perf target (Threaded)" + # command: > + # julia --threads 8 --color=yes --project=perf perf/flame.jl + # --config_file $PERF_CONFIG_PATH/flame_perf_target_threaded.yml + # --job_id flame_perf_target_threaded + # artifact_paths: "flame_perf_target_threaded/*" + # agents: + # slurm_cpus_per_task: 8 + # slurm_mem: 24GB + + # - label: ":fire: Flame graph: perf target (Callbacks)" + # command: > + # julia --color=yes --project=perf perf/flame.jl + # --config_file $PERF_CONFIG_PATH/flame_perf_target_callbacks.yml + # --job_id flame_perf_target_callbacks + # artifact_paths: "flame_perf_target_callbacks/*" + # agents: + # slurm_mem: 24GB + + # - label: ":fire: Flame graph: gravity wave" + # command: > + # julia --color=yes --project=perf perf/flame.jl + # --config_file $PERF_CONFIG_PATH/flame_perf_gw.yml + # --job_id flame_perf_gw + # artifact_paths: "flame_perf_gw/*" + # agents: + # slurm_mem: 24GB + + # - label: ":fire: Flame graph: perf target (diagnostics)" + # command: > + # julia --color=yes --project=perf perf/flame.jl + # --config_file $PERF_CONFIG_PATH/flame_perf_diagnostics.yml + # --job_id flame_perf_diagnostics + # artifact_paths: "flame_perf_diagnostics/*" + # agents: + # slurm_mem: 24GB + + # - label: ":fire: Flame graph: gpu job" + # command: > + # julia --color=yes --project=perf perf/flame.jl + # --config_file $PERF_CONFIG_PATH/flame_gpu_implicit_barowave_moist.yml + # --job_id flame_gpu_implicit_barowave_moist + # artifact_paths: "flame_gpu_implicit_barowave_moist/*" + # env: + # CLIMACOMMS_DEVICE: "CUDA" + # agents: + # slurm_mem: 48GB + # slurm_gpus: 1 + # gres: "gpu:p100:1" + + # - group: "Inference/Invalidations" + # steps: + + # # Inference + # - label: ":rocket: JET n-failures (inference)" + # command: > + # julia --color=yes --project=perf perf/jet_test_nfailures.jl + # --config_file $PERF_CONFIG_PATH/jet_n_failures.yml + # --job_id jet_n_failures + # agents: + # slurm_mem: 24GB + + # # Latency + # - label: ":mag::rocket: Invalidations" + # command: > + # julia --color=yes --project=perf perf/invalidations.jl + # artifact_paths: "invalidations/*" + # agents: + # slurm_mem: 24GB + + # - wait: ~ + # continue_on_failure: true + + # - label: ":robot_face: Print new mse tables" + # command: "julia --color=yes --project=examples regression_tests/print_new_mse.jl" + + # - label: ":robot_face: Print new reference counter" + # command: "julia --color=yes --project=examples regression_tests/print_new_ref_counter.jl" + + # - label: ":bar_chart: Tabulate performance summary" + # command: "julia --color=yes --project=perf perf/tabulate_perf_summary.jl" + + # - label: ":chart_with_downwards_trend: build history" + # command: + # - build_history main + # artifact_paths: + # - "build_history.html" + + # - wait + + # - label: ":robot_face: Move main results" + # command: "julia --color=yes --project=examples regression_tests/move_output.jl" diff --git a/config/model_configs/box_analytic_cosine_mountain_test.yml b/config/model_configs/box_analytic_cosine_mountain_test.yml index 2c634847959..6be47ea0fb8 100644 --- a/config/model_configs/box_analytic_cosine_mountain_test.yml +++ b/config/model_configs/box_analytic_cosine_mountain_test.yml @@ -11,7 +11,6 @@ z_elem: 100 z_stretch: false dt: "6secs" t_end: "24hours" -use_reference_state: false rayleigh_sponge: true toml: [toml/analytic_mountain_test.toml] analytic_check: true diff --git a/config/model_configs/plane_analytic_cosine_mountain_test.yml b/config/model_configs/plane_analytic_cosine_mountain_test.yml index 3ee94cec315..e4ca2f3c124 100644 --- a/config/model_configs/plane_analytic_cosine_mountain_test.yml +++ b/config/model_configs/plane_analytic_cosine_mountain_test.yml @@ -1,17 +1,14 @@ -config: "box" +config: "plane" FLOAT_TYPE: "Float64" initial_condition: "ConstantBuoyancyFrequencyProfile" topography: "Cosine2D" x_max: 300e3 -y_max: 300e3 z_max: 21e3 x_elem: 30 -y_elem: 1 z_elem: 100 z_stretch: false dt: "6secs" t_end: "24hours" -use_reference_state: false rayleigh_sponge: true toml: [toml/analytic_mountain_test.toml] analytic_check: true diff --git a/config/model_configs/plane_analytic_schar_mountain_test.yml b/config/model_configs/plane_analytic_schar_mountain_test.yml index 38da813f3dc..4c456bb4925 100644 --- a/config/model_configs/plane_analytic_schar_mountain_test.yml +++ b/config/model_configs/plane_analytic_schar_mountain_test.yml @@ -3,15 +3,14 @@ FLOAT_TYPE: "Float64" initial_condition: "ConstantBuoyancyFrequencyProfile" topography: "Schar" x_max: 300e3 -y_max: 300e3 +y_max: 2e3 z_max: 21e3 x_elem: 300 -y_elem: 1 +y_elem: 2 z_elem: 100 z_stretch: false dt: "0.5secs" t_end: "24hours" -use_reference_state: false rayleigh_sponge: true toml: [toml/analytic_mountain_test.toml] analytic_check: true diff --git a/post_processing/ci_plots.jl b/post_processing/ci_plots.jl index deaac9aa04f..4076be1cc83 100644 --- a/post_processing/ci_plots.jl +++ b/post_processing/ci_plots.jl @@ -699,9 +699,10 @@ function column_rms(var) end const AnalyticMountainTest = Union{ - Val{:plane_analytic_schar_mountain_test}, Val{:plane_analytic_cosine_mountain_test}, - Val{:box_analytic_cosine_mountain_test}, + Val{:gpu_plane_analytic_schar_mountain_test}, + Val{:gpu_plane_analytic_cosine_mountain_test}, + Val{:gpu_box_analytic_cosine_mountain_test}, } function make_plots( @@ -709,7 +710,7 @@ function make_plots( output_paths::Vector{<:AbstractString}, ) simdirs = SimDir.(output_paths) - is_3d = val == Val(:box_analytic_cosine_mountain_test) + is_3d = val != Val(:plane_analytic_cosine_mountain_test) short_names = ["ua", "wa", "uapredicted", "wapredicted", "uaerror", "waerror"] @@ -731,7 +732,7 @@ function make_plots( output_name = "slice_summary", ) - if val == Val(:plane_analytic_schar_mountain_test) + if val == Val(:gpu_plane_analytic_schar_mountain_test) zoomed_slice_vars = Iterators.flatmap(["wa", "wapredicted", "waerror"]) do short_name map(simdirs) do simdir @@ -767,60 +768,60 @@ function make_plots( output_name = "rms_errors_24h", ) - collected_vars = collect(slice_summary_vars) - (; dims, dim_attributes, dim2index, index2dim) = collected_vars[1] - u_data = collected_vars[4].data - w_data = collected_vars[8].data - predicted_u_data = collected_vars[9].data - predicted_w_data = collected_vars[10].data - - FT = eltype(predicted_u_data) - background_velocity = SVector(CA.background_u(FT), FT(0)) - perturbation_data = @. SVector(u_data, w_data) - (background_velocity,) - predicted_perturbation_data = - @. SVector(predicted_u_data, predicted_w_data) - (background_velocity,) - - # Rescale the predicted perturbations so that their range no less than the - # background air speed. Apply the same scaling to the actual perturbations. - background_speed = norm(background_velocity) - predicted_perturbation_range = - -(reverse(extrema(norm, predicted_perturbation_data))...) - s = max(1, round(Int, background_speed / predicted_perturbation_range)) - uw_data = @. s * perturbation_data + (background_velocity,) - predicted_uw_data = - @. s * predicted_perturbation_data + (background_velocity,) - - uw_var = ClimaAnalysis.OutputVar( - Dict{String, String}( - "units" => "m s^-1", - "short_name" => "ū + $s u′", - "long_name" => "Air Speed with $(s)x Perturbations, Instantaneous", - ), - dims, - dim_attributes, - uw_data, - dim2index, - index2dim, - ) - predicted_uw_var = ClimaAnalysis.OutputVar( - Dict{String, String}( - "units" => "m s^-1", - "short_name" => "predicted ū + $s u′", - "long_name" => "Predicted Air Speed with $(s)x Perturbations, Instantaneous", - ), - dims, - dim_attributes, - predicted_uw_data, - dim2index, - index2dim, - ) - - make_plots_generic( - output_paths, - [uw_var, predicted_uw_var]; - plot_fn = plot_streamlines!, - output_name = "streamlines_24h", - ) + # collected_vars = collect(slice_summary_vars) + # (; dims, dim_attributes, dim2index, index2dim) = collected_vars[1] + # u_data = collected_vars[4].data + # w_data = collected_vars[8].data + # predicted_u_data = collected_vars[9].data + # predicted_w_data = collected_vars[10].data + + # FT = eltype(predicted_u_data) + # background_velocity = SVector(CA.background_u(FT), FT(0)) + # perturbation_data = @. SVector(u_data, w_data) - (background_velocity,) + # predicted_perturbation_data = + # @. SVector(predicted_u_data, predicted_w_data) - (background_velocity,) + + # # Rescale the predicted perturbations so that their range no less than the + # # background air speed. Apply the same scaling to the actual perturbations. + # background_speed = norm(background_velocity) + # predicted_perturbation_range = + # -(reverse(extrema(norm, predicted_perturbation_data))...) + # s = max(1, round(Int, background_speed / predicted_perturbation_range)) + # uw_data = @. s * perturbation_data + (background_velocity,) + # predicted_uw_data = + # @. s * predicted_perturbation_data + (background_velocity,) + + # uw_var = ClimaAnalysis.OutputVar( + # Dict{String, String}( + # "units" => "m s^-1", + # "short_name" => "ū + $s u′", + # "long_name" => "Air Speed with $(s)x Perturbations, Instantaneous", + # ), + # dims, + # dim_attributes, + # uw_data, + # dim2index, + # index2dim, + # ) + # predicted_uw_var = ClimaAnalysis.OutputVar( + # Dict{String, String}( + # "units" => "m s^-1", + # "short_name" => "predicted ū + $s u′", + # "long_name" => "Predicted Air Speed with $(s)x Perturbations, Instantaneous", + # ), + # dims, + # dim_attributes, + # predicted_uw_data, + # dim2index, + # index2dim, + # ) + + # make_plots_generic( + # output_paths, + # [uw_var, predicted_uw_var]; + # plot_fn = plot_streamlines!, + # output_name = "streamlines_24h", + # ) end MountainPlots = Union{ diff --git a/src/analytic_solutions/analytic_solutions.jl b/src/analytic_solutions/analytic_solutions.jl index 42822bdc6d3..c0b95e488fe 100644 --- a/src/analytic_solutions/analytic_solutions.jl +++ b/src/analytic_solutions/analytic_solutions.jl @@ -11,8 +11,10 @@ import StaticArrays: @SVector # of quadrature. TODO: QuadGK does not seem to work on GPUs. # definite_integral(f::F, x1, x2, maxevals, order) where {F} = # QuadGK.quadgk(f, x1, x2; maxevals, order, rtol = 0)[1] -definite_integral(f::F, x1, x2, maxevals, _) where {F} = - sum(f, LinRange(x1, x2, maxevals)) * (x2 - x1) / (maxevals - 1) +function definite_integral(f::F, x1, x2, maxevals, _) where {F} + dx = (x2 - x1) / maxevals + return sum(index -> f(x1 + index * dx), 2:maxevals; init = f(x1 + dx)) * dx +end background_N(::Type{FT}) where {FT} = FT(0.01) background_T_sfc(::Type{FT}) where {FT} = FT(288) @@ -166,7 +168,7 @@ function schar_predicted_velocity(params, coord) n_efolds = -log(eps(FT)) k_x_max = k_peak + 2 * sqrt(n_efolds) / a (Δu, Δv, Δw) = - 2 * definite_integral(FT(0), k_x_max, 10, 20) do k_x + 2 * definite_integral(FT(0), k_x_max, 100, 20) do k_x _FT = typeof(k_x) # Redefine FT to prevent it from getting boxed. Fh = h_max * a / (8 * sqrt(_FT(π))) * (