Skip to content

Update MPAS dynamical core to version 8.4.2 and add support for online graph partitioning - #558

Open
kuanchihwang wants to merge 8 commits into
ESCOMP:developmentfrom
kuanchihwang-ncar:staging/mpas-dycore-8.4.2
Open

kuanchihwang wants to merge 8 commits into
ESCOMP:developmentfrom
kuanchihwang-ncar:staging/mpas-dycore-8.4.2

Conversation

@kuanchihwang

Copy link
Copy Markdown
Collaborator

Tag name

TBD

Originator(s)

kuanchihwang

Description (include the issue title, and the keyword ['closes', 'fixes', 'resolves'] followed by the issue number)

This PR updates MPAS dynamical core from version 8.4.0 to 8.4.2. See the release notes in-between (8.4.1, 8.4.2) for details.

Additionally, this PR introduces optional support for the online graph partitioning feature in MPAS dynamical core, eliminating the need to precompute mesh decomposition files (i.e., *.graph.info.part.*) in advance. This is a usability improvement that has been highly requested by the standalone MPAS user community, and now CAM-SIMA will also have it.

The online graph partitioning feature depends on the external (PT-)Scotch library, and is controlled by two build-time options defined in env_build.xml:

  1. USE_SCOTCH_LIB

    Whether to use the (PT-)Scotch library to enable the online graph partitioning feature in MPAS dynamical core.
    If TRUE and SCOTCH_PATH is not set, the build system will attempt to build the (PT-)Scotch library automatically.
    If TRUE and SCOTCH_PATH is set, the build system will use the existing (PT-)Scotch library installation directly.
    If FALSE, the online graph partitioning feature in MPAS dynamical core will be disabled. Default is FALSE.

  2. SCOTCH_PATH

    Path to the existing (PT-)Scotch library installation. Default is not set.

Users can set the desired options through the familiar xmlchange tool from CIME. Switching back and forth between different values of USE_SCOTCH_LIB and SCOTCH_PATH for an existing case is also handled gracefully.

Describe any changes made to the build system

M       cime_config/buildlib
    * Simplify `_copy2_as_needed` function
    * Rename and improve readability for `_stage_mpas_build_tree` function
    * Add support for building MPAS dynamical core with (PT-)Scotch
M       cime_config/config_component.xml
    * Add support for building MPAS dynamical core with (PT-)Scotch
M       src/dynamics/mpas/assets/Makefile.in.CESM
    * Add support for building MPAS dynamical core with (PT-)Scotch

Describe any changes made to the namelist

M       src/dynamics/mpas/namelist_definition_mpas_dycore.xml
    * Regenerate MPAS namelist definition file

List any changes to the defaults for the input datasets (e.g., initial, boundary datasets)

None

List all files eliminated and why

D       src/dynamics/mpas/assets/0001-Fix-Fortran-standard-violation.patch
D       src/dynamics/mpas/assets/0002-Add-missing-argument-intent.patch
D       src/dynamics/mpas/assets/0003-Avoid-implicit-save-attribute.patch
    * Remove old patches that are no longer needed

List all files added and what they do

A       src/dynamics/mpas/assets/0001-Fix-missing-preprocessor-guard-in-registry.patch
    * Add patch to fix build error in MPAS
A       src/dynamics/mpas/scotch
    * Add support for building MPAS dynamical core with (PT-)Scotch

List all existing files that have been modified, and describe the changes

M       .gitmodules
    * Update MPAS dynamical core to version 8.4.2
    * Add support for building MPAS dynamical core with (PT-)Scotch
M       src/dynamics/mpas/assets/generate_namelist_definition.py
    * Fix Pylance error about function call issue
M       src/dynamics/mpas/dycore
    * Update MPAS dynamical core to version 8.4.2

Regression tests

  • derecho/aux_sima_gnu
  SMS_Ln9.ne3pg3_ne3pg3_mg37.F2000_C7.derecho_gnu.cam-outfrq_se_cslam_analy_ic (Overall: FAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.F2000_C7.derecho_gnu.cam-outfrq_se_cslam_analy_ic RUN time=33

Known failing test.

  SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 NLCOMP
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
  SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 NLCOMP
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
  SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho (Overall: DIFF) details:
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho NLCOMP
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
  SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho_history (Overall: DIFF) details:
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho_history NLCOMP
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho_history BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF

Different solutions due to the namelist update.

  • derecho/aux_sima_intel
  SMS_Ln9.ne3pg3_ne3pg3_mg37.F2000_C7.derecho_intel.cam-outfrq_se_cslam_analy_ic (Overall: FAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.F2000_C7.derecho_intel.cam-outfrq_se_cslam_analy_ic RUN time=40
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape NLCOMP

Known failing tests.

  SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 NLCOMP
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 NLCOMP
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho (Overall: DIFF) details:
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho NLCOMP
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho_history (Overall: DIFF) details:
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho_history NLCOMP
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho_history BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF

Different solutions due to the namelist update.

  • derecho/aux_sima_nvhpc

Pass.

Fix the following Pylance error:

> No overloads for "sorted" match the provided arguments

by making the lambda function always return a string.
If (PT-)Scotch is available, MPAS can perform online graph partitioning,
eliminating the need to precompute mesh decomposition files (i.e.,
*.graph.info.part.*) in advance.
@kuanchihwang
kuanchihwang deployed to CI-tests-on-CIRRUS September 30, 2026 23:43 — with GitHub Actions Active
@kuanchihwang
kuanchihwang marked this pull request as ready for review September 30, 2026 23:52

This branch was successfully deployed

1 active deployment
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants