Skip to content

Commit 701ad23

Browse files
authored
Merge branch 'main' into sb/constructors
2 parents 5876297 + fa66e35 commit 701ad23

File tree

119 files changed

+2651
-2060
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

119 files changed

+2651
-2060
lines changed

.buildkite/JuliaProject.toml

-15
This file was deleted.

.buildkite/pipeline.yml

+15-14
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,14 @@
11
agents:
2-
queue: central
2+
queue: new-central
33
slurm_mem: 8G
4-
modules: julia/1.10.0 cuda/12.2 ucx/1.14.1_cuda-12.2 openmpi/4.1.5_cuda-12.2 nsight-systems/2023.2.1
4+
modules: climacommon/2024_03_18
55

66
env:
77
JULIA_LOAD_PATH: "${JULIA_LOAD_PATH}:${BUILDKITE_BUILD_CHECKOUT_PATH}/.buildkite"
8-
# JULIA_DEPOT_PATH: "${BUILDKITE_BUILD_PATH}/${BUILDKITE_PIPELINE_SLUG}/depot/default"
98
JULIA_MAX_NUM_PRECOMPILE_FILES: 100
109
JULIA_CPU_TARGET: 'broadwell;skylake'
1110
JULIA_NVTX_CALLBACKS: gc
12-
JULIA_CUDA_MEMORY_POOL: none
13-
JULIA_MPI_HAS_CUDA: "true"
1411
OPENBLAS_NUM_THREADS: 1
15-
OMPI_MCA_opal_warn_on_missing_libcuda: 0
16-
MPITRAMPOLINE_LIB: /groups/esm/software/MPIwrapper/ompi4.1.5_cuda-12.2/lib64/libmpiwrapper.so
17-
MPITRAMPOLINE_MPIEXEC: /groups/esm/software/MPIwrapper/ompi4.1.5_cuda-12.2/bin/mpiwrapperexec
1812

1913
steps:
2014
- label: "initialize"
@@ -729,13 +723,12 @@ steps:
729723

730724
# TODO: improve performance label: [inference, allocs, flops, latency, benchmark, boundscheck]
731725
# TODO: use perf env for perf jobs, or merge test/perf envs
732-
# https://github.com/triscale-innov/GFlops.jl/issues/49
733-
# - group: "Perf: Geometry"
734-
# steps:
726+
- group: "Perf: Geometry"
727+
steps:
735728

736-
# - label: "Perf: Axis tensor conversion benchmarks"
737-
# key: "cpu_axis_tensor_conversion_perf_bm"
738-
# command: "julia --color=yes --project=test test/Geometry/axistensor_conversion_benchmarks.jl"
729+
- label: "Perf: Axis tensor conversion benchmarks"
730+
key: "cpu_axis_tensor_conversion_perf_bm"
731+
command: "julia --color=yes --project=test test/Geometry/axistensor_conversion_benchmarks.jl"
739732

740733
- group: "Perf: Fields"
741734
steps:
@@ -760,6 +753,14 @@ steps:
760753
key: perf_FD_ops_examples
761754
command: "julia --color=yes --project=test test/Operators/finitedifference/opt_examples.jl"
762755

756+
- label: "Perf: FD operators from the wild (gpu)"
757+
key: perf_FD_ops_examples_gpu
758+
command:
759+
- "julia --project -e 'using CUDA; CUDA.versioninfo()'"
760+
- "julia --color=yes --project=test test/Operators/finitedifference/opt_examples.jl"
761+
agents:
762+
slurm_gpus: 1
763+
763764
- label: "Perf: dss"
764765
key: perf_dss
765766
command: "julia --color=yes --project=test test/Operators/hybrid/dss_opt.jl"

.dev/Manifest.toml

+36-31
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# This file is machine-generated - editing it directly is not advised
22

3-
julia_version = "1.9.3"
3+
julia_version = "1.10.2"
44
manifest_format = "2.0"
55
project_hash = "30b405be1c677184b7703a9bfb3d2100029ccad0"
66

@@ -16,9 +16,9 @@ uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
1616

1717
[[deps.CSTParser]]
1818
deps = ["Tokenize"]
19-
git-tree-sha1 = "3ddd48d200eb8ddf9cb3e0189fc059fd49b97c1f"
19+
git-tree-sha1 = "b544d62417a99d091c569b95109bc9d8c223e9e3"
2020
uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f"
21-
version = "3.3.6"
21+
version = "3.4.2"
2222

