Skip to content

Skip inactive edges in the horizontal FCT provisional thickness - #628

Closed
xylar wants to merge 1 commit into
E3SM-Project:developfrom
xylar:omega/fix-bottom-cell-tracer-drift
Closed

xylar wants to merge 1 commit into
E3SM-Project:developfrom
xylar:omega/fix-bottom-cell-tracer-drift

Conversation

@xylar

@xylar xylar commented Oct 24, 2026 •

Copy link
Copy Markdown

Horizontal FCT summed the thickness flux through every edge of a cell, including edges with no water at that layer, where the flux terms hold fill values. At every layer of a coastal cell, and at the bottom layers of cells next to shallower ones, the provisional thickness came out near 1e70 m, and the limiter stopped keeping tracers within their local bounds. Since #447, this has let bottom cells in realistic global runs cool far below all their neighbors. The sum now skips those edges.

This changes answers wherever horizontal FCT is on and a cell has an inactive edge.

This skips the inactive edges inside the existing loop over layers rather than reusing ProvPseudoThickness, which holds the same sum. That loop keeps each layer's sum in one thread, so it stays race-free on GPUs when a cell's edges start at different layers, as they will in the planned z-level configuration with a minimum top layer; summing edge by edge, as ProvPseudoThickness does, would then need a team barrier between edges. Keeping the loop also leaves runs without inactive edges bit-for-bit.

Checklist

  • Linting

  • Building

    • CMake build does not produce any new warnings from changes in this PR
  • Testing

    aurora, intel, mpich

    • CTests Pass
    • Polaris omega_pr Pass

    aurora, intelgpu, mpich

    • CTests Pass
    • Polaris omega_pr Pass

    chrysalis, intel, openmpi

    • CTests Pass
    • Polaris omega_pr Pass

    frontier, craygnu, mpich

    • CTests Pass
    • Polaris omega_pr Pass

    frontier, craygnu-mphipcc, mpich

    • CTests Pass
    • Polaris omega_pr Pass

    pm-cpu, gnu, mpich

    • CTests Pass
    • Polaris omega_pr Pass

    pm-gpu, gnugpu, mpich

    • CTests Pass
    • Polaris omega_pr Pass
  • Provide relevant details in a comment to the PR titled Testing

Fixes #588


Posted by Claude Code on @xylar's behalf. The testing, analysis and wording above are AI-authored; please check them accordingly.

🤖 Generated with Claude Code

FCTProvisionaLayerThicknesses summed the thickness flux through every
edge of a cell at every layer of that cell, as MPAS-Ocean does.  Omega
computes FluxPseudoThickEdge and NormalTransportVelocity only on an
edge's active layers, and the other entries keep the fill value
(9.97e36) they get when their fields are attached.  Wherever a cell has
a layer that the cell across one of its edges lacks (every layer of a
coastal cell, and the bottom layers of cells next to shallower ones),
HProv picked up a fill-times-fill term of order 1e70 and HProvInv
became of order 1e-71.

