From 6f0c39040f3ee18633a24e9321ca8dd2b21d6a7e Mon Sep 17 00:00:00 2001 From: Simon Byrne Date: Wed, 13 Dec 2023 15:37:47 -0800 Subject: [PATCH 1/2] simplify DSS operations --- .buildkite/gpu_pipeline/pipeline.yml | 36 ++++-- .dev/Manifest.toml | 4 +- Project.toml | 2 +- ...quilmoist_nz63_0M_55km_rs35km_4process.yml | 16 +++ docs/Manifest.toml | 76 +++++++----- examples/Manifest.toml | 112 +++++++++-------- examples/Project.toml | 2 + perf/Manifest.toml | 114 ++++++++++-------- src/callbacks/callbacks.jl | 3 +- src/prognostic_equations/dss.jl | 7 +- src/prognostic_equations/hyperdiffusion.jl | 59 +++++---- 11 files changed, 244 insertions(+), 187 deletions(-) create mode 100644 config/gpu_configs/gpu_hs_rhoe_equilmoist_nz63_0M_55km_rs35km_4process.yml diff --git a/.buildkite/gpu_pipeline/pipeline.yml b/.buildkite/gpu_pipeline/pipeline.yml index 619255a780..194030502f 100644 --- a/.buildkite/gpu_pipeline/pipeline.yml +++ b/.buildkite/gpu_pipeline/pipeline.yml @@ -1,7 +1,7 @@ agents: queue: clima slurm_mem: 8G - modules: julia/1.9.4 cuda/julia-pref openmpi/4.1.5-mpitrampoline nsight-systems/2023.3.1 + modules: julia/1.9.4 cuda/julia-pref openmpi/4.1.5-mpitrampoline nsight-systems/2023.4.1 env: JULIA_CUDA_MEMORY_POOL: none @@ -16,6 +16,7 @@ env: GPU_CONFIG_PATH: "config/gpu_configs/" PERF_CONFIG_PATH: "config/perf_configs" MPI_CONFIG_PATH: "config/mpi_configs" + CLIMAATMOS_GC_NSTEPS: 10 steps: - label: "init :GPU:" @@ -32,6 +33,7 @@ steps: agents: slurm_gpus: 1 + slurm_cpus_per_task: 8 env: JULIA_NUM_PRECOMPILE_TASKS: 8 JULIA_MAX_NUM_PRECOMPILE_FILES: 50 @@ -46,47 +48,65 @@ steps: command: - mkdir -p target_gpu_implicit_baroclinic_wave - > - nsys profile --trace=nvtx,cuda --output=target_gpu_implicit_baroclinic_wave/report + nsys profile --trace=nvtx,mpi,cuda,osrt --output=target_gpu_implicit_baroclinic_wave/report julia --color=yes --project=examples examples/hybrid/driver.jl --config_file ${GPU_CONFIG_PATH}target_gpu_implicit_baroclinic_wave.yml artifact_paths: "target_gpu_implicit_baroclinic_wave/*" agents: slurm_gpus: 1 - slurm_time: 23:00:00 + slurm_cpus_per_task: 4 - label: "gpu_aquaplanet_dyamond" command: - mkdir -p gpu_aquaplanet_dyamond - - > - nsys profile --trace=nvtx,cuda --output=gpu_aquaplanet_dyamond/report + - > + nsys profile --trace=nvtx,mpi,cuda,osrt --output=gpu_aquaplanet_dyamond/report julia --color=yes --project=examples examples/hybrid/driver.jl --config_file ${GPU_CONFIG_PATH}gpu_aquaplanet_dyamond.yml artifact_paths: "gpu_aquaplanet_dyamond/*" agents: slurm_gpus: 1 + slurm_cpus_per_task: 4 - label: "moist Held-Suarez" key: "gpu_hs_rhoe_equilmoist_nz63_0M_55km_rs35km" command: - mkdir -p gpu_hs_rhoe_equilmoist_nz63_0M_55km_rs35km - > - nsys profile --trace=nvtx,cuda --output=gpu_hs_rhoe_equilmoist_nz63_0M_55km_rs35km/report + nsys profile --trace=nvtx,mpi,cuda,osrt --output=gpu_hs_rhoe_equilmoist_nz63_0M_55km_rs35km/report julia --color=yes --project=examples examples/hybrid/driver.jl --config_file ${GPU_CONFIG_PATH}gpu_hs_rhoe_equilmoist_nz63_0M_55km_rs35km.yml artifact_paths: "gpu_hs_rhoe_equilmoist_nz63_0M_55km_rs35km/*" agents: slurm_gpus: 1 + slurm_cpus_per_task: 4 + + - label: "moist Held-Suarez - 4 gpus" + key: "gpu_hs_rhoe_equilmoist_nz63_0M_55km_rs35km_4process" + command: + - mkdir -p gpu_hs_rhoe_equilmoist_nz63_0M_55km_rs35km_4process + - > + srun --cpu-bind=cores + nsys profile --trace=nvtx,mpi,cuda,osrt --output=gpu_hs_rhoe_equilmoist_nz63_0M_55km_rs35km_4process/report-%q{PMI_RANK} + julia --color=yes --project=examples examples/hybrid/driver.jl + --config_file ${GPU_CONFIG_PATH}gpu_hs_rhoe_equilmoist_nz63_0M_55km_rs35km_4process.yml + artifact_paths: "gpu_hs_rhoe_equilmoist_nz63_0M_55km_rs35km_4process/*" + agents: + slurm_gpus_per_task: 1 + slurm_cpus_per_task: 4 + slurm_ntasks: 4 - label: "dry baroclinic wave - 4 gpus" key: "target_gpu_implicit_baroclinic_wave_4process" command: - mkdir -p target_gpu_implicit_baroclinic_wave_4process - > - srun - nsys profile --trace=nvtx,cuda,mpi --output=target_gpu_implicit_baroclinic_wave_4process/report-%q{PMI_RANK} + srun --cpu-bind=cores + nsys profile --trace=osrt,nvtx,cuda,mpi,ucx --output=target_gpu_implicit_baroclinic_wave_4process/report-%q{PMI_RANK} julia --color=yes --project=examples examples/hybrid/driver.jl --config_file ${GPU_CONFIG_PATH}target_gpu_implicit_baroclinic_wave_4process.yml artifact_paths: "target_gpu_implicit_baroclinic_wave_4process/*" agents: slurm_gpus_per_task: 1 + slurm_cpus_per_task: 4 slurm_ntasks: 4 diff --git a/.dev/Manifest.toml b/.dev/Manifest.toml index 7ae2224e04..d08637b1d7 100644 --- a/.dev/Manifest.toml +++ b/.dev/Manifest.toml @@ -79,9 +79,9 @@ version = "0.21.4" [[deps.JuliaFormatter]] deps = ["CSTParser", "CommonMark", "DataStructures", "Glob", "Pkg", "PrecompileTools", "Tokenize"] -git-tree-sha1 = "2d2f630931dcf9cc4f753777a9c9ffb48d504116" +git-tree-sha1 = "8f5295e46f594ad2d8652f1098488a77460080cd" uuid = "98e50ef6-434e-11e9-1051-2b60c6c9e899" -version = "1.0.43" +version = "1.0.45" [[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] diff --git a/Project.toml b/Project.toml index 397e80b030..c144ed44f6 100644 --- a/Project.toml +++ b/Project.toml @@ -50,7 +50,7 @@ Artifacts = "1" AtmosphericProfilesLibrary = "0.1" CLIMAParameters = "0.7.25" ClimaComms = "0.5.6" -ClimaCore = "0.11.1" +ClimaCore = "0.11.5" ClimaTimeSteppers = "0.7.14" CloudMicrophysics = "0.15.0" Colors = "0.12" diff --git a/config/gpu_configs/gpu_hs_rhoe_equilmoist_nz63_0M_55km_rs35km_4process.yml b/config/gpu_configs/gpu_hs_rhoe_equilmoist_nz63_0M_55km_rs35km_4process.yml new file mode 100644 index 0000000000..cd51c1c0e7 --- /dev/null +++ b/config/gpu_configs/gpu_hs_rhoe_equilmoist_nz63_0M_55km_rs35km_4process.yml @@ -0,0 +1,16 @@ +dt_save_to_disk: "10days" +dt: "100secs" +t_end: "1days" +h_elem: 30 +z_elem: 63 +dz_bottom: 30.0 +dz_top: 3000.0 +z_max: 55000.0 +kappa_4: 1.0e15 +vert_diff: "true" +moist: "equil" +precip_model: "0M" +rayleigh_sponge: true +forcing: "held_suarez" +job_id: "gpu_hs_rhoe_equilmoist_nz63_0M_55km_rs35km" +toml: [toml/longrun_hs_rhoe_equilmoist_nz63_0M_55km_rs35km.toml] diff --git a/docs/Manifest.toml b/docs/Manifest.toml index 86796733f5..10cb901f6b 100644 --- a/docs/Manifest.toml +++ b/docs/Manifest.toml @@ -57,9 +57,9 @@ version = "0.1.33" [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "02f731463748db57cc2ebfbd9fbc9ce8280d3433" +git-tree-sha1 = "cde29ddf7e5726c9fb511f340244ea3481267608" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "3.7.1" +version = "3.7.2" weakdeps = ["StaticArrays"] [deps.Adapt.extensions] @@ -142,9 +142,9 @@ version = "0.4.2" [[deps.BandedMatrices]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] -git-tree-sha1 = "06a2a94d5a4979c36cc7a3c28d70800f448ae5bb" +git-tree-sha1 = "b7d2ca2461eeee5828ee9dcf6186e41fe6b6f78b" uuid = "aae01518-5342-5314-be14-df237901396f" -version = "1.3.0" +version = "1.3.1" weakdeps = ["SparseArrays"] [deps.BandedMatrices.extensions] @@ -178,9 +178,9 @@ version = "0.1.5" [[deps.BlockArrays]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra"] -git-tree-sha1 = "54cd829dd26330c42e1cf9df68470dd4df602c61" +git-tree-sha1 = "fc69cbdb4277042f72c6e59cbc7024fbe3034b89" uuid = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" -version = "0.16.38" +version = "0.16.39" [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -269,10 +269,10 @@ uuid = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" version = "0.5.6" [[deps.ClimaCore]] -deps = ["Adapt", "BandedMatrices", "BlockArrays", "CUDA", "ClimaComms", "CubedSphere", "DataStructures", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "KrylovKit", "LinearAlgebra", "Memoize", "PkgVersion", "RecursiveArrayTools", "RootSolvers", "SparseArrays", "Static", "StaticArrays", "Statistics", "WeakValueDicts"] -git-tree-sha1 = "ca5a3fe9269205c2b4f0ffe3b7897b1506eda494" +deps = ["Adapt", "BandedMatrices", "BlockArrays", "CUDA", "ClimaComms", "CubedSphere", "DataStructures", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "KrylovKit", "LinearAlgebra", "Memoize", "PkgVersion", "RecursiveArrayTools", "RootSolvers", "SparseArrays", "Static", "StaticArrays", "Statistics", "Unrolled", "WeakValueDicts"] +git-tree-sha1 = "de400c8d487ca34c7a70a92b45e861408a0e7eee" uuid = "d414da3d-4745-48bb-8d80-42e94e092884" -version = "0.11.2" +version = "0.11.6" weakdeps = ["Krylov"] [deps.ClimaCore.extensions] @@ -448,9 +448,9 @@ version = "0.1.0+0" [[deps.DiffEqBase]] deps = ["ArrayInterface", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces"] -git-tree-sha1 = "309efb205c30d43b595466283bbecf2769283e22" +git-tree-sha1 = "09ce9525b590bcdd9a807142dc493692aee85ef9" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.141.0" +version = "6.143.0" [deps.DiffEqBase.extensions] DiffEqBaseChainRulesCoreExt = "ChainRulesCore" @@ -577,9 +577,9 @@ version = "0.3.2" [[deps.FFTW]] deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] -git-tree-sha1 = "b4fbdd20c889804969571cc589900803edda16b7" +git-tree-sha1 = "ec22cbbcd01cba8f41eecd7d44aac1f23ee985e3" uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" -version = "1.7.1" +version = "1.7.2" [[deps.FFTW_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -600,9 +600,9 @@ version = "0.3.2" [[deps.FastGaussQuadrature]] deps = ["LinearAlgebra", "SpecialFunctions", "StaticArrays"] -git-tree-sha1 = "93ff6a4d5e7bfe27732259bfabbdd19940d8af1f" +git-tree-sha1 = "8ef0363cffeedb7e73339b664ce6d33cc278a3c4" uuid = "442a2c76-b920-505d-bb47-c5924d526838" -version = "1.0.0" +version = "1.0.1" [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] @@ -615,9 +615,9 @@ uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[deps.FillArrays]] deps = ["LinearAlgebra", "Random"] -git-tree-sha1 = "01dba5dbad6b2766e2ddd7b9d64af0e6d68d95cd" +git-tree-sha1 = "5b93957f6dcd33fc343044af3d48c215be2562f1" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.9.1" +version = "1.9.3" [deps.FillArrays.extensions] FillArraysPDMatsExt = "PDMats" @@ -880,9 +880,9 @@ weakdeps = ["EnzymeCore"] [[deps.Krylov]] deps = ["LinearAlgebra", "Printf", "SparseArrays"] -git-tree-sha1 = "17e462054b42dcdda73e9a9ba0c67754170c88ae" +git-tree-sha1 = "8a6837ec02fe5fb3def1abc907bb802ef11a0729" uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -version = "0.9.4" +version = "0.9.5" [[deps.KrylovKit]] deps = ["ChainRulesCore", "GPUArraysCore", "LinearAlgebra", "Printf"] @@ -994,10 +994,14 @@ deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" [[deps.LinearOperators]] -deps = ["FastClosures", "LDLFactorizations", "LinearAlgebra", "Printf", "SparseArrays", "TimerOutputs"] -git-tree-sha1 = "a58ab1d18efa0bcf9f0868c6d387e4126dad3e72" +deps = ["FastClosures", "LDLFactorizations", "LinearAlgebra", "Printf", "Requires", "SparseArrays", "TimerOutputs"] +git-tree-sha1 = "58e2ca62646a62e18f86253b9c2a2d821c2d934b" uuid = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125" -version = "2.5.2" +version = "2.6.0" +weakdeps = ["ChainRulesCore"] + + [deps.LinearOperators.extensions] + LinearOperatorsChainRulesCoreExt = "ChainRulesCore" [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] @@ -1019,10 +1023,10 @@ version = "0.3.26" uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" [[deps.MKL_jll]] -deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] -git-tree-sha1 = "eb006abbd7041c28e0d16260e50a24f8f9104913" +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2023.2.0+0" +version = "2024.0.0+0" [[deps.MPI]] deps = ["Distributed", "DocStringExtensions", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "PkgVersion", "PrecompileTools", "Requires", "Serialization", "Sockets"] @@ -1040,9 +1044,9 @@ version = "0.20.19" [[deps.MPICH_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "8a5b4d2220377d1ece13f49438d71ad20cf1ba83" +git-tree-sha1 = "2ee75365ca243c1a39d467e35ffd3d4d32eef11e" uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" -version = "4.1.2+0" +version = "4.1.2+1" [[deps.MPIPreferences]] deps = ["Libdl", "Preferences"] @@ -1418,9 +1422,9 @@ version = "0.1.0" [[deps.SciMLBase]] deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FillArrays", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "QuasiMonteCarlo", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] -git-tree-sha1 = "d432b4c4cc922fb7b21b555c138aa87f9fb7beb8" +git-tree-sha1 = "32ea825941f7b58a6f48268f4b76971ae8eb9eec" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.9.1" +version = "2.10.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -1513,9 +1517,9 @@ version = "0.8.8" [[deps.StaticArrayInterface]] deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"] -git-tree-sha1 = "03fec6800a986d191f64f5c0996b59ed526eda25" +git-tree-sha1 = "5d66818a39bb04bf328e92bc933ec5b4ee88e436" uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" -version = "1.4.1" +version = "1.5.0" weakdeps = ["OffsetArrays", "StaticArrays"] [deps.StaticArrayInterface.extensions] @@ -1700,6 +1704,12 @@ version = "1.0.2" [[deps.Unicode]] uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" +[[deps.Unrolled]] +deps = ["MacroTools"] +git-tree-sha1 = "6cc9d682755680e0f0be87c56392b7651efc2c7b" +uuid = "9602ed7d-8fef-5bc8-8597-8f21381861e8" +version = "0.1.5" + [[deps.UnsafeAtomics]] git-tree-sha1 = "6331ac3440856ea1988316b46045303bef658278" uuid = "013be700-e6cd-48c3-b4a1-df204f14c38f" @@ -1724,9 +1734,9 @@ version = "0.5.6" [[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] -git-tree-sha1 = "da69178aacc095066bad1f69d2f59a60a1dd8ad1" +git-tree-sha1 = "801cbe47eae69adc50f36c3caec4758d2650741b" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.12.0+0" +version = "2.12.2+0" [[deps.YAML]] deps = ["Base64", "Dates", "Printf", "StringEncodings"] diff --git a/examples/Manifest.toml b/examples/Manifest.toml index 97fffd9d32..66ac4e3732 100644 --- a/examples/Manifest.toml +++ b/examples/Manifest.toml @@ -2,7 +2,7 @@ julia_version = "1.9.4" manifest_format = "2.0" -project_hash = "94725b056650c16e4c4a7c8208143851b8e699ff" +project_hash = "2debfafcce1272e50149f634c9d07221a58b6f9d" [[deps.ADTypes]] git-tree-sha1 = "332e5d7baeff8497b923b730b994fa480601efc7" @@ -57,9 +57,9 @@ version = "0.1.33" [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "02f731463748db57cc2ebfbd9fbc9ce8280d3433" +git-tree-sha1 = "cde29ddf7e5726c9fb511f340244ea3481267608" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "3.7.1" +version = "3.7.2" weakdeps = ["StaticArrays"] [deps.Adapt.extensions] @@ -160,9 +160,9 @@ version = "0.4.2" [[deps.BandedMatrices]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] -git-tree-sha1 = "06a2a94d5a4979c36cc7a3c28d70800f448ae5bb" +git-tree-sha1 = "b7d2ca2461eeee5828ee9dcf6186e41fe6b6f78b" uuid = "aae01518-5342-5314-be14-df237901396f" -version = "1.3.0" +version = "1.3.1" weakdeps = ["SparseArrays"] [deps.BandedMatrices.extensions] @@ -184,9 +184,9 @@ version = "0.1.5" [[deps.BlockArrays]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra"] -git-tree-sha1 = "54cd829dd26330c42e1cf9df68470dd4df602c61" +git-tree-sha1 = "fc69cbdb4277042f72c6e59cbc7024fbe3034b89" uuid = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" -version = "0.16.38" +version = "0.16.39" [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -314,10 +314,10 @@ uuid = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" version = "0.5.6" [[deps.ClimaCore]] -deps = ["Adapt", "BandedMatrices", "BlockArrays", "CUDA", "ClimaComms", "CubedSphere", "DataStructures", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "KrylovKit", "LinearAlgebra", "Memoize", "PkgVersion", "RecursiveArrayTools", "RootSolvers", "SparseArrays", "Static", "StaticArrays", "Statistics", "WeakValueDicts"] -git-tree-sha1 = "ca5a3fe9269205c2b4f0ffe3b7897b1506eda494" +deps = ["Adapt", "BandedMatrices", "BlockArrays", "CUDA", "ClimaComms", "CubedSphere", "DataStructures", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "KrylovKit", "LinearAlgebra", "Memoize", "PkgVersion", "RecursiveArrayTools", "RootSolvers", "SparseArrays", "Static", "StaticArrays", "Statistics", "Unrolled", "WeakValueDicts"] +git-tree-sha1 = "de400c8d487ca34c7a70a92b45e861408a0e7eee" uuid = "d414da3d-4745-48bb-8d80-42e94e092884" -version = "0.11.2" +version = "0.11.6" weakdeps = ["Krylov"] [deps.ClimaCore.extensions] @@ -565,9 +565,9 @@ version = "0.1.0+0" [[deps.DiffEqBase]] deps = ["ArrayInterface", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces"] -git-tree-sha1 = "309efb205c30d43b595466283bbecf2769283e22" +git-tree-sha1 = "09ce9525b590bcdd9a807142dc493692aee85ef9" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.141.0" +version = "6.143.0" [deps.DiffEqBase.extensions] DiffEqBaseChainRulesCoreExt = "ChainRulesCore" @@ -638,9 +638,9 @@ uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" [[deps.Distributions]] deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] -git-tree-sha1 = "a6c00f894f24460379cb7136633cef54ac9f6f4a" +git-tree-sha1 = "9242eec9b7e2e14f9952e8ea1c7e31a50501d587" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.103" +version = "0.25.104" [deps.Distributions.extensions] DistributionsChainRulesCoreExt = "ChainRulesCore" @@ -750,9 +750,9 @@ version = "0.3.2" [[deps.FFTW]] deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] -git-tree-sha1 = "b4fbdd20c889804969571cc589900803edda16b7" +git-tree-sha1 = "ec22cbbcd01cba8f41eecd7d44aac1f23ee985e3" uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" -version = "1.7.1" +version = "1.7.2" [[deps.FFTW_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -773,9 +773,9 @@ version = "0.3.2" [[deps.FastGaussQuadrature]] deps = ["LinearAlgebra", "SpecialFunctions", "StaticArrays"] -git-tree-sha1 = "93ff6a4d5e7bfe27732259bfabbdd19940d8af1f" +git-tree-sha1 = "8ef0363cffeedb7e73339b664ce6d33cc278a3c4" uuid = "442a2c76-b920-505d-bb47-c5924d526838" -version = "1.0.0" +version = "1.0.1" [[deps.FastRounding]] deps = ["ErrorfreeArithmetic", "LinearAlgebra"] @@ -794,9 +794,9 @@ uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[deps.FillArrays]] deps = ["LinearAlgebra", "Random"] -git-tree-sha1 = "01dba5dbad6b2766e2ddd7b9d64af0e6d68d95cd" +git-tree-sha1 = "5b93957f6dcd33fc343044af3d48c215be2562f1" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.9.1" +version = "1.9.3" weakdeps = ["PDMats", "SparseArrays", "Statistics"] [deps.FillArrays.extensions] @@ -1196,15 +1196,15 @@ version = "0.21.4" [[deps.JpegTurbo]] deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] -git-tree-sha1 = "d65930fa2bc96b07d7691c652d701dcbe7d9cf0b" +git-tree-sha1 = "fa6d0bcff8583bac20f1ffa708c3913ca605c611" uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" -version = "0.1.4" +version = "0.1.5" [[deps.JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc" +git-tree-sha1 = "60b1194df0a3298f460063de985eae7b01bc011a" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" -version = "2.1.91+0" +version = "3.0.1+0" [[deps.JuliaInterpreter]] deps = ["CodeTracking", "InteractiveUtils", "Random", "UUIDs"] @@ -1236,9 +1236,9 @@ version = "0.6.7" [[deps.Krylov]] deps = ["LinearAlgebra", "Printf", "SparseArrays"] -git-tree-sha1 = "17e462054b42dcdda73e9a9ba0c67754170c88ae" +git-tree-sha1 = "8a6837ec02fe5fb3def1abc907bb802ef11a0729" uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -version = "0.9.4" +version = "0.9.5" [[deps.KrylovKit]] deps = ["ChainRulesCore", "GPUArraysCore", "LinearAlgebra", "Printf"] @@ -1436,10 +1436,14 @@ uuid = "9b3f67b0-2d00-526e-9884-9e4938f8fb88" version = "0.2.5" [[deps.LinearOperators]] -deps = ["FastClosures", "LDLFactorizations", "LinearAlgebra", "Printf", "SparseArrays", "TimerOutputs"] -git-tree-sha1 = "a58ab1d18efa0bcf9f0868c6d387e4126dad3e72" +deps = ["FastClosures", "LDLFactorizations", "LinearAlgebra", "Printf", "Requires", "SparseArrays", "TimerOutputs"] +git-tree-sha1 = "58e2ca62646a62e18f86253b9c2a2d821c2d934b" uuid = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125" -version = "2.5.2" +version = "2.6.0" +weakdeps = ["ChainRulesCore"] + + [deps.LinearOperators.extensions] + LinearOperatorsChainRulesCoreExt = "ChainRulesCore" [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] @@ -1473,10 +1477,10 @@ uuid = "6f1432cf-f94c-5a45-995e-cdbf5db27b0b" version = "2.3.2" [[deps.MKL_jll]] -deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] -git-tree-sha1 = "eb006abbd7041c28e0d16260e50a24f8f9104913" +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2023.2.0+0" +version = "2024.0.0+0" [[deps.MPI]] deps = ["Distributed", "DocStringExtensions", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "PkgVersion", "PrecompileTools", "Requires", "Serialization", "Sockets"] @@ -1494,9 +1498,9 @@ version = "0.20.19" [[deps.MPICH_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "8a5b4d2220377d1ece13f49438d71ad20cf1ba83" +git-tree-sha1 = "2ee75365ca243c1a39d467e35ffd3d4d32eef11e" uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" -version = "4.1.2+0" +version = "4.1.2+1" [[deps.MPIPreferences]] deps = ["Libdl", "Preferences"] @@ -1586,9 +1590,9 @@ version = "1.1.0" uuid = "a63ad114-7e13-5084-954f-fe012c677804" [[deps.Mods]] -git-tree-sha1 = "f4fc34d4118afc0beefe429d77fe46160730fd23" +git-tree-sha1 = "9d292c7fb23e9a756094f8617a0f10e3b9582f47" uuid = "7475f97c-0381-53b1-977b-4c60186c8d62" -version = "2.1.1" +version = "2.2.0" [[deps.MosaicViews]] deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] @@ -1761,15 +1765,15 @@ version = "10.42.0+0" [[deps.PDMats]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "4e5be6bb265d33669f98eb55d2a57addd1eeb72c" +git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" -version = "0.11.30" +version = "0.11.31" [[deps.PNGFiles]] deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] -git-tree-sha1 = "eed372b0fa15624273a9cdb188b1b88476e6a233" +git-tree-sha1 = "67186a2bc9a90f9f85ff3cc8277868961fb57cbd" uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" -version = "0.4.2" +version = "0.4.3" [[deps.Packing]] deps = ["GeometryBasics"] @@ -2144,9 +2148,9 @@ version = "0.1.0" [[deps.SciMLBase]] deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FillArrays", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "QuasiMonteCarlo", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] -git-tree-sha1 = "d432b4c4cc922fb7b21b555c138aa87f9fb7beb8" +git-tree-sha1 = "32ea825941f7b58a6f48268f4b76971ae8eb9eec" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.9.1" +version = "2.10.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -2291,9 +2295,9 @@ weakdeps = ["ChainRulesCore"] [[deps.StableHashTraits]] deps = ["Compat", "SHA", "Tables", "TupleTools"] -git-tree-sha1 = "d29023a76780bb8a3f2273b29153fd00828cb73f" +git-tree-sha1 = "5a26dfe46e2cb5f5eca78114c7d49548b9597e71" uuid = "c5dd0088-6c3f-4803-b00e-f31a60c170fa" -version = "1.1.1" +version = "1.1.3" [[deps.StackViews]] deps = ["OffsetArrays"] @@ -2309,9 +2313,9 @@ version = "0.8.8" [[deps.StaticArrayInterface]] deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"] -git-tree-sha1 = "03fec6800a986d191f64f5c0996b59ed526eda25" +git-tree-sha1 = "5d66818a39bb04bf328e92bc933ec5b4ee88e436" uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" -version = "1.4.1" +version = "1.5.0" weakdeps = ["OffsetArrays", "StaticArrays"] [deps.StaticArrayInterface.extensions] @@ -2556,6 +2560,12 @@ git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" version = "1.6.3" +[[deps.Unrolled]] +deps = ["MacroTools"] +git-tree-sha1 = "6cc9d682755680e0f0be87c56392b7651efc2c7b" +uuid = "9602ed7d-8fef-5bc8-8597-8f21381861e8" +version = "0.1.5" + [[deps.UnsafeAtomics]] git-tree-sha1 = "6331ac3440856ea1988316b46045303bef658278" uuid = "013be700-e6cd-48c3-b4a1-df204f14c38f" @@ -2614,9 +2624,9 @@ version = "1.18.1" [[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] -git-tree-sha1 = "da69178aacc095066bad1f69d2f59a60a1dd8ad1" +git-tree-sha1 = "801cbe47eae69adc50f36c3caec4758d2650741b" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.12.0+0" +version = "2.12.2+0" [[deps.XSLT_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] @@ -2857,10 +2867,10 @@ uuid = "36db933b-70db-51c0-b978-0f229ee0e533" version = "1.18.0+0" [[deps.libpng_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] -git-tree-sha1 = "94d180a6d2b5e55e447e2d27a29ed04fe79eb30c" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "93284c28274d9e75218a416c65ec49d0e0fcdf3d" uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" -version = "1.6.38+0" +version = "1.6.40+0" [[deps.libsixel_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "libpng_jll"] diff --git a/examples/Project.toml b/examples/Project.toml index 599405537f..db09158af4 100644 --- a/examples/Project.toml +++ b/examples/Project.toml @@ -72,6 +72,7 @@ ClimaCoreVTK = "0.7" CloudMicrophysics = "0.15" ForwardDiff = "0.10" Glob = "1" +HDF5_jll = "1.14" JET = "0.7, 0.8" JSON = "0.21" NCRegressionTests = "0.2" @@ -87,3 +88,4 @@ julia = "1.7" [extras] CPUSummary = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" +HDF5_jll = "0234f1f7-429e-5d53-9886-15a909be8d59" diff --git a/perf/Manifest.toml b/perf/Manifest.toml index ce2c8903d5..cbfffbbced 100644 --- a/perf/Manifest.toml +++ b/perf/Manifest.toml @@ -57,9 +57,9 @@ version = "0.1.33" [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "02f731463748db57cc2ebfbd9fbc9ce8280d3433" +git-tree-sha1 = "cde29ddf7e5726c9fb511f340244ea3481267608" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "3.7.1" +version = "3.7.2" weakdeps = ["StaticArrays"] [deps.Adapt.extensions] @@ -160,9 +160,9 @@ version = "0.4.2" [[deps.BandedMatrices]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] -git-tree-sha1 = "06a2a94d5a4979c36cc7a3c28d70800f448ae5bb" +git-tree-sha1 = "b7d2ca2461eeee5828ee9dcf6186e41fe6b6f78b" uuid = "aae01518-5342-5314-be14-df237901396f" -version = "1.3.0" +version = "1.3.1" weakdeps = ["SparseArrays"] [deps.BandedMatrices.extensions] @@ -190,9 +190,9 @@ version = "0.1.5" [[deps.BlockArrays]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra"] -git-tree-sha1 = "54cd829dd26330c42e1cf9df68470dd4df602c61" +git-tree-sha1 = "fc69cbdb4277042f72c6e59cbc7024fbe3034b89" uuid = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" -version = "0.16.38" +version = "0.16.39" [[deps.BufferedStreams]] git-tree-sha1 = "4ae47f9a4b1dc19897d3743ff13685925c5202ec" @@ -325,10 +325,10 @@ uuid = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" version = "0.5.6" [[deps.ClimaCore]] -deps = ["Adapt", "BandedMatrices", "BlockArrays", "CUDA", "ClimaComms", "CubedSphere", "DataStructures", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "KrylovKit", "LinearAlgebra", "Memoize", "PkgVersion", "RecursiveArrayTools", "RootSolvers", "SparseArrays", "Static", "StaticArrays", "Statistics", "WeakValueDicts"] -git-tree-sha1 = "ca5a3fe9269205c2b4f0ffe3b7897b1506eda494" +deps = ["Adapt", "BandedMatrices", "BlockArrays", "CUDA", "ClimaComms", "CubedSphere", "DataStructures", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "KrylovKit", "LinearAlgebra", "Memoize", "PkgVersion", "RecursiveArrayTools", "RootSolvers", "SparseArrays", "Static", "StaticArrays", "Statistics", "Unrolled", "WeakValueDicts"] +git-tree-sha1 = "de400c8d487ca34c7a70a92b45e861408a0e7eee" uuid = "d414da3d-4745-48bb-8d80-42e94e092884" -version = "0.11.2" +version = "0.11.6" weakdeps = ["Krylov"] [deps.ClimaCore.extensions] @@ -582,9 +582,9 @@ version = "0.1.0+0" [[deps.DiffEqBase]] deps = ["ArrayInterface", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces"] -git-tree-sha1 = "309efb205c30d43b595466283bbecf2769283e22" +git-tree-sha1 = "09ce9525b590bcdd9a807142dc493692aee85ef9" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.141.0" +version = "6.143.0" [deps.DiffEqBase.extensions] DiffEqBaseChainRulesCoreExt = "ChainRulesCore" @@ -667,9 +667,9 @@ uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" [[deps.Distributions]] deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] -git-tree-sha1 = "a6c00f894f24460379cb7136633cef54ac9f6f4a" +git-tree-sha1 = "9242eec9b7e2e14f9952e8ea1c7e31a50501d587" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.103" +version = "0.25.104" [deps.Distributions.extensions] DistributionsChainRulesCoreExt = "ChainRulesCore" @@ -779,9 +779,9 @@ version = "0.3.2" [[deps.FFTW]] deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] -git-tree-sha1 = "b4fbdd20c889804969571cc589900803edda16b7" +git-tree-sha1 = "ec22cbbcd01cba8f41eecd7d44aac1f23ee985e3" uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" -version = "1.7.1" +version = "1.7.2" [[deps.FFTW_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -802,9 +802,9 @@ version = "0.3.2" [[deps.FastGaussQuadrature]] deps = ["LinearAlgebra", "SpecialFunctions", "StaticArrays"] -git-tree-sha1 = "93ff6a4d5e7bfe27732259bfabbdd19940d8af1f" +git-tree-sha1 = "8ef0363cffeedb7e73339b664ce6d33cc278a3c4" uuid = "442a2c76-b920-505d-bb47-c5924d526838" -version = "1.0.0" +version = "1.0.1" [[deps.FastRounding]] deps = ["ErrorfreeArithmetic", "LinearAlgebra"] @@ -823,9 +823,9 @@ uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[deps.FillArrays]] deps = ["LinearAlgebra", "Random"] -git-tree-sha1 = "01dba5dbad6b2766e2ddd7b9d64af0e6d68d95cd" +git-tree-sha1 = "5b93957f6dcd33fc343044af3d48c215be2562f1" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.9.1" +version = "1.9.3" weakdeps = ["PDMats", "SparseArrays", "Statistics"] [deps.FillArrays.extensions] @@ -1243,15 +1243,15 @@ version = "0.21.4" [[deps.JpegTurbo]] deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] -git-tree-sha1 = "d65930fa2bc96b07d7691c652d701dcbe7d9cf0b" +git-tree-sha1 = "fa6d0bcff8583bac20f1ffa708c3913ca605c611" uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" -version = "0.1.4" +version = "0.1.5" [[deps.JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc" +git-tree-sha1 = "60b1194df0a3298f460063de985eae7b01bc011a" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" -version = "2.1.91+0" +version = "3.0.1+0" [[deps.JuliaInterpreter]] deps = ["CodeTracking", "InteractiveUtils", "Random", "UUIDs"] @@ -1266,9 +1266,9 @@ uuid = "9c1d0b0a-7046-5b2e-a33f-ea22f176ac7e" version = "0.2.1+0" [[deps.JuliaSyntax]] -git-tree-sha1 = "1a4857ab55396b2da745f07f76ce4e696207b740" +git-tree-sha1 = "e00e2b013f3bd98d3789f889b9305c1546ecd1ab" uuid = "70703baa-626e-46a2-a12c-08ffd08c73b4" -version = "0.4.7" +version = "0.4.8" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] @@ -1288,9 +1288,9 @@ version = "0.6.7" [[deps.Krylov]] deps = ["LinearAlgebra", "Printf", "SparseArrays"] -git-tree-sha1 = "17e462054b42dcdda73e9a9ba0c67754170c88ae" +git-tree-sha1 = "8a6837ec02fe5fb3def1abc907bb802ef11a0729" uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -version = "0.9.4" +version = "0.9.5" [[deps.KrylovKit]] deps = ["ChainRulesCore", "GPUArraysCore", "LinearAlgebra", "Printf"] @@ -1494,10 +1494,14 @@ uuid = "9b3f67b0-2d00-526e-9884-9e4938f8fb88" version = "0.2.5" [[deps.LinearOperators]] -deps = ["FastClosures", "LDLFactorizations", "LinearAlgebra", "Printf", "SparseArrays", "TimerOutputs"] -git-tree-sha1 = "a58ab1d18efa0bcf9f0868c6d387e4126dad3e72" +deps = ["FastClosures", "LDLFactorizations", "LinearAlgebra", "Printf", "Requires", "SparseArrays", "TimerOutputs"] +git-tree-sha1 = "58e2ca62646a62e18f86253b9c2a2d821c2d934b" uuid = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125" -version = "2.5.2" +version = "2.6.0" +weakdeps = ["ChainRulesCore"] + + [deps.LinearOperators.extensions] + LinearOperatorsChainRulesCoreExt = "ChainRulesCore" [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] @@ -1531,10 +1535,10 @@ uuid = "6f1432cf-f94c-5a45-995e-cdbf5db27b0b" version = "2.3.2" [[deps.MKL_jll]] -deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] -git-tree-sha1 = "eb006abbd7041c28e0d16260e50a24f8f9104913" +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2023.2.0+0" +version = "2024.0.0+0" [[deps.MPI]] deps = ["Distributed", "DocStringExtensions", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "PkgVersion", "PrecompileTools", "Requires", "Serialization", "Sockets"] @@ -1552,9 +1556,9 @@ version = "0.20.19" [[deps.MPICH_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "8a5b4d2220377d1ece13f49438d71ad20cf1ba83" +git-tree-sha1 = "2ee75365ca243c1a39d467e35ffd3d4d32eef11e" uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" -version = "4.1.2+0" +version = "4.1.2+1" [[deps.MPIPreferences]] deps = ["Libdl", "Preferences"] @@ -1644,9 +1648,9 @@ version = "1.1.0" uuid = "a63ad114-7e13-5084-954f-fe012c677804" [[deps.Mods]] -git-tree-sha1 = "f4fc34d4118afc0beefe429d77fe46160730fd23" +git-tree-sha1 = "9d292c7fb23e9a756094f8617a0f10e3b9582f47" uuid = "7475f97c-0381-53b1-977b-4c60186c8d62" -version = "2.1.1" +version = "2.2.0" [[deps.MosaicViews]] deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] @@ -1813,15 +1817,15 @@ version = "10.42.0+0" [[deps.PDMats]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "4e5be6bb265d33669f98eb55d2a57addd1eeb72c" +git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" -version = "0.11.30" +version = "0.11.31" [[deps.PNGFiles]] deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] -git-tree-sha1 = "eed372b0fa15624273a9cdb188b1b88476e6a233" +git-tree-sha1 = "67186a2bc9a90f9f85ff3cc8277868961fb57cbd" uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" -version = "0.4.2" +version = "0.4.3" [[deps.PProf]] deps = ["AbstractTrees", "EnumX", "FlameGraphs", "Libdl", "OrderedCollections", "Profile", "ProgressMeter", "ProtoBuf", "pprof_jll"] @@ -2220,9 +2224,9 @@ version = "0.1.0" [[deps.SciMLBase]] deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FillArrays", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "QuasiMonteCarlo", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] -git-tree-sha1 = "d432b4c4cc922fb7b21b555c138aa87f9fb7beb8" +git-tree-sha1 = "32ea825941f7b58a6f48268f4b76971ae8eb9eec" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.9.1" +version = "2.10.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -2379,9 +2383,9 @@ weakdeps = ["ChainRulesCore"] [[deps.StableHashTraits]] deps = ["Compat", "SHA", "Tables", "TupleTools"] -git-tree-sha1 = "d29023a76780bb8a3f2273b29153fd00828cb73f" +git-tree-sha1 = "5a26dfe46e2cb5f5eca78114c7d49548b9597e71" uuid = "c5dd0088-6c3f-4803-b00e-f31a60c170fa" -version = "1.1.1" +version = "1.1.3" [[deps.StackViews]] deps = ["OffsetArrays"] @@ -2397,9 +2401,9 @@ version = "0.8.8" [[deps.StaticArrayInterface]] deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"] -git-tree-sha1 = "03fec6800a986d191f64f5c0996b59ed526eda25" +git-tree-sha1 = "5d66818a39bb04bf328e92bc933ec5b4ee88e436" uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" -version = "1.4.1" +version = "1.5.0" weakdeps = ["OffsetArrays", "StaticArrays"] [deps.StaticArrayInterface.extensions] @@ -2650,6 +2654,12 @@ git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" version = "1.6.3" +[[deps.Unrolled]] +deps = ["MacroTools"] +git-tree-sha1 = "6cc9d682755680e0f0be87c56392b7651efc2c7b" +uuid = "9602ed7d-8fef-5bc8-8597-8f21381861e8" +version = "0.1.5" + [[deps.UnsafeAtomics]] git-tree-sha1 = "6331ac3440856ea1988316b46045303bef658278" uuid = "013be700-e6cd-48c3-b4a1-df204f14c38f" @@ -2714,9 +2724,9 @@ version = "1.18.1" [[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] -git-tree-sha1 = "da69178aacc095066bad1f69d2f59a60a1dd8ad1" +git-tree-sha1 = "801cbe47eae69adc50f36c3caec4758d2650741b" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.12.0+0" +version = "2.12.2+0" [[deps.XSLT_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] @@ -2957,10 +2967,10 @@ uuid = "36db933b-70db-51c0-b978-0f229ee0e533" version = "1.18.0+0" [[deps.libpng_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] -git-tree-sha1 = "94d180a6d2b5e55e447e2d27a29ed04fe79eb30c" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "93284c28274d9e75218a416c65ec49d0e0fcdf3d" uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" -version = "1.6.38+0" +version = "1.6.40+0" [[deps.libsixel_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "libpng_jll"] diff --git a/src/callbacks/callbacks.jl b/src/callbacks/callbacks.jl index d3374dce14..f2cc7c0b2b 100644 --- a/src/callbacks/callbacks.jl +++ b/src/callbacks/callbacks.jl @@ -450,11 +450,10 @@ function save_restart_func(integrator, output_dir) end function gc_func(integrator) - full = true # whether to do a full GC num_pre = Base.gc_num() alloc_since_last = (num_pre.allocd + num_pre.deferred_alloc) / 2^20 live_pre = Base.gc_live_bytes() / 2^20 - GC.gc(full) + GC.gc(false) live_post = Base.gc_live_bytes() / 2^20 num_post = Base.gc_num() gc_time = (num_post.total_time - num_pre.total_time) / 10^9 # count in ns diff --git a/src/prognostic_equations/dss.jl b/src/prognostic_equations/dss.jl index cfce318f0d..b7232ac2d6 100644 --- a/src/prognostic_equations/dss.jl +++ b/src/prognostic_equations/dss.jl @@ -14,11 +14,6 @@ import ClimaCore.Fields: ColumnField NVTX.@annotate function dss!(Y, p, t) if p.do_dss - Spaces.weighted_dss_start2!(Y.c, p.ghost_buffer.c) - Spaces.weighted_dss_start2!(Y.f, p.ghost_buffer.f) - Spaces.weighted_dss_internal2!(Y.c, p.ghost_buffer.c) - Spaces.weighted_dss_internal2!(Y.f, p.ghost_buffer.f) - Spaces.weighted_dss_ghost2!(Y.c, p.ghost_buffer.c) - Spaces.weighted_dss_ghost2!(Y.f, p.ghost_buffer.f) + Spaces.weighted_dss!(Y.c => p.ghost_buffer.c, Y.f => p.ghost_buffer.f) end end diff --git a/src/prognostic_equations/hyperdiffusion.jl b/src/prognostic_equations/hyperdiffusion.jl index 93c3ac3804..eb0aeebf99 100644 --- a/src/prognostic_equations/hyperdiffusion.jl +++ b/src/prognostic_equations/hyperdiffusion.jl @@ -102,35 +102,32 @@ NVTX.@annotate function hyperdiffusion_tendency!(Yₜ, Y, p, t) if do_dss NVTX.@range "dss_hyperdiffusion_tendency" color = colorant"green" begin - for dss_op! in ( - Spaces.weighted_dss_start!, - Spaces.weighted_dss_internal!, - Spaces.weighted_dss_ghost!, + # DSS on Grid scale quantities + # Need to split the DSS computation here, because our DSS + # operations do not accept Covariant123Vector types + Spaces.weighted_dss!( + ᶜ∇²u => buffer.ᶜ∇²u, + ᶜ∇²specific_energy => buffer.ᶜ∇²specific_energy, + (diffuse_tke ? (ᶜ∇²tke⁰ => buffer.ᶜ∇²tke⁰,) : ())..., ) - # DSS on Grid scale quantities + if turbconv_model isa PrognosticEDMFX # Need to split the DSS computation here, because our DSS # operations do not accept Covariant123Vector types - dss_op!(ᶜ∇²u, buffer.ᶜ∇²u) - dss_op!(ᶜ∇²specific_energy, buffer.ᶜ∇²specific_energy) - if diffuse_tke - dss_op!(ᶜ∇²tke⁰, buffer.ᶜ∇²tke⁰) + for j in 1:n + @. ᶜ∇²uₕʲs.:($$j) = C12(ᶜ∇²uʲs.:($$j)) + @. ᶜ∇²uᵥʲs.:($$j) = C3(ᶜ∇²uʲs.:($$j)) end - if turbconv_model isa PrognosticEDMFX - # Need to split the DSS computation here, because our DSS - # operations do not accept Covariant123Vector types - for j in 1:n - @. ᶜ∇²uₕʲs.:($$j) = C12(ᶜ∇²uʲs.:($$j)) - @. ᶜ∇²uᵥʲs.:($$j) = C3(ᶜ∇²uʲs.:($$j)) - end - dss_op!(ᶜ∇²uₕʲs, buffer.ᶜ∇²uₕʲs) - dss_op!(ᶜ∇²uᵥʲs, buffer.ᶜ∇²uᵥʲs) - for j in 1:n - @. ᶜ∇²uʲs.:($$j) = - C123(ᶜ∇²uₕʲs.:($$j)) + C123(ᶜ∇²uᵥʲs.:($$j)) - end - dss_op!(ᶜ∇²mseʲs, buffer.ᶜ∇²mseʲs) + Spaces.weighted_dss!( + ᶜ∇²uₕʲs => buffer.ᶜ∇²uₕʲs, + ᶜ∇²uᵥʲs => buffer.ᶜ∇²uᵥʲs, + ᶜ∇²mseʲs => buffer.ᶜ∇²mseʲs, + ) + for j in 1:n + @. ᶜ∇²uʲs.:($$j) = + C123(ᶜ∇²uₕʲs.:($$j)) + C123(ᶜ∇²uᵥʲs.:($$j)) end end + end end @@ -195,15 +192,13 @@ NVTX.@annotate function tracer_hyperdiffusion_tendency!(Yₜ, Y, p, t) if do_dss NVTX.@range "dss_hyperdiffusion_tendency" color = colorant"green" begin - for dss_op! in ( - Spaces.weighted_dss_start!, - Spaces.weighted_dss_internal!, - Spaces.weighted_dss_ghost!, - ) - dss_op!(ᶜ∇²specific_tracers, buffer.ᶜ∇²specific_tracers) - if turbconv_model isa PrognosticEDMFX - dss_op!(ᶜ∇²q_totʲs, buffer.ᶜ∇²q_totʲs) - end + if !isempty(propertynames(ᶜ∇²specific_tracers)) + Spaces.weighted_dss!( + ᶜ∇²specific_tracers => buffer.ᶜ∇²specific_tracers, + ) + end + if turbconv_model isa PrognosticEDMFX + Spaces.weighted_dss!(ᶜ∇²q_totʲs => buffer.ᶜ∇²q_totʲs) end end end From 9ff4062e758c2bd119494dacdb1c83a0589d5995 Mon Sep 17 00:00:00 2001 From: Simon Byrne Date: Wed, 13 Dec 2023 15:37:58 -0800 Subject: [PATCH 2/2] bump alloc limit --- perf/flame.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/flame.jl b/perf/flame.jl index c4692c5aba..d62e064b28 100644 --- a/perf/flame.jl +++ b/perf/flame.jl @@ -46,7 +46,7 @@ allocs_limit["flame_sphere_baroclinic_wave_rhoe_equilmoist_expvdiff"] = allocs_limit["flame_perf_target_threaded"] = 1_276_864 allocs_limit["flame_perf_target_callbacks"] = 37_277_112 allocs_limit["flame_perf_gw"] = 3_226_427_872 -allocs_limit["flame_perf_target_prognostic_edmfx_aquaplanet"] = 1_241_872 +allocs_limit["flame_perf_target_prognostic_edmfx_aquaplanet"] = 1_251_728 # Ideally, we would like to track all the allocations, but this becomes too # expensive there is too many of them. Here, we set the default sample rate to