2323
[[deps.CommonMark]]
2424
deps = ["Crayons", "JSON", "PrecompileTools", "URIs"]
@@ -27,10 +27,10 @@ uuid = "a80b9123-70ca-4bc0-993e-6e3bcb318db6"
2727
version = "0.8.12"
2828

2929
[[deps.Compat]]
30-
deps = ["UUIDs"]
31-
git-tree-sha1 = "8a62af3e248a8c4bad6b32cbbe663ae02275e32c"
30+
deps = ["TOML", "UUIDs"]
31+
git-tree-sha1 = "c955881e3c981181362ae4088b35995446298b80"
3232
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
33-
version = "4.10.0"
33+
version = "4.14.0"
3434

3535
[deps.Compat.extensions]
3636
CompatLinearAlgebraExt = "LinearAlgebra"
@@ -46,9 +46,9 @@ version = "4.1.1"
4646

4747
[[deps.DataStructures]]
4848
deps = ["Compat", "InteractiveUtils", "OrderedCollections"]
49-
git-tree-sha1 = "3dbd312d370723b6bb43ba9d02fc36abade4518d"
49+
git-tree-sha1 = "0f4b5d62a88d8f59003e43c25a8a90de9eb76317"
5050
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
51-
version = "0.18.15"
51+
version = "0.18.18"
5252

5353
[[deps.Dates]]
5454
deps = ["Printf"]
@@ -79,28 +79,33 @@ version = "0.21.4"
7979

8080
[[deps.JuliaFormatter]]
8181
deps = ["CSTParser", "CommonMark", "DataStructures", "Glob", "Pkg", "PrecompileTools", "Tokenize"]
82-
git-tree-sha1 = "3d5b5b539e4606dcca0e6a467b98a64c8da4850b"
82+
git-tree-sha1 = "e07d6fd7db543b11cd90ed764efec53f39851f09"
8383
uuid = "98e50ef6-434e-11e9-1051-2b60c6c9e899"
84-
version = "1.0.42"
84+
version = "1.0.54"
8585

8686
[[deps.LibCURL]]
8787
deps = ["LibCURL_jll", "MozillaCACerts_jll"]
8888
uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21"
89-
version = "0.6.3"
89+
version = "0.6.4"
9090

9191
[[deps.LibCURL_jll]]
9292
deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"]
9393
uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0"
94-
version = "7.84.0+0"
94+
version = "8.4.0+0"
9595

9696
[[deps.LibGit2]]
97-
deps = ["Base64", "NetworkOptions", "Printf", "SHA"]
97+
deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"]
9898
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
9999

100+
[[deps.LibGit2_jll]]
101+
deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"]
102+
uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5"
103+
version = "1.6.4+0"
104+
100105
[[deps.LibSSH2_jll]]
101106
deps = ["Artifacts", "Libdl", "MbedTLS_jll"]
102107
uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8"
103-
version = "1.10.2+0"
108+
version = "1.11.0+1"
104109

105110
[[deps.Libdl]]
106111
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
@@ -115,46 +120,46 @@ uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
115120
[[deps.MbedTLS_jll]]
116121
deps = ["Artifacts", "Libdl"]
117122
uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
118-
version = "2.28.2+0"
123+
version = "2.28.2+1"
119124

120125
[[deps.Mmap]]
121126
uuid = "a63ad114-7e13-5084-954f-fe012c677804"
122127

123128
[[deps.MozillaCACerts_jll]]
124129
uuid = "14a3606d-f60d-562e-9121-12d972cd8159"
125-
version = "2022.10.11"
130+
version = "2023.1.10"
126131

127132
[[deps.NetworkOptions]]
128133
uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"
129134
version = "1.2.0"
130135

131136
[[deps.OrderedCollections]]
132-
git-tree-sha1 = "2e73fe17cac3c62ad1aebe70d44c963c3cfdc3e3"
137+
git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5"
133138
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
134-
version = "1.6.2"
139+
version = "1.6.3"
135140

136141
[[deps.Parsers]]
137142
deps = ["Dates", "PrecompileTools", "UUIDs"]
138-
git-tree-sha1 = "a935806434c9d4c506ba941871b327b96d41f2bf"
143+
git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821"
139144
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
140-
version = "2.8.0"
145+
version = "2.8.1"
141146

142147
[[deps.Pkg]]
143148
deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"]
144149
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
145-
version = "1.9.2"
150+
version = "1.10.0"
146151

147152
[[deps.PrecompileTools]]
148153
deps = ["Preferences"]
149-
git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f"
154+
git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f"
150155
uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
151-
version = "1.2.0"
156+
version = "1.2.1"
152157