The limiter's bounds test then reduced to the signs of the local
extrema.  A cell's own bound stopped limiting antidiffusive outflow
once its stencil held a negative value, and never limited antidiffusive
inflow of a positive tracer.  Bottom cells next to water below 0 C
were then cooled by the unlimited antidiffusive part of the centered
flux, far below all of their neighbors (E3SM-Project#588).

Skip edges outside [MinLayerEdgeBot, MaxLayerEdgeTop], as the
pseudo-thickness flux divergence and ProvPseudoThickness already do.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@xylar xylar added bug Something isn't working Omega labels Oct 24, 2026
@xylar

xylar commented Oct 24, 2026

Copy link
Copy Markdown
Author

Testing on chrysalis

Tested the merge of #628 (4e514188f0) into develop (23b13afac5) as 126b82aaa9, against Polaris' Omega submodule (23b13afac5).

Row CTests omega_pr New build warnings
chrysalis, intel, openmpi 61 of 61 passed 26 of 33 passed, 7 with baseline differences 0
chrysalis, intel, openmpi

Polaris omega_pr suite

  • Baseline workdir: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/baselines/chrysalis_intel_polaris-56a6d0e_omega-23b13af/omega_pr
  • Baseline build: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/baselines/chrysalis_intel_polaris-56a6d0e_omega-23b13af/build
  • PR build: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/pr628-4e51418/chrysalis_intel/build
  • PR workdir: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/pr628-4e51418/chrysalis_intel/omega_pr
  • Polaris: 56a6d0eb9ab81a9193ec6b35f13ce34cdd26592b (1.1.0-312-g56a6d0eb9)
  • Baseline Omega: 23b13afac5f4fbf9ba18d6cec416d347e4a615f7 (Omega-v0.1.0-alpha.1-6283-g23b13afac5)
  • PR Omega: 126b82aaa94e126610f657cbd3f4ffff765f9a5e (Omega-v0.1.0-alpha.1-6285-g126b82aaa9)
  • Machine: chrysalis
  • Partition: debug
  • Compiler: intel
  • Build type: Release
  • Log: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/pr628-4e51418/chrysalis_intel/omega_pr/polaris_omega_pr.o1314532
  • Result:
    • Diffs (7 of 33):
    - ocean/planar/baroclinic_channel/split_explicit/10km/decomp
      - temperature:    l1=1.367e-09  l2=4.855e-11  linf=4.036e-12
      - normalVelocity: l1=6.686e-10  l2=6.201e-12  linf=3.463e-13
      - salinity:       l1=6.693e-12  l2=2.445e-13  linf=1.421e-14
    - ocean/planar/baroclinic_channel/split_explicit/10km/restart
      - temperature:    l1=2.318e-10  l2=1.112e-11  linf=1.315e-12
      - normalVelocity: l1=3.045e-12  l2=3.099e-13  linf=6.261e-14
      - salinity:       l1=3.411e-13  l2=5.684e-14  linf=1.421e-14
    - ocean/planar/baroclinic_channel/split_explicit/10km/threads
      - temperature:    l1=1.367e-09  l2=4.855e-11  linf=4.036e-12
      - normalVelocity: l1=6.686e-10  l2=6.201e-12  linf=3.463e-13
      - salinity:       l1=6.693e-12  l2=2.445e-13  linf=1.421e-14
    - ocean/planar/merry_go_round/default
      - tracer1:        l1=4.235e+00  l2=1.500e-01  linf=1.475e-02
    - ocean/planar/overflow/linear/zstar/smoke_test_horiz_adv_order_3
      - normalVelocity: l1=1.783e-08  l2=4.951e-11  linf=1.170e-12
      - temperature:    l1=1.401e-10  l2=1.282e-12  linf=3.055e-13
      - salinity:       l1=1.261e-10  l2=1.051e-12  linf=4.974e-14
    - ocean/planar/overflow/linear/zstar/smoke_test_horiz_adv_order_4
      - temperature:    l1=1.776e-13  l2=3.855e-14  linf=1.599e-14
      - normalVelocity: l1=1.388e-17  l2=1.388e-17  linf=1.388e-17
    - ocean/planar/seamount/linear/zstar/short
      - temperature:    l1=7.333e-03  l2=1.236e-03  linf=4.265e-04
      - normalVelocity: l1=1.180e-03  l2=5.410e-05  linf=8.686e-06
      - layerThickness: l1=2.205e-04  l2=2.050e-05  linf=5.688e-06
Recent commits

Polaris:

56a6d0eb9 Merge pull request #891 from xylar/fix-dependency-pickle-growth
2fcfb1fe4 Merge pull request #890 from xylar/tear-down-polaris-parallel-on-sigterm
0144c23a8 Merge pull request #889 from xylar/fix-serial-memory-growth
3507767b2 Merge pull request #885 from xylar/document-dependency-branch-installs
56af77251 Merge pull request #867 from xylar/enable-omega-mesh-scaling

Baseline Omega:

23b13afac5 Merge pull request #506 from hyungyukang/omega/compute-mesh-scaling
330b297447 Merge pull request #606 from andrewdnolan/omega/optional-cout-redirect
f13879a93a Merge pull request #612 from alicebarthel/omega/add-salinity-clamp
ede8e22014 Merge pull request #625 from grnydawn/ykim/omega/standalone-cpu-arch-flags
eeef0a29dc Merge pull request #611 from brian-oneill/omega/analysis-restarts-and-samples

PR Omega:

126b82aaa9 Test merge of E3SM-Project/Omega#628 (4e514188f0) into develop (23b13afac5)
23b13afac5 Merge pull request #506 from hyungyukang/omega/compute-mesh-scaling
330b297447 Merge pull request #606 from andrewdnolan/omega/optional-cout-redirect
f13879a93a Merge pull request #612 from alicebarthel/omega/add-salinity-clamp
ede8e22014 Merge pull request #625 from grnydawn/ykim/omega/standalone-cpu-arch-flags

CTest unit tests:

  • Machine: chrysalis
  • Compiler: intel
  • Build type: Release
  • Build: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/pr628-4e51418/chrysalis_intel/build
  • Omega: 126b82aaa94e126610f657cbd3f4ffff765f9a5e (Omega-v0.1.0-alpha.1-6285-g126b82aaa9)
  • Result: All tests passed
  • Log: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/pr628-4e51418/chrysalis_intel/build/ctests.log

Build warnings

No new warnings (37 in the PR build, 37 in the baseline build).

  • Baseline build log: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/baselines/chrysalis_intel_polaris-56a6d0e_omega-23b13af/build/build_omega.log
  • PR build log: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/pr628-4e51418/chrysalis_intel/build/build_omega.log

Notes

In one-year QU240 runs, the bottom cell from #588 now stays within its neighbors' range, and the global minimum temperature stays at its initial −1.74 °C instead of falling to −13.6 °C:

Bottom layer of cell 2982 in one-year QU240 runs with develop and this PR

Daily global minimum temperature in one-year QU240 runs with develop and this PR

  • HorzTracerFluxLimiterMonotonicityCheckEnable finds 520,389 out-of-bounds values (all near 1e-70) in the first two steps of that run on develop, and none in 40 days with this PR.
  • The 7 tasks that differ from the baseline all use horizontal FCT on meshes with walls or bottom topography, the only places this change applies. The two QU240 tasks have no baseline comparison (their output differs too, as expected).
  • The overflow FCT smoke tests stay within 10–20 °C. One-day overflow runs with FCT stay within 9.993–20.0001 °C with RK4 (develop: 9.9993–20.0001 °C). With SplitExplicitRK2, the linear runs stay within 9.943–20.02 °C (develop: 9.996–20.03 °C), and nonlinear p-star fails after 8 hours on both. The lower minimum is in bottom cells on the slope, where the bug had blocked antidiffusive cooling; horizontal FCT passes its monotonicity check there.

One-year, one-day and monotonicity-check runs: /lcrc/group/e3sm/ac.xylar/polaris_1.2/chrysalis/test_20261023/omega588-bottom-cell


Posted by Claude Code on @xylar's behalf. The testing, analysis and wording above are AI-authored; please check them accordingly.

@xylar

xylar commented Oct 24, 2026

Copy link
Copy Markdown
Author

Testing on frontier

Tested the merge of #628 (4e514188f0) into develop (23b13afac5) as 126b82aaa9, against Polaris' Omega submodule (23b13afac5).

Row CTests omega_pr New build warnings
frontier, craygnu, mpich 61 of 61 passed 23 of 33 passed, 10 with baseline differences 0
frontier, craygnu-mphipcc, mpich 61 of 61 passed 26 of 33 passed, 7 with baseline differences 0
frontier, craygnu, mpich

Polaris omega_pr suite

  • Baseline workdir: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/baselines/frontier_craygnu_polaris-9b7c5e8_omega-23b13af/omega_pr
  • Baseline build: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/baselines/frontier_craygnu_polaris-9b7c5e8_omega-23b13af/build
  • PR build: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr628-4e51418/frontier_craygnu/build
  • PR workdir: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr628-4e51418/frontier_craygnu/omega_pr
  • Polaris: 9b7c5e89ee875b4e4d0462b6375b6fcc5bbb413a (1.1.0-313-g9b7c5e89e)
  • Baseline Omega: 23b13afac5f4fbf9ba18d6cec416d347e4a615f7 (Omega-v0.1.0-alpha.1-6283-g23b13afac5)
  • PR Omega: 126b82aaa94e126610f657cbd3f4ffff765f9a5e (Omega-v0.1.0-alpha.1-6285-g126b82aaa9)
  • Machine: frontier
  • Partition: batch
  • Compiler: craygnu
  • Build type: Release
  • Log: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr628-4e51418/frontier_craygnu/omega_pr/polaris_omega_pr.o5752552
  • Result:
    • Diffs (10 of 33):
    - ocean/planar/baroclinic_channel/split_explicit/10km/decomp
      - temperature:    l1=1.370e-09  l2=4.857e-11  linf=4.036e-12
      - normalVelocity: l1=7.783e-10  l2=6.628e-12  linf=2.816e-13
      - salinity:       l1=4.029e-12  l2=1.791e-13  linf=1.421e-14
    - ocean/planar/baroclinic_channel/split_explicit/10km/restart
      - temperature:    l1=2.317e-10  l2=1.112e-11  linf=1.315e-12
      - salinity:       l1=1.421e-14  l2=1.421e-14  linf=1.421e-14
      - normalVelocity: l1=1.011e-15  l2=2.031e-17  linf=1.870e-18
    - ocean/planar/baroclinic_channel/split_explicit/10km/threads
      - temperature:    l1=1.370e-09  l2=4.857e-11  linf=4.036e-12
      - normalVelocity: l1=7.783e-10  l2=6.628e-12  linf=2.816e-13
      - salinity:       l1=4.029e-12  l2=1.791e-13  linf=1.421e-14
    - ocean/planar/merry_go_round/default
      - tracer1:        l1=4.235e+00  l2=1.500e-01  linf=1.475e-02
    - ocean/planar/overflow/linear/zstar/smoke_test_horiz_adv_order_3
      - normalVelocity: l1=6.598e-05  l2=3.312e-05  linf=2.845e-05
      - temperature:    l1=3.538e-11  l2=5.385e-13  linf=1.243e-13
      - salinity:       l1=3.341e-11  l2=5.092e-13  linf=2.132e-14
    - ocean/planar/overflow/linear/zstar/smoke_test_horiz_adv_order_4
      - normalVelocity: l1=4.015e-09  l2=1.786e-11  linf=3.477e-13
      - temperature:    l1=2.776e-11  l2=4.372e-13  linf=7.816e-14
      - salinity:       l1=2.345e-11  l2=4.236e-13  linf=2.132e-14
    - ocean/planar/overflow/nonlinear/pstar/smoke_test_horiz_adv_order_4_del4
      - normalVelocity: l1=4.114e+00  l2=1.830e-01  linf=4.170e-02
      - temperature:    l1=1.160e+00  l2=9.195e-02  linf=1.896e-02
      - salinity:       l1=8.592e-10  l2=3.394e-12  linf=5.684e-14
    - ocean/planar/seamount/linear/zstar/short
      - temperature:    l1=7.333e-03  l2=1.236e-03  linf=4.265e-04
      - normalVelocity: l1=1.180e-03  l2=5.410e-05  linf=8.686e-06
      - layerThickness: l1=2.205e-04  l2=2.050e-05  linf=5.688e-06
    - ocean/spherical/icos/cosine_bell/decomp
      - tracer1:        l1=3.747e-14  l2=6.229e-15  linf=2.331e-15
    - ocean/spherical/icos/cosine_bell/restart
      - tracer1:        l1=4.838e-21  l2=3.526e-21  linf=3.388e-21
Recent commits

Polaris:

9b7c5e89e Add --parallel to the PR testing setup
56a6d0eb9 Merge pull request #891 from xylar/fix-dependency-pickle-growth
2fcfb1fe4 Merge pull request #890 from xylar/tear-down-polaris-parallel-on-sigterm
0144c23a8 Merge pull request #889 from xylar/fix-serial-memory-growth
3507767b2 Merge pull request #885 from xylar/document-dependency-branch-installs

Baseline Omega:

23b13afac5 Merge pull request #506 from hyungyukang/omega/compute-mesh-scaling
330b297447 Merge pull request #606 from andrewdnolan/omega/optional-cout-redirect
f13879a93a Merge pull request #612 from alicebarthel/omega/add-salinity-clamp
ede8e22014 Merge pull request #625 from grnydawn/ykim/omega/standalone-cpu-arch-flags
eeef0a29dc Merge pull request #611 from brian-oneill/omega/analysis-restarts-and-samples

PR Omega:

126b82aaa9 Test merge of E3SM-Project/Omega#628 (4e514188f0) into develop (23b13afac5)
23b13afac5 Merge pull request #506 from hyungyukang/omega/compute-mesh-scaling
330b297447 Merge pull request #606 from andrewdnolan/omega/optional-cout-redirect
f13879a93a Merge pull request #612 from alicebarthel/omega/add-salinity-clamp
ede8e22014 Merge pull request #625 from grnydawn/ykim/omega/standalone-cpu-arch-flags

CTest unit tests:

  • Machine: frontier
  • Compiler: craygnu
  • Build type: Release
  • Build: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr628-4e51418/frontier_craygnu/build
  • Omega: 126b82aaa94e126610f657cbd3f4ffff765f9a5e (Omega-v0.1.0-alpha.1-6285-g126b82aaa9)
  • Result: All tests passed
  • Log: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr628-4e51418/frontier_craygnu/build/ctests.log

Build warnings

No new warnings (3 in the PR build, 3 in the baseline build).

  • Baseline build log: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/baselines/frontier_craygnu_polaris-9b7c5e8_omega-23b13af/build/build_omega.log
  • PR build log: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr628-4e51418/frontier_craygnu/build/build_omega.log
frontier, craygnu-mphipcc, mpich

Polaris omega_pr suite

  • Baseline workdir: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/baselines/frontier_craygnu-mphipcc_polaris-9b7c5e8_omega-23b13af/omega_pr
  • Baseline build: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/baselines/frontier_craygnu-mphipcc_polaris-9b7c5e8_omega-23b13af/build
  • PR build: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr628-4e51418/frontier_craygnu-mphipcc/build
  • PR workdir: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr628-4e51418/frontier_craygnu-mphipcc/omega_pr
  • Polaris: 9b7c5e89ee875b4e4d0462b6375b6fcc5bbb413a (1.1.0-313-g9b7c5e89e)
  • Baseline Omega: 23b13afac5f4fbf9ba18d6cec416d347e4a615f7 (Omega-v0.1.0-alpha.1-6283-g23b13afac5)
  • PR Omega: 126b82aaa94e126610f657cbd3f4ffff765f9a5e (Omega-v0.1.0-alpha.1-6285-g126b82aaa9)
  • Machine: frontier
  • Partition: batch
  • Compiler: craygnu-mphipcc
  • Build type: Release
  • Log: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr628-4e51418/frontier_craygnu-mphipcc/omega_pr/polaris_omega_pr.o5752597
  • Result:
    • Diffs (7 of 33):
    - ocean/planar/baroclinic_channel/split_explicit/10km/decomp
      - temperature:    l1=1.365e-09  l2=4.856e-11  linf=4.041e-12
      - normalVelocity: l1=7.471e-10  l2=5.463e-12  linf=2.634e-13
      - salinity:       l1=1.002e-11  l2=2.797e-13  linf=1.421e-14
    - ocean/planar/baroclinic_channel/split_explicit/10km/restart
      - temperature:    l1=2.318e-10  l2=1.112e-11  linf=1.316e-12
      - normalVelocity: l1=5.214e-13  l2=9.153e-14  linf=3.103e-14
      - salinity:       l1=1.421e-14  l2=1.421e-14  linf=1.421e-14
    - ocean/planar/baroclinic_channel/split_explicit/10km/threads
      - temperature:    l1=1.365e-09  l2=4.856e-11  linf=4.041e-12
      - normalVelocity: l1=7.471e-10  l2=5.463e-12  linf=2.634e-13
      - salinity:       l1=1.002e-11  l2=2.797e-13  linf=1.421e-14
    - ocean/planar/merry_go_round/default
      - tracer1:        l1=4.235e+00  l2=1.500e-01  linf=1.475e-02
    - ocean/planar/overflow/linear/zstar/smoke_test_horiz_adv_order_3
      - temperature:    l1=1.688e-13  l2=3.530e-14  linf=1.599e-14
    - ocean/planar/overflow/linear/zstar/smoke_test_horiz_adv_order_4
      - temperature:    l1=2.043e-13  l2=4.016e-14  linf=1.599e-14
      - normalVelocity: l1=1.665e-16  l2=1.241e-16  linf=1.110e-16
    - ocean/planar/seamount/linear/zstar/short
      - temperature:    l1=7.333e-03  l2=1.236e-03  linf=4.265e-04
      - normalVelocity: l1=1.180e-03  l2=5.410e-05  linf=8.686e-06
      - layerThickness: l1=2.205e-04  l2=2.050e-05  linf=5.688e-06
Recent commits

Polaris:

9b7c5e89e Add --parallel to the PR testing setup
56a6d0eb9 Merge pull request #891 from xylar/fix-dependency-pickle-growth
2fcfb1fe4 Merge pull request #890 from xylar/tear-down-polaris-parallel-on-sigterm
0144c23a8 Merge pull request #889 from xylar/fix-serial-memory-growth
3507767b2 Merge pull request #885 from xylar/document-dependency-branch-installs

Baseline Omega:

23b13afac5 Merge pull request #506 from hyungyukang/omega/compute-mesh-scaling
330b297447 Merge pull request #606 from andrewdnolan/omega/optional-cout-redirect
f13879a93a Merge pull request #612 from alicebarthel/omega/add-salinity-clamp
ede8e22014 Merge pull request #625 from grnydawn/ykim/omega/standalone-cpu-arch-flags
eeef0a29dc Merge pull request #611 from brian-oneill/omega/analysis-restarts-and-samples

PR Omega:

126b82aaa9 Test merge of E3SM-Project/Omega#628 (4e514188f0) into develop (23b13afac5)
23b13afac5 Merge pull request #506 from hyungyukang/omega/compute-mesh-scaling
330b297447 Merge pull request #606 from andrewdnolan/omega/optional-cout-redirect
f13879a93a Merge pull request #612 from alicebarthel/omega/add-salinity-clamp
ede8e22014 Merge pull request #625 from grnydawn/ykim/omega/standalone-cpu-arch-flags

CTest unit tests:

  • Machine: frontier
  • Compiler: craygnu-mphipcc
  • Build type: Release
  • Build: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr628-4e51418/frontier_craygnu-mphipcc/build
  • Omega: 126b82aaa94e126610f657cbd3f4ffff765f9a5e (Omega-v0.1.0-alpha.1-6285-g126b82aaa9)
  • Result: All tests passed
  • Log: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr628-4e51418/frontier_craygnu-mphipcc/build/ctests.log

Build warnings

No new warnings (6 in the PR build, 6 in the baseline build).

  • Baseline build log: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/baselines/frontier_craygnu-mphipcc_polaris-9b7c5e8_omega-23b13af/build/build_omega.log
  • PR build log: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr628-4e51418/frontier_craygnu-mphipcc/build/build_omega.log

Notes

This replaces my earlier Frontier comment, which had not worked out the 3 extra differences on the CPU row.

The GPU row differs from the baseline in the same 7 tasks as Chrysalis. The CPU row differs in those plus 3 more: cosine_bell/decomp, cosine_bell/restart and overflow/nonlinear/pstar/smoke_test_horiz_adv_order_4_del4. These 3 come from how gcc compiled the changed function, not from the edge skip itself:

  • The inputs are identical in value, and rerunning each executable twice on copies of these steps reproduced its own output bit for bit, so this is not run-to-run variation.
  • In the baseline build, gcc inlined FCTProvisionaLayerThicknesses. With the added continue, it emits the function out of line instead, and computes HProv(ICell, K) += SignedFactor * NormalThicknessFlux as one fused multiply-add (vfmadd231sd) where the baseline had a separately rounded multiply and add (vmulsd + vaddsd). This build (-O2 -std=gnu++20, Trento target) fuses multiply-adds by default.
  • The cosine_bell mesh has one layer and no boundary edges, so the skip never happens there. The PR leaves its arithmetic unchanged in exact arithmetic, and its output differs only at round-off (tracer1 linf about 2e-15).
  • The nonlinear overflow differences start at round-off (temperature about 4e-15 at the first output, 1.5e-12 at the second) and jump to about 3e-3 by the third, ending at about 4e-2 in normalVelocity. This task does have inactive edges, but the PR leaves it exactly unchanged on Chrysalis and the GPU row, so I attribute the difference to the same code-generation change. I did not rebuild with -ffp-contract=off to confirm it directly.

This round ran both suites with polaris parallel, from E3SM-Project/polaris#893 (Polaris main plus a --parallel option for setup).


Posted by Claude Code on @xylar's behalf. The testing, analysis and wording above are AI-authored; please check them accordingly.

@xylar

xylar commented Oct 24, 2026

Copy link
Copy Markdown
Author

Testing on pm-cpu and pm-gpu

Tested the merge of #628 (4e514188f0) into develop (23b13afac5) as 126b82aaa9, against Polaris' Omega submodule (23b13afac5).

Row CTests omega_pr New build warnings
pm-cpu, gnu, mpich 61 of 61 passed 26 of 33 passed, 7 with baseline differences 0
pm-gpu, gnugpu, mpich 61 of 61 passed 26 of 33 passed, 7 with baseline differences 0
pm-cpu, gnu, mpich

Polaris omega_pr suite

  • Baseline workdir: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/baselines/pm-cpu_gnu_polaris-9b7c5e8_omega-23b13af/omega_pr
  • Baseline build: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/baselines/pm-cpu_gnu_polaris-9b7c5e8_omega-23b13af/build
  • PR build: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr628-4e51418/pm-cpu_gnu/build
  • PR workdir: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr628-4e51418/pm-cpu_gnu/omega_pr
  • Polaris: 9b7c5e89ee875b4e4d0462b6375b6fcc5bbb413a (1.1.0-313-g9b7c5e89e)
  • Baseline Omega: 23b13afac5f4fbf9ba18d6cec416d347e4a615f7 (Omega-v0.1.0-alpha.1-6283-g23b13afac5)
  • PR Omega: 126b82aaa94e126610f657cbd3f4ffff765f9a5e (Omega-v0.1.0-alpha.1-6285-g126b82aaa9)
  • Machine: pm-cpu
  • Compiler: gnu
  • Build type: Release
  • Log: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr628-4e51418/pm-cpu_gnu/omega_pr/polaris_omega_pr.o60200792
  • Result:
    • Diffs (7 of 33):
    - ocean/planar/baroclinic_channel/split_explicit/10km/decomp
      - temperature:    l1=1.367e-09  l2=4.855e-11  linf=4.036e-12
      - normalVelocity: l1=6.686e-10  l2=6.201e-12  linf=3.463e-13
      - salinity:       l1=6.693e-12  l2=2.445e-13  linf=1.421e-14
    - ocean/planar/baroclinic_channel/split_explicit/10km/restart
      - temperature:    l1=2.318e-10  l2=1.112e-11  linf=1.315e-12
      - normalVelocity: l1=3.045e-12  l2=3.099e-13  linf=6.261e-14
      - salinity:       l1=3.411e-13  l2=5.684e-14  linf=1.421e-14
    - ocean/planar/baroclinic_channel/split_explicit/10km/threads
      - temperature:    l1=1.367e-09  l2=4.855e-11  linf=4.036e-12
      - normalVelocity: l1=6.686e-10  l2=6.201e-12  linf=3.463e-13
      - salinity:       l1=6.693e-12  l2=2.445e-13  linf=1.421e-14
    - ocean/planar/merry_go_round/default
      - tracer1:        l1=4.235e+00  l2=1.500e-01  linf=1.475e-02
    - ocean/planar/overflow/linear/zstar/smoke_test_horiz_adv_order_3
      - normalVelocity: l1=1.783e-08  l2=4.951e-11  linf=1.170e-12
      - temperature:    l1=1.401e-10  l2=1.282e-12  linf=3.055e-13
      - salinity:       l1=1.261e-10  l2=1.051e-12  linf=4.974e-14
    - ocean/planar/overflow/linear/zstar/smoke_test_horiz_adv_order_4
      - temperature:    l1=1.776e-13  l2=3.855e-14  linf=1.599e-14
      - normalVelocity: l1=1.388e-17  l2=1.388e-17  linf=1.388e-17
    - ocean/planar/seamount/linear/zstar/short
      - temperature:    l1=7.333e-03  l2=1.236e-03  linf=4.265e-04
      - normalVelocity: l1=1.180e-03  l2=5.410e-05  linf=8.686e-06
      - layerThickness: l1=2.205e-04  l2=2.050e-05  linf=5.688e-06
Recent commits

Polaris:

9b7c5e89e Add --parallel to the PR testing setup
56a6d0eb9 Merge pull request #891 from xylar/fix-dependency-pickle-growth
2fcfb1fe4 Merge pull request #890 from xylar/tear-down-polaris-parallel-on-sigterm
0144c23a8 Merge pull request #889 from xylar/fix-serial-memory-growth
3507767b2 Merge pull request #885 from xylar/document-dependency-branch-installs

Baseline Omega:

23b13afac5 Merge pull request #506 from hyungyukang/omega/compute-mesh-scaling
330b297447 Merge pull request #606 from andrewdnolan/omega/optional-cout-redirect
f13879a93a Merge pull request #612 from alicebarthel/omega/add-salinity-clamp
ede8e22014 Merge pull request #625 from grnydawn/ykim/omega/standalone-cpu-arch-flags
eeef0a29dc Merge pull request #611 from brian-oneill/omega/analysis-restarts-and-samples

PR Omega:

126b82aaa9 Test merge of E3SM-Project/Omega#628 (4e514188f0) into develop (23b13afac5)
23b13afac5 Merge pull request #506 from hyungyukang/omega/compute-mesh-scaling
330b297447 Merge pull request #606 from andrewdnolan/omega/optional-cout-redirect
f13879a93a Merge pull request #612 from alicebarthel/omega/add-salinity-clamp
ede8e22014 Merge pull request #625 from grnydawn/ykim/omega/standalone-cpu-arch-flags

CTest unit tests:

  • Machine: pm-cpu
  • Compiler: gnu
  • Build type: Release
  • Build: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr628-4e51418/pm-cpu_gnu/build
  • Omega: 126b82aaa94e126610f657cbd3f4ffff765f9a5e (Omega-v0.1.0-alpha.1-6285-g126b82aaa9)
  • Result: All tests passed
  • Log: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr628-4e51418/pm-cpu_gnu/build/ctests.log

Build warnings

No new warnings (4 in the PR build, 4 in the baseline build).

  • Baseline build log: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/baselines/pm-cpu_gnu_polaris-9b7c5e8_omega-23b13af/build/build_omega.log
  • PR build log: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr628-4e51418/pm-cpu_gnu/build/build_omega.log
pm-gpu, gnugpu, mpich

Polaris omega_pr suite

  • Baseline workdir: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/baselines/pm-gpu_gnugpu_polaris-9b7c5e8_omega-23b13af/omega_pr
  • Baseline build: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/baselines/pm-gpu_gnugpu_polaris-9b7c5e8_omega-23b13af/build
  • PR build: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr628-4e51418/pm-gpu_gnugpu/build
  • PR workdir: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr628-4e51418/pm-gpu_gnugpu/omega_pr
  • Polaris: 9b7c5e89ee875b4e4d0462b6375b6fcc5bbb413a (1.1.0-313-g9b7c5e89e)
  • Baseline Omega: 23b13afac5f4fbf9ba18d6cec416d347e4a615f7 (Omega-v0.1.0-alpha.1-6283-g23b13afac5)
  • PR Omega: 126b82aaa94e126610f657cbd3f4ffff765f9a5e (Omega-v0.1.0-alpha.1-6285-g126b82aaa9)
  • Machine: pm-gpu
  • Compiler: gnugpu
  • Build type: Release
  • Log: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr628-4e51418/pm-gpu_gnugpu/omega_pr/polaris_omega_pr.o60201643
  • Result:
    • Diffs (7 of 33):
    - ocean/planar/baroclinic_channel/split_explicit/10km/decomp
      - temperature:    l1=1.370e-09  l2=4.855e-11  linf=4.034e-12
      - normalVelocity: l1=9.325e-10  l2=6.948e-12  linf=4.131e-13
      - salinity:       l1=1.065e-11  l2=2.882e-13  linf=2.132e-14
    - ocean/planar/baroclinic_channel/split_explicit/10km/restart
      - temperature:    l1=2.317e-10  l2=1.112e-11  linf=1.315e-12
      - normalVelocity: l1=9.819e-13  l2=1.556e-13  linf=6.206e-14
      - salinity:       l1=4.263e-14  l2=2.010e-14  linf=1.421e-14
    - ocean/planar/baroclinic_channel/split_explicit/10km/threads
      - temperature:    l1=1.370e-09  l2=4.855e-11  linf=4.034e-12
      - normalVelocity: l1=9.325e-10  l2=6.948e-12  linf=4.131e-13
      - salinity:       l1=1.065e-11  l2=2.882e-13  linf=2.132e-14
    - ocean/planar/merry_go_round/default
      - tracer1:        l1=4.235e+00  l2=1.500e-01  linf=1.475e-02
    - ocean/planar/overflow/linear/zstar/smoke_test_horiz_adv_order_3
      - normalVelocity: l1=1.979e-04  l2=5.737e-05  linf=2.845e-05
      - temperature:    l1=1.199e-10  l2=9.344e-13  linf=1.172e-13
      - salinity:       l1=1.327e-10  l2=1.062e-12  linf=2.842e-14
    - ocean/planar/overflow/linear/zstar/smoke_test_horiz_adv_order_4
      - temperature:    l1=1.332e-13  l2=2.593e-14  linf=8.882e-15
    - ocean/planar/seamount/linear/zstar/short
      - temperature:    l1=7.333e-03  l2=1.236e-03  linf=4.265e-04
      - normalVelocity: l1=1.180e-03  l2=5.410e-05  linf=8.686e-06
      - layerThickness: l1=2.205e-04  l2=2.050e-05  linf=5.688e-06
Recent commits

Polaris:

9b7c5e89e Add --parallel to the PR testing setup
56a6d0eb9 Merge pull request #891 from xylar/fix-dependency-pickle-growth
2fcfb1fe4 Merge pull request #890 from xylar/tear-down-polaris-parallel-on-sigterm
0144c23a8 Merge pull request #889 from xylar/fix-serial-memory-growth
3507767b2 Merge pull request #885 from xylar/document-dependency-branch-installs

Baseline Omega:

23b13afac5 Merge pull request #506 from hyungyukang/omega/compute-mesh-scaling
330b297447 Merge pull request #606 from andrewdnolan/omega/optional-cout-redirect
f13879a93a Merge pull request #612 from alicebarthel/omega/add-salinity-clamp
ede8e22014 Merge pull request #625 from grnydawn/ykim/omega/standalone-cpu-arch-flags
eeef0a29dc Merge pull request #611 from brian-oneill/omega/analysis-restarts-and-samples

PR Omega:

126b82aaa9 Test merge of E3SM-Project/Omega#628 (4e514188f0) into develop (23b13afac5)
23b13afac5 Merge pull request #506 from hyungyukang/omega/compute-mesh-scaling
330b297447 Merge pull request #606 from andrewdnolan/omega/optional-cout-redirect
f13879a93a Merge pull request #612 from alicebarthel/omega/add-salinity-clamp
ede8e22014 Merge pull request #625 from grnydawn/ykim/omega/standalone-cpu-arch-flags

CTest unit tests:

  • Machine: pm-gpu
  • Compiler: gnugpu
  • Build type: Release
  • Build: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr628-4e51418/pm-gpu_gnugpu/build
  • Omega: 126b82aaa94e126610f657cbd3f4ffff765f9a5e (Omega-v0.1.0-alpha.1-6285-g126b82aaa9)
  • Result: All tests passed
  • Log: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr628-4e51418/pm-gpu_gnugpu/build/ctests.log

Build warnings

No new warnings (852 in the PR build, 852 in the baseline build).

  • Baseline build log: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/baselines/pm-gpu_gnugpu_polaris-9b7c5e8_omega-23b13af/build/build_omega.log
  • PR build log: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr628-4e51418/pm-gpu_gnugpu/build/build_omega.log

Notes

The 7 tasks with baseline differences, the same on pm-cpu and pm-gpu, are the ones that differ on Chrysalis and on Frontier craygnu-mphipcc. Each has cells with inactive edges, from walls or bathymetry, which fits the PR's note that answers change wherever horizontal FCT is on and a cell has an inactive edge.


Posted by Claude Code on @xylar's behalf. The testing, analysis and wording above are AI-authored; please check them accordingly.

@xylar

xylar commented Oct 24, 2026 •

Copy link
Copy Markdown
Author

Testing on aurora

Tested the merge of #628 (4e514188f0) into develop (23b13afac5) as 126b82aaa9, against Polaris' Omega submodule (23b13afac5).

Row CTests omega_pr New build warnings
aurora, intel, mpich 61 of 61 passed 26 of 33 passed, 7 with baseline differences 0
aurora, intelgpu, mpich 61 of 61 passed 26 of 33 passed, 7 with baseline differences 0
aurora, intel, mpich

Polaris omega_pr suite

  • Baseline workdir: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/baselines/aurora_intel_polaris-d81c10a_omega-23b13af/omega_pr
  • Baseline build: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/baselines/aurora_intel_polaris-d81c10a_omega-23b13af/build
  • PR build: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr628-4e51418/aurora_intel/build
  • PR workdir: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr628-4e51418/aurora_intel/omega_pr
  • Polaris: d81c10a60495b4ef87715ea68e6bbec52ed044ba (1.1.0-315-gd81c10a60)
  • Baseline Omega: 23b13afac5f4fbf9ba18d6cec416d347e4a615f7 (Omega-v0.1.0-alpha.1-6283-g23b13afac5)
  • PR Omega: 126b82aaa94e126610f657cbd3f4ffff765f9a5e (Omega-v0.1.0-alpha.1-6285-g126b82aaa9)
  • Machine: aurora
  • Compiler: intel
  • Build type: Release
  • Log: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr628-4e51418/aurora_intel/omega_pr/polaris_omega_pr.o8960936
  • Result:
    • Diffs (7 of 33):
    - ocean/planar/baroclinic_channel/split_explicit/10km/decomp
      - temperature:    l1=1.367e-09  l2=4.855e-11  linf=4.036e-12
      - normalVelocity: l1=6.686e-10  l2=6.201e-12  linf=3.463e-13
      - salinity:       l1=6.693e-12  l2=2.445e-13  linf=1.421e-14
    - ocean/planar/baroclinic_channel/split_explicit/10km/restart
      - temperature:    l1=2.318e-10  l2=1.112e-11  linf=1.315e-12
      - normalVelocity: l1=3.045e-12  l2=3.099e-13  linf=6.261e-14
      - salinity:       l1=3.411e-13  l2=5.684e-14  linf=1.421e-14
    - ocean/planar/baroclinic_channel/split_explicit/10km/threads
      - temperature:    l1=1.367e-09  l2=4.855e-11  linf=4.036e-12
      - normalVelocity: l1=6.686e-10  l2=6.201e-12  linf=3.463e-13
      - salinity:       l1=6.693e-12  l2=2.445e-13  linf=1.421e-14
    - ocean/planar/merry_go_round/default
      - tracer1:        l1=4.235e+00  l2=1.500e-01  linf=1.475e-02
    - ocean/planar/overflow/linear/zstar/smoke_test_horiz_adv_order_3
      - normalVelocity: l1=1.783e-08  l2=4.951e-11  linf=1.170e-12
      - temperature:    l1=1.401e-10  l2=1.282e-12  linf=3.055e-13
      - salinity:       l1=1.261e-10  l2=1.051e-12  linf=4.974e-14
    - ocean/planar/overflow/linear/zstar/smoke_test_horiz_adv_order_4
      - temperature:    l1=1.776e-13  l2=3.855e-14  linf=1.599e-14
      - normalVelocity: l1=1.388e-17  l2=1.388e-17  linf=1.388e-17
    - ocean/planar/seamount/linear/zstar/short
      - temperature:    l1=7.333e-03  l2=1.236e-03  linf=4.265e-04
      - normalVelocity: l1=1.180e-03  l2=5.410e-05  linf=8.686e-06
      - layerThickness: l1=2.205e-04  l2=2.050e-05  linf=5.688e-06
Recent commits

Polaris:

d81c10a60 Run Omega on Aurora with oneAPI 2026.1.0 again
680e3a2c7 Merge pull request #893 from xylar/add-pr-test-parallel
56a6d0eb9 Merge pull request #891 from xylar/fix-dependency-pickle-growth
2fcfb1fe4 Merge pull request #890 from xylar/tear-down-polaris-parallel-on-sigterm
0144c23a8 Merge pull request #889 from xylar/fix-serial-memory-growth

Baseline Omega:

23b13afac5 Merge pull request #506 from hyungyukang/omega/compute-mesh-scaling
330b297447 Merge pull request #606 from andrewdnolan/omega/optional-cout-redirect
f13879a93a Merge pull request #612 from alicebarthel/omega/add-salinity-clamp
ede8e22014 Merge pull request #625 from grnydawn/ykim/omega/standalone-cpu-arch-flags
eeef0a29dc Merge pull request #611 from brian-oneill/omega/analysis-restarts-and-samples

PR Omega:

126b82aaa9 Test merge of E3SM-Project/Omega#628 (4e514188f0) into develop (23b13afac5)
23b13afac5 Merge pull request #506 from hyungyukang/omega/compute-mesh-scaling
330b297447 Merge pull request #606 from andrewdnolan/omega/optional-cout-redirect
f13879a93a Merge pull request #612 from alicebarthel/omega/add-salinity-clamp
ede8e22014 Merge pull request #625 from grnydawn/ykim/omega/standalone-cpu-arch-flags

CTest unit tests:

  • Machine: aurora
  • Compiler: intel
  • Build type: Release
  • Build: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr628-4e51418/aurora_intel/build
  • Omega: 126b82aaa94e126610f657cbd3f4ffff765f9a5e (Omega-v0.1.0-alpha.1-6285-g126b82aaa9)
  • Result: All tests passed
  • Log: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr628-4e51418/aurora_intel/build/ctests.log

Build warnings

No new warnings (14 in the PR build, 14 in the baseline build).

  • Baseline build log: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/baselines/aurora_intel_polaris-d81c10a_omega-23b13af/build/build_omega.log
  • PR build log: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr628-4e51418/aurora_intel/build/build_omega.log
aurora, intelgpu, mpich

Polaris omega_pr suite

  • Baseline workdir: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/baselines/aurora_intelgpu_polaris-d81c10a_omega-23b13af/omega_pr
  • Baseline build: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/baselines/aurora_intelgpu_polaris-d81c10a_omega-23b13af/build
  • PR build: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr628-4e51418/aurora_intelgpu/build
  • PR workdir: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr628-4e51418/aurora_intelgpu/omega_pr
  • Polaris: d81c10a60495b4ef87715ea68e6bbec52ed044ba (1.1.0-315-gd81c10a60)
  • Baseline Omega: 23b13afac5f4fbf9ba18d6cec416d347e4a615f7 (Omega-v0.1.0-alpha.1-6283-g23b13afac5)
  • PR Omega: 126b82aaa94e126610f657cbd3f4ffff765f9a5e (Omega-v0.1.0-alpha.1-6285-g126b82aaa9)
  • Machine: aurora
  • Compiler: intelgpu
  • Build type: Release
  • Log: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr628-4e51418/aurora_intelgpu/omega_pr/polaris_omega_pr.o8960974
  • Result:
    • Diffs (7 of 33):
    - ocean/planar/baroclinic_channel/split_explicit/10km/decomp
      - temperature:    l1=1.365e-09  l2=4.856e-11  linf=4.038e-12
      - normalVelocity: l1=7.578e-10  l2=5.495e-12  linf=2.627e-13
      - salinity:       l1=9.784e-12  l2=2.760e-13  linf=2.132e-14
    - ocean/planar/baroclinic_channel/split_explicit/10km/restart
      - temperature:    l1=2.317e-10  l2=1.112e-11  linf=1.315e-12
      - normalVelocity: l1=5.181e-13  l2=9.152e-14  linf=3.103e-14
      - salinity:       l1=3.553e-14  l2=2.132e-14  linf=1.421e-14
    - ocean/planar/baroclinic_channel/split_explicit/10km/threads
      - temperature:    l1=1.365e-09  l2=4.856e-11  linf=4.038e-12
      - normalVelocity: l1=7.578e-10  l2=5.495e-12  linf=2.627e-13
      - salinity:       l1=9.784e-12  l2=2.760e-13  linf=2.132e-14
    - ocean/planar/merry_go_round/default
      - tracer1:        l1=4.235e+00  l2=1.500e-01  linf=1.475e-02
    - ocean/planar/overflow/linear/zstar/smoke_test_horiz_adv_order_3
      - temperature:    l1=1.545e-13  l2=3.061e-14  linf=1.243e-14
    - ocean/planar/overflow/linear/zstar/smoke_test_horiz_adv_order_4
      - temperature:    l1=2.007e-13  l2=3.485e-14  linf=1.066e-14
    - ocean/planar/seamount/linear/zstar/short
      - temperature:    l1=7.333e-03  l2=1.236e-03  linf=4.265e-04
      - normalVelocity: l1=1.180e-03  l2=5.410e-05  linf=8.686e-06
      - layerThickness: l1=2.205e-04  l2=2.050e-05  linf=5.688e-06
Recent commits

Polaris:

d81c10a60 Run Omega on Aurora with oneAPI 2026.1.0 again
680e3a2c7 Merge pull request #893 from xylar/add-pr-test-parallel
56a6d0eb9 Merge pull request #891 from xylar/fix-dependency-pickle-growth
2fcfb1fe4 Merge pull request #890 from xylar/tear-down-polaris-parallel-on-sigterm
0144c23a8 Merge pull request #889 from xylar/fix-serial-memory-growth

Baseline Omega:

23b13afac5 Merge pull request #506 from hyungyukang/omega/compute-mesh-scaling
330b297447 Merge pull request #606 from andrewdnolan/omega/optional-cout-redirect
f13879a93a Merge pull request #612 from alicebarthel/omega/add-salinity-clamp
ede8e22014 Merge pull request #625 from grnydawn/ykim/omega/standalone-cpu-arch-flags
eeef0a29dc Merge pull request #611 from brian-oneill/omega/analysis-restarts-and-samples

PR Omega:

126b82aaa9 Test merge of E3SM-Project/Omega#628 (4e514188f0) into develop (23b13afac5)
23b13afac5 Merge pull request #506 from hyungyukang/omega/compute-mesh-scaling
330b297447 Merge pull request #606 from andrewdnolan/omega/optional-cout-redirect
f13879a93a Merge pull request #612 from alicebarthel/omega/add-salinity-clamp
ede8e22014 Merge pull request #625 from grnydawn/ykim/omega/standalone-cpu-arch-flags

CTest unit tests:

  • Machine: aurora
  • Compiler: intelgpu
  • Build type: Release
  • Build: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr628-4e51418/aurora_intelgpu/build
  • Omega: 126b82aaa94e126610f657cbd3f4ffff765f9a5e (Omega-v0.1.0-alpha.1-6285-g126b82aaa9)
  • Result: All tests passed
  • Log: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr628-4e51418/aurora_intelgpu/build/ctests.log

Build warnings

No new warnings (248 in the PR build, 245 in the baseline build).

  • Baseline build log: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/baselines/aurora_intelgpu_polaris-d81c10a_omega-23b13af/build/build_omega.log
  • PR build log: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr628-4e51418/aurora_intelgpu/build/build_omega.log

Notes

These rows ran with Polaris E3SM-Project/polaris#899 (d81c10a60), whose Aurora load scripts load oneapi/release/2026.1.0 again to match Omega's build. An earlier run with Polaris main failed every omega.exe launch (E3SM-Project/polaris#896). The 7 diffs are the same tasks as on Perlmutter and Chrysalis.


Posted by Claude Code on @xylar's behalf. The testing, analysis and wording above are AI-authored; please check them accordingly.

@xylar

xylar commented Oct 24, 2026

Copy link
Copy Markdown
Author

Because of the Aurora failures, I need to do a new Polaris deployment (E3SM-Project/polaris#897) before I rerun testing.

@xylar

xylar commented Oct 24, 2026

Copy link
Copy Markdown
Author

It turns out E3SM-Project/polaris#897 is not a good fix. It would have required a new merge of E3SM/master into Omega/develop. Instead, I patched Polaris to keep working with Omega's current Aurora environment (E3SM-Project/polaris#899) and things worked, see above.

@xylar
xylar marked this pull request as ready for review October 24, 2026 21:32
@xylar

xylar commented Oct 24, 2026

Copy link
Copy Markdown
Author

Thanks @overfelt! @mwarusz, could you take a quick look as well?

@xylar xylar added the non-BFB PR makes roundoff changes to answers. label Oct 25, 2026
@vanroekel vanroekel added this to the 1st E3SM Merge milestone Oct 26, 2026
@mwarusz

mwarusz commented Oct 26, 2026

Copy link
Copy Markdown
Member

@xylar

I believe there is a deeper issue here, that I inadvertently introduced. Could you check if #638 has the same effect as this PR and also fixes #588 ?

The idea behind this change seems good to me, but I would implement it by adjusting loop bounds, even if that requires adding a barrier. That's because adding an if statement is very likely to prevent vectorization on CPUs.

I also think that we should discuss if we want to skip inactive edges when computing divergence of fluxes that are proportional to velocity. Technically, if the velocity field satisfies the 3-zone masking, then it should not be necessary to skip inactive edges, since the flux value will be zero for them.

@xylar

xylar commented Oct 26, 2026

Copy link
Copy Markdown
Author

Replaced by #638, which fixes the transport velocity's masking at its source. Its results are bit-for-bit identical to this PR's on Chrysalis (#638 (comment)).


Posted by Claude Code on @xylar's behalf. The testing, analysis and wording above are AI-authored; please check them accordingly.

@xylar xylar closed this Oct 26, 2026
@xylar
xylar deleted the omega/fix-bottom-cell-tracer-drift branch October 26, 2026 13:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working non-BFB PR makes roundoff changes to answers. Omega

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bottom-cell temperatures fall far below the initial minimum in realistic global runs

4 participants