Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a package for um_createbc #168

Open
penguian opened this issue Nov 20, 2024 · 0 comments
Open

Add a package for um_createbc #168

penguian opened this issue Nov 20, 2024 · 0 comments

Comments

@penguian
Copy link
Contributor

Add a Spack package definition capable of building recent releases of um-createbc.exe. This is required by the Regional Nesting Suite release to ensure transparent and reproducible software builds. The Spack package definition would be very similar to the um package definition used to build um-atmos.exe and um-recon.exe except that the FCM and Rose configuration files would be based on rose-stem/app/fcm_make_createbc.

Background

The um_createbc.exe executable used by the Regional Nesting Suite

Both u-by395@282921 and u-dg768 use ${UMDIR}/vn{{UMVER}}/gadi/utilities to set the path that is used by the *_um_createbc_* tasks to find um-createbc.exe. The contents of this directory is:

$ ls /g/data/access/projects/access/umdir/vn13.0/gadi/utilities
/g/data/access/projects/access/umdir/vn13.0/gadi/utilities:
um-createbc.exe  um-pptoanc  um-pptoanc.exe  um_script_functions

Corresponding directories exist for UM versions 13.0 to 13.7.

um_createbc software build and installation

The um_createbc software is currently built and installed on Gadi via UM rose stem. For example, the directory /scratch/p66/mrd599/cylc-run/vn13.7_nci_rose_stem contains the runtime of the rose stem run that was used to build and install the contents of /g/data/access/projects/access/umdir/vn13.7/gadi/utilities.

In particular, the file /scratch/p66/mrd599/cylc-run/vn13.7_nci_rose_stem/suite.rc.processed contains

    [[install-gadi_intel_createbc_high_omp]]
        inherit = GADI_INSTALL_UMDIR
        [[[environment]]]
            ROSE_TASK_APP = install_utils
            INSTALL_TARGET = gadi
            SOURCES = "fcm_make_gadi_intel_createbc_high_omp"
         ...
    [[fcm_make_gadi_intel_createbc_high_omp]]
        inherit = GADI_BUILD_INTEL_SERIAL, BUILD
        [[[environment]]]
            ROSE_TASK_APP=fcm_make_createbc
            OPTIMISATION=high
            OPENMP=true
            THREADUTILS=false
            ROSE_APP_OPT_CONF_KEYS=
            PREBUILD=
        ....

The fcm_make_createbc task is configured at rose-stem/app/fcm_make_createbc. The structure of this directory is

$ tree
.
├── file
│   └── fcm-make.cfg
├── opt
│   ├── rose-app-codecov.conf
│   ├── rose-app-mirror.conf
│   └── rose-app-portio2B.conf
└── rose-app.conf

This is similar to the structure of rose-stem/app/fcm_make_um.

The file rose-app.conf is a Rose configuration file containing variable definitions. The FCM configuration file file/fcm-make.cfg
includes the FCM configuration file fcm-make/$platform_config_dir/um-createbc-$optimisation_level.cfg$config_revision. In the case of NCI Gadi, $platform_config_dir is nci-x86-ifort. Each such FCM configuration file, for example, fcm-make/nci-x86-ifort/um-createbc-high.cfg, includes fcm-make/inc/um-createbc-common.cfg, which in turn extracts source code from um and shumlib, and creates um-createbc.exe.

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

No branches or pull requests

1 participant