diff --git a/.buildkite/JuliaProject.toml b/.buildkite/JuliaProject.toml new file mode 100644 index 0000000000..ee11e59737 --- /dev/null +++ b/.buildkite/JuliaProject.toml @@ -0,0 +1,18 @@ +[extras] +CUDA_Runtime_jll = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" +HDF5_jll = "0234f1f7-429e-5d53-9886-15a909be8d59" +MPIPreferences = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" + +[preferences.CUDA_Runtime_jll] +version = "local" + +[preferences.HDF5_jll] +libhdf5_path = "libhdf5" +libhdf5_hl_path = "libhdf5_hl" + +[preferences.MPIPreferences] +_format = "1.0" +abi = "OpenMPI" +binary = "system" +libmpi = "libmpi" +mpiexec = "mpiexec" \ No newline at end of file diff --git a/.buildkite/longruns/pipeline.yml b/.buildkite/longruns/pipeline.yml index 1914d64f2e..4f5f921c87 100644 --- a/.buildkite/longruns/pipeline.yml +++ b/.buildkite/longruns/pipeline.yml @@ -8,6 +8,8 @@ env: BUILDKITE_COMMIT: "${BUILDKITE_COMMIT}" BUILDKITE_BRANCH: "${BUILDKITE_BRANCH}" JULIA_MAX_NUM_PRECOMPILE_FILES: 100 + CONFIG_PATH: "config/longrun_configs" + PERF_CONFIG_PATH: "config/perf_configs" # JULIA_DEPOT_PATH: "${BUILDKITE_BUILD_PATH}/${BUILDKITE_PIPELINE_SLUG}/depot/cpu" agents: @@ -56,7 +58,7 @@ steps: - label: "Slabplanet: default" key: "slabplanet_default_longrun" - command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --run_name slabplanet_default_longrun --FLOAT_TYPE Float64 --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --energy_check true --mode_name slabplanet --t_end 60days --dt_save_to_sol 10days --dt_cpl 200 --dt 200secs --mono_surface true --h_elem 6 --precip_model 0M --anim true --job_id slabplanet_default_longrun" + command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/slabplanet_default_longrun.yml" artifact_paths: "experiments/AMIP/modular/output/slabplanet/slabplanet_default_longrun_artifacts/*" env: BUILD_HISTORY_HANDLE: "" @@ -77,7 +79,7 @@ steps: - label: "MPI AMIP FINE: target longrun" key: "amip_longrun_target" - command: "mpiexec julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --run_name amip_longrun_target --coupled true --anim true --surface_setup PrescribedSurface --dt_cpl 150 --energy_check false --mode_name amip --mono_surface false --vert_diff true --moist equil --rad clearsky --precip_model 0M --z_elem 35 --dz_bottom 50 --h_elem 12 --kappa_4 3e16 --rayleigh_sponge true --alpha_rayleigh_uh 0 --dt 150secs --t_end 140days --job_id amip_longrun_target --dt_save_to_sol 5days --dt_save_to_disk 1days --FLOAT_TYPE Float64" + command: "mpiexec julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/amip_longrun_target.yml" artifact_paths: "experiments/AMIP/modular/output/amip/amip_longrun_target_artifacts/*" env: CLIMACORE_DISTRIBUTED: "MPI" @@ -89,7 +91,7 @@ steps: # MPI performance scaling (10 days) - label: "MPI AMIP FINE: n64" key: "mpi_amip_fine_n64" - command: "mpiexec julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --run_name amip_n64_shortrun --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --z_elem 50 --dz_top 3000 --dz_bottom 30 --h_elem 16 --kappa_4 1e16 --z_stretch false --rayleigh_sponge true --alpha_rayleigh_uh 0 --alpha_rayleigh_w 10 --dt_cpl 150 --dt 150secs --dt_rad 1hours --FLOAT_TYPE Float64 --energy_check false --mode_name amip --t_end 10days --dt_save_to_sol 100days --mono_surface false --precip_model 0M" + command: "mpiexec julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/amip_n64_shortrun.yml" artifact_paths: "experiments/AMIP/modular/output/amip/amip_n64_shortrun_artifacts/*" env: CLIMACORE_DISTRIBUTED: "MPI" @@ -101,7 +103,7 @@ steps: - label: "MPI AMIP FINE: n32" key: "mpi_amip_fine_n32" - command: "mpiexec julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --run_name amip_n32_shortrun --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --z_elem 50 --dz_top 3000 --dz_bottom 30 --h_elem 16 --kappa_4 1e16 --z_stretch false --rayleigh_sponge true --alpha_rayleigh_uh 0 --alpha_rayleigh_w 10 --dt_cpl 150 --dt 150secs --dt_rad 1hours --FLOAT_TYPE Float64 --energy_check false --mode_name amip --t_end 10days --dt_save_to_sol 100days --mono_surface false --precip_model 0M" + command: "mpiexec julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/amip_n32_shortrun.yml" artifact_paths: "experiments/AMIP/modular/output/amip/amip_n32_shortrun_artifacts/*" env: CLIMACORE_DISTRIBUTED: "MPI" @@ -113,7 +115,7 @@ steps: - label: "MPI AMIP FINE: n8" key: "mpi_amip_fine_n8" - command: "mpiexec julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --run_name amip_n8_shortrun --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --z_elem 50 --dz_top 3000 --dz_bottom 30 --h_elem 16 --kappa_4 1e16 --z_stretch false --rayleigh_sponge true --alpha_rayleigh_uh 0 --alpha_rayleigh_w 10 --dt_cpl 150 --dt 150secs --dt_rad 1hours --FLOAT_TYPE Float64 --energy_check false --mode_name amip --t_end 10days --dt_save_to_sol 100days --mono_surface false --precip_model 0M" + command: "mpiexec julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/amip_n8_shortrun.yml" artifact_paths: "experiments/AMIP/modular/output/amip/amip_n8_shortrun_artifacts/*" env: CLIMACORE_DISTRIBUTED: "MPI" @@ -125,7 +127,7 @@ steps: - label: "MPI AMIP FINE: n2" # 10d take 21h, so reducing to 1d key: "mpi_amip_fine_n2" - command: "mpiexec julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --run_name amip_n2_shortrun --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --z_elem 50 --dz_top 3000 --dz_bottom 30 --h_elem 16 --kappa_4 1e16 --z_stretch false --rayleigh_sponge true --alpha_rayleigh_uh 0 --alpha_rayleigh_w 10 --dt_cpl 150 --dt 150secs --dt_rad 1hours --FLOAT_TYPE Float64 --energy_check false --mode_name amip --t_end 1days --dt_save_to_sol 100days --mono_surface false --precip_model 0M" + command: "mpiexec julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/amip_n2_shortrun.yml" artifact_paths: "experiments/AMIP/modular/output/amip/amip_n2_shortrun_artifacts/*" env: CLIMACORE_DISTRIBUTED: "MPI" @@ -137,7 +139,7 @@ steps: - label: "MPI AMIP FINE: n1" # also reported by longruns with a flame graph; 10d take 21h, so reducing to 1d key: "mpi_amip_fine_n1" - command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --run_name amip_n1_shortrun --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --z_elem 50 --dz_top 3000 --dz_bottom 30 --h_elem 16 --kappa_4 1e16 --z_stretch false --rayleigh_sponge true --alpha_rayleigh_uh 0 --alpha_rayleigh_w 10 --dt_cpl 150 --dt 150secs --dt_rad 1hours --FLOAT_TYPE Float64 --energy_check false --mode_name amip --t_end 1days --dt_save_to_sol 100days --mono_surface false --precip_model 0M" + command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/amip_n1_shortrun.yml" artifact_paths: "experiments/AMIP/modular/output/amip/amip_n1_shortrun_artifacts/*" env: BUILD_HISTORY_HANDLE: "" @@ -146,7 +148,7 @@ steps: # mpi_amip_fine_n1 flame graph report (NB: arguments passed from the ci pipeline.yml) - label: ":rocket: performance: flame graph diff: perf_target_amip_n1_shortrun" - command: "julia --color=yes --project=perf perf/flame_diff.jl --run_name 4" + command: "julia --color=yes --project=perf perf/flame_diff.jl --config_file $PERF_CONFIG_PATH/perf_diff_target_amip_n1_shortrun.yml" artifact_paths: "perf/output/perf_diff_target_amip_n1_shortrun/*" agents: slurm_mem: 20GB diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index cd09e24eb0..c9cdcd871e 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -1,21 +1,24 @@ +agents: + queue: central + slurm_mem: 8G + slurm_time: 24:00:00 + modules: julia/1.8.5 cuda/11.8 ucx/1.14.1_cuda-11.8 openmpi/4.1.5_cuda-11.8 hdf5/1.12.2-ompi415 nsight-systems/2023.2.1 + env: - JULIA_VERSION: "1.8.5" - MPI_IMPL: "openmpi" - OPENMPI_VERSION: "4.1.1" - CUDA_VERSION: "11.2" + JULIA_LOAD_PATH: "${JULIA_LOAD_PATH}:${BUILDKITE_BUILD_CHECKOUT_PATH}/.buildkite" OPENBLAS_NUM_THREADS: 1 - CLIMATEMACHINE_SETTINGS_FIX_RNG_SEED: "true" - BUILDKITE_COMMIT: "${BUILDKITE_COMMIT}" - BUILDKITE_BRANCH: "${BUILDKITE_BRANCH}" + JULIA_NVTX_CALLBACKS: gc + OMPI_MCA_opal_warn_on_missing_libcuda: 0 JULIA_MAX_NUM_PRECOMPILE_FILES: 100 + JULIA_DEPOT_PATH: "${BUILDKITE_BUILD_PATH}/${BUILDKITE_PIPELINE_SLUG}/depot/cpu" GKSwstype: 100 - # JULIA_DEPOT_PATH: "${BUILDKITE_BUILD_PATH}/${BUILDKITE_PIPELINE_SLUG}/depot/cpu" -agents: - config: cpu - queue: central - slurm_ntasks: 1 - slurm_time: 24:00:00 + CONFIG_PATH: "config/model_configs" + PERF_CONFIG_PATH: "config/perf_configs" + MPI_CONFIG_PATH: "config/mpi_configs" + + BUILDKITE_COMMIT: "${BUILDKITE_COMMIT}" + BUILDKITE_BRANCH: "${BUILDKITE_BRANCH}" timeout_in_minutes: 1440 @@ -62,6 +65,7 @@ steps: agents: slurm_cpus_per_task: 8 + slurm_gpus: 1 env: JULIA_NUM_PRECOMPILE_TASKS: 8 JULIA_MAX_NUM_PRECOMPILE_FILES: 50 @@ -72,47 +76,41 @@ steps: steps: - label: "MPI Regridder unit tests" key: "regridder_mpi_tests" - command: "mpiexec julia --color=yes --project=test/ test/mpi_tests/regridder_mpi_tests.jl --run_name regridder_mpi --job_id regridder_mpi" - timeout_in_minutes: 5 + command: "mpirun julia --color=yes --project=test/ test/mpi_tests/regridder_mpi_tests.jl --config_file $MPI_CONFIG_PATH/regridder_mpi.yml" + timeout_in_minutes: 20 env: CLIMACORE_DISTRIBUTED: "MPI" + # CLIMACOMMS_CONTEXT: "MPI" + NPROCS: 2 agents: - config: cpu - queue: central - slurm_nodes: 3 - slurm_tasks_per_node: 1 + slurm_ntasks: 2 + slurm_mem: 16GB - label: "MPI BCReader unit tests" key: "bcreader_mpi_tests" - command: "mpiexec julia --color=yes --project=test/ test/mpi_tests/bcreader_mpi_tests.jl --run_name bcreader_mpi --job_id bcreader_mpi" + command: "srun julia --color=yes --project=test/ test/mpi_tests/bcreader_mpi_tests.jl --run_name bcreader_mpi --job_id bcreader_mpi" timeout_in_minutes: 20 env: CLIMACORE_DISTRIBUTED: "MPI" agents: - config: cpu - queue: central - slurm_nodes: 3 - slurm_tasks_per_node: 1 + slurm_ntasks: 2 + slurm_mem: 16GB - label: "MPI Checkpointer unit tests" key: "checkpointer_mpi_tests" - command: "mpiexec julia --color=yes --project=test/ test/mpi_tests/checkpointer_mpi_tests.jl --run_name checkpointer_mpi --job_id checkpointer_mpi" + command: "srun julia --color=yes --project=test/ test/mpi_tests/checkpointer_mpi_tests.jl --run_name checkpointer_mpi --job_id checkpointer_mpi" timeout_in_minutes: 20 env: CLIMACORE_DISTRIBUTED: "MPI" agents: - config: cpu - queue: central slurm_ntasks: 2 + slurm_mem: 16GB - label: "Perf flame graph diff tests" command: "julia --color=yes --project=perf/ perf/flame_test.jl --run_name flame_test --job_id flame_perf_target" timeout_in_minutes: 5 agents: - config: cpu - queue: central - slurm_nodes: 3 - slurm_tasks_per_node: 1 + slurm_mem: 16GB - label: "Component model tests" command: "julia --color=yes --project=test/ test/component_model_tests.jl --run_name component_test --job_id component_test" @@ -134,14 +132,14 @@ steps: # - diagnostics: check and plot energy conservation, output plots after 9 days - label: "Slabplanet: default" key: "slabplanet_default" - command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --run_name slabplanet_default --FLOAT_TYPE Float64 --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --energy_check true --mode_name slabplanet --t_end 10days --dt_save_to_sol 9days --dt_cpl 200 --dt 200secs --mono_surface true --h_elem 4 --precip_model 0M --anim true --job_id slabplanet_default" + command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/slabplanet_default.yml" artifact_paths: "experiments/AMIP/modular/output/slabplanet/slabplanet_default_artifacts/*" agents: slurm_mem: 20GB - label: "Slabplanet: partitioned turbulent fluxes" key: "slabplanet_partitioned_fluxes" - command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --run_name slabplanet_partitioned_fluxes --FLOAT_TYPE Float64 --coupled true --turb_flux_partition PartitionedStateFluxes --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --energy_check true --mode_name slabplanet --t_end 10days --dt_save_to_sol 9days --dt_cpl 200 --dt 200secs --mono_surface true --h_elem 4 --precip_model 0M --anim true --job_id slabplanet_partitioned_fluxes" + command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/slabplanet_partitioned_fluxes.yml" artifact_paths: "experiments/AMIP/modular/output/slabplanet/slabplanet_partitioned_fluxes_artifacts/*" agents: slurm_mem: 20GB @@ -149,18 +147,30 @@ steps: # Test: non-monotonous remapping for land mask - label: "Slabplanet: non-monotonous surface remap" key: "slabplanet_non-monotonous" - command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --run_name slabplanet_nonmono --FLOAT_TYPE Float64 --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --energy_check true --mode_name slabplanet --t_end 10days --dt_save_to_sol 9days --dt_cpl 200 --dt 200secs --mono_surface false --h_elem 4 --precip_model 0M --anim true --job_id slabplanet_nonmono" + command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/slabplanet_nonmono.yml" artifact_paths: "experiments/AMIP/modular/output/slabplanet/slabplanet_nonmono_artifacts/*" agents: slurm_mem: 20GB + - label: "Slabplanet: albedo from static map" + command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/slabplanet_albedo_static_map.yml" + artifact_paths: "experiments/AMIP/modular/output/slabplanet/slabplanet_albedo_static_map_artifacts/total_energy*.png" + agents: + slurm_mem: 20GB + - label: "Slabplanet: albedo from temporal map" - key: "slabplanet_albedo_maptemporal" - command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --run_name slabplanet_albedo_maptemporal --FLOAT_TYPE Float64 --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --energy_check true --mode_name slabplanet --t_end 10days --dt_save_to_sol 9days --dt_cpl 200 --dt 200secs --mono_surface true --h_elem 4 --precip_model 0M --anim true --albedo_type map_temporal --job_id slabplanet_albedo_maptemporal" - artifact_paths: "experiments/AMIP/modular/output/slabplanet/slabplanet_albedo_maptemporal_artifacts/*" + key: "slabplanet_albedo_map_temporal" + command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/slabplanet_albedo_temporal_map.yml" + artifact_paths: "experiments/AMIP/modular/output/slabplanet/slabplanet_albedo_temporal_map_artifacts/*" agents: slurm_mem: 20GB + - label: "Slabplanet: albedo from function" + key: "slabplanet_albedo_function" + command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/slabplanet_albedo_function.yml" + artifact_paths: "experiments/AMIP/modular/output/slabplanet/slabplanet_albedo_function_artifacts/*" + agents: + slurm_mem: 20GB # AMIP @@ -172,7 +182,7 @@ steps: # slabplanet default: track unthreaded performance (alloc tests, flame graph, flame graph diff, build history) - label: ":rocket: Slabplanet: default (unthreaded)" key: "modular_slabplanet_unthreaded" - command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --run_name default_modular_unthreaded --FLOAT_TYPE Float64 --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --energy_check true --mode_name slabplanet --t_end 10days --dt_save_to_sol 9days --dt_cpl 200 --dt 200secs --mono_surface true --h_elem 4 --precip_model 0M --anim true --job_id default_modular_unthreaded" + command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/default_modular_unthreaded.yml" artifact_paths: "experiments/AMIP/modular/output/slabplanet/default_modular_unthreaded_artifacts/*" env: FLAME_PLOT: "" @@ -182,13 +192,13 @@ steps: slurm_mem: 20GB - label: ":rocket: Slabplanet: default (unthreaded) - flame graph and allocation tests" - command: "julia --color=yes --project=perf perf/flame.jl --run_name 1 --job_id perf_default_modular_unthreaded" + command: "julia --color=yes --project=perf perf/flame.jl --config_file $PERF_CONFIG_PATH/perf_default_modular_unthreaded.yml" artifact_paths: "perf/output/perf_default_modular_unthreaded/*" agents: slurm_mem: 20GB - label: ":rocket: Slabplanet: default (unthreaded) - flame graph diff" - command: "julia --color=yes --project=perf perf/flame_diff.jl --run_name 1 --job_id perf_diff_default_modular_unthreaded" + command: "julia --color=yes --project=perf perf/flame_diff.jl --config_file $PERF_CONFIG_PATH/perf_diff_default_modular_unthreaded.yml" artifact_paths: "perf/output/perf_diff_default_modular_unthreaded/*" agents: slurm_mem: 20GB @@ -197,45 +207,32 @@ steps: # - label: "Unit tests" # command: "julia --color=yes --project=test test/runtests.jl" - # artifact_paths: "test/*" + # artifact_paths: "test/*"slabplanet_albedo_static_map - label: "Moist earth with slab surface - default: monin gray no_sponge idealinsol freq_dt_cpl" - command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --FLOAT_TYPE Float64 --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --energy_check true --mode_name slabplanet --t_end 10days --dt_save_to_sol 3600secs --dt_cpl 200 --dt 200secs --mono_surface true --h_elem 4 --precip_model 0M --run_name default_mono --job_id default_mono" + command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/default_mono.yml" artifact_paths: "experiments/AMIP/modular/output/slabplanet/default_mono_artifacts/total_energy*.png" agents: slurm_mem: 20GB - - label: "Moist earth with slab surface - default: monin gray no_sponge idealinsol freq_dt_cpl - bucket using BulkAlbedoFunction" - command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --FLOAT_TYPE Float64 --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --energy_check true --mode_name slabplanet --t_end 10days --dt_save_to_sol 3600secs --dt_cpl 200 --dt 200secs --mono_surface true --h_elem 4 --precip_model 0M --albedo_type function --run_name default_albedo_prescribed --job_id default_albedo_function" - artifact_paths: "experiments/AMIP/modular/output/slabplanet/default_albedo_function_artifacts/total_energy*.png" - agents: - slurm_mem: 20GB - - label: "Moist earth with slab surface - notmono: monin gray no_sponge idealinsol freq_dt_cpl notmono" - command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --FLOAT_TYPE Float64 --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --energy_check true --mode_name slabplanet --t_end 10days --dt_save_to_sol 3600secs --dt_cpl 200 --dt 200secs --mono_surface false --h_elem 4 --precip_model 0M --run_name default_notmono --job_id default_notmono" + command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/default_notmono.yml" artifact_paths: "experiments/AMIP/modular/output/slabplanet/default_notmono_artifacts/total_energy*.png" agents: slurm_mem: 20GB - # Note: this test fails when run with the more realistic albedo from file - - label: "Moist earth with slab surface - target: monin allsky sponge realinsol infreq_dt_cpl - bucket using BulkAlbedoFunction" - command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --FLOAT_TYPE Float64 --run_name target_params_in_slab --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad allskywithclear --rayleigh_sponge true --alpha_rayleigh_uh 0 --alpha_rayleigh_w 10 --energy_check true --mode_name slabplanet --t_end 10days --dt_save_to_sol 3600secs --dt_cpl 3600 --dt 200secs --dt_rad 6hours --idealized_insolation false --mono_surface true --h_elem 6 --precip_model 0M --albedo_type function --job_id target_params_in_slab" # idealized albedo breaks - artifact_paths: "experiments/AMIP/modular/output/slabplanet/target_params_in_slab_artifacts/total_energy*.png" - agents: - slurm_mem: 20GB - # - label: "Moist earth with slab surface - test: monin allsky sponge idealinsol infreq_dt_cpl" # command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --FLOAT_TYPE Float64 --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad allskywithclear --rayleigh_sponge true --alpha_rayleigh_uh 0 --alpha_rayleigh_w 10 --energy_check true --mode_name slabplanet --t_end 10days --dt_save_to_sol 3600secs --dt_cpl 21600 --dt 200secs --dt_rad 6hours --mono_surface true --h_elem 4 --precip_model 0M --run_name target_params_in_slab_test1 --job_id target_params_in_slab_test1" # Unconverged SF (reproduced locally); works with 200s dt_cpl # artifact_paths: "experiments/AMIP/modular/output/slabplanet/target_params_in_slab_test1_artifacts/total_energy*.png" - label: "Moist earth with slab surface - test: bulk allsky sponge realinsol infreq_dt_cpl" - command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --FLOAT_TYPE Float64 --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad allskywithclear --rayleigh_sponge true --alpha_rayleigh_uh 0 --alpha_rayleigh_w 10 --energy_check true --mode_name slabplanet --t_end 10days --dt_save_to_sol 3600secs --dt_cpl 3600 --dt 200secs --dt_rad 6hours --idealized_insolation false --mono_surface true --h_elem 6 --precip_model 0M --run_name target_params_in_slab_test2 --job_id target_params_in_slab_test2" + command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/target_params_in_slab_test2.yml" artifact_paths: "experiments/AMIP/modular/output/slabplanet/target_params_in_slab_test2_artifacts/total_energy*.png" agents: slurm_mem: 20GB - label: "Moist earth with slab surface - test: monin gray sponge realinsol infreq_dt_cpl" - command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --FLOAT_TYPE Float64 --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --rayleigh_sponge true --alpha_rayleigh_uh 0 --alpha_rayleigh_w 10 --energy_check true --mode_name slabplanet --t_end 10days --dt_save_to_sol 3600secs --dt_cpl 3600 --dt 200secs --dt_rad 6hours --idealized_insolation false --mono_surface true --h_elem 6 --precip_model 0M --run_name target_params_in_slab_test3 --job_id target_params_in_slab_test3" + command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/target_params_in_slab_test3.yml" artifact_paths: "experiments/AMIP/modular/output/slabplanet/target_params_in_slab_test3_artifacts/total_energy*.png" agents: slurm_mem: 20GB @@ -247,8 +244,8 @@ steps: - label: "AMIP - modular Float64 + monthly checkpoint" key: "modular_amip" - command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --run_name coarse_single_modular --FLOAT_TYPE Float64 --coupled true --monthly_checkpoint true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --energy_check false --mode_name amip --anim true --t_end 32days --dt_save_to_sol 1days --dt_cpl 400 --dt 400secs --mono_surface false --h_elem 6 --dt_save_restart 10days --precip_model 0M --job_id coarse_single_modular" - artifact_paths: "experiments/AMIP/modular/output/amip/coarse_single_modular_artifacts/*" + command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/coarse_single_modular_ft64_monthly_checkpoints.yml" + artifact_paths: "experiments/AMIP/modular/output/amip/coarse_single_modular_ft64_monthly_checkpoints_artifacts/*" env: FLAME_PLOT: "" BUILD_HISTORY_HANDLE: "" @@ -256,9 +253,9 @@ steps: slurm_ntasks: 1 slurm_mem: 20GB - - label: "AMIP - modular, Float32 test" # Issue #271 - command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --run_name coarse_single_modular_ft32 --FLOAT_TYPE Float64 --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --energy_check false --mode_name amip --anim true --t_end 10days --dt_save_to_sol 100days --dt_cpl 200 --dt 200secs --mono_surface true --h_elem 6 --dt_save_restart 10days --precip_model 0M --job_id coarse_single_modular_ft32" - artifact_paths: "experiments/AMIP/modular/output/amip/coarse_single_modular_ft32_artifacts/*" + - label: "AMIP - modular, Float64 test" + command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/coarse_single_modular_ft64.yml" + artifact_paths: "experiments/AMIP/modular/output/amip/coarse_single_modular_ft64_artifacts/*" agents: slurm_ntasks: 1 slurm_mem: 20GB @@ -270,13 +267,13 @@ steps: slurm_mem: 20GB - label: "MPI AMIP" - command: "mpiexec julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --FLOAT_TYPE Float64 --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --energy_check false --mode_name amip --anim true --t_end 32days --dt_save_to_sol 1days --dt_cpl 400 --dt 400secs --mono_surface false --h_elem 6 --dt_save_restart 5days --precip_model 0M --run_name coarse_mpi_n2 --job_id coarse_mpi_n2" + command: "srun julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/coarse_mpi_n2.yml" artifact_paths: "experiments/AMIP/modular/output/amip/coarse_mpi_n2_artifacts/*" env: CLIMACORE_DISTRIBUTED: "MPI" agents: slurm_ntasks: 2 - slurm_mem: 20GB + slurm_mem: 16GB - label: "batch script" command: "sbatch test/mpi_tests/local_checks.sh" @@ -284,7 +281,7 @@ steps: # short high-res performance test - label: "Unthreaded AMIP FINE" # also reported by longruns with a flame graph key: "unthreaded_amip_fine" - command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --run_name target_amip_n1_shortrun --FLOAT_TYPE Float64 --coupled true --surface_setup PrescribedSurface --moist equil --vert_diff true --rad gray --z_elem 50 --dz_top 3000 --dz_bottom 30 --h_elem 16 --kappa_4 1e16 --z_stretch false --rayleigh_sponge true --alpha_rayleigh_uh 0 --alpha_rayleigh_w 10 --dt_cpl 150 --dt 150secs --dt_rad 1hours --FLOAT_TYPE Float64 --energy_check false --mode_name amip --t_end 0.01days --dt_save_to_sol 1days --mono_surface false --precip_model 0M --job_id target_amip_n1_shortrun" + command: "julia --color=yes --project=experiments/AMIP/modular/ experiments/AMIP/modular/coupler_driver_modular.jl --config_file $CONFIG_PATH/target_amip_n1_shortrun.yml" artifact_paths: "experiments/AMIP/modular/output/amip/target_amip_n1_shortrun_artifacts/*" env: BUILD_HISTORY_HANDLE: "" @@ -293,15 +290,15 @@ steps: # flame graphs + allocation tests - - label: ":rocket: flame graph and allocation tests: perf_coarse_single_modular" - command: "julia --color=yes --project=perf perf/flame.jl --run_name 2 --job_id perf_coarse_single_modular" - artifact_paths: "perf/output/perf_coarse_single_modular/*" + - label: ":rocket: flame graph and allocation tests: perf_coarse_single_modular_ft64" + command: "julia --color=yes --project=perf perf/flame.jl --config_file $PERF_CONFIG_PATH/perf_coarse_single_modular_ft64.yml" + artifact_paths: "perf/output/perf_coarse_single_modular_ft64/*" agents: slurm_mem: 20GB - - label: ":rocket: performance: flame graph diff: perf_diff_coarse_single_modular" - command: "julia --color=yes --project=perf perf/flame_diff.jl --run_name 2 --job_id perf_diff_coarse_single_modular" - artifact_paths: "perf/output/perf_diff_coarse_single_modular/*" + - label: ":rocket: performance: flame graph diff: perf_diff_coarse_single_modular_ft64" + command: "julia --color=yes --project=perf perf/flame_diff.jl --config_file $PERF_CONFIG_PATH/perf_diff_coarse_single_modular_ft64.yml" + artifact_paths: "perf/output/perf_diff_coarse_single_modular_ft64/*" agents: slurm_mem: 20GB diff --git a/Project.toml b/Project.toml index 4c9aee039a..42b07660a9 100644 --- a/Project.toml +++ b/Project.toml @@ -29,7 +29,7 @@ UnPack = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" [compat] CLIMAParameters = "0.7" -ClimaAtmos = "0.15" +ClimaAtmos = "0.16" ClimaComms = "0.5" ClimaCore = "0.10" ClimaCoreTempestRemap = "0.3" diff --git a/config/longrun_configs/amip_longrun_target.yml b/config/longrun_configs/amip_longrun_target.yml new file mode 100644 index 0000000000..422fa04515 --- /dev/null +++ b/config/longrun_configs/amip_longrun_target.yml @@ -0,0 +1,25 @@ +run_name: "amip_longrun_target" +coupled: true +anim: true +surface_setup: "PrescribedSurface" +dt_cpl: 150 +energy_check: false +mode_name: "amip" +mono_surface: false +vert_diff: "true" +moist: "equil" +rad: "clearsky" +precip_model: "0M" +z_elem: 35 +dz_bottom: 50 +h_elem: 12 +kappa_4: 3e16 +rayleigh_sponge: true +alpha_rayleigh_uh: 0 +dt: "150secs" +t_end: "140days" +job_id: "amip_longrun_target" +dt_save_to_sol: "5days" +dt_save_to_disk: "1days" +apply_limiter: true +FLOAT_TYPE: "Float64" diff --git a/config/longrun_configs/amip_n1_shortrun.yml b/config/longrun_configs/amip_n1_shortrun.yml new file mode 100644 index 0000000000..454b99784e --- /dev/null +++ b/config/longrun_configs/amip_n1_shortrun.yml @@ -0,0 +1,27 @@ +job_id: "amip_n1_shortrun" +run_name: "amip_n1_shortrun" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +z_elem: 50 +dz_top: 3000 +dz_bottom: 30 +h_elem: 16 +kappa_4: 1e16 +z_stretch: false +rayleigh_sponge: true +alpha_rayleigh_uh: 0 +alpha_rayleigh_w: 10 +dt_cpl: 150 +dt: "150secs" +dt_rad: "1hours" +FLOAT_TYPE: "Float64" +energy_check: false +mode_name: "amip" +t_end: "1days" +dt_save_to_sol: "100days" +mono_surface: false +apply_limiter: true +precip_model: "0M" diff --git a/config/longrun_configs/amip_n2_shortrun.yml b/config/longrun_configs/amip_n2_shortrun.yml new file mode 100644 index 0000000000..a74e5618bf --- /dev/null +++ b/config/longrun_configs/amip_n2_shortrun.yml @@ -0,0 +1,27 @@ +job_id: "amip_n2_shortrun" +run_name: "amip_n2_shortrun" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +z_elem: 50 +dz_top: 3000 +dz_bottom: 30 +h_elem: 16 +kappa_4: 1e16 +z_stretch: false +rayleigh_sponge: true +alpha_rayleigh_uh: 0 +alpha_rayleigh_w: 10 +dt_cpl: 150 +dt: 150secs +dt_rad: 1hours +FLOAT_TYPE: "Float64" +energy_check: false +mode_name: "amip" +t_end: "1days" +dt_save_to_sol: "100days" +mono_surface: "false" +apply_limiter: true +precip_model: "0M" diff --git a/config/longrun_configs/amip_n32_shortrun.yml b/config/longrun_configs/amip_n32_shortrun.yml new file mode 100644 index 0000000000..40b93e2500 --- /dev/null +++ b/config/longrun_configs/amip_n32_shortrun.yml @@ -0,0 +1,27 @@ +job_ide: "amip_n32_shortrun" +run_name: "amip_n32_shortrun" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +z_elem: 50 +dz_top: 3000 +dz_bottom: 30 +h_elem: 16 +kappa_4: 1e16 +z_stretch: false +rayleigh_sponge: true +alpha_rayleigh_uh: 0 +alpha_rayleigh_w: 10 +dt_cpl: 150 +dt: "150secs" +dt_rad: "1hours" +FLOAT_TYPE: "Float64" +energy_check: false +mode_name: "amip" +t_end: "10days" +dt_save_to_sol: "100days" +mono_surface: false +apply_limiter: true +precip_model: "0M" diff --git a/config/longrun_configs/amip_n64_shortrun.yml b/config/longrun_configs/amip_n64_shortrun.yml new file mode 100644 index 0000000000..31a973e38d --- /dev/null +++ b/config/longrun_configs/amip_n64_shortrun.yml @@ -0,0 +1,27 @@ +job_id: "amip_n64_shortrun" +run_name: "amip_n64_shortrun" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +z_elem: 50 +dz_top: 3000 +dz_bottom: 30 +h_elem: 16 +kappa_4: 1e16 +z_stretch: false +rayleigh_sponge: true +alpha_rayleigh_uh: 0 +alpha_rayleigh_w: 10 +dt_cpl: 150 +dt: "150secs" +dt_rad: "1hours" +FLOAT_TYPE: "Float64" +energy_check: false +mode_name: "amip" +t_end: "10days" +dt_save_to_sol: "100days" +mono_surface: false +apply_limiter: true +precip_model: "0M" diff --git a/config/longrun_configs/amip_n8_shortrun.yml b/config/longrun_configs/amip_n8_shortrun.yml new file mode 100644 index 0000000000..dd3ebe53f7 --- /dev/null +++ b/config/longrun_configs/amip_n8_shortrun.yml @@ -0,0 +1,27 @@ +job_id: "amip_n8_shortrun" +run_name: "amip_n8_shortrun" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +z_elem: 50 +dz_top: 3000 +dz_bottom: 30 +h_elem: 16 +kappa_4: 1e16 +z_stretch: false +rayleigh_sponge: true +alpha_rayleigh_uh: 0 +alpha_rayleigh_w: 10 +dt_cpl: 150 +dt: "150secs" +dt_rad: "1hours" +FLOAT_TYPE: "Float64" +energy_check: false +mode_name: "amip" +t_end: "10days" +dt_save_to_sol: "100days" +mono_surface: "false" +apply_limiter: true +precip_model: "0M" diff --git a/config/longrun_configs/slabplanet_default_longrun.yml b/config/longrun_configs/slabplanet_default_longrun.yml new file mode 100644 index 0000000000..2549f52134 --- /dev/null +++ b/config/longrun_configs/slabplanet_default_longrun.yml @@ -0,0 +1,19 @@ +run_name: "slabplanet_default_longrun" +FLOAT_TYPE: "Float64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +energy_check: true +mode_name: "slabplanet" +t_end: "60days" +dt_save_to_sol: "10days" +dt_cpl: 200 +dt: "200secs" +mono_surface: true +h_elem: 6 +precip_model: "0M" +anim: true +apply_limiter: true +job_id: "slabplanet_default_longrun" diff --git a/config/model_configs/coarse_mpi_n2.yml b/config/model_configs/coarse_mpi_n2.yml new file mode 100644 index 0000000000..7137774177 --- /dev/null +++ b/config/model_configs/coarse_mpi_n2.yml @@ -0,0 +1,20 @@ +FLOAT_TYPE: "Float64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +energy_check: false +mode_name: "amip" +anim: true +t_end: "32days" +dt_save_to_sol: "1days" +dt_cpl: 400 +dt: "400secs" +mono_surface: false +h_elem: 6 +dt_save_restart: "5days" +precip_model: "0M" +run_name: "coarse_mpi_n2" +apply_limiter: true +job_id: "coarse_mpi_n2" diff --git a/config/model_configs/coarse_single_modular_ft64.yml b/config/model_configs/coarse_single_modular_ft64.yml new file mode 100644 index 0000000000..a57b863285 --- /dev/null +++ b/config/model_configs/coarse_single_modular_ft64.yml @@ -0,0 +1,21 @@ +run_name: "coarse_single_modular_ft64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +energy_check: false +mode_name: "amip" +anim: true +t_end: "10days" +dt_save_to_sol: "100days" +dt_cpl: 200 +dt: "200secs" +FLOAT_TYPE: "Float64" +mono_surface: true +h_elem: 6 +dt_save_restart: "10days" +precip_model: "0M" +apply_limiter: true +job_id: "coarse_single_modular_ft64" + diff --git a/config/model_configs/coarse_single_modular_ft64_monthly_checkpoints.yml b/config/model_configs/coarse_single_modular_ft64_monthly_checkpoints.yml new file mode 100644 index 0000000000..a04c46a0fd --- /dev/null +++ b/config/model_configs/coarse_single_modular_ft64_monthly_checkpoints.yml @@ -0,0 +1,21 @@ +run_name: "coarse_single_modular_ft64_monthly_checkpoints" +FLOAT_TYPE: "Float64" +coupled: true +monthly_checkpoint: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +energy_check: false +mode_name: "amip" +anim: true +t_end: "32days" +dt_save_to_sol: "1days" +dt_cpl: 400 +dt: "400secs" +mono_surface: false +h_elem: 6 +dt_save_restart: "10days" +precip_model: "0M" +apply_limiter: true +job_id: "coarse_single_modular_ft64_monthly_checkpoints" diff --git a/config/model_configs/default_modular_unthreaded.yml b/config/model_configs/default_modular_unthreaded.yml new file mode 100644 index 0000000000..4ef23d8dea --- /dev/null +++ b/config/model_configs/default_modular_unthreaded.yml @@ -0,0 +1,19 @@ +run_name: "default_modular_unthreaded" +FLOAT_TYPE: "Float64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +energy_check: true +mode_name: "slabplanet" +t_end: "10days" +dt_save_to_sol: "9days" +dt_cpl: 200 +dt: "200secs" +mono_surface: true +h_elem: 4 +precip_model: "0M" +anim: true +apply_limiter: true +job_id: "default_modular_unthreaded" diff --git a/config/model_configs/default_mono.yml b/config/model_configs/default_mono.yml new file mode 100644 index 0000000000..4eb9ed68b9 --- /dev/null +++ b/config/model_configs/default_mono.yml @@ -0,0 +1,18 @@ +FLOAT_TYPE: "Float64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +energy_check: true +mode_name: "slabplanet" +t_end: "10days" +dt_save_to_sol: "3600secs" +dt_cpl 200: +dt: "200secs" +mono_surface: true +h_elem: 4 +precip_model: "0M" +run_name: "default_mono" +apply_limiter: true +job_id: "default_mono" diff --git a/config/model_configs/default_notmono.yml b/config/model_configs/default_notmono.yml new file mode 100644 index 0000000000..e4b3d48f18 --- /dev/null +++ b/config/model_configs/default_notmono.yml @@ -0,0 +1,18 @@ +FLOAT_TYPE: "Float64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +energy_check: true +mode_name: "slabplanet" +t_end: "10days" +dt_save_to_sol: "3600secs" +dt_cpl: 200 +dt: "200secs" +mono_surface: false +h_elem: 4 +precip_model: "0M" +run_name: "default_notmono" +apply_limiter: true +job_id: "default_notmono" diff --git a/config/model_configs/slabplanet_albedo_function.yml b/config/model_configs/slabplanet_albedo_function.yml new file mode 100644 index 0000000000..e3fe858df1 --- /dev/null +++ b/config/model_configs/slabplanet_albedo_function.yml @@ -0,0 +1,19 @@ +FLOAT_TYPE: "Float64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +energy_check: true +mode_name: "slabplanet" +t_end: "10days" +dt_save_to_sol: "3600secs" +dt_cpl: 200 +dt: "200secs" +mono_surface: true +h_elem: 4 +precip_model: "0M" +albedo_type: "map_static" +run_name: "slabplanet_albedo_function" +apply_limiter: true +job_id: "slabplanet_albedo_function" diff --git a/config/model_configs/slabplanet_albedo_static_map.yml b/config/model_configs/slabplanet_albedo_static_map.yml new file mode 100644 index 0000000000..97a93d6481 --- /dev/null +++ b/config/model_configs/slabplanet_albedo_static_map.yml @@ -0,0 +1,19 @@ +FLOAT_TYPE: "Float64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +energy_check: true +mode_name: "slabplanet" +t_end: "10days" +dt_save_to_sol: "3600secs" +dt_cpl: 200 +dt: "200secs" +mono_surface: true +h_elem: 4 +precip_model: "0M" +albedo_type: "map_static" +run_name: "slabplanet_albedo_static_map" +apply_limiter: true +job_id: "slabplanet_albedo_static_map" diff --git a/config/model_configs/slabplanet_albedo_temporal_map.yml b/config/model_configs/slabplanet_albedo_temporal_map.yml new file mode 100644 index 0000000000..92d51feed5 --- /dev/null +++ b/config/model_configs/slabplanet_albedo_temporal_map.yml @@ -0,0 +1,19 @@ +FLOAT_TYPE: "Float64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +energy_check: true +mode_name: "slabplanet" +t_end: "10days" +dt_save_to_sol: "3600secs" +dt_cpl: 200 +dt: "200secs" +mono_surface: true +h_elem: 4 +precip_model: "0M" +albedo_type: "map_temporal" +run_name: "slabplanet_albedo_temporal_map" +apply_limiter: true +job_id: "slabplanet_albedo_temporal_map" diff --git a/config/model_configs/slabplanet_default.yml b/config/model_configs/slabplanet_default.yml new file mode 100644 index 0000000000..f361c2774c --- /dev/null +++ b/config/model_configs/slabplanet_default.yml @@ -0,0 +1,19 @@ +run_name: "slabplanet_default" +FLOAT_TYPE: "Float64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +energy_check: true +mode_name: "slabplanet" +t_end: "10days" +dt_save_to_sol: "9days" +dt_cpl: 200 +dt: "200secs" +mono_surface: true +h_elem: 4 +precip_model: "0M" +anim: true +apply_limiter: true +job_id: "slabplanet_default" diff --git a/config/model_configs/slabplanet_nonmono.yml b/config/model_configs/slabplanet_nonmono.yml new file mode 100644 index 0000000000..77fb431378 --- /dev/null +++ b/config/model_configs/slabplanet_nonmono.yml @@ -0,0 +1,19 @@ +run_name: "slabplanet_nonmono" +FLOAT_TYPE: "Float64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +energy_check: true +mode_name: "slabplanet" +t_end: "10days" +dt_save_to_sol: "9days" +dt_cpl: 200 +dt: "200secs" +mono_surface: false +h_elem: 4 +precip_model: "0M" +anim: true +apply_limiter: true +job_id: "slabplanet_nonmono" diff --git a/config/model_configs/slabplanet_partitioned_fluxes.yml b/config/model_configs/slabplanet_partitioned_fluxes.yml new file mode 100644 index 0000000000..3ff7337a6d --- /dev/null +++ b/config/model_configs/slabplanet_partitioned_fluxes.yml @@ -0,0 +1,20 @@ +run_name: "slabplanet_partitioned_fluxes" +FLOAT_TYPE: "Float64" +coupled: true +turb_flux_partition: "PartitionedStateFluxes" +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +energy_check: true +mode_name: "slabplanet" +t_end: "10days" +dt_save_to_sol: "9days" +dt_cpl: 200 +dt: "200secs" +mono_surface: true +h_elem: 4 +precip_model: "0M" +anim: true +apply_limiter: true +job_id: "slabplanet_partitioned_fluxes" diff --git a/config/model_configs/target_amip_n1_shortrun.yml b/config/model_configs/target_amip_n1_shortrun.yml new file mode 100644 index 0000000000..5f57f1c682 --- /dev/null +++ b/config/model_configs/target_amip_n1_shortrun.yml @@ -0,0 +1,28 @@ +run_name: "target_amip_n1_shortrun" +FLOAT_TYPE: "Float64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +z_elem: 50 +dz_top: 3000 +dz_bottom: 30 +h_elem: 16 +kappa_4: 1e16 +z_stretch: false +rayleigh_sponge: true +alpha_rayleigh_uh: 0 +alpha_rayleigh_w: 10 +dt_cpl: 150 +dt: "150secs" +dt_rad: "1hours" +FLOAT_TYPE: "Float64" +energy_check: false +mode_name: "amip" +t_end: "0.01days" +dt_save_to_sol: "1days" +mono_surface: false +precip_model: "0M" +apply_limiter: true +job_id: "target_amip_n1_shortrun" diff --git a/config/model_configs/target_params_in_slab.yml b/config/model_configs/target_params_in_slab.yml new file mode 100644 index 0000000000..88eba652c2 --- /dev/null +++ b/config/model_configs/target_params_in_slab.yml @@ -0,0 +1,24 @@ +FLOAT_TYPE: "Float64" +run_name: "target_params_in_slab" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "allskywithclear" +rayleigh_sponge: true +alpha_rayleigh_uh: 0 +alpha_rayleigh_w: 10 +energy_check: true +mode_name: "slabplanet" +t_end: "10days" +dt_save_to_sol: "3600secs" +dt_cpl: 3600 +dt: "200secs" +dt_rad: "6hours" +idealized_insolation: false +mono_surface: true +h_elem: 6 +precip_model: "0M" +albedo_from_file: false +apply_limiter: true +job_id: "target_params_in_slab" diff --git a/config/model_configs/target_params_in_slab_test2.yml b/config/model_configs/target_params_in_slab_test2.yml new file mode 100644 index 0000000000..92a779cdd5 --- /dev/null +++ b/config/model_configs/target_params_in_slab_test2.yml @@ -0,0 +1,23 @@ +FLOAT_TYPE: "Float64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "allskywithclear" +rayleigh_sponge: true +alpha_rayleigh_uh: 0 +alpha_rayleigh_w: 10 +energy_check: true +mode_name: "slabplanet" +t_end: "10days" +dt_save_to_sol: "3600secs" +dt_cpl: 3600 +dt: "200secs" +dt_rad: "6hours" +idealized_insolation: false +mono_surface: true +h_elem: 6 +precip_model: "0M" +run_name: "target_params_in_slab_test2" +apply_limiter: true +job_id: "target_params_in_slab_test2" diff --git a/config/model_configs/target_params_in_slab_test3.yml b/config/model_configs/target_params_in_slab_test3.yml new file mode 100644 index 0000000000..989167674f --- /dev/null +++ b/config/model_configs/target_params_in_slab_test3.yml @@ -0,0 +1,23 @@ +FLOAT_TYPE: "Float64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +rayleigh_sponge: true +alpha_rayleigh_uh: 0 +alpha_rayleigh_w: 10 +energy_check: true +mode_name: "slabplanet" +t_end: "10days" +dt_save_to_sol: "3600secs" +dt_cpl: 3600 +dt: "200secs" +dt_rad: "6hours" +idealized_insolation: false +mono_surface: true +h_elem: 6 +precip_model: "0M" +run_name: "target_params_in_slab_test3" +apply_limiter: true +job_id: "target_params_in_slab_test3" diff --git a/config/mpi_configs/regridder_mpi.yml b/config/mpi_configs/regridder_mpi.yml new file mode 100644 index 0000000000..0d11d62234 --- /dev/null +++ b/config/mpi_configs/regridder_mpi.yml @@ -0,0 +1,2 @@ +run_name: "regridder_mpi" +job_id: "regridder_mpi" diff --git a/config/perf_configs/perf_coarse_single_modular_ft64.yml b/config/perf_configs/perf_coarse_single_modular_ft64.yml new file mode 100644 index 0000000000..d5e23fbe24 --- /dev/null +++ b/config/perf_configs/perf_coarse_single_modular_ft64.yml @@ -0,0 +1,20 @@ +run_name: "perf_coarse_single_modular_ft64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +energy_check: false +mode_name: "amip" +anim: true +t_end: "10days" +dt_save_to_sol: "100days" +dt_cpl: 200 +dt: "200secs" +FLOAT_TYPE: "Float64" +mono_surface: true +h_elem: 6 +dt_save_restart: "10days" +precip_model: "0M" +apply_limiter: true +job_id: "perf_coarse_single_modular_ft64" \ No newline at end of file diff --git a/config/perf_configs/perf_default_modular_unthreaded.yml b/config/perf_configs/perf_default_modular_unthreaded.yml new file mode 100644 index 0000000000..672a233daa --- /dev/null +++ b/config/perf_configs/perf_default_modular_unthreaded.yml @@ -0,0 +1,19 @@ +run_name: "perf_default_modular_unthreaded" +FLOAT_TYPE: "Float64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +energy_check: true +mode_name: "slabplanet" +t_end: "10days" +dt_save_to_sol: "9days" +dt_cpl: 200 +dt: "200secs" +mono_surface: true +h_elem: 4 +precip_model: "0M" +anim: true +apply_limiter: true +job_id: "perf_default_modular_unthreaded" diff --git a/config/perf_configs/perf_diff_coarse_single_modular_ft64.yml b/config/perf_configs/perf_diff_coarse_single_modular_ft64.yml new file mode 100644 index 0000000000..157ccd4161 --- /dev/null +++ b/config/perf_configs/perf_diff_coarse_single_modular_ft64.yml @@ -0,0 +1,20 @@ +run_name: "perf_diff_coarse_single_modular_ft64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +energy_check: false +mode_name: "amip" +anim: true +t_end: "10days" +dt_save_to_sol: "100days" +dt_cpl: 200 +dt: "200secs" +FLOAT_TYPE: "Float64" +mono_surface: true +h_elem: 6 +dt_save_restart: "10days" +precip_model: "0M" +apply_limiter: true +job_id: "perf_diff_coarse_single_modular_ft64" \ No newline at end of file diff --git a/config/perf_configs/perf_diff_default_modular_unthreaded.yml b/config/perf_configs/perf_diff_default_modular_unthreaded.yml new file mode 100644 index 0000000000..315a3412bb --- /dev/null +++ b/config/perf_configs/perf_diff_default_modular_unthreaded.yml @@ -0,0 +1,19 @@ +run_name: "perf_diff_default_modular_unthreaded" +FLOAT_TYPE: "Float64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +energy_check: true +mode_name: "slabplanet" +t_end: "10days" +dt_save_to_sol: "9days" +dt_cpl: 200 +dt: "200secs" +mono_surface: true +h_elem: 4 +precip_model: "0M" +anim: true +apply_limiter: true +job_id: "perf_diff_default_modular_unthreaded" diff --git a/config/perf_configs/perf_diff_target_amip_n1_shortrun.yml b/config/perf_configs/perf_diff_target_amip_n1_shortrun.yml new file mode 100644 index 0000000000..8115fb1a9f --- /dev/null +++ b/config/perf_configs/perf_diff_target_amip_n1_shortrun.yml @@ -0,0 +1,28 @@ +run_name: "perf_target_amip_n1_shortrun" +FLOAT_TYPE: "Float64" +coupled: true +surface_setup: "PrescribedSurface" +moist: "equil" +vert_diff: "true" +rad: "gray" +z_elem: 50 +dz_top: 3000 +dz_bottom: 30 +h_elem: 16 +kappa_4: 1e16 +z_stretch: false +rayleigh_sponge: true +alpha_rayleigh_uh: 0 +alpha_rayleigh_w: 10 +dt_cpl: 150 +dt: "150secs" +dt_rad: "1hours" +FLOAT_TYPE: "Float64" +energy_check: false +mode_name: "amip" +t_end: "0.01days" +dt_save_to_sol: "1days" +mono_surface: false +precip_model: "0M" +apply_limiter: true +job_id: "perf_target_amip_n1_shortrun" diff --git a/experiments/AMIP/modular/Manifest.toml b/experiments/AMIP/modular/Manifest.toml index 873ee26ad0..0970cc4942 100644 --- a/experiments/AMIP/modular/Manifest.toml +++ b/experiments/AMIP/modular/Manifest.toml @@ -2,12 +2,12 @@ julia_version = "1.8.5" manifest_format = "2.0" -project_hash = "0c52bcb1446b52cbf673aa87a7b4c42cc1fdbcf2" +project_hash = "43b11af04e9e53b2a11737cbd1cdc443f9bb9f21" [[deps.ADTypes]] -git-tree-sha1 = "f5c25e8a5b29b5e941b7408bc8cc79fea4d9ef9a" +git-tree-sha1 = "5d2e21d7b0d8c22f67483ef95ebdc39c0e6b6003" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "0.1.6" +version = "0.2.4" [[deps.AMD]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] @@ -62,9 +62,9 @@ version = "0.1.29" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "dcda7e0ac618210eabf43751d5cafde100dd539b" +git-tree-sha1 = "0d61921af2799487b80453a44abb57db7a0c1381" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.3.0" +version = "1.4.1" [[deps.ArtifactWrappers]] deps = ["Downloads", "Pkg"] @@ -76,10 +76,10 @@ version = "0.2.0" uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" [[deps.AtmosphericProfilesLibrary]] -deps = ["Dierckx"] -git-tree-sha1 = "66f7e7f704c848d5b09bd11c980bc28d83f75c77" +deps = ["Dierckx", "LinearAlgebra"] +git-tree-sha1 = "c6be1ce28b7870a60400c51c75dc1b08d6a8dd73" uuid = "86bc3604-9858-485a-bdbe-831ec50de11d" -version = "0.1.3" +version = "0.1.4" [[deps.Atomix]] deps = ["UnsafeAtomics"] @@ -144,15 +144,15 @@ version = "0.1.2" [[deps.CLIMAParameters]] deps = ["DocStringExtensions", "TOML", "Test"] -git-tree-sha1 = "d44564edc0950638a868e26472d474f717575b3f" +git-tree-sha1 = "d35d039179f27abc063f7ae5c564573fe5316bb2" uuid = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" -version = "0.7.7" +version = "0.7.19" [[deps.CPUSummary]] deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] -git-tree-sha1 = "89e0654ed8c7aebad6d5ad235d6242c2d737a928" +git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" -version = "0.2.3" +version = "0.2.4" [[deps.CUDA]] deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "Preferences", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "SpecialFunctions", "UnsafeAtomicsLLVM"] @@ -210,9 +210,9 @@ version = "0.1.8" [[deps.ClimaAtmos]] deps = ["ArgParse", "ArtifactWrappers", "Artifacts", "AtmosphericProfilesLibrary", "CLIMAParameters", "CUDA", "ClimaComms", "ClimaCore", "ClimaTimeSteppers", "CloudMicrophysics", "Colors", "Dates", "Dierckx", "DiffEqBase", "DiffEqCallbacks", "Distributions", "DocStringExtensions", "FastGaussQuadrature", "ImageFiltering", "Insolation", "Interpolations", "IntervalSets", "JLD2", "LambertW", "LinearAlgebra", "Logging", "NCDatasets", "NVTX", "OrdinaryDiffEq", "Pkg", "Printf", "RRTMGP", "Random", "RootSolvers", "StaticArrays", "Statistics", "StatsBase", "SurfaceFluxes", "TerminalLoggers", "Test", "Thermodynamics", "YAML"] -git-tree-sha1 = "535927e938339558b705c8719eb97a29c2960156" +git-tree-sha1 = "fcb42f37a086e343b9e949261f2ec1cd4388cc5e" uuid = "b2c96348-7fb7-4fe0-8da9-78d88439e717" -version = "0.15.7" +version = "0.16.0" [[deps.ClimaComms]] deps = ["CUDA", "MPI"] @@ -221,10 +221,10 @@ uuid = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" version = "0.5.3" [[deps.ClimaCore]] -deps = ["Adapt", "BandedMatrices", "BlockArrays", "CUDA", "ClimaComms", "CubedSphere", "DataStructures", "DiffEqBase", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "LinearAlgebra", "PkgVersion", "RecursiveArrayTools", "Requires", "RootSolvers", "SparseArrays", "Static", "StaticArrays", "Statistics", "UnPack"] -git-tree-sha1 = "6eb2e785a605f1ea0bef9c2210b26a6756ef6d5e" +deps = ["Adapt", "BandedMatrices", "BlockArrays", "CUDA", "ClimaComms", "CubedSphere", "DataStructures", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "LinearAlgebra", "PkgVersion", "RecursiveArrayTools", "Requires", "RootSolvers", "SparseArrays", "Static", "StaticArrays", "Statistics", "UnPack"] +git-tree-sha1 = "6841faabcaf23af38190e92abdb5eec3e6f8601d" uuid = "d414da3d-4745-48bb-8d80-42e94e092884" -version = "0.10.47" +version = "0.10.50" [[deps.ClimaCorePlots]] deps = ["ClimaCore", "RecipesBase", "StaticArrays", "TriplotBase"] @@ -239,7 +239,7 @@ uuid = "d934ef94-cdd4-4710-83d6-720549644b70" version = "0.3.5" [[deps.ClimaCoupler]] -deps = ["CLIMAParameters", "ClimaAtmos", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "ClimaLSM", "Dates", "DocStringExtensions", "Insolation", "JLD2", "NCDatasets", "OrdinaryDiffEq", "Plots", "PrettyTables", "SciMLBase", "StaticArrays", "Statistics", "SurfaceFluxes", "TempestRemap_jll", "TerminalLoggers", "Thermodynamics", "UnPack"] +deps = ["CLIMAParameters", "ClimaAtmos", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "ClimaLSM", "Dates", "DocStringExtensions", "HDF5", "Insolation", "JLD2", "NCDatasets", "OrdinaryDiffEq", "Plots", "PrettyTables", "SciMLBase", "StaticArrays", "Statistics", "SurfaceFluxes", "TempestRemap_jll", "TerminalLoggers", "Thermodynamics", "UnPack"] path = "../../.." uuid = "4ade58fe-a8da-486c-bd89-46df092ec0c7" version = "0.1.0" @@ -333,9 +333,9 @@ version = "2.2.1" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] -git-tree-sha1 = "fe2838a593b5f776e1597e086dcd47560d94e816" +git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.3" +version = "1.5.4" [[deps.Contour]] git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" @@ -407,16 +407,16 @@ uuid = "cd4c43a9-7502-52ba-aa6d-59fb2a88580b" version = "0.1.0+0" [[deps.DiffEqBase]] -deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "Distributions", "DocStringExtensions", "EnumX", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces", "ZygoteRules"] -git-tree-sha1 = "ed586656058844e48660c6d6fdb384e83afc50db" +deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "Distributions", "DocStringExtensions", "EnumX", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces", "ZygoteRules"] +git-tree-sha1 = "6ece6f2956dea6380d8e5e6eadaab1bb9af20cce" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.128.0" +version = "6.129.0" [[deps.DiffEqCallbacks]] -deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "303ab70e4524843653e55e16a3dc7b75e677a3dd" +deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "Functors", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "42424e81924d4f463c6f8db8ce2978d51ba0aeaf" uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" -version = "2.27.0" +version = "2.30.0" [[deps.DiffResults]] deps = ["StaticArraysCore"] @@ -486,10 +486,10 @@ uuid = "2e619515-83b5-522b-bb60-26c02a35a201" version = "2.5.0+0" [[deps.ExponentialUtilities]] -deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "Printf", "SnoopPrecompile", "SparseArrays", "libblastrampoline_jll"] -git-tree-sha1 = "fb7dbef7d2631e2d02c49e2750f7447648b0ec9b" +deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "PrecompileTools", "Printf", "SparseArrays", "libblastrampoline_jll"] +git-tree-sha1 = "602e4585bcbd5a25bc06f514724593d13ff9e862" uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" -version = "1.24.0" +version = "1.25.0" [[deps.ExprTools]] git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" @@ -590,9 +590,9 @@ version = "0.4.2" [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions", "StaticArrays"] -git-tree-sha1 = "00e252f4d706b3d55a8863432e742bf5717b498d" +git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" uuid = "f6369f11-7733-5829-9624-2563aa707210" -version = "0.10.35" +version = "0.10.36" [[deps.FreeType2_jll]] deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] @@ -617,6 +617,12 @@ git-tree-sha1 = "b104d487b34566608f8b4e1c39fb0b10aa279ff8" uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" version = "0.1.3" +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9a68d75d466ccc1218d0552a8e1631151c569545" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.5" + [[deps.Future]] deps = ["Random"] uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" @@ -681,10 +687,10 @@ uuid = "88fa7841-ef32-4516-bb70-c6ec135699d9" version = "0.1.0" [[deps.Glib_jll]] -deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "d3b3624125c1474292d0d8ed0f65554ac37ddb23" +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.74.0+2" +version = "2.76.5+0" [[deps.Glob]] git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" @@ -709,10 +715,10 @@ uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" version = "1.0.2" [[deps.HDF5]] -deps = ["Compat", "HDF5_jll", "Libdl", "Mmap", "Printf", "Random", "Requires", "UUIDs"] -git-tree-sha1 = "114e20044677badbc631ee6fdc80a67920561a29" +deps = ["Compat", "HDF5_jll", "Libdl", "MPIPreferences", "Mmap", "Preferences", "Printf", "Random", "Requires", "UUIDs"] +git-tree-sha1 = "ec7df74b7b2022e8252a8bfd4ec23411491adc3b" uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" -version = "0.16.16" +version = "0.17.0" [[deps.HDF5_jll]] deps = ["Artifacts", "JLLWrappers", "LibCURL_jll", "Libdl", "OpenSSL_jll", "Pkg", "Zlib_jll"] @@ -722,9 +728,9 @@ version = "1.12.2+2" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "cb56ccdd481c0dd7f975ad2b3b62d9eda088f7e2" +git-tree-sha1 = "5eab648309e2e060198b45820af1a37182de3cce" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.9.14" +version = "1.10.0" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -854,9 +860,9 @@ version = "0.2.1+0" [[deps.KLU]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] -git-tree-sha1 = "764164ed65c30738750965d55652db9c94c59bfe" +git-tree-sha1 = "884c2968c2e8e7e6bf5956af88cb46aa745c854b" uuid = "ef3ab10e-7fda-4108-b977-705223b18434" -version = "0.4.0" +version = "0.4.1" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] @@ -866,9 +872,9 @@ version = "0.9.8" [[deps.Krylov]] deps = ["LinearAlgebra", "Printf", "SparseArrays"] -git-tree-sha1 = "fbda7c58464204d92f3b158578fb0b3d4224cea5" +git-tree-sha1 = "17e462054b42dcdda73e9a9ba0c67754170c88ae" uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -version = "0.9.3" +version = "0.9.4" [[deps.LAME_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -890,15 +896,15 @@ version = "3.0.0+1" [[deps.LLVM]] deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Printf", "Unicode"] -git-tree-sha1 = "8695a49bfe05a2dc0feeefd06b4ca6361a018729" +git-tree-sha1 = "a9d2ce1d5007b1e8f6c5b89c5a31ff8bd146db5c" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "6.1.0" +version = "6.2.1" [[deps.LLVMExtra_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "c35203c1e1002747da220ffc3c0762ce7754b08c" +git-tree-sha1 = "7ca6850ae880cc99b59b88517545f91a52020afa" uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.23+0" +version = "0.0.25+0" [[deps.LLVMOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -997,10 +1003,10 @@ uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" version = "1.42.0+0" [[deps.Libiconv_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "c7cb1f5d892775ba13767a87c7ada0b980ea0a71" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" -version = "1.16.1+2" +version = "1.17.0+0" [[deps.Libmount_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1179,9 +1185,9 @@ version = "4.5.1" [[deps.NVTX]] deps = ["Colors", "JuliaNVTXCallbacks_jll", "Libdl", "NVTX_jll"] -git-tree-sha1 = "c1bfdab07fa259baa4604a05862c43004dd3cd45" +git-tree-sha1 = "8bc9ce4233be3c63f8dcd78ccaf1b63a9c0baa34" uuid = "5da4648a-3479-48b8-97b9-01cb529c0a1f" -version = "0.3.1" +version = "0.3.3" [[deps.NVTX_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1253,9 +1259,9 @@ version = "1.4.1" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "bbb5c2115d63c2f1451cb70e5ef75e8fe4707019" +git-tree-sha1 = "a12e56c72edee3ce6b96667745e6cbbe5498f200" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "1.1.22+0" +version = "1.1.23+0" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -1276,9 +1282,9 @@ version = "1.6.2" [[deps.OrdinaryDiffEq]] deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "IfElse", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "LoopVectorization", "MacroTools", "MuladdMacro", "NLsolve", "NonlinearSolve", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLNLSolve", "SciMLOperators", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "47c560dcb059570bdbd9f887a6b8958190e498a4" +git-tree-sha1 = "ba3ed480f991b846cf9a8118d3370d9752e7166d" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.53.4" +version = "6.55.0" [[deps.PCRE2_jll]] deps = ["Artifacts", "Libdl"] @@ -1351,15 +1357,15 @@ version = "1.3.5" [[deps.Plots]] deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Preferences", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] -git-tree-sha1 = "9f8675a55b37a70aa23177ec110f6e3f4dd68466" +git-tree-sha1 = "ccee59c6e48e6f2edf8a5b64dc817b6729f99eb5" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.38.17" +version = "1.39.0" [[deps.Polyester]] deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] -git-tree-sha1 = "3d811babe092a6e7b130beee84998fe7663348b6" +git-tree-sha1 = "d4c9ebdc6528a4aaf7cfcf43b482e927267b400d" uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" -version = "0.7.5" +version = "0.7.6" [[deps.PolyesterWeave]] deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] @@ -1465,9 +1471,9 @@ version = "0.6.12" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "Requires", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "7ed35fb5f831aaf09c2d7c8736d44667a1afdcb0" +git-tree-sha1 = "d7087c013e8a496ff396bae843b1e16d9a30ede8" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "2.38.7" +version = "2.38.10" [[deps.RecursiveFactorization]] deps = ["LinearAlgebra", "LoopVectorization", "Polyester", "PrecompileTools", "StrideArraysCore", "TriangularSolve"] @@ -1532,10 +1538,10 @@ uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" version = "0.6.39" [[deps.SciMLBase]] -deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] -git-tree-sha1 = "04370090604cd399db5bebddb636d80ab9d338e9" +deps = ["ADTypes", "ArrayInterface", "ChainRulesCore", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FillArrays", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces", "ZygoteRules"] +git-tree-sha1 = "6de099dba3c80e23bde1d19011161ea91a23ed6b" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "1.94.0" +version = "1.98.0" [[deps.SciMLNLSolve]] deps = ["DiffEqBase", "LineSearches", "NLsolve", "Reexport", "SciMLBase"] @@ -1616,10 +1622,10 @@ deps = ["LinearAlgebra", "Random"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" [[deps.SparseDiffTools]] -deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "Reexport", "Requires", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "VertexSafeGraphs"] -git-tree-sha1 = "4c1a57bcbc0b795fbfdc2009e70f9c2fd2815bfe" +deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "PackageExtensionCompat", "Reexport", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "UnPack", "VertexSafeGraphs"] +git-tree-sha1 = "42d131931906bf4f0af97a7113c8456d0a8aff9d" uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" -version = "2.4.1" +version = "2.6.0" [[deps.Sparspak]] deps = ["Libdl", "LinearAlgebra", "Logging", "OffsetArrays", "Printf", "SparseArrays", "Test"] @@ -1653,9 +1659,9 @@ version = "1.4.1" [[deps.StaticArrays]] deps = ["LinearAlgebra", "Random", "StaticArraysCore", "Statistics"] -git-tree-sha1 = "9cabadf6e7cd2349b6cf49f1915ad2028d65e881" +git-tree-sha1 = "51621cca8651d9e334a659443a74ce50a3b6dfab" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.6.2" +version = "1.6.3" [[deps.StaticArraysCore]] git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" @@ -1668,9 +1674,9 @@ uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" [[deps.StatsAPI]] deps = ["LinearAlgebra"] -git-tree-sha1 = "45a7769a04a3cf80da1c1c7c60caf932e6f4c9f7" +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" -version = "1.6.0" +version = "1.7.0" [[deps.StatsBase]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] @@ -1697,9 +1703,10 @@ uuid = "69024149-9ee7-55f6-a4c4-859efe599b68" version = "0.3.7" [[deps.StringManipulation]] -git-tree-sha1 = "46da2434b41f41ac3594ee9816ce5541c6096123" +deps = ["PrecompileTools"] +git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5" uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" -version = "0.3.0" +version = "0.3.4" [[deps.SuiteSparse]] deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] diff --git a/experiments/AMIP/modular/Project.toml b/experiments/AMIP/modular/Project.toml index b9d72c8c93..1e3102b32f 100644 --- a/experiments/AMIP/modular/Project.toml +++ b/experiments/AMIP/modular/Project.toml @@ -45,12 +45,14 @@ TerminalLoggers = "5d786b92-1e48-4d6f-9151-6b4477ca9bed" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" Thermodynamics = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" UnPack = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" +YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" [compat] ArgParse = "1.1" ArtifactWrappers = "0.2" AtmosphericProfilesLibrary = "0.1" CLIMAParameters = "0.4, 0.5, 0.6, 0.7" +ClimaAtmos = "0.16" ClimaCorePlots = "0.2" ClimaCoupler = "0.1" ClimaTimeSteppers = "0.7" @@ -70,7 +72,7 @@ NVTX = "0.3" ProgressLogging = "0.1" RRTMGP = "0.9" StaticArrays = "1" -julia = "1.8.5" +YAML = "0.4" [extras] CPUSummary = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" diff --git a/experiments/AMIP/modular/cli_options.jl b/experiments/AMIP/modular/cli_options.jl index f53cc36264..da881e47e1 100644 --- a/experiments/AMIP/modular/cli_options.jl +++ b/experiments/AMIP/modular/cli_options.jl @@ -6,7 +6,6 @@ function argparse_settings() "--run_name" help = "Name of this run." arg_type = String - default = "run" "--dt_cpl" help = " Coupling time step in seconds" arg_type = Int @@ -51,389 +50,9 @@ function argparse_settings() help = "Restart time" arg_type = Int default = 0 - # ClimaAtmos flags - "--FLOAT_TYPE" - help = "Float type" - arg_type = String - default = "Float32" - "--t_end" - help = "Simulation end time. Examples: [`1200days`, `40secs`]" - arg_type = String - default = "10days" - "--dt" - help = "Simulation time step. Examples: [`10secs`, `1hours`]" - arg_type = String - default = "600secs" - "--dt_save_to_sol" - help = "Time between saving solution. Examples: [`10days`, `1hours`, `Inf` (do not save)]" - arg_type = String - default = "1days" - "--dt_save_to_disk" - help = "Time between saving to disk. Examples: [`10secs`, `1hours`, `Inf` (do not save)]" - arg_type = String - default = "Inf" - "--dt_save_restart" - help = "Time between saving restart files to disk. Examples: [`10secs`, `1hours`, `Inf` (do not save)]" - arg_type = String - default = "Inf" - "--dt_rad" - help = "Time between calling radiation callback for sphere configurations" - arg_type = String - default = "6hours" - "--config" - help = "Spatial configuration [`sphere` (default), `column`, `box`, `plane`]" - arg_type = String - default = "sphere" - "--initial_condition" - help = "Initial condition [`DryBaroclinicWave`, `MoistBaroclinicWave`, `DecayingProfile`, `IsothermalProfile`, `Bomex`, `DryDensityCurrentProfile`, `AgnesiHProfile`, `ScharProfile`, `RisingThermalBubbleProfile`]" - arg_type = String - default = "DecayingProfile" - "--moist" - help = "Moisture model [`dry` (default), `equil`, `non_equil`]" - arg_type = String - default = "dry" - "--precip_model" - help = "Precipitation model [`nothing` (default), `0M`]" - arg_type = String - "--forcing" - help = "Forcing [`nothing` (default), `held_suarez`]" - arg_type = String - "--subsidence" - help = "Subsidence [`nothing` (default), `Bomex`, `LifeCycleTan2018`, `Rico`, `DYCOMS`]" - arg_type = String - "--ls_adv" - help = "Large-scale advection [`nothing` (default), `Bomex`, `LifeCycleTan2018`, `Rico`, `ARM_SGP`, `GATE_III`]" - arg_type = String - "--edmf_coriolis" - help = "EDMF coriolis [`nothing` (default), `Bomex`,`LifeCycleTan2018`,`Rico`,`ARM_SGP`,`DYCOMS_RF01`,`DYCOMS_RF02`,`GABLS`]" - arg_type = String - "--edmfx_adv_test" - help = "EDMFX advection test switches off all velocity tendencies in GM and turbconc [`false` (default), `true`]" - arg_type = Bool - default = false - "--edmfx_entr_detr" - help = "If set to true, it switches on EDMFX entrainment/detrainment closure. [`true`, `false` (default)]" - arg_type = Bool - default = false - "--entr_coeff" - help = "Entrainment coefficient" - arg_type = Float64 - default = Float64(1.0) - "--detr_coeff" - help = "Detrainment coefficient" - arg_type = Float64 - default = Float64(0.001) - "--edmfx_sgs_flux" - help = "If set to true, it switches on EDMFX SGS flux. [`true`, `false` (default)]" - arg_type = Bool - default = false - "--edmfx_nh_pressure" - help = "If set to true, it switches on EDMFX pressure drag closure. [`true`, `false` (default)]" - arg_type = Bool - default = false - "--vert_diff" - help = "Vertical diffusion [`false` (default), `VerticalDiffusion`, `true` (defaults to `VerticalDiffusion`)]" - arg_type = String - default = "false" - "--prognostic_surface" - help = "Determines if surface temperature is prognostic [`false` (default), , `true`, `PrognosticSurfaceTemperature`, `PrescribedSurfaceTemperature`]" - arg_type = String - default = "false" - "--surface_setup" - help = "Surface flux scheme [`DefaultExchangeCoefficients` (default), `DefaultMoninObukhov`]" - arg_type = String - default = "DefaultExchangeCoefficients" - "--surface_thermo_state_type" - help = "Surface thermo state type [`GCMSurfaceThermoState` (default), `PrescribedThermoState`]" - arg_type = String - default = "GCMSurfaceThermoState" - "--surface_temperature" - help = "Prescribed surface temperature functional form ['ZonallySymmetric' (default), 'ZonallyAsymmetric']" - arg_type = String - default = "ZonallySymmetric" - "--C_E" - help = "Bulk transfer coefficient" - arg_type = Float64 - default = Float64(0.0044) - "--turbconv" - help = "Turbulence convection scheme [`nothing` (default), `edmf`]" - arg_type = String - "--turbconv_case" - help = "The case run by Turbulence convection scheme [`Bomex` (default), `Bomex`, `DYCOMS_RF01`, `TRMM_LBA`, `GABLS`]" - arg_type = String - "--prognostic_tke" - help = "Whether the turbulence convection scheme uses prognostic or prescribed TKE [`false` (default), `true`]" - arg_type = Bool - default = false - "--hyperdiff" - help = "Hyperdiffusion [`ClimaHyperdiffusion` (or `true`; default), `none` (or `false`)]" - arg_type = String - default = "ClimaHyperdiffusion" - "--idealized_insolation" - help = "Use idealized insolation in radiation model [`false`, `true` (default)]" - arg_type = Bool - default = true - "--idealized_h2o" - help = "Use idealized H2O in radiation model [`false` (default), `true`]" - arg_type = Bool - default = false - "--idealized_clouds" - help = "Use idealized clouds in radiation model [`false` (default), `true`]" - arg_type = Bool - default = false - "--rad" - help = "Radiation model [`nothing` (default), `gray`, `clearsky`, `allsky`, `allskywithclear`]" - arg_type = String - "--energy_name" - help = "Energy variable name [`rhoe` (default), `rhotheta`]" - arg_type = String - default = "rhoe" - "--perturb_initstate" - help = "Add a perturbation to the initial condition [`false`, `true` (default)]" - arg_type = Bool - default = true - "--discrete_hydrostatic_balance" - help = "Set the initial state to discrete hydrostatic balance" - arg_type = Bool - default = false - "--energy_upwinding" - help = "Energy upwinding mode [`none` (default), `first_order` , `third_order`, `boris_book`, `zalesak`]" - arg_type = Symbol - default = :none - "--tracer_upwinding" - help = "Tracer upwinding mode [`none` (default), `first_order` , `third_order`, `boris_book`, `zalesak`]" - arg_type = Symbol - default = :none - "--density_upwinding" - help = "Denisity upwinding mode [`none` (default), `first_order` , `third_order`, `boris_book`, `zalesak`]" - arg_type = Symbol - default = :none - "--edmfx_upwinding" - help = "EDMFX upwinding mode [`none` (default), `first_order` , `third_order`, `boris_book`, `zalesak`]" - arg_type = Symbol - default = :none # TODO: change to :first_order (or higher?) - "--ode_algo" - help = "ODE algorithm [`ARS343` (default), `SSP333`, `IMKG343a`, `ODE.Euler`, `ODE.IMEXEuler`, `ODE.Rosenbrock23`, etc.]" - arg_type = String - default = "ARS343" - "--max_newton_iters" - help = "Maximum number of Newton's method iterations (only for ODE algorithms that use Newton's method)" - arg_type = Int - default = 1 - "--use_newton_rtol" - help = "Whether to check if the current iteration of Newton's method has an error within a relative tolerance, instead of always taking the maximum number of iterations (only for ClimaTimeSteppers.jl)" - arg_type = Bool - default = false - "--newton_rtol" - help = "Relative tolerance of Newton's method (only for ClimaTimeSteppers.jl; only used when `use_newton_rtol` is `true`)" - arg_type = Float64 - default = Float64(1e-5) - "--use_krylov_method" - help = "Whether to use a Krylov method to solve the linear system in Newton's method (only for ClimaTimeSteppers.jl)" - arg_type = Bool - default = false - "--krylov_rtol" - help = "Relative tolerance of the Krylov method (only for ClimaTimeSteppers.jl; only used if `use_krylov_method` is `true`)" - arg_type = Float64 - default = Float64(0.1) - "--use_dynamic_krylov_rtol" - help = "Whether to use Eisenstat-Walker forcing instead of a constant relative tolerance in the Krylov method (only for ClimaTimeSteppers.jl)" - arg_type = Bool - default = false - "--eisenstat_walker_forcing_alpha" - help = "Value of alpha to use for Eisenstat-Walker forcing (only for ClimaTimeSteppers.jl; only used if `use_krylov_method` and `use_dynamic_krylov_rtol` are `true`)" - arg_type = Float64 - default = Float64(2) - "--jvp_step_adjustment" - help = "Amount by which the step size of the forward difference approximation of the Jacobian-vector product in the Krylov method should be scaled (only used if `use_krylov_method` is `true`)" - arg_type = Float64 - default = Float64(1) - "--split_ode" - help = "Use split of ODE problem. Examples: [`true` (implicit, default), `false` (explicit)]" - arg_type = Bool - default = true - "--regression_test" - help = "(Bool) perform regression test" - arg_type = Bool - default = false - "--output_dir" - help = "Output directory" - arg_type = String - "--job_id" - help = "Uniquely identifying string for a particular job" - arg_type = String - "--reference_job_id" - help = "Identifier of job to use as the \"reference\" solution in the quicklook plot; the current job's results get compared to the results of the quicklook job on the main branch (only used if `debugging_tc` is `true`)" - arg_type = String - "--trunc_stack_traces" - help = "Set to `true` to truncate printing of ClimaCore `Field`s" - arg_type = Bool - default = true - "--fps" - help = "Frames per second for animations" - arg_type = Int - default = 5 - "--post_process" - help = "Post process [`true` (default), `false`]" - arg_type = Bool - default = true - "--h_elem" - help = "number of elements per edge on a cubed sphere" - arg_type = Int - default = 6 - "--x_elem" - help = "number of horizontal elements in the x-direction" - arg_type = Int - default = 6 - "--y_elem" - help = "number of horizontal elements in the y-direction" - arg_type = Int - default = 6 - "--z_elem" - help = "number of vertical elements" - arg_type = Int - default = 10 - "--nh_poly" - help = "Horizontal polynomial degree. Note: The number of quadrature points in 1D within each horizontal element is then Nq = <--nh_poly> + 1" - arg_type = Int - default = 3 - "--bubble" - help = "Enable bubble correction for more accurate surface areas" - arg_type = Bool - default = true - "--x_max" - help = "Model domain size, x direction. Default: 300km" - arg_type = Float64 - default = Float64(300e3) - "--y_max" - help = "Model domain size, y direction. Default: 300km" - arg_type = Float64 - default = Float64(300e3) - "--z_max" - help = "Model top height. Default: 30km" - arg_type = Float64 - default = Float64(30e3) - "--z_stretch" - help = "Stretch grid in z-direction. [`true` (default), `false`]" - arg_type = Bool - default = true - "--dz_bottom" - help = "Model bottom grid depth. Default: 500m" - arg_type = Float64 - default = Float64(500) - "--dz_top" - help = "Model top grid depth. Default: 5000m" - arg_type = Float64 - default = Float64(5000) - "--kappa_4" - help = "Hyperdiffusion parameter" - arg_type = Float64 - default = Float64(2e17) - "--divergence_damping_factor" - help = "Divergence damping factor" - arg_type = Float64 - default = Float64(1) - "--rayleigh_sponge" - help = "Rayleigh sponge [`true`, `false` (default)]" - arg_type = Bool - default = false - "--viscous_sponge" - help = "Viscous sponge [`true`, `false` (default)]" - arg_type = Bool - default = false - "--zd_rayleigh" - help = "Rayleigh sponge height" - arg_type = Float64 - default = Float64(15e3) - "--alpha_rayleigh_uh" - help = "Rayleigh sponge coefficient for horizontal velocity" - arg_type = Float64 - default = Float64(1e-4) - "--alpha_rayleigh_w" - help = "Rayleigh sponge coefficient for vertical velocity" - arg_type = Float64 - default = Float64(1) - "--zd_viscous" - help = "Viscous sponge height" - arg_type = Float64 - default = Float64(15e3) - "--kappa_2_sponge" - help = "Viscous sponge coefficient" - arg_type = Float64 - default = Float64(1e6) - "--start_date" - help = "Start date of the simulation" - arg_type = String - default = "19790101" - "--topography" - help = "Define the surface elevation profile [`NoWarp`,`Earth`,`DCMIP200`,`Agnesi`]" - arg_type = String - default = "NoWarp" - "--topo_smoothing" - help = "Choose whether to order-2 smoothing on the LGL mesh" - arg_type = Bool - default = false - "--smoothing_order" - help = "Define the surface smoothing kernel factor (integer) [`3 (default)`]" - arg_type = Int - default = 3 - "--apply_limiter" - help = "Apply a horizontal limiter to every tracer [`true` (default), `false`]" - arg_type = Bool - default = true - "--imex_edmf_turbconv" - help = "Whether to split EDMF's `compute_turbconv_tendencies!` into implicit and explicit components" - arg_type = Bool - default = false - "--imex_edmf_gm" - help = "Whether to split EDMF's `compute_gm_tendencies!` into implicit and explicit components" - arg_type = Bool - default = false - "--debugging_tc" - help = "Save most of the tc aux state to HDF5 file [`false` (default), `true`]" - arg_type = Bool - default = false - "--test_edmf_consistency" - help = "Test edmf equation consistency [`false` (default), `true`]" - arg_type = Bool - default = false - "--test_dycore_consistency" - help = "Test dycore consistency [`false` (default), `true`]" - arg_type = Bool - default = false - "--use_reference_state" - help = "Subtract a reference state from the dycore equations [`false`, `true` (default)]" - arg_type = Bool - default = true - "--check_conservation" - help = "Check conservation of mass and energy [`false` (default), `true`]" - arg_type = Bool - default = false - "--non_orographic_gravity_wave" - help = "Apply parameterization for convective gravity wave forcing on horizontal mean flow [`false` (default), `true`]" - arg_type = Bool - default = false - "--orographic_gravity_wave" - help = "Orographic drag on horizontal mean flow [`nothing` (default), `gfdl_restart`, `raw_topo`]" - arg_type = String - "--device" - help = "Device type to use [`auto` (default) `CPUSingleThreaded`, `CPUMultiThreaded`, `CUDADevice`]" - arg_type = String - default = "auto" - "--perf_summary" - help = "Flag for collecting performance summary information" - arg_type = Bool - default = false - "--perf_mode" - help = "A flag for analyzing performance [`PerfStandard` (default), `PerfExperimental`]" - arg_type = String - default = "PerfStandard" - "--target_job" - help = "An (optional) job to target for analyzing performance" - arg_type = String - "--toml" - help = "A toml file used to override model parameters and configurations. In the case of conflicts, CLI arguments take priority over the toml" - arg_type = String + # ClimaAtmos flag + "--config_file" + help = "A yaml file used to set model configurations" end return s end diff --git a/experiments/AMIP/modular/components/atmosphere/climaatmos_init.jl b/experiments/AMIP/modular/components/atmosphere/climaatmos_init.jl index 4236692611..c937437841 100644 --- a/experiments/AMIP/modular/components/atmosphere/climaatmos_init.jl +++ b/experiments/AMIP/modular/components/atmosphere/climaatmos_init.jl @@ -1,5 +1,4 @@ # atmos_init: for ClimaAtmos pre-AMIP interface -import ClimaAtmos using ClimaAtmos: RRTMGPI import ClimaAtmos: CT1, CT2, CT12, CT3, C3, C12, unit_basis_vector_data, ⊗ import ClimaCoupler.FluxCalculator: @@ -24,8 +23,9 @@ name(::ClimaAtmosSimulation) = "ClimaAtmosSimulation" function atmos_init(::Type{FT}, parsed_args::Dict) where {FT} - atmos_config = ClimaAtmos.AtmosConfig(argparse_settings(); parsed_args) - integrator = ClimaAtmos.get_integrator(atmos_config) + # By passing `parsed_args` to `AtmosConfig`, `parsed_args` overwrites the default atmos config + atmos_config = CA.AtmosConfig(; config_dict = parsed_args) + integrator = CA.get_integrator(atmos_config) Y = integrator.u center_space = axes(Y.c.ρe_tot) face_space = axes(Y.f.u₃) @@ -149,8 +149,8 @@ function coupler_surface_setup( csf_sfc = (; T = nothing, z0m = nothing, z0b = nothing, beta = nothing, q_vap = nothing), ) - surface_state(z0m, z0b, T, beta, q_vap) = ClimaAtmos.SurfaceConditions.SurfaceState(; - parameterization = ClimaAtmos.SurfaceConditions.MoninObukhov(; z0m, z0b), + surface_state(z0m, z0b, T, beta, q_vap) = CA.SurfaceConditions.SurfaceState(; + parameterization = CA.SurfaceConditions.MoninObukhov(; z0m, z0b), T, beta, q_vap, @@ -200,7 +200,7 @@ timestep from ClimaCoupler. """ function atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf) new_p = get_new_cache(atmos_sim, csf) - ClimaAtmos.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) + CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions end diff --git a/experiments/AMIP/modular/coupler_driver_modular.jl b/experiments/AMIP/modular/coupler_driver_modular.jl index 39cd56d478..994318dd04 100644 --- a/experiments/AMIP/modular/coupler_driver_modular.jl +++ b/experiments/AMIP/modular/coupler_driver_modular.jl @@ -59,12 +59,14 @@ using Dates using UnPack using Plots using Statistics: mean +import ClimaAtmos as CA +import YAML using ClimaCore.Utilities: half, PlusHalf using ClimaCore: InputOutput, Fields import ClimaCore.Spaces as Spaces -if !(@isdefined parsed_args) +if !(@isdefined parsed_args) # coupler defaults include("cli_options.jl") parsed_args = parse_commandline(argparse_settings()) end @@ -74,7 +76,7 @@ if isinteractive() parsed_args["coupled"] = true #hide parsed_args["surface_setup"] = "PrescribedSurface" #hide # necessary to stop Atmos from calculating its own surface fluxes parsed_args["moist"] = "equil" #hide - parsed_args["vert_diff"] = true #hide + parsed_args["vert_diff"] = "true" #hide parsed_args["rad"] = "gray" #hide parsed_args["energy_check"] = true #hide parsed_args["mode_name"] = "slabplanet" #hide @@ -88,9 +90,30 @@ if isinteractive() # parsed_args["dt_save_restart"] = "5days" #hide parsed_args["precip_model"] = "0M" #hide parsed_args["job_id"] = "interactive_debug_run" + parsed_args["run_name"] = "interactive_debug_run" parsed_args["monthly_checkpoint"] = true + parsed_args["config_file"] = + isnothing(parsed_args["config_file"]) ? "../../../config/model_configs/slabplanet_default.yml" : + parsed_args["config_file"] end +# read in config dictionary from file +config_dict = YAML.load_file(parsed_args["config_file"]) + +atmos_config = if !isnothing(config_dict) + CA.override_default_config(config_dict) +elseif !isnothing(parsed_args["config_file"]) + CA.override_default_config(parsed_args["config_file"]) +else # If no config file is specified, we use the Atmos default config dict as `atmos_config` + @info "Using Atmos default configuration" + CA.default_config_dict() +end + +# merge dictionaries. If there are common keys, the last dictorionary in the `merge` arguments takes precedence: +parsed_args = + isinteractive() ? merge(config_dict, atmos_config, parsed_args) : merge(parsed_args, config_dict, atmos_config) +parsed_args["run_name"] = isnothing(parsed_args["run_name"]) ? config_dict["run_name"] : parsed_args["run_name"] + ## read in some parsed command line arguments mode_name = parsed_args["mode_name"] run_name = parsed_args["run_name"] @@ -148,7 +171,11 @@ import ClimaCoupler.FieldExchanger: import ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state! pkg_dir = pkgdir(ClimaCoupler) -COUPLER_OUTPUT_DIR = joinpath(pkg_dir, "experiments/AMIP/modular/output", joinpath(mode_name, run_name)) +if isinteractive() + COUPLER_OUTPUT_DIR = joinpath("output", joinpath(mode_name, run_name)) # TempestRemap fails if interactive and paths are too long +else + COUPLER_OUTPUT_DIR = joinpath(pkg_dir, "experiments/AMIP/modular/output", joinpath(mode_name, run_name)) +end mkpath(COUPLER_OUTPUT_DIR) REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/") @@ -381,7 +408,7 @@ diagnostics = (monthly_3d_diags, monthly_2d_diags) conservation_checks = nothing if energy_check @assert( - mode_name == "slabplanet" && !ClimaAtmos.is_distributed(ClimaComms.context(boundary_space)), + mode_name == "slabplanet" && !CA.is_distributed(ClimaComms.context(boundary_space)), "Only non-distributed slabplanet allowable for energy_check" ) conservation_checks = @@ -452,7 +479,7 @@ elseif turbulent_fluxes isa PartitionedStateFluxes # update atmos sfc_conditions for surface temperature # TODO: this is hard coded and needs to be simplified (need CA modification) new_p = get_new_cache(atmos_sim, cs.fields) - ClimaAtmos.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA) + CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA) atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions end @@ -533,11 +560,7 @@ function solve_coupler!(cs) # update atmos sfc_conditions for surface temperature - TODO: this needs to be simplified (need CA modification) new_p = get_new_cache(atmos_sim, cs.fields) - ClimaAtmos.SurfaceConditions.update_surface_conditions!( - atmos_sim.integrator.u, - new_p, - atmos_sim.integrator.t, - ) # to set T_sfc (but SF calculation not necessary - CA modification) + CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # to set T_sfc (but SF calculation not necessary - CA modification) atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions end diff --git a/experiments/AMIP/modular/user_io/amip_visualizer.jl b/experiments/AMIP/modular/user_io/amip_visualizer.jl index 4dfa29a975..8b26f93480 100644 --- a/experiments/AMIP/modular/user_io/amip_visualizer.jl +++ b/experiments/AMIP/modular/user_io/amip_visualizer.jl @@ -34,7 +34,8 @@ function amip_paperplots( diag_data = read_latest_model_data(name, files_dir, files_root) # postprocess - post_data = postprocess(name, diag_data, getproperty(post_spec, name), nlat = nlat, nlon = nlon) + post_data = + postprocess(name, diag_data, getproperty(post_spec, name), REGRID_DIR = files_dir, nlat = nlat, nlon = nlon) post_data.data[1] = sum(post_data.data) == 0 ? post_data.data[1] + eps() : post_data.data[1] # avoids InexactError # create individual plots diff --git a/experiments/ClimaCore/sea_breeze/Manifest.toml b/experiments/ClimaCore/sea_breeze/Manifest.toml index ec04e76192..173fbc1c15 100644 --- a/experiments/ClimaCore/sea_breeze/Manifest.toml +++ b/experiments/ClimaCore/sea_breeze/Manifest.toml @@ -5,21 +5,21 @@ manifest_format = "2.0" project_hash = "4aa4c869f9d982e7450ef4fd4b4c13c84420cf0d" [[deps.ADTypes]] -git-tree-sha1 = "f5c25e8a5b29b5e941b7408bc8cc79fea4d9ef9a" +git-tree-sha1 = "5d2e21d7b0d8c22f67483ef95ebdc39c0e6b6003" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "0.1.6" +version = "0.2.4" [[deps.AMD]] -deps = ["Libdl", "LinearAlgebra", "SparseArrays", "Test"] -git-tree-sha1 = "00163dc02b882ca5ec032400b919e5f5011dbd31" +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] +git-tree-sha1 = "d4b99dd70d7136fe75ec74d072191d688448d39c" uuid = "14f7f29c-3bd6-536c-9a0b-7339e30b5a3e" -version = "0.5.0" +version = "0.5.2" [[deps.AbstractFFTs]] -deps = ["ChainRulesCore", "LinearAlgebra"] -git-tree-sha1 = "cad4c758c0038eea30394b1b671526921ca85b21" +deps = ["ChainRulesCore", "LinearAlgebra", "Test"] +git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef" uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" -version = "1.4.0" +version = "1.5.0" [[deps.AbstractTrees]] git-tree-sha1 = "faa260e4cb5aba097a73fab382dd4b5819d8ec8c" @@ -62,9 +62,9 @@ version = "0.1.29" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "0adeb373cb2268a0f4e62d349ce9957b509d4d7e" +git-tree-sha1 = "0d61921af2799487b80453a44abb57db7a0c1381" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.1.0" +version = "1.4.1" [[deps.ArtifactWrappers]] deps = ["Downloads", "Pkg"] @@ -76,10 +76,10 @@ version = "0.2.0" uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" [[deps.AtmosphericProfilesLibrary]] -deps = ["Dierckx"] -git-tree-sha1 = "0d2fe99b3bc12cb4339e20b01755b24036789845" +deps = ["Dierckx", "LinearAlgebra"] +git-tree-sha1 = "c6be1ce28b7870a60400c51c75dc1b08d6a8dd73" uuid = "86bc3604-9858-485a-bdbe-831ec50de11d" -version = "0.1.2" +version = "0.1.4" [[deps.Atomix]] deps = ["UnsafeAtomics"] @@ -99,6 +99,12 @@ git-tree-sha1 = "dbf84058d0a8cbbadee18d25cf606934b22d7c66" uuid = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" version = "0.4.2" +[[deps.BandedMatrices]] +deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools", "SparseArrays"] +git-tree-sha1 = "0b816941273b5b162be122a6c94d706e3b3125ca" +uuid = "aae01518-5342-5314-be14-df237901396f" +version = "0.17.38" + [[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" @@ -115,9 +121,9 @@ version = "0.1.5" [[deps.BlockArrays]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra"] -git-tree-sha1 = "174b4970af15a500a29e76151f5c53195784b9d4" +git-tree-sha1 = "54cd829dd26330c42e1cf9df68470dd4df602c61" uuid = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" -version = "0.16.36" +version = "0.16.38" [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -138,21 +144,21 @@ version = "0.1.2" [[deps.CLIMAParameters]] deps = ["DocStringExtensions", "TOML", "Test"] -git-tree-sha1 = "d44564edc0950638a868e26472d474f717575b3f" +git-tree-sha1 = "9872c4383d3c212096b2750bf1c2237a4670a3af" uuid = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" -version = "0.7.7" +version = "0.7.20" [[deps.CPUSummary]] deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] -git-tree-sha1 = "89e0654ed8c7aebad6d5ad235d6242c2d737a928" +git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" -version = "0.2.3" +version = "0.2.4" [[deps.CUDA]] deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "Preferences", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "SpecialFunctions", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "35160ef0f03b14768abfd68b830f8e3940e8e0dc" +git-tree-sha1 = "968c1365e2992824c3e7a794e30907483f8469a9" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "4.4.0" +version = "4.4.1" [[deps.CUDA_Driver_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] @@ -204,9 +210,9 @@ version = "0.1.8" [[deps.ClimaAtmos]] deps = ["ArgParse", "ArtifactWrappers", "Artifacts", "AtmosphericProfilesLibrary", "CLIMAParameters", "CUDA", "ClimaComms", "ClimaCore", "ClimaTimeSteppers", "CloudMicrophysics", "Colors", "Dates", "Dierckx", "DiffEqBase", "DiffEqCallbacks", "Distributions", "DocStringExtensions", "FastGaussQuadrature", "ImageFiltering", "Insolation", "Interpolations", "IntervalSets", "JLD2", "LambertW", "LinearAlgebra", "Logging", "NCDatasets", "NVTX", "OrdinaryDiffEq", "Pkg", "Printf", "RRTMGP", "Random", "RootSolvers", "StaticArrays", "Statistics", "StatsBase", "SurfaceFluxes", "TerminalLoggers", "Test", "Thermodynamics", "YAML"] -git-tree-sha1 = "6cf1b2c438239cc3bfd3b8cffe59fa50442f1996" +git-tree-sha1 = "fcb42f37a086e343b9e949261f2ec1cd4388cc5e" uuid = "b2c96348-7fb7-4fe0-8da9-78d88439e717" -version = "0.15.3" +version = "0.16.0" [[deps.ClimaComms]] deps = ["CUDA", "MPI"] @@ -215,10 +221,10 @@ uuid = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" version = "0.5.3" [[deps.ClimaCore]] -deps = ["Adapt", "BlockArrays", "CUDA", "ClimaComms", "CubedSphere", "DataStructures", "DiffEqBase", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "LinearAlgebra", "PkgVersion", "RecursiveArrayTools", "Requires", "RootSolvers", "SparseArrays", "Static", "StaticArrays", "Statistics", "UnPack"] -git-tree-sha1 = "6d3ea05148235667c3e51bd0d8b03cd6416ce919" +deps = ["Adapt", "BandedMatrices", "BlockArrays", "CUDA", "ClimaComms", "CubedSphere", "DataStructures", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "LinearAlgebra", "PkgVersion", "RecursiveArrayTools", "Requires", "RootSolvers", "SparseArrays", "Static", "StaticArrays", "Statistics", "UnPack"] +git-tree-sha1 = "6841faabcaf23af38190e92abdb5eec3e6f8601d" uuid = "d414da3d-4745-48bb-8d80-42e94e092884" -version = "0.10.44" +version = "0.10.50" [[deps.ClimaCoreTempestRemap]] deps = ["ClimaCore", "Dates", "LinearAlgebra", "NCDatasets", "PkgVersion", "TempestRemap_jll", "Test"] @@ -233,10 +239,10 @@ uuid = "4ade58fe-a8da-486c-bd89-46df092ec0c7" version = "0.1.0" [[deps.ClimaLSM]] -deps = ["ArtifactWrappers", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "Dates", "DiffEqCallbacks", "DocStringExtensions", "IntervalSets", "JLD2", "LinearAlgebra", "NCDatasets", "StaticArrays", "SurfaceFluxes", "Thermodynamics", "UnPack"] -git-tree-sha1 = "9156a90b20e61afbbfb0c0ab0b11f2d6bb6c7ff1" +deps = ["ArtifactWrappers", "CFTime", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "Dates", "DiffEqCallbacks", "DocStringExtensions", "IntervalSets", "JLD2", "LinearAlgebra", "NCDatasets", "StaticArrays", "SurfaceFluxes", "Thermodynamics", "UnPack"] +git-tree-sha1 = "370d0b4511be7e9f6126f5c6c91f07db1a25e142" uuid = "7884a58f-fab6-4fd0-82bb-ecfedb2d8430" -version = "0.2.6" +version = "0.3.2" [[deps.ClimaTimeSteppers]] deps = ["CUDA", "ClimaComms", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "KernelAbstractions", "Krylov", "LinearAlgebra", "LinearOperators", "SciMLBase", "StaticArrays"] @@ -264,9 +270,9 @@ version = "0.7.2" [[deps.ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] -git-tree-sha1 = "dd3000d954d483c1aad05fe1eb9e6a715c97013e" +git-tree-sha1 = "d9a8f86737b665e15a9641ecbac64deef9ce6724" uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" -version = "3.22.0" +version = "3.23.0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] @@ -299,9 +305,9 @@ version = "0.3.0" [[deps.Compat]] deps = ["Dates", "LinearAlgebra", "UUIDs"] -git-tree-sha1 = "5ce999a19f4ca23ea484e92a1774a61b8ca4cf8e" +git-tree-sha1 = "e460f044ca8b99be31d35fe54fc33a5c33dd8ed7" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.8.0" +version = "4.9.0" [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] @@ -321,9 +327,9 @@ version = "2.2.1" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] -git-tree-sha1 = "fe2838a593b5f776e1597e086dcd47560d94e816" +git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.3" +version = "1.5.4" [[deps.Contour]] git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" @@ -359,9 +365,9 @@ version = "1.15.0" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "cf25ccb972fec4e4817764d01c82386ae94f77b4" +git-tree-sha1 = "3dbd312d370723b6bb43ba9d02fc36abade4518d" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.14" +version = "0.18.15" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -395,16 +401,16 @@ uuid = "cd4c43a9-7502-52ba-aa6d-59fb2a88580b" version = "0.1.0+0" [[deps.DiffEqBase]] -deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "Distributions", "DocStringExtensions", "EnumX", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces", "ZygoteRules"] -git-tree-sha1 = "c5692436e7f8279503466db216c74165d1b301e4" +deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "Distributions", "DocStringExtensions", "EnumX", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces", "ZygoteRules"] +git-tree-sha1 = "6ece6f2956dea6380d8e5e6eadaab1bb9af20cce" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.127.0" +version = "6.129.0" [[deps.DiffEqCallbacks]] -deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "63b6be7b396ad395825f3cc48c56b53bfaf7e69d" +deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "Functors", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "42424e81924d4f463c6f8db8ce2978d51ba0aeaf" uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" -version = "2.26.1" +version = "2.30.0" [[deps.DiffResults]] deps = ["StaticArraysCore"] @@ -429,10 +435,10 @@ deps = ["Random", "Serialization", "Sockets"] uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" [[deps.Distributions]] -deps = ["ChainRulesCore", "DensityInterface", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SparseArrays", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns", "Test"] -git-tree-sha1 = "e76a3281de2719d7c81ed62c6ea7057380c87b1d" +deps = ["ChainRulesCore", "DensityInterface", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns", "Test"] +git-tree-sha1 = "938fe2981db009f531b6332e31c58e9584a2f9bd" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.98" +version = "0.25.100" [[deps.DocStringExtensions]] deps = ["LibGit2"] @@ -474,15 +480,15 @@ uuid = "2e619515-83b5-522b-bb60-26c02a35a201" version = "2.5.0+0" [[deps.ExponentialUtilities]] -deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "Printf", "SnoopPrecompile", "SparseArrays", "libblastrampoline_jll"] -git-tree-sha1 = "fb7dbef7d2631e2d02c49e2750f7447648b0ec9b" +deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "PrecompileTools", "Printf", "SparseArrays", "libblastrampoline_jll"] +git-tree-sha1 = "602e4585bcbd5a25bc06f514724593d13ff9e862" uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" -version = "1.24.0" +version = "1.25.0" [[deps.ExprTools]] -git-tree-sha1 = "c1d06d129da9f55715c6c212866f5b1bddc5fa00" +git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" -version = "0.1.9" +version = "0.1.10" [[deps.FFMPEG]] deps = ["FFMPEG_jll"] @@ -548,9 +554,9 @@ uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[deps.FillArrays]] deps = ["LinearAlgebra", "Random", "SparseArrays", "Statistics"] -git-tree-sha1 = "f372472e8672b1d993e93dada09e23139b509f9e" +git-tree-sha1 = "a20eaa3ad64254c61eeb5f230d9306e937405434" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.5.0" +version = "1.6.1" [[deps.FiniteDiff]] deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays", "StaticArrays"] @@ -578,9 +584,9 @@ version = "0.4.2" [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions", "StaticArrays"] -git-tree-sha1 = "00e252f4d706b3d55a8863432e742bf5717b498d" +git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" uuid = "f6369f11-7733-5829-9624-2563aa707210" -version = "0.10.35" +version = "0.10.36" [[deps.FreeType2_jll]] deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] @@ -605,6 +611,12 @@ git-tree-sha1 = "b104d487b34566608f8b4e1c39fb0b10aa279ff8" uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" version = "0.1.3" +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9a68d75d466ccc1218d0552a8e1631151c569545" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.5" + [[deps.Future]] deps = ["Random"] uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" @@ -640,10 +652,10 @@ uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" version = "0.72.9" [[deps.GR_jll]] -deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "f61f768bf090d97c532d24b64e07b237e9bb7b6b" +deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "1596bab77f4f073a14c62424283e7ebff3072eca" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.72.9+0" +version = "0.72.9+1" [[deps.GaussQuadrature]] deps = ["SpecialFunctions"] @@ -669,10 +681,10 @@ uuid = "88fa7841-ef32-4516-bb70-c6ec135699d9" version = "0.1.0" [[deps.Glib_jll]] -deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "d3b3624125c1474292d0d8ed0f65554ac37ddb23" +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.74.0+2" +version = "2.76.5+0" [[deps.Graphite2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -692,10 +704,10 @@ uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" version = "1.0.2" [[deps.HDF5]] -deps = ["Compat", "HDF5_jll", "Libdl", "Mmap", "Random", "Requires", "UUIDs"] -git-tree-sha1 = "c73fdc3d9da7700691848b78c61841274076932a" +deps = ["Compat", "HDF5_jll", "Libdl", "MPIPreferences", "Mmap", "Preferences", "Printf", "Random", "Requires", "UUIDs"] +git-tree-sha1 = "ec7df74b7b2022e8252a8bfd4ec23411491adc3b" uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" -version = "0.16.15" +version = "0.17.0" [[deps.HDF5_jll]] deps = ["Artifacts", "JLLWrappers", "LibCURL_jll", "Libdl", "OpenSSL_jll", "Pkg", "Zlib_jll"] @@ -705,9 +717,9 @@ version = "1.12.2+2" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "cb56ccdd481c0dd7f975ad2b3b62d9eda088f7e2" +git-tree-sha1 = "5eab648309e2e060198b45820af1a37182de3cce" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.9.14" +version = "1.10.0" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -717,15 +729,15 @@ version = "2.8.1+1" [[deps.HostCPUFeatures]] deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] -git-tree-sha1 = "d38bd0d9759e3c6cfa19bdccc314eccf8ce596cc" +git-tree-sha1 = "eb8fed28f4994600e29beef49744639d985a04b2" uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" -version = "0.1.15" +version = "0.1.16" [[deps.HypergeometricFunctions]] deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] -git-tree-sha1 = "83e95aaab9dc184a6dcd9c4c52aa0dc26cd14a1d" +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" -version = "0.3.21" +version = "0.3.23" [[deps.IfElse]] git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" @@ -746,9 +758,9 @@ version = "0.10.1" [[deps.ImageFiltering]] deps = ["CatIndices", "ComputationalResources", "DataStructures", "FFTViews", "FFTW", "ImageBase", "ImageCore", "LinearAlgebra", "OffsetArrays", "PrecompileTools", "Reexport", "SparseArrays", "StaticArrays", "Statistics", "TiledIteration"] -git-tree-sha1 = "c371a39622dc3b941ffd7c00e6b519d63b3f3f06" +git-tree-sha1 = "432ae2b430a18c58eb7eca9ef8d0f2db90bc749c" uuid = "6a3955dd-da59-5b1f-98d4-e7296123deb5" -version = "0.7.7" +version = "0.7.8" [[deps.Inflate]] git-tree-sha1 = "5cd07aab533df5170988219191dfad0519391428" @@ -763,9 +775,9 @@ version = "0.6.0" [[deps.IntelOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "0cb9352ef2e01574eeebdb102948a58740dcaf83" +git-tree-sha1 = "ad37c091f7d7daf900963171600d7c1c5c3ede32" uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" -version = "2023.1.0+0" +version = "2023.2.0+0" [[deps.InteractiveUtils]] deps = ["Markdown"] @@ -779,15 +791,15 @@ version = "0.14.7" [[deps.IntervalSets]] deps = ["Dates", "Random", "Statistics"] -git-tree-sha1 = "16c0cc91853084cb5f58a78bd209513900206ce6" +git-tree-sha1 = "8e59ea773deee525c99a8018409f64f19fb719e6" uuid = "8197267c-284f-5f27-9208-e0e47529a953" -version = "0.7.4" +version = "0.7.7" [[deps.InverseFunctions]] deps = ["Test"] -git-tree-sha1 = "eabe3125edba5c9c10b60a160b1779a000dc8b29" +git-tree-sha1 = "68772f49f54b479fa88ace904f6127f0a3bb2e46" uuid = "3587e190-3f89-42d0-90ee-14403ec27112" -version = "0.1.11" +version = "0.1.12" [[deps.IrrationalConstants]] git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" @@ -812,10 +824,10 @@ uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" version = "0.1.5" [[deps.JLLWrappers]] -deps = ["Preferences"] -git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1" +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.4.1" +version = "1.5.0" [[deps.JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] @@ -837,9 +849,9 @@ version = "0.2.1+0" [[deps.KLU]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] -git-tree-sha1 = "764164ed65c30738750965d55652db9c94c59bfe" +git-tree-sha1 = "884c2968c2e8e7e6bf5956af88cb46aa745c854b" uuid = "ef3ab10e-7fda-4108-b977-705223b18434" -version = "0.4.0" +version = "0.4.1" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] @@ -849,9 +861,9 @@ version = "0.9.8" [[deps.Krylov]] deps = ["LinearAlgebra", "Printf", "SparseArrays"] -git-tree-sha1 = "6dc4ad9cd74ad4ca0a8e219e945dbd22039f2125" +git-tree-sha1 = "17e462054b42dcdda73e9a9ba0c67754170c88ae" uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -version = "0.9.2" +version = "0.9.4" [[deps.LAME_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -873,15 +885,15 @@ version = "3.0.0+1" [[deps.LLVM]] deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Printf", "Unicode"] -git-tree-sha1 = "8695a49bfe05a2dc0feeefd06b4ca6361a018729" +git-tree-sha1 = "a9d2ce1d5007b1e8f6c5b89c5a31ff8bd146db5c" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "6.1.0" +version = "6.2.1" [[deps.LLVMExtra_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "c35203c1e1002747da220ffc3c0762ce7754b08c" +git-tree-sha1 = "7ca6850ae880cc99b59b88517545f91a52020afa" uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.23+0" +version = "0.0.25+0" [[deps.LLVMOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -980,10 +992,10 @@ uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" version = "1.42.0+0" [[deps.Libiconv_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "c7cb1f5d892775ba13767a87c7ada0b980ea0a71" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" -version = "1.16.1+2" +version = "1.17.0+0" [[deps.Libmount_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1020,25 +1032,25 @@ uuid = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125" version = "2.5.2" [[deps.LinearSolve]] -deps = ["ArrayInterface", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "LinearAlgebra", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "SuiteSparse", "UnPack"] -git-tree-sha1 = "1b55771f2c211583ad52af5a5ca6475be374c961" +deps = ["ArrayInterface", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "Libdl", "LinearAlgebra", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "SuiteSparse", "UnPack"] +git-tree-sha1 = "69cbd612e6e67ba2f8121bc8725bc9d04d803599" uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "2.4.1" +version = "2.5.1" [[deps.LogExpFunctions]] deps = ["ChainRulesCore", "ChangesOfVariables", "DocStringExtensions", "InverseFunctions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "c3ce8e7420b3a6e071e0fe4745f5d4300e37b13f" +git-tree-sha1 = "7d6dd4e9212aebaeed356de34ccf262a3cd415aa" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.24" +version = "0.3.26" [[deps.Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" [[deps.LoggingExtras]] deps = ["Dates", "Logging"] -git-tree-sha1 = "cedb76b37bc5a6c702ade66be44f831fa23c681e" +git-tree-sha1 = "0d097476b6c381ab7906460ef1ef1638fbce1d91" uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" -version = "1.0.0" +version = "1.0.2" [[deps.LoopVectorization]] deps = ["ArrayInterface", "ArrayInterfaceCore", "CPUSummary", "ChainRulesCore", "CloseOpenIntervals", "DocStringExtensions", "ForwardDiff", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "SpecialFunctions", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] @@ -1048,9 +1060,9 @@ version = "0.12.165" [[deps.MKL_jll]] deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] -git-tree-sha1 = "154d7aaa82d24db6d8f7e4ffcfe596f40bff214b" +git-tree-sha1 = "eb006abbd7041c28e0d16260e50a24f8f9104913" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2023.1.0+0" +version = "2023.2.0+0" [[deps.MPI]] deps = ["Distributed", "DocStringExtensions", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "PrecompileTools", "Requires", "Serialization", "Sockets"] @@ -1078,9 +1090,9 @@ version = "5.3.1+0" [[deps.MacroTools]] deps = ["Markdown", "Random"] -git-tree-sha1 = "42324d08725e200c23d4dfb549e0d5d89dede2d2" +git-tree-sha1 = "9ee1618cbf5240e6d4e0371d6f24065083f60c48" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" -version = "0.5.10" +version = "0.5.11" [[deps.ManualMemory]] git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" @@ -1162,9 +1174,9 @@ version = "4.5.1" [[deps.NVTX]] deps = ["Colors", "JuliaNVTXCallbacks_jll", "Libdl", "NVTX_jll"] -git-tree-sha1 = "c1bfdab07fa259baa4604a05862c43004dd3cd45" +git-tree-sha1 = "8bc9ce4233be3c63f8dcd78ccaf1b63a9c0baa34" uuid = "5da4648a-3479-48b8-97b9-01cb529c0a1f" -version = "0.3.1" +version = "0.3.3" [[deps.NVTX_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1190,9 +1202,9 @@ version = "1.2.0" [[deps.NonlinearSolve]] deps = ["ArrayInterface", "DiffEqBase", "EnumX", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "PrecompileTools", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "UnPack"] -git-tree-sha1 = "2a7f28c62eb2c16b9c375c38f664cdcf22313cf5" +git-tree-sha1 = "ee53089df81a6bdf3c06c17cf674e90931b10a73" uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" -version = "1.8.0" +version = "1.10.0" [[deps.OffsetArrays]] deps = ["Adapt"] @@ -1236,9 +1248,9 @@ version = "1.4.1" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "1aa4b74f80b01c6bc2b89992b861b5f210e665b5" +git-tree-sha1 = "a12e56c72edee3ce6b96667745e6cbbe5498f200" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "1.1.21+0" +version = "1.1.23+0" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -1259,9 +1271,9 @@ version = "1.6.2" [[deps.OrdinaryDiffEq]] deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "IfElse", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "LoopVectorization", "MacroTools", "MuladdMacro", "NLsolve", "NonlinearSolve", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLNLSolve", "SciMLOperators", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "4f1ab68f236fa846d0c30718c6b29c1665b019c0" +git-tree-sha1 = "ba3ed480f991b846cf9a8118d3370d9752e7166d" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.53.3" +version = "6.55.0" [[deps.PCRE2_jll]] deps = ["Artifacts", "Libdl"] @@ -1276,9 +1288,9 @@ version = "0.11.17" [[deps.PackageExtensionCompat]] deps = ["Requires", "TOML"] -git-tree-sha1 = "32f3d52212a8d1c5d589a58851b1f04c97339110" +git-tree-sha1 = "f9b1e033c2b1205cf30fd119f4e50881316c1923" uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" -version = "1.0.0" +version = "1.0.1" [[deps.PaddedViews]] deps = ["OffsetArrays"] @@ -1294,9 +1306,9 @@ version = "0.12.3" [[deps.Parsers]] deps = ["Dates", "PrecompileTools", "UUIDs"] -git-tree-sha1 = "4b2e829ee66d4218e0cef22c0a64ee37cf258c29" +git-tree-sha1 = "716e24b21538abc91f6205fd1d8363f39b442851" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.7.1" +version = "2.7.2" [[deps.Pipe]] git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" @@ -1334,15 +1346,15 @@ version = "1.3.5" [[deps.Plots]] deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Preferences", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] -git-tree-sha1 = "9f8675a55b37a70aa23177ec110f6e3f4dd68466" +git-tree-sha1 = "ccee59c6e48e6f2edf8a5b64dc817b6729f99eb5" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.38.17" +version = "1.39.0" [[deps.Polyester]] deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] -git-tree-sha1 = "3d811babe092a6e7b130beee84998fe7663348b6" +git-tree-sha1 = "d4c9ebdc6528a4aaf7cfcf43b482e927267b400d" uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" -version = "0.7.5" +version = "0.7.6" [[deps.PolyesterWeave]] deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] @@ -1358,9 +1370,9 @@ version = "0.4.12" [[deps.PrecompileTools]] deps = ["Preferences"] -git-tree-sha1 = "9673d39decc5feece56ef3940e5dafba15ba0f81" +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" -version = "1.1.2" +version = "1.2.0" [[deps.Preferences]] deps = ["TOML"] @@ -1380,9 +1392,9 @@ uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" [[deps.ProgressBars]] deps = ["Printf"] -git-tree-sha1 = "9d84c8646109eb8bc7a006d59b157c64d5155c81" +git-tree-sha1 = "b437cdb0385ed38312d91d9c00c20f3798b30256" uuid = "49802e3a-d2f1-5c88-81d8-b72133a6f568" -version = "1.5.0" +version = "1.5.1" [[deps.ProgressLogging]] deps = ["Logging", "SHA", "UUIDs"] @@ -1448,15 +1460,15 @@ version = "0.6.12" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "Requires", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "7ed35fb5f831aaf09c2d7c8736d44667a1afdcb0" +git-tree-sha1 = "d7087c013e8a496ff396bae843b1e16d9a30ede8" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "2.38.7" +version = "2.38.10" [[deps.RecursiveFactorization]] -deps = ["LinearAlgebra", "LoopVectorization", "Polyester", "SnoopPrecompile", "StrideArraysCore", "TriangularSolve"] -git-tree-sha1 = "9088515ad915c99026beb5436d0a09cd8c18163e" +deps = ["LinearAlgebra", "LoopVectorization", "Polyester", "PrecompileTools", "StrideArraysCore", "TriangularSolve"] +git-tree-sha1 = "2b6d4a40339aa02655b1743f4cd7c03109f520c1" uuid = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" -version = "0.2.18" +version = "0.2.20" [[deps.Reexport]] git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" @@ -1495,9 +1507,9 @@ version = "0.3.5" [[deps.RuntimeGeneratedFunctions]] deps = ["ExprTools", "SHA", "Serialization"] -git-tree-sha1 = "237edc1563bbf078629b4f8d194bd334e97907cf" +git-tree-sha1 = "6aacc5eefe8415f47b3e34214c1d79d2674a0ba2" uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" -version = "0.5.11" +version = "0.5.12" [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" @@ -1515,10 +1527,10 @@ uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" version = "0.6.39" [[deps.SciMLBase]] -deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] -git-tree-sha1 = "04370090604cd399db5bebddb636d80ab9d338e9" +deps = ["ADTypes", "ArrayInterface", "ChainRulesCore", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FillArrays", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces", "ZygoteRules"] +git-tree-sha1 = "6de099dba3c80e23bde1d19011161ea91a23ed6b" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "1.94.0" +version = "1.98.0" [[deps.SciMLNLSolve]] deps = ["DiffEqBase", "LineSearches", "NLsolve", "Reexport", "SciMLBase"] @@ -1528,9 +1540,9 @@ version = "0.1.8" [[deps.SciMLOperators]] deps = ["ArrayInterface", "DocStringExtensions", "Lazy", "LinearAlgebra", "Setfield", "SparseArrays", "StaticArraysCore", "Tricks"] -git-tree-sha1 = "745755a5b932c9a664d7e9e4beb60c692b211d4b" +git-tree-sha1 = "65c2e6ced6f62ea796af251eb292a0e131a3613b" uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" -version = "0.3.5" +version = "0.3.6" [[deps.Scratch]] deps = ["Dates"] @@ -1564,9 +1576,9 @@ version = "1.1.0" [[deps.SimpleNonlinearSolve]] deps = ["ArrayInterface", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "PackageExtensionCompat", "PrecompileTools", "Reexport", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "91fcc402c4ab978ad5759489db9a9c5a71732f2d" +git-tree-sha1 = "20aa9831d654bab67ed561e78917047143ecb9bf" uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "0.1.18" +version = "0.1.19" [[deps.SimpleTraits]] deps = ["InteractiveUtils", "MacroTools"] @@ -1599,10 +1611,10 @@ deps = ["LinearAlgebra", "Random"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" [[deps.SparseDiffTools]] -deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "Reexport", "Requires", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "VertexSafeGraphs"] -git-tree-sha1 = "4c1a57bcbc0b795fbfdc2009e70f9c2fd2815bfe" +deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "PackageExtensionCompat", "Reexport", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "UnPack", "VertexSafeGraphs"] +git-tree-sha1 = "42d131931906bf4f0af97a7113c8456d0a8aff9d" uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" -version = "2.4.1" +version = "2.6.0" [[deps.Sparspak]] deps = ["Libdl", "LinearAlgebra", "Logging", "OffsetArrays", "Printf", "SparseArrays", "Test"] @@ -1612,9 +1624,9 @@ version = "0.3.9" [[deps.SpecialFunctions]] deps = ["ChainRulesCore", "IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "7beb031cf8145577fbccacd94b8a8f4ce78428d3" +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "2.3.0" +version = "2.3.1" [[deps.StackViews]] deps = ["OffsetArrays"] @@ -1629,16 +1641,16 @@ uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" version = "0.8.8" [[deps.StaticArrayInterface]] -deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "Requires", "SnoopPrecompile", "SparseArrays", "Static", "SuiteSparse"] -git-tree-sha1 = "33040351d2403b84afce74dae2e22d3f5b18edcb" +deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"] +git-tree-sha1 = "03fec6800a986d191f64f5c0996b59ed526eda25" uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" -version = "1.4.0" +version = "1.4.1" [[deps.StaticArrays]] deps = ["LinearAlgebra", "Random", "StaticArraysCore", "Statistics"] -git-tree-sha1 = "832afbae2a45b4ae7e831f86965469a24d1d8a83" +git-tree-sha1 = "51621cca8651d9e334a659443a74ce50a3b6dfab" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.5.26" +version = "1.6.3" [[deps.StaticArraysCore]] git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" @@ -1651,9 +1663,9 @@ uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" [[deps.StatsAPI]] deps = ["LinearAlgebra"] -git-tree-sha1 = "45a7769a04a3cf80da1c1c7c60caf932e6f4c9f7" +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" -version = "1.6.0" +version = "1.7.0" [[deps.StatsBase]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] @@ -1680,9 +1692,10 @@ uuid = "69024149-9ee7-55f6-a4c4-859efe599b68" version = "0.3.7" [[deps.StringManipulation]] -git-tree-sha1 = "46da2434b41f41ac3594ee9816ce5541c6096123" +deps = ["PrecompileTools"] +git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5" uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" -version = "0.3.0" +version = "0.3.4" [[deps.SuiteSparse]] deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] @@ -1717,10 +1730,10 @@ uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" version = "1.0.1" [[deps.Tables]] -deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits", "Test"] -git-tree-sha1 = "1544b926975372da01227b382066ab70e574a3ec" +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "a1f34829d5ac0ef499f6d84428bd6b4c71f02ead" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.10.1" +version = "1.11.0" [[deps.Tar]] deps = ["ArgTools", "SHA"] @@ -1808,9 +1821,9 @@ uuid = "781d530d-4396-4725-bb49-402e4bee1e77" version = "1.4.0" [[deps.URIs]] -git-tree-sha1 = "074f993b0ca030848b897beff716d93aca60f06a" +git-tree-sha1 = "b7a5e99f24892b6824a954199a45e9ffcc1c70f0" uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" -version = "1.4.2" +version = "1.5.0" [[deps.UUIDs]] deps = ["Random", "SHA"] @@ -1832,9 +1845,9 @@ version = "0.4.1" [[deps.Unitful]] deps = ["ConstructionBase", "Dates", "InverseFunctions", "LinearAlgebra", "Random"] -git-tree-sha1 = "c4d2a349259c8eba66a00a540d550f122a3ab228" +git-tree-sha1 = "a72d22c7e13fe2de562feda8645aa134712a87ee" uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" -version = "1.15.0" +version = "1.17.0" [[deps.UnitfulLatexify]] deps = ["LaTeXStrings", "Latexify", "Unitful"] @@ -1889,10 +1902,10 @@ uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" version = "0.5.5" [[deps.XML2_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "93c41695bc1c08c46c5899f4fe06d6ead504bb73" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "04a51d15436a572301b5abbb9d099713327e9fc4" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.10.3+0" +version = "2.10.4+0" [[deps.XSLT_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] @@ -1902,9 +1915,9 @@ version = "1.1.34+0" [[deps.XZ_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "2222b751598bd9f4885c9ce9cd23e83404baa8ce" +git-tree-sha1 = "cf2c7de82431ca6f39250d2fc4aacd0daa1675c0" uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" -version = "5.4.3+1" +version = "5.4.4+0" [[deps.Xorg_libX11_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] diff --git a/perf/Manifest.toml b/perf/Manifest.toml index 6281c50f16..7006f6d466 100644 --- a/perf/Manifest.toml +++ b/perf/Manifest.toml @@ -2,12 +2,12 @@ julia_version = "1.8.5" manifest_format = "2.0" -project_hash = "ed64f0bf960c26121ab0c4b5691b73feff0c8714" +project_hash = "e3c6b4b79f09f69e16afcabaa745b4890f358abd" [[deps.ADTypes]] -git-tree-sha1 = "f5c25e8a5b29b5e941b7408bc8cc79fea4d9ef9a" +git-tree-sha1 = "5d2e21d7b0d8c22f67483ef95ebdc39c0e6b6003" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "0.1.6" +version = "0.2.4" [[deps.AMD]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] @@ -62,9 +62,9 @@ version = "0.1.29" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "dcda7e0ac618210eabf43751d5cafde100dd539b" +git-tree-sha1 = "0d61921af2799487b80453a44abb57db7a0c1381" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.3.0" +version = "1.4.1" [[deps.ArtifactWrappers]] deps = ["Downloads", "Pkg"] @@ -76,10 +76,10 @@ version = "0.2.0" uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" [[deps.AtmosphericProfilesLibrary]] -deps = ["Dierckx"] -git-tree-sha1 = "66f7e7f704c848d5b09bd11c980bc28d83f75c77" +deps = ["Dierckx", "LinearAlgebra"] +git-tree-sha1 = "c6be1ce28b7870a60400c51c75dc1b08d6a8dd73" uuid = "86bc3604-9858-485a-bdbe-831ec50de11d" -version = "0.1.3" +version = "0.1.4" [[deps.Atomix]] deps = ["UnsafeAtomics"] @@ -144,15 +144,15 @@ version = "0.1.2" [[deps.CLIMAParameters]] deps = ["DocStringExtensions", "TOML", "Test"] -git-tree-sha1 = "d44564edc0950638a868e26472d474f717575b3f" +git-tree-sha1 = "d35d039179f27abc063f7ae5c564573fe5316bb2" uuid = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" -version = "0.7.7" +version = "0.7.19" [[deps.CPUSummary]] deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] -git-tree-sha1 = "89e0654ed8c7aebad6d5ad235d6242c2d737a928" +git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" -version = "0.2.3" +version = "0.2.4" [[deps.CUDA]] deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "Preferences", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "SpecialFunctions", "UnsafeAtomicsLLVM"] @@ -210,9 +210,9 @@ version = "0.1.8" [[deps.ClimaAtmos]] deps = ["ArgParse", "ArtifactWrappers", "Artifacts", "AtmosphericProfilesLibrary", "CLIMAParameters", "CUDA", "ClimaComms", "ClimaCore", "ClimaTimeSteppers", "CloudMicrophysics", "Colors", "Dates", "Dierckx", "DiffEqBase", "DiffEqCallbacks", "Distributions", "DocStringExtensions", "FastGaussQuadrature", "ImageFiltering", "Insolation", "Interpolations", "IntervalSets", "JLD2", "LambertW", "LinearAlgebra", "Logging", "NCDatasets", "NVTX", "OrdinaryDiffEq", "Pkg", "Printf", "RRTMGP", "Random", "RootSolvers", "StaticArrays", "Statistics", "StatsBase", "SurfaceFluxes", "TerminalLoggers", "Test", "Thermodynamics", "YAML"] -git-tree-sha1 = "535927e938339558b705c8719eb97a29c2960156" +git-tree-sha1 = "fcb42f37a086e343b9e949261f2ec1cd4388cc5e" uuid = "b2c96348-7fb7-4fe0-8da9-78d88439e717" -version = "0.15.7" +version = "0.16.0" [[deps.ClimaComms]] deps = ["CUDA", "MPI"] @@ -221,10 +221,10 @@ uuid = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" version = "0.5.3" [[deps.ClimaCore]] -deps = ["Adapt", "BandedMatrices", "BlockArrays", "CUDA", "ClimaComms", "CubedSphere", "DataStructures", "DiffEqBase", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "LinearAlgebra", "PkgVersion", "RecursiveArrayTools", "Requires", "RootSolvers", "SparseArrays", "Static", "StaticArrays", "Statistics", "UnPack"] -git-tree-sha1 = "6eb2e785a605f1ea0bef9c2210b26a6756ef6d5e" +deps = ["Adapt", "BandedMatrices", "BlockArrays", "CUDA", "ClimaComms", "CubedSphere", "DataStructures", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "LinearAlgebra", "PkgVersion", "RecursiveArrayTools", "Requires", "RootSolvers", "SparseArrays", "Static", "StaticArrays", "Statistics", "UnPack"] +git-tree-sha1 = "6841faabcaf23af38190e92abdb5eec3e6f8601d" uuid = "d414da3d-4745-48bb-8d80-42e94e092884" -version = "0.10.47" +version = "0.10.50" [[deps.ClimaCorePlots]] deps = ["ClimaCore", "RecipesBase", "StaticArrays", "TriplotBase"] @@ -333,9 +333,9 @@ version = "2.2.1" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] -git-tree-sha1 = "fe2838a593b5f776e1597e086dcd47560d94e816" +git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.3" +version = "1.5.4" [[deps.Contour]] git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" @@ -408,15 +408,15 @@ version = "0.1.0+0" [[deps.DiffEqBase]] deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "Distributions", "DocStringExtensions", "EnumX", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces", "ZygoteRules"] -git-tree-sha1 = "ed586656058844e48660c6d6fdb384e83afc50db" +git-tree-sha1 = "dee066b8dce741815729f5973b6db757416948b7" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.128.0" +version = "6.128.4" [[deps.DiffEqCallbacks]] deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "303ab70e4524843653e55e16a3dc7b75e677a3dd" +git-tree-sha1 = "9c7d3a84264d935f6981504388b202a770113faa" uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" -version = "2.27.0" +version = "2.29.1" [[deps.DiffResults]] deps = ["StaticArraysCore"] @@ -486,10 +486,10 @@ uuid = "2e619515-83b5-522b-bb60-26c02a35a201" version = "2.5.0+0" [[deps.ExponentialUtilities]] -deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "Printf", "SnoopPrecompile", "SparseArrays", "libblastrampoline_jll"] -git-tree-sha1 = "fb7dbef7d2631e2d02c49e2750f7447648b0ec9b" +deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "PrecompileTools", "Printf", "SparseArrays", "libblastrampoline_jll"] +git-tree-sha1 = "602e4585bcbd5a25bc06f514724593d13ff9e862" uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" -version = "1.24.0" +version = "1.25.0" [[deps.ExprTools]] git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" @@ -590,9 +590,9 @@ version = "0.4.2" [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions", "StaticArrays"] -git-tree-sha1 = "00e252f4d706b3d55a8863432e742bf5717b498d" +git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" uuid = "f6369f11-7733-5829-9624-2563aa707210" -version = "0.10.35" +version = "0.10.36" [[deps.FreeType2_jll]] deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] @@ -681,10 +681,10 @@ uuid = "88fa7841-ef32-4516-bb70-c6ec135699d9" version = "0.1.0" [[deps.Glib_jll]] -deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "d3b3624125c1474292d0d8ed0f65554ac37ddb23" +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.74.0+2" +version = "2.76.5+0" [[deps.Glob]] git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" @@ -709,10 +709,10 @@ uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" version = "1.0.2" [[deps.HDF5]] -deps = ["Compat", "HDF5_jll", "Libdl", "Mmap", "Printf", "Random", "Requires", "UUIDs"] -git-tree-sha1 = "114e20044677badbc631ee6fdc80a67920561a29" +deps = ["Compat", "HDF5_jll", "Libdl", "MPIPreferences", "Mmap", "Preferences", "Printf", "Random", "Requires", "UUIDs"] +git-tree-sha1 = "ec7df74b7b2022e8252a8bfd4ec23411491adc3b" uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" -version = "0.16.16" +version = "0.17.0" [[deps.HDF5_jll]] deps = ["Artifacts", "JLLWrappers", "LibCURL_jll", "Libdl", "OpenSSL_jll", "Pkg", "Zlib_jll"] @@ -722,9 +722,9 @@ version = "1.12.2+2" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "cb56ccdd481c0dd7f975ad2b3b62d9eda088f7e2" +git-tree-sha1 = "5eab648309e2e060198b45820af1a37182de3cce" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.9.14" +version = "1.10.0" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -854,9 +854,9 @@ version = "0.2.1+0" [[deps.KLU]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] -git-tree-sha1 = "764164ed65c30738750965d55652db9c94c59bfe" +git-tree-sha1 = "884c2968c2e8e7e6bf5956af88cb46aa745c854b" uuid = "ef3ab10e-7fda-4108-b977-705223b18434" -version = "0.4.0" +version = "0.4.1" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] @@ -866,9 +866,9 @@ version = "0.9.8" [[deps.Krylov]] deps = ["LinearAlgebra", "Printf", "SparseArrays"] -git-tree-sha1 = "fbda7c58464204d92f3b158578fb0b3d4224cea5" +git-tree-sha1 = "17e462054b42dcdda73e9a9ba0c67754170c88ae" uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -version = "0.9.3" +version = "0.9.4" [[deps.LAME_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -890,15 +890,15 @@ version = "3.0.0+1" [[deps.LLVM]] deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Printf", "Unicode"] -git-tree-sha1 = "8695a49bfe05a2dc0feeefd06b4ca6361a018729" +git-tree-sha1 = "a9d2ce1d5007b1e8f6c5b89c5a31ff8bd146db5c" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "6.1.0" +version = "6.2.1" [[deps.LLVMExtra_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "c35203c1e1002747da220ffc3c0762ce7754b08c" +git-tree-sha1 = "7ca6850ae880cc99b59b88517545f91a52020afa" uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.23+0" +version = "0.0.25+0" [[deps.LLVMOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -997,10 +997,10 @@ uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" version = "1.42.0+0" [[deps.Libiconv_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "c7cb1f5d892775ba13767a87c7ada0b980ea0a71" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" -version = "1.16.1+2" +version = "1.17.0+0" [[deps.Libmount_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1179,9 +1179,9 @@ version = "4.5.1" [[deps.NVTX]] deps = ["Colors", "JuliaNVTXCallbacks_jll", "Libdl", "NVTX_jll"] -git-tree-sha1 = "c1bfdab07fa259baa4604a05862c43004dd3cd45" +git-tree-sha1 = "8bc9ce4233be3c63f8dcd78ccaf1b63a9c0baa34" uuid = "5da4648a-3479-48b8-97b9-01cb529c0a1f" -version = "0.3.1" +version = "0.3.3" [[deps.NVTX_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1253,9 +1253,9 @@ version = "1.4.1" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "bbb5c2115d63c2f1451cb70e5ef75e8fe4707019" +git-tree-sha1 = "a12e56c72edee3ce6b96667745e6cbbe5498f200" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "1.1.22+0" +version = "1.1.23+0" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -1276,9 +1276,9 @@ version = "1.6.2" [[deps.OrdinaryDiffEq]] deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "IfElse", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "LoopVectorization", "MacroTools", "MuladdMacro", "NLsolve", "NonlinearSolve", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLNLSolve", "SciMLOperators", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "47c560dcb059570bdbd9f887a6b8958190e498a4" +git-tree-sha1 = "ba3ed480f991b846cf9a8118d3370d9752e7166d" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.53.4" +version = "6.55.0" [[deps.PCRE2_jll]] deps = ["Artifacts", "Libdl"] @@ -1351,15 +1351,15 @@ version = "1.3.5" [[deps.Plots]] deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Preferences", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] -git-tree-sha1 = "9f8675a55b37a70aa23177ec110f6e3f4dd68466" +git-tree-sha1 = "ccee59c6e48e6f2edf8a5b64dc817b6729f99eb5" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.38.17" +version = "1.39.0" [[deps.Polyester]] deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] -git-tree-sha1 = "3d811babe092a6e7b130beee84998fe7663348b6" +git-tree-sha1 = "d4c9ebdc6528a4aaf7cfcf43b482e927267b400d" uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" -version = "0.7.5" +version = "0.7.6" [[deps.PolyesterWeave]] deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] @@ -1475,9 +1475,9 @@ version = "0.6.12" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "Requires", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "7ed35fb5f831aaf09c2d7c8736d44667a1afdcb0" +git-tree-sha1 = "d7087c013e8a496ff396bae843b1e16d9a30ede8" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "2.38.7" +version = "2.38.10" [[deps.RecursiveFactorization]] deps = ["LinearAlgebra", "LoopVectorization", "Polyester", "PrecompileTools", "StrideArraysCore", "TriangularSolve"] @@ -1542,10 +1542,10 @@ uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" version = "0.6.39" [[deps.SciMLBase]] -deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] -git-tree-sha1 = "04370090604cd399db5bebddb636d80ab9d338e9" +deps = ["ADTypes", "ArrayInterface", "ChainRulesCore", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FillArrays", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces", "ZygoteRules"] +git-tree-sha1 = "6de099dba3c80e23bde1d19011161ea91a23ed6b" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "1.94.0" +version = "1.98.0" [[deps.SciMLNLSolve]] deps = ["DiffEqBase", "LineSearches", "NLsolve", "Reexport", "SciMLBase"] @@ -1626,10 +1626,10 @@ deps = ["LinearAlgebra", "Random"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" [[deps.SparseDiffTools]] -deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "Reexport", "Requires", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "VertexSafeGraphs"] -git-tree-sha1 = "4c1a57bcbc0b795fbfdc2009e70f9c2fd2815bfe" +deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "PackageExtensionCompat", "Reexport", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "UnPack", "VertexSafeGraphs"] +git-tree-sha1 = "42d131931906bf4f0af97a7113c8456d0a8aff9d" uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" -version = "2.4.1" +version = "2.6.0" [[deps.Sparspak]] deps = ["Libdl", "LinearAlgebra", "Logging", "OffsetArrays", "Printf", "SparseArrays", "Test"] @@ -1663,9 +1663,9 @@ version = "1.4.1" [[deps.StaticArrays]] deps = ["LinearAlgebra", "Random", "StaticArraysCore", "Statistics"] -git-tree-sha1 = "9cabadf6e7cd2349b6cf49f1915ad2028d65e881" +git-tree-sha1 = "51621cca8651d9e334a659443a74ce50a3b6dfab" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.6.2" +version = "1.6.3" [[deps.StaticArraysCore]] git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" @@ -1678,9 +1678,9 @@ uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" [[deps.StatsAPI]] deps = ["LinearAlgebra"] -git-tree-sha1 = "45a7769a04a3cf80da1c1c7c60caf932e6f4c9f7" +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" -version = "1.6.0" +version = "1.7.0" [[deps.StatsBase]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] @@ -1707,9 +1707,10 @@ uuid = "69024149-9ee7-55f6-a4c4-859efe599b68" version = "0.3.7" [[deps.StringManipulation]] -git-tree-sha1 = "46da2434b41f41ac3594ee9816ce5541c6096123" +deps = ["PrecompileTools"] +git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5" uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" -version = "0.3.0" +version = "0.3.4" [[deps.SuiteSparse]] deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] diff --git a/perf/Project.toml b/perf/Project.toml index fdde0df2e2..163af58215 100644 --- a/perf/Project.toml +++ b/perf/Project.toml @@ -46,6 +46,7 @@ TerminalLoggers = "5d786b92-1e48-4d6f-9151-6b4477ca9bed" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" Thermodynamics = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" UnPack = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" +YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" [compat] ArgParse = "1.1" @@ -72,6 +73,7 @@ ProfileCanvas = "0.1" ProgressLogging = "0.1" RRTMGP = "0.9" StaticArrays = "1" +YAML = "0.4" julia = "1.8.5" [extras] diff --git a/perf/flame.jl b/perf/flame.jl index 221ccd7000..a4aa1970b7 100644 --- a/perf/flame.jl +++ b/perf/flame.jl @@ -2,42 +2,53 @@ # and check for overall allocation limits based on previous runs # copied and modified from `ClimaAtmos/perf` +import ClimaAtmos as CA import Profile import ProfileCanvas using Test +using YAML cc_dir = joinpath(dirname(@__DIR__)); +config_dir = joinpath(cc_dir, "config", "model_configs"); include(joinpath(cc_dir, "experiments", "AMIP", "modular", "cli_options.jl")); # assuming a common driver for all tested runs filename = joinpath(cc_dir, "experiments", "AMIP", "modular", "coupler_driver_modular.jl") -# selected runs for performance analysis and their expected allocations (based on previous runs) -run_name_list = - ["default_modular_unthreaded", "coarse_single_modular", "target_amip_n32_shortrun", "target_amip_n1_shortrun"] -run_name = run_name_list[parse(Int, ARGS[2])] +# currently tested jobs and their allowed allocation limits allocs_limit = Dict() allocs_limit["perf_default_modular_unthreaded"] = 8638304 -allocs_limit["perf_coarse_single_modular"] = 18280800 +allocs_limit["perf_coarse_single_modular_ft64"] = 18280800 allocs_limit["perf_target_amip_n32_shortrun"] = 172134848 # number of time steps used for profiling const n_samples = 2 -# flag to split coupler init from its solve -ENV["CI_PERF_SKIP_COUPLED_RUN"] = true +# import parsed command line arguments +global parsed_args = parse_commandline(argparse_settings()) + +# select the configuration file and extract the run-name +config_file = + parsed_args["config_file"] = + isinteractive() ? "../config/perf_configs/perf_default_modular_unthreaded.yml" : parsed_args["config_file"] +run_name = parsed_args["run_name"] = split(basename(config_file), ".")[1] + +# import config setup +config_dict = YAML.load_file(config_file) -# pass in the correct arguments, overriding defaults with those specific to each run_name (in `pipeline.yaml`) -dict = parsed_args_per_job_id(; trigger = "--run_name $run_name") -parsed_args_prescribed = parsed_args_from_ARGS(ARGS) -parsed_args_target = dict[run_name] -global parsed_args = merge(parsed_args_target, parsed_args_prescribed) # global scope needed to recognize this definition in the coupler driver -run_name = "perf_" * run_name -parsed_args["job_id"] = run_name -parsed_args["run_name"] = run_name +# modify names for performance testing +perf_run_name = run_name +parsed_args["job_id"] = perf_run_name +parsed_args["run_name"] = perf_run_name +parsed_args = merge(config_dict, parsed_args) # global scope needed to recognize this definition in the coupler driver + +# disable threading parsed_args["enable_threading"] = false -@info run_name +# flag to split coupler init from its solve +ENV["CI_PERF_SKIP_COUPLED_RUN"] = true + +@info perf_run_name # initialize the coupler try @@ -70,7 +81,7 @@ end # produce flamegraph if haskey(ENV, "BUILDKITE_COMMIT") || haskey(ENV, "BUILDKITE_BRANCH") - output_dir = "perf/output/$run_name/" + output_dir = "perf/output/$perf_run_name/" mkpath(output_dir) ProfileCanvas.html_file(joinpath(output_dir, "flame.html")) else @@ -89,13 +100,13 @@ buffer = 1.4 # increase slightly for (nondeterministic) threaded runs allocs = @allocated step_coupler!(cs, n_samples) @timev step_coupler!(cs, n_samples) -@info "`allocs ($run_name)`: $(allocs)" +@info "`allocs ($perf_run_name)`: $(allocs)" -if allocs < allocs_limit[run_name] * buffer - @info "TODO: lower `allocs_limit[$run_name]` to: $(allocs)" +if allocs < allocs_limit[perf_run_name] * buffer + @info "TODO: lower `allocs_limit[$perf_run_name]` to: $(allocs)" end -Δallocs = allocs / allocs_limit[run_name] +Δallocs = allocs / allocs_limit[perf_run_name] @info "Allocation change (allocs/allocs_limit): $Δallocs" percent_alloc_change = (1 - Δallocs) * 100 if percent_alloc_change ≥ 0 @@ -105,5 +116,5 @@ else end @testset "Allocations limit" begin - @test allocs ≤ allocs_limit[run_name] * buffer + @test allocs ≤ allocs_limit[perf_run_name] * buffer end diff --git a/perf/flame_diff.jl b/perf/flame_diff.jl index c515e44fbd..66c664d84e 100644 --- a/perf/flame_diff.jl +++ b/perf/flame_diff.jl @@ -1,53 +1,68 @@ # flame_diff.jl: provides allocation breakdown for individual backtraces for single-process unthredded runs # and check for fractional change in allocation compared to the last staged run +import ClimaAtmos as CA import Profile using Test import Base: view include("ProfileCanvasDiff.jl") import .ProfileCanvasDiff using JLD2 +using YAML -buildkite_branch = ENV["BUILDKITE_BRANCH"] -buildkite_commit = ENV["BUILDKITE_COMMIT"] -buildkite_number = ENV["BUILDKITE_BUILD_NUMBER"] -buildkite_build_path = ENV["BUILDKITE_BUILD_PATH"] -buildkite_pipeline_slug = ENV["BUILDKITE_PIPELINE_SLUG"] -buildkite_cc_dir = "/groups/esm/slurm-buildkite/climacoupler-ci/" -scratch_cc_dir = joinpath(buildkite_build_path, buildkite_pipeline_slug) -build_path = joinpath(buildkite_build_path, buildkite_pipeline_slug, buildkite_number, buildkite_pipeline_slug, "perf/") -perf_run_no = ARGS[2] +if isinteractive() + buildkite_cc_dir = "." + scratch_cc_dir = "." + build_path = "0" +else + buildkite_branch = ENV["BUILDKITE_BRANCH"] + buildkite_commit = ENV["BUILDKITE_COMMIT"] + buildkite_number = ENV["BUILDKITE_BUILD_NUMBER"] + buildkite_build_path = ENV["BUILDKITE_BUILD_PATH"] + buildkite_pipeline_slug = ENV["BUILDKITE_PIPELINE_SLUG"] + buildkite_cc_dir = "/groups/esm/slurm-buildkite/climacoupler-ci/" + scratch_cc_dir = joinpath(buildkite_build_path, buildkite_pipeline_slug) + build_path = + joinpath(buildkite_build_path, buildkite_pipeline_slug, buildkite_number, buildkite_pipeline_slug, "perf/") +end cwd = pwd() @info "build_path is: $build_path" cc_dir = joinpath(dirname(@__DIR__)); +config_dir = joinpath(cc_dir, "config", "model_configs"); include(joinpath(cc_dir, "experiments", "AMIP", "modular", "cli_options.jl")); # assuming a common driver for all tested runs filename = joinpath(cc_dir, "experiments", "AMIP", "modular", "coupler_driver_modular.jl") -# selected runs for performance analysis and their expected allocations (based on previous runs) -run_name_list = - ["default_modular_unthreaded", "coarse_single_modular", "target_amip_n32_shortrun", "target_amip_n1_shortrun"] -run_name = run_name_list[parse(Int, perf_run_no)] - # number of time steps used for profiling n_samples = 2 -# flag to split coupler init from its solve -ENV["CI_PERF_SKIP_COUPLED_RUN"] = true +# import parsed command line arguments +parsed_args = parse_commandline(argparse_settings()) + +# select the configuration file and extract the run-name +config_file = + parsed_args["config_file"] = + isinteractive() ? "../config/perf_configs/perf_default_modular_unthreaded.yml" : parsed_args["config_file"] +run_name = parsed_args["run_name"] = split(basename(config_file), ".")[1] -# pass in the correct arguments, overriding defaults with those specific to each run_name (in `pipeline.yaml`) -dict = parsed_args_per_job_id(; trigger = "--run_name $run_name") -parsed_args_prescribed = parsed_args_from_ARGS(ARGS) -parsed_args_target = dict[run_name] -parsed_args = merge(parsed_args_target, parsed_args_prescribed) # global scope needed to recognize this definition in the coupler driver -run_name = "perf_diff_" * run_name -parsed_args["job_id"] = run_name -parsed_args["run_name"] = run_name +# import config setup +config_dict = YAML.load_file(config_file) + +# modify names for performance testing +perf_run_name = run_name +parsed_args["job_id"] = perf_run_name +parsed_args["run_name"] = perf_run_name +parsed_args = merge(config_dict, parsed_args) # global scope needed to recognize this definition in the coupler driver + +# disable threading parsed_args["enable_threading"] = false +# flag to split coupler init from its solve +ENV["CI_PERF_SKIP_COUPLED_RUN"] = true + @info run_name function step_coupler!(cs, n_samples) @@ -69,7 +84,7 @@ end ##### # obtain the stacktree from the last saved file in `buildkite_cc_dir` -ref_file = joinpath(buildkite_cc_dir, "$run_name.jld2") +ref_file = joinpath(buildkite_cc_dir, "$perf_run_name.jld2") if isfile(ref_file) tracked_list = load(ref_file) @@ -93,7 +108,7 @@ end # produce flamegraph with colors highlighting the allocation differences relative to the last saved run # profile_data if haskey(ENV, "BUILDKITE_COMMIT") || haskey(ENV, "BUILDKITE_BRANCH") - output_dir = "perf/output/$run_name" + output_dir = "perf/output/$perf_run_name" mkpath(output_dir) ProfileCanvasDiff.html_file( joinpath(output_dir, "flame_diff.html"), @@ -114,7 +129,7 @@ end profile_data, new_tracked_list = ProfileCanvasDiff.view(Profile.fetch(), tracked_list = tracked_list, self_count = true); if buildkite_branch == "staging" isfile(ref_file) ? - mv(ref_file, joinpath(scratch_cc_dir, "flame_reference_file.$run_name.$buildkite_commit.jld2"), force = true) : + mv(ref_file, joinpath(scratch_cc_dir, "flame_reference_file.$perf_run_name.$buildkite_commit.jld2"), force = true) : nothing save(ref_file, new_tracked_list) # reset ref_file upon staging end diff --git a/test/Project.toml b/test/Project.toml index 83c21aedd6..9b8e729038 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -34,4 +34,4 @@ Pkg = "1" StaticArrays = "1.6" SurfaceFluxes = "0.6.3" Unitful = "1" -julia = "1.8.5" +julia = "1.8.5" \ No newline at end of file diff --git a/test/mpi_tests/bcreader_mpi_tests.jl b/test/mpi_tests/bcreader_mpi_tests.jl index 9fd8ddf216..119de1c941 100644 --- a/test/mpi_tests/bcreader_mpi_tests.jl +++ b/test/mpi_tests/bcreader_mpi_tests.jl @@ -18,7 +18,8 @@ include(joinpath(@__DIR__, "..", "..", "artifacts", "artifact_funcs.jl")) const sst_data = joinpath(sst_dataset_path(), "sst.nc") # set up MPI communications context -const comms_ctx = ClimaComms.SingletonCommsContext(ClimaComms.device()) +device = ClimaComms.CPUSingleThreaded() +const comms_ctx = ClimaComms.context(device) const pid, nprocs = ClimaComms.init(comms_ctx) ClimaComms.barrier(comms_ctx) @@ -39,7 +40,7 @@ ClimaComms.barrier(comms_ctx) mono = true regrid_dir = "bcreader_regrid_dir" - isdir(regrid_dir) ? nothing : mkpath(regrid_dir) + mkpath(regrid_dir) bcf_info = BCReader.bcfile_info_init( FT, @@ -52,6 +53,7 @@ ClimaComms.barrier(comms_ctx) land_fraction = land_fraction_t, mono = mono, ) + ClimaComms.barrier(comms_ctx) # test that created object exists and has correct components @test @isdefined(bcf_info) @@ -75,7 +77,9 @@ ClimaComms.barrier(comms_ctx) @test min_weight >= FT(0.0) || isapprox(min_weight, FT(0.0), atol = 1e-16) # delete testing directory and files - rm(regrid_dir; recursive = true, force = true) + ClimaComms.barrier(comms_ctx) + ClimaComms.iamroot(comms_ctx) ? rm(regrid_dir; recursive = true, force = true) : nothing + ClimaComms.barrier(comms_ctx) end end @@ -102,7 +106,7 @@ end varname = "SST" regrid_dir = "bcreader_regrid_dir" - isdir(regrid_dir) ? nothing : mkpath(regrid_dir) + mkpath(regrid_dir) ClimaComms.barrier(comms_ctx) @@ -236,6 +240,8 @@ end ClimaComms.barrier(comms_ctx) @test_throws ErrorException BCReader.update_midmonth_data!(date, bcf_info) - rm(regrid_dir; recursive = true, force = true) + ClimaComms.barrier(comms_ctx) + ClimaComms.iamroot(comms_ctx) ? rm(regrid_dir; recursive = true, force = true) : nothing + ClimaComms.barrier(comms_ctx) end end diff --git a/test/mpi_tests/checkpointer_mpi_tests.jl b/test/mpi_tests/checkpointer_mpi_tests.jl index 442e611c3a..10d70478d1 100644 --- a/test/mpi_tests/checkpointer_mpi_tests.jl +++ b/test/mpi_tests/checkpointer_mpi_tests.jl @@ -30,6 +30,7 @@ get_model_state_vector(sim::DummySimulation) = sim.state # old sim run sim = DummySimulation(Fields.FieldVector(T = ones(boundary_space))) checkpoint_model_state(sim, comms_ctx, t, output_dir = "test_checkpoint") + ClimaComms.barrier(comms_ctx) # new sim run sim_new = DummySimulation(Fields.FieldVector(T = zeros(boundary_space))) diff --git a/test/mpi_tests/regridder_mpi_tests.jl b/test/mpi_tests/regridder_mpi_tests.jl index d3809650c2..0c566297a8 100644 --- a/test/mpi_tests/regridder_mpi_tests.jl +++ b/test/mpi_tests/regridder_mpi_tests.jl @@ -11,12 +11,13 @@ using ClimaComms using Dates using Test -REGRID_DIR = @isdefined(REGRID_DIR) ? REGRID_DIR : joinpath("", "regrid_tmp/") +REGRID_DIR = @isdefined(REGRID_DIR) ? REGRID_DIR : joinpath("", "regridder_test_tmp/") # Set up MPI communications context # Note that runs will hang if a context is initialized twice in the same file, # so this context should be shared among all tests in this file. -comms_ctx = ClimaComms.SingletonCommsContext(ClimaComms.device()) +device = ClimaComms.CPUSingleThreaded() +const comms_ctx = ClimaComms.context(device) pid, nprocs = ClimaComms.init(comms_ctx) @testset "test write_to_hdf5 and read_from_hdf5 with MPI" begin @@ -33,7 +34,12 @@ pid, nprocs = ClimaComms.init(comms_ctx) ClimaComms.barrier(comms_ctx) Regridder.write_to_hdf5(REGRID_DIR, hd_outfile_root, tx, input_field, varname, comms_ctx) + ClimaComms.barrier(comms_ctx) output_field = Regridder.read_from_hdf5(REGRID_DIR, hd_outfile_root, tx, varname, comms_ctx) @test parent(input_field) == parent(output_field) + + ClimaComms.barrier(comms_ctx) + ClimaComms.iamroot(comms_ctx) ? rm(REGRID_DIR; recursive = true, force = true) : nothing + ClimaComms.barrier(comms_ctx) end end diff --git a/test/mpi_tests/run_mpi_tests.jl b/test/mpi_tests/run_mpi_tests.jl index 49b92e559b..d9ef5c2a70 100644 --- a/test/mpi_tests/run_mpi_tests.jl +++ b/test/mpi_tests/run_mpi_tests.jl @@ -1,4 +1,25 @@ using MPI +#= +# if running locally: +module purge +# module load julia/1.9.3 cuda/11.8 ucx/1.14.1_cuda-11.8 openmpi/4.1.5_cuda-11.8 hdf5/1.12.2-ompi415 nsight-systems/2023.2.1 +module load julia/1.8.5 cuda/11.8 ucx/1.14.1_cuda-11.8 openmpi/4.1.5_cuda-11.8 hdf5/1.12.2-ompi415 nsight-systems/2023.2.1 +export OPENBLAS_NUM_THREADS=1 +export JULIA_NVTX_CALLBACKS=gc +export OMPI_MCA_opal_warn_on_missing_libcuda=0 +export JULIA_MAX_NUM_PRECOMPILE_FILES=100 +export JULIA_LOAD_PATH= + +export CLIMACORE_DISTRIBUTED="MPI" + +julia -e 'using Pkg; Pkg.add("MPIPreferences"); using MPIPreferences; use_system_binary()' + +julia -e 'using Pkg; Pkg.instantiate(;verbose=true)' +julia -e 'using Pkg; Pkg.precompile()' +julia -e 'using Pkg; Pkg.status()' + +# then precompile all packages and run with `julia` and the default env +=# function runmpi(file; ntasks = 1) MPI.mpiexec() do cmd @@ -11,6 +32,8 @@ function runmpi(file; ntasks = 1) end if !Sys.iswindows() + @info "tests started" runmpi(joinpath(@__DIR__, "regridder_mpi_tests.jl"), ntasks = 2) - runmpi(joinpath(@__DIR__, "bcreader_mpi_tests.jl"), ntasks = 2) + runmpi(joinpath(@__DIR__, "bcreader_mpi_tests.jl"), ntasks = 1) + runmpi(joinpath(@__DIR__, "checkpointer_mpi_tests.jl"), ntasks = 1) end