From c51ac2b0f6ced071ba1e56fd877867b52c4ba274 Mon Sep 17 00:00:00 2001 From: Matt Thompson Date: Fri, 23 Aug 2024 13:44:07 -0400 Subject: [PATCH] Add ifx executor (#87) * Add ifx executor * Update changelog for release --- CHANGELOG.md | 9 ++++++++ src/examples/build_geosgcm_with_commands.yml | 2 +- src/examples/build_geosgcm_with_job.yml | 2 +- src/executors/README.md | 1 + src/executors/ifort.yml | 2 +- src/executors/ifort_bcs.yml | 2 +- src/executors/ifx.yml | 20 ++++++++++++++++ src/executors/ifx_bcs.yml | 24 ++++++++++++++++++++ src/jobs/build.yml | 2 +- src/jobs/publish_docker.yml | 4 ++-- src/jobs/run_fv3.yml | 2 +- src/jobs/run_gcm.yml | 2 +- src/jobs/run_mapl_tutorial.yml | 2 +- 13 files changed, 64 insertions(+), 10 deletions(-) create mode 100644 src/executors/ifx.yml create mode 100644 src/executors/ifx_bcs.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index cd46d61..e56f539 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,10 +6,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [5.0.0] - 2024-08-23 + +Note: This is a major version bump due to the change from `intel` to `ifort` and `ifx` executors. +So older v3 based CI will need to change their `.circleci/config.yml` to use the new executors. + ### Added +- Added new `ifx` executor as we transition from `ifort` to `ifx` + ### Changed +- Changed the `ifort` executor to use newly named Docker images + ### Removed ## [3.4.0] - 2024-07-23 diff --git a/src/examples/build_geosgcm_with_commands.yml b/src/examples/build_geosgcm_with_commands.yml index ad70f76..a67f08d 100644 --- a/src/examples/build_geosgcm_with_commands.yml +++ b/src/examples/build_geosgcm_with_commands.yml @@ -12,7 +12,7 @@ usage: name: build-GEOSgcm-on-<< matrix.compiler >> matrix: parameters: - compiler: [gfortran, ifort] + compiler: [gfortran, ifort, ifx] context: - docker-hub-creds jobs: diff --git a/src/examples/build_geosgcm_with_job.yml b/src/examples/build_geosgcm_with_job.yml index de0dcc5..7bc07e7 100644 --- a/src/examples/build_geosgcm_with_job.yml +++ b/src/examples/build_geosgcm_with_job.yml @@ -12,7 +12,7 @@ usage: name: build-GEOSgcm-on-<< matrix.compiler >> matrix: parameters: - compiler: [gfortran, ifort] + compiler: [gfortran, ifort, ifx] repo: GEOSgcm checkout_fixture: true context: diff --git a/src/executors/README.md b/src/executors/README.md index 5457e03..965389f 100644 --- a/src/executors/README.md +++ b/src/executors/README.md @@ -5,6 +5,7 @@ CircleCI jobs. We currently define two executors: 1. gfortran 2. ifort +3. ifx These are named to match the Fortran compiler. diff --git a/src/executors/ifort.yml b/src/executors/ifort.yml index b8d0229..1aaf987 100644 --- a/src/executors/ifort.yml +++ b/src/executors/ifort.yml @@ -12,7 +12,7 @@ parameters: type: string docker: - - image: gmao/ubuntu20-geos-env:<< parameters.baselibs_version >>-intelmpi_2021.13-intel_2024.2 + - image: gmao/ubuntu20-geos-env:<< parameters.baselibs_version >>-intelmpi_2021.13-ifort_2021.13 auth: username: $DOCKERHUB_USER password: $DOCKERHUB_AUTH_TOKEN diff --git a/src/executors/ifort_bcs.yml b/src/executors/ifort_bcs.yml index 129944b..544e45d 100644 --- a/src/executors/ifort_bcs.yml +++ b/src/executors/ifort_bcs.yml @@ -16,7 +16,7 @@ parameters: type: string docker: - - image: gmao/ubuntu20-geos-env-bcs:<< parameters.baselibs_version >>-intelmpi_2021.13-intel_2024.2-bcs_<< parameters.bcs_version >> + - image: gmao/ubuntu20-geos-env-bcs:<< parameters.baselibs_version >>-intelmpi_2021.13-ifort_2021.13-bcs_<< parameters.bcs_version >> auth: username: $DOCKERHUB_USER password: $DOCKERHUB_AUTH_TOKEN diff --git a/src/executors/ifx.yml b/src/executors/ifx.yml new file mode 100644 index 0000000..58a6044 --- /dev/null +++ b/src/executors/ifx.yml @@ -0,0 +1,20 @@ +description: > + GEOS-ESM ifx docker executor + +parameters: + resource_class: + description: "Resource class to use" + default: large + type: string + baselibs_version: + description: "Version of Baselibs to use" + default: v8.5.0 + type: string + +docker: + - image: gmao/ubuntu20-geos-env:<< parameters.baselibs_version >>-intelmpi_2021.13-ifx_2024.2 + auth: + username: $DOCKERHUB_USER + password: $DOCKERHUB_AUTH_TOKEN + +resource_class: << parameters.resource_class >> diff --git a/src/executors/ifx_bcs.yml b/src/executors/ifx_bcs.yml new file mode 100644 index 0000000..3984ed1 --- /dev/null +++ b/src/executors/ifx_bcs.yml @@ -0,0 +1,24 @@ +description: > + GEOS-ESM ifx docker executor with boundary conditions + +parameters: + resource_class: + description: "Resource class to use" + default: large + type: string + baselibs_version: + description: "Version of Baselibs to use" + default: v8.5.0 + type: string + bcs_version: + description: "Version of boundary conditions to use" + default: v11.6.0 + type: string + +docker: + - image: gmao/ubuntu20-geos-env-bcs:<< parameters.baselibs_version >>-intelmpi_2021.13-ifx_2024.2-bcs_<< parameters.bcs_version >> + auth: + username: $DOCKERHUB_USER + password: $DOCKERHUB_AUTH_TOKEN + +resource_class: << parameters.resource_class >> diff --git a/src/jobs/build.yml b/src/jobs/build.yml index 24c00b5..e3e23d2 100755 --- a/src/jobs/build.yml +++ b/src/jobs/build.yml @@ -10,7 +10,7 @@ parameters: type: enum default: ifort description: "Compiler to use" - enum: ["ifort", "gfortran"] + enum: ["ifort", "gfortran", "ifx"] resource_class: type: enum default: large diff --git a/src/jobs/publish_docker.yml b/src/jobs/publish_docker.yml index b13a4a0..fbbe8a7 100755 --- a/src/jobs/publish_docker.yml +++ b/src/jobs/publish_docker.yml @@ -43,9 +43,9 @@ parameters: description: "Base Docker Image Name" compiler_name: type: enum - default: intel + default: ifort description: "Compiler Name on image" - enum: ["intel", "gcc"] + enum: ["ifort", "gcc", "ifx"] compiler_version: type: string default: "" diff --git a/src/jobs/run_fv3.yml b/src/jobs/run_fv3.yml index e78d7b6..97232ea 100755 --- a/src/jobs/run_fv3.yml +++ b/src/jobs/run_fv3.yml @@ -10,7 +10,7 @@ parameters: type: enum default: ifort description: "Compiler to use" - enum: ["ifort", "gfortran"] + enum: ["ifort", "gfortran", "ifx"] resource_class: type: enum default: large diff --git a/src/jobs/run_gcm.yml b/src/jobs/run_gcm.yml index 4b4f535..1902673 100755 --- a/src/jobs/run_gcm.yml +++ b/src/jobs/run_gcm.yml @@ -10,7 +10,7 @@ parameters: type: enum default: ifort description: "Compiler to use" - enum: ["ifort", "gfortran"] + enum: ["ifort", "gfortran", "ifx"] resource_class: type: enum default: xlarge diff --git a/src/jobs/run_mapl_tutorial.yml b/src/jobs/run_mapl_tutorial.yml index 8cf6a87..0d2d5b3 100755 --- a/src/jobs/run_mapl_tutorial.yml +++ b/src/jobs/run_mapl_tutorial.yml @@ -10,7 +10,7 @@ parameters: type: enum default: ifort description: "Compiler to use" - enum: ["ifort", "gfortran"] + enum: ["ifort", "gfortran", "ifx"] resource_class: type: enum default: medium