153158
[[deps.Preferences]]
154159
deps = ["TOML"]
155-
git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e"
160+
git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6"
156161
uuid = "21216c6a-2e73-6563-6e65-726566657250"
157-
version = "1.4.1"
162+
version = "1.4.3"
158163

159164
[[deps.Printf]]
160165
deps = ["Unicode"]
@@ -165,7 +170,7 @@ deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"]
165170
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
166171

167172
[[deps.Random]]
168-
deps = ["SHA", "Serialization"]
173+
deps = ["SHA"]
169174
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
170175

171176
[[deps.SHA]]
@@ -189,9 +194,9 @@ uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e"
189194
version = "1.10.0"
190195

191196
[[deps.Tokenize]]
192-
git-tree-sha1 = "0454d9a9bad2400c7ccad19ca832a2ef5a8bc3a1"
197+
git-tree-sha1 = "5b5a892ba7704c0977013bd0f9c30f5d962181e0"
193198
uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624"
194-
version = "0.5.26"
199+
version = "0.5.28"
195200

196201
[[deps.URIs]]
197202
git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b"
@@ -208,14 +213,14 @@ uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
208213
[[deps.Zlib_jll]]
209214
deps = ["Libdl"]
210215
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
211-
version = "1.2.13+0"
216+
version = "1.2.13+1"
212217

213218
[[deps.nghttp2_jll]]
214219
deps = ["Artifacts", "Libdl"]
215220
uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"
216-
version = "1.48.0+0"
221+
version = "1.52.0+1"
217222

218223
[[deps.p7zip_jll]]
219224
deps = ["Artifacts", "Libdl"]
220225
uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0"
221-
version = "17.4.0+0"
226+
version = "17.4.0+2"

NEWS.md

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
ClimaCore.jl Release Notes
2+
========================
3+
4+
v0.13.3
5+
-------
6+
7+
- ![][badge-🚀performance] We now always inline for all ClimaCore kernels. PR [#1647](https://github.com/CliMA/ClimaCore.jl/pull/1647). This can result in more brittle inference (due to compiler heuristics). Technically, this is not a breaking change, but some code changes may be needed in practice.
8+
9+
v0.13.2
10+
-------
11+
12+
- ![][badge-🐛bugfix] fixed array allocation for interpolation on CPU.
13+
PR [#1643](https://github.com/CliMA/ClimaCore.jl/pull/1643).
14+
15+
v0.13.1
16+
-------
17+
18+
- ![][badge-🐛bugfix] fixed edge case in interpolation that led to incorrect
19+
vertical interpolation.
20+
PR [#1640](https://github.com/CliMA/ClimaCore.jl/pull/1640).
21+
- ![][badge-🐛bugfix] fixed `interpolate!` for MPI runs.
22+
PR [#1642](https://github.com/CliMA/ClimaCore.jl/pull/1642).
23+
24+
25+
v0.13.0
26+
-------
27+
- ![][badge-💥breaking] support for many deprecated methods have been dropped PR [#1632](https://github.com/CliMA/ClimaCore.jl/pull/1632).
28+
- ![][badge-🤖precisionΔ]![][badge-🚀performance] Slight performance improvement by replacing `rdiv` with `rmul`. PR ([#1496](https://github.com/CliMA/ClimaCore.jl/pull/1496)) Machine-precision differences are expected.
29+
- ![][badge-💥breaking]![][badge-🚀performance] Rewritten `distributed_remapping`. New `distributed_remapping` is non-allocating and up to 1000x faster (on GPUs). New `distributed_remapping` no longer supports the `physical_z` argument (this option is still available in `Remapping.interpolate_column`). New `interpolate!` function is available for remapping in-place. The new preferred way to define a `Rampper` is `Remapper(space, target_hcoords, target_zcoords)` (instead of `Remapper(target_hcoords, target_zcoords, space)`).
30+
PR ([#1630](https://github.com/CliMA/ClimaCore.jl/pull/1630))
31+
32+
v0.12.1
33+
-------
34+
- Started changelog
35+
- Fixed matrix field iterative solver tests.
36+
- ![][badge-🚀performance] Specialize on diagonal fieldvector broadcasts to skip uninferred `check_broadcast_axes` PR [#1615](https://github.com/CliMA/ClimaCore.jl/pull/1615), Issue [#1465](https://github.com/CliMA/ClimaCore.jl/issues/1465).
37+
- ![][badge-🚀performance] Fixed inference errors when not debugging PR [#1617](https://github.com/CliMA/ClimaCore.jl/pull/1617), Issue [#2597](https://github.com/CliMA/ClimaAtmos.jl/issues/2597).
38+
39+
<!--
40+
41+
Contributors are welcome to begin the description of changelog items with badge(s) below. Here is a brief description of when to use badges for a particular pull request / set of changes:
42+
43+
- 🔥behavioralΔ - behavioral changes. For example: a new model is used, yielding more accurate results.
44+
- 🤖precisionΔ - machine-precision changes. For example, swapping the order of summed arguments can result in machine-precision changes.
45+
- 💥breaking - breaking changes. For example: removing deprecated functions/types, removing support for functionality, API changes.
46+
- 🚀performance - performance improvements. For example: improving type inference, reducing allocations, or code hoisting.
47+
- ✨feature - new feature added. For example: adding support for a cubed-sphere grid
48+
- 🐛bugfix - bugfix. For example: fixing incorrect logic, resulting in incorrect results, or fixing code that otherwise might give a `MethodError`.
49+
50+
-->
51+
52+
[badge-🔥behavioralΔ]: https://img.shields.io/badge/🔥behavioralΔ-orange.svg
53+
[badge-🤖precisionΔ]: https://img.shields.io/badge/🤖precisionΔ-black.svg
54+
[badge-💥breaking]: https://img.shields.io/badge/💥BREAKING-red.svg
55+
[badge-🚀performance]: https://img.shields.io/badge/🚀performance-green.svg
56+
[badge-✨feature/enhancement]: https://img.shields.io/badge/feature/enhancement-blue.svg
57+
[badge-🐛bugfix]: https://img.shields.io/badge/🐛bugfix-purple.svg

Project.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "ClimaCore"
22
uuid = "d414da3d-4745-48bb-8d80-42e94e092884"
33
authors = ["CliMA Contributors <clima-software@caltech.edu>"]
4-
version = "0.12.0"
4+
version = "0.13.3"
55

66
[deps]
77
Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"
@@ -39,8 +39,8 @@ KrylovExt = "Krylov"
3939
Adapt = "3, 4"
4040
BandedMatrices = "0.17, 1"
4141
BlockArrays = "0.16"
42-
CUDA = "4.2, 5"
43-
ClimaComms = "0.5.6"
42+
CUDA = "5"
43+
ClimaComms = "0.5.7"
4444
CubedSphere = "0.2"
4545
DataStructures = "0.18"
4646
DocStringExtensions = "0.8, 0.9"

benchmarks/3d/se_kernels.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ function initialize_mwe(device, ::Type{FT}) where {FT}
8181
z_domain = Domains.IntervalDomain(
8282
Geometry.ZPoint(zero(z_max)),
8383
Geometry.ZPoint(z_max);
84-
boundary_tags = (:bottom, :top),
84+
boundary_names = (:bottom, :top),
8585
)
8686
z_mesh = Meshes.IntervalMesh(z_domain, nelems = z_elem)
8787
z_topology = Topologies.IntervalTopology(context, z_mesh)

benchmarks/3d/vector_laplacian.jl

+4-6
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,19 @@ using ClimaCore:
1111
Quadratures
1212
using CUDA, BenchmarkTools
1313

14+
context = ClimaComms.context()
1415
hdomain = Domains.SphereDomain(6.37122e6)
1516
hmesh = Meshes.EquiangularCubedSphere(hdomain, 30)
16-
htopology = Topologies.Topology2D(hmesh)
17+
htopology = Topologies.Topology2D(context, hmesh)
1718
hspace = Spaces.SpectralElementSpace2D(htopology, Quadratures.GLL{4}())
1819

1920
vdomain = Domains.IntervalDomain(
2021
Geometry.ZPoint(0.0),
2122
Geometry.ZPoint(10e3);
22-
boundary_tags = (:bottom, :top),
23+
boundary_names = (:bottom, :top),
2324
)
2425
vmesh = Meshes.IntervalMesh(vdomain; nelems = 45)
25-
vtopology = Topologies.IntervalTopology(
26-
ClimaComms.SingletonCommsContext(ClimaComms.device()),
27-
vmesh,
28-
)
26+
vtopology = Topologies.IntervalTopology(context, vmesh)
2927
vspace = Spaces.CenterFiniteDifferenceSpace(vtopology)
3028

3129
cspace = Spaces.ExtrudedFiniteDifferenceSpace(hspace, vspace)

0 commit comments

Comments
 (0)