From 32b0785f9ecaccfb6894b95c75fcd37db135f1f0 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 4 Mar 2024 14:12:43 -0500 Subject: [PATCH 1/6] Updates for 1.13 Release --- CMakeLists.txt | 2 +- ChangeLog.md | 16 ++++++++++++++++ README.md | 10 +++++----- fArgParse | 2 +- gFTL | 2 +- gFTL-shared | 2 +- pFlogger | 2 +- yaFyaml | 2 +- 8 files changed, 27 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fdf3ad4..3a43284 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.12) project (GFE - VERSION 1.12.0 + VERSION 1.13.0 LANGUAGES Fortran ) cmake_policy(SET CMP0074 NEW) diff --git a/ChangeLog.md b/ChangeLog.md index 2b739c2..6571f0d 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -5,6 +5,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +- Update gFTL to v1.12.0 + - Fujitsu compiler support (and other minor bugfixes) +- Update gFTL-shared to v1.8.0 + - Fujitsu compiler support +- Update fArgParse to v1.7.0 + - Fujitsu compiler support + - Update to Apache 2.0 license +- Update pFUnit to v4.9.0 + - Fujitsu compiler support +- Update yaFyaml to v1.1.0 + - Fujitsu compiler support + - GCC 13 fixes +- Update pFlogger to v1.10.0 + - Fujitsu compiler support + - GCC 13 fixes + ## [1.12.0] - 2023-11-29 - Updated submodules for all repos. (See README) diff --git a/README.md b/README.md index 4b2ac7c..13b5b4b 100644 --- a/README.md +++ b/README.md @@ -6,12 +6,12 @@ This repo is intended to be a single fixture for the [Goddard Fortran Ecosystem] | Package | Version | | :------ | :------ | -| gFTL | v1.11.0 | -| gFTL-shared | v1.7.0 | -| fArgParse | v1.6.0 | +| gFTL | v1.12.0 | +| gFTL-shared | v1.8.0 | +| fArgParse | v1.7.0 | | pFUnit | v4.8.0 | -| yaFyaml | v1.2.0 | -| pFlogger | v1.11.0 | +| yaFyaml | v1.3.0 | +| pFlogger | v1.12.0 | ## Set up diff --git a/fArgParse b/fArgParse index 82442c7..43deed7 160000 --- a/fArgParse +++ b/fArgParse @@ -1 +1 @@ -Subproject commit 82442c77a9a4f19fa3777aeb5c54bac4b8dac2fa +Subproject commit 43deed74bdc72600faa5b4e8a6a2cf30d0b215b8 diff --git a/gFTL b/gFTL index dc93a5f..d4203cc 160000 --- a/gFTL +++ b/gFTL @@ -1 +1 @@ -Subproject commit dc93a5fc2fe2b487590580d9f0a17d77ca3fe5c1 +Subproject commit d4203cc02da515d1f6357da46a624ec008bab273 diff --git a/gFTL-shared b/gFTL-shared index b1f6ff8..5e48fc3 160000 --- a/gFTL-shared +++ b/gFTL-shared @@ -1 +1 @@ -Subproject commit b1f6ff89e4983f313087324eb3b3acd4ee93deb8 +Subproject commit 5e48fc3c8de01077bda4e7b49d5ff6afef473e68 diff --git a/pFlogger b/pFlogger index df920e5..fe5602b 160000 --- a/pFlogger +++ b/pFlogger @@ -1 +1 @@ -Subproject commit df920e5f8dffe9f0b329c1296de59a2a85b7be4e +Subproject commit fe5602b192a342d4d08175eda3fded476fc0b823 diff --git a/yaFyaml b/yaFyaml index 0812ea4..bcf3ff4 160000 --- a/yaFyaml +++ b/yaFyaml @@ -1 +1 @@ -Subproject commit 0812ea4d4f8af0566546951c4be42c9580ed9d69 +Subproject commit bcf3ff47a0394c2afdd812a8c18caf9d37f37b81 From 60ee5ad08325097058c00ca053604bee8b3d9ca3 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 4 Mar 2024 14:13:13 -0500 Subject: [PATCH 2/6] Update changelog --- ChangeLog.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ChangeLog.md b/ChangeLog.md index 6571f0d..753e20e 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -5,6 +5,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.13.0] - 2024-03-XX + - Update gFTL to v1.12.0 - Fujitsu compiler support (and other minor bugfixes) - Update gFTL-shared to v1.8.0 From 00a97529561ff857c7be8142d16fb492fc074826 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 4 Mar 2024 14:15:49 -0500 Subject: [PATCH 3/6] Update CI --- .github/workflows/main.yml | 42 ++++++++++++++++++++++---------------- ChangeLog.md | 3 +++ 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b531584..d30a8d7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -46,6 +46,7 @@ jobs: run: | ${FC} --version cmake --version + - name: Checkout uses: actions/checkout@v4 with: @@ -54,6 +55,7 @@ jobs: - name: Set all directories as git safe run: | git config --global --add safe.directory '*' + - name: Cache MPI id: cache-mpi uses: actions/cache@v3 @@ -61,25 +63,17 @@ jobs: path: ~/local/openmpi key: mpi-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }} - # For some reason the GitHub Actions macOS image seems to have triggered - # a 7-year old bug: https://github.com/Homebrew/legacy-homebrew/issues/19046 - # For now we only fix if MPI isn't cached already as it only seems important - # for OpenMPI - - - name: Fix gmp and mpfr on macOS if MPI isn't cached - if: steps.cache-mpi.outputs.cache-hit != 'true' && matrix.os == 'macos-10.15' - run: | - brew reinstall --build-from-source gmp mpfr - - name: Build MPI if: steps.cache-mpi.outputs.cache-hit != 'true' run: | sh ${GITHUB_WORKSPACE}/tools/ci-install-mpi.sh openmpi 4.1.4 + - name: Set MPI Environment run: | echo "${HOME}/local/openmpi/bin" >> $GITHUB_PATH echo "LD_LIBRARY_PATH=${HOME}/local/openmpi/lib" >> $GITHUB_ENV echo "DYLD_LIBRARY_PATH=${HOME}/local/openmpi/lib" >> $GITHUB_ENV + - name: MPI Versions run: | ${FC} --version @@ -98,7 +92,7 @@ jobs: cd build make -j$(nproc 2>/dev/null || sysctl -n hw.logicalcpu) tests - name: Archive log files on failure - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: failure() with: name: logfiles @@ -109,7 +103,7 @@ jobs: runs-on: ubuntu-latest env: - FC: ifort + FC: ifx CC: icx name: Intel Fortran @@ -119,17 +113,29 @@ jobs: with: fetch-depth: 1 submodules: true - - name: Install Intel compilers + + - name: Setup Intel oneAPI repository run: | - cd /tmp wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB - rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main" - sudo apt install --no-install-recommends intel-oneapi-compiler-fortran intel-oneapi-mpi \ - intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-mpi-devel + sudo apt-get update + + - name: Install Intel oneAPI compilers + timeout-minutes: 5 + run: sudo apt-get install intel-oneapi-compiler-fortran intel-oneapi-compiler-dpcpp-cpp + + # optional + - name: Install Intel MPI + timeout-minutes: 5 + run: sudo apt-get install intel-oneapi-mpi intel-oneapi-mpi-devel + + - name: Setup Intel oneAPI environment + run: | source /opt/intel/oneapi/setvars.sh printenv >> $GITHUB_ENV + printenv | grep intel + - name: Versions run: | ${FC} --version @@ -148,7 +154,7 @@ jobs: cd build make -j$(nproc 2>/dev/null || sysctl -n hw.logicalcpu) tests - name: Archive log files on failure - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: failure() with: name: logfiles diff --git a/ChangeLog.md b/ChangeLog.md index 753e20e..e6037a5 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [1.13.0] - 2024-03-XX +### Changed + - Update gFTL to v1.12.0 - Fujitsu compiler support (and other minor bugfixes) - Update gFTL-shared to v1.8.0 @@ -22,6 +24,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Update pFlogger to v1.10.0 - Fujitsu compiler support - GCC 13 fixes +- Update CI to use Intel LLVM ## [1.12.0] - 2023-11-29 From 38c4f93631dcdb3280429065822ac53765b92253 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 4 Mar 2024 14:19:15 -0500 Subject: [PATCH 4/6] Add nvidia --- .github/workflows/main.yml | 58 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d30a8d7..6418413 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -52,6 +52,7 @@ jobs: with: fetch-depth: 1 submodules: true + - name: Set all directories as git safe run: | git config --global --add safe.directory '*' @@ -114,6 +115,9 @@ jobs: fetch-depth: 1 submodules: true + - name: Set all directories as git safe + run: | + git config --global --add safe.directory '*' - name: Setup Intel oneAPI repository run: | wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB @@ -141,6 +145,57 @@ jobs: ${FC} --version ${CC} --version mpirun --version + + - name: Build GFE + run: | + mkdir -p build + cd build + cmake .. -DSKIP_OPENMP=ON -DCMAKE_INSTALL_PREFIX=../install -DCMAKE_PREFIX_PATH=../install + make -j$(nproc 2>/dev/null || sysctl -n hw.logicalcpu) install + cmake .. -DSKIP_OPENMP=ON -DCMAKE_INSTALL_PREFIX=../install -DCMAKE_PREFIX_PATH=../install + make -j$(nproc 2>/dev/null || sysctl -n hw.logicalcpu) install + + - name: Build and Run Tests + run: | + cd build + make -j$(nproc 2>/dev/null || sysctl -n hw.logicalcpu) tests + + - name: Archive log files on failure + uses: actions/upload-artifact@v4 + if: failure() + with: + name: logfiles + path: | + build/**/*.log + + Nvidia: + runs-on: ubuntu-20.04 + container: nvcr.io/nvidia/nvhpc:24.1-devel-cuda12.3-ubuntu22.04 + env: + FC: nvfortran + + name: Nvidia HPC + steps: + - name: Versions + run: | + ${FC} --version + cmake --version + + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 1 + submodules: true + + - name: Set all directories as git safe + run: | + git config --global --add safe.directory '*' + + - name: Add python-is-python3 package + run: | + apt-get update + apt-get install -y python-is-python3 + - name: Build GFE run: | mkdir -p build @@ -149,10 +204,12 @@ jobs: make -j$(nproc 2>/dev/null || sysctl -n hw.logicalcpu) install cmake .. -DSKIP_OPENMP=ON -DCMAKE_INSTALL_PREFIX=../install -DCMAKE_PREFIX_PATH=../install make -j$(nproc 2>/dev/null || sysctl -n hw.logicalcpu) install + - name: Build and Run Tests run: | cd build make -j$(nproc 2>/dev/null || sysctl -n hw.logicalcpu) tests + - name: Archive log files on failure uses: actions/upload-artifact@v4 if: failure() @@ -160,3 +217,4 @@ jobs: name: logfiles path: | build/**/*.log + From 27bf663164a5c229cbf1e83ab3cc6d3c5e7d0407 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Thu, 7 Mar 2024 11:35:26 -0500 Subject: [PATCH 5/6] Update to pFUnit v4.9.0 --- ChangeLog.md | 3 ++- README.md | 2 +- pFUnit | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index e6037a5..7527770 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -5,7 +5,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -## [1.13.0] - 2024-03-XX +## [1.13.0] - 2024-03-07 ### Changed @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Update to Apache 2.0 license - Update pFUnit to v4.9.0 - Fujitsu compiler support + - Some bug fixes - Update yaFyaml to v1.1.0 - Fujitsu compiler support - GCC 13 fixes diff --git a/README.md b/README.md index 13b5b4b..729fdb1 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ This repo is intended to be a single fixture for the [Goddard Fortran Ecosystem] | gFTL | v1.12.0 | | gFTL-shared | v1.8.0 | | fArgParse | v1.7.0 | -| pFUnit | v4.8.0 | +| pFUnit | v4.9.0 | | yaFyaml | v1.3.0 | | pFlogger | v1.12.0 | diff --git a/pFUnit b/pFUnit index 49a83b1..10e99ef 160000 --- a/pFUnit +++ b/pFUnit @@ -1 +1 @@ -Subproject commit 49a83b1ff56a953a00468bb783aac31dad1895d1 +Subproject commit 10e99ef99f80c22c5e46ed1a731439e0f69061fa From d2268da02c24bf06d7456479776a9ae2b52fc45a Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Thu, 7 Mar 2024 15:10:45 -0500 Subject: [PATCH 6/6] update to pflogger v1.13.1 --- ChangeLog.md | 4 ++-- README.md | 2 +- pFlogger | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index 7527770..ecf47d7 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -19,10 +19,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Update pFUnit to v4.9.0 - Fujitsu compiler support - Some bug fixes -- Update yaFyaml to v1.1.0 +- Update yaFyaml to v1.3.0 - Fujitsu compiler support - GCC 13 fixes -- Update pFlogger to v1.10.0 +- Update pFlogger to v1.13.1 - Fujitsu compiler support - GCC 13 fixes - Update CI to use Intel LLVM diff --git a/README.md b/README.md index 729fdb1..44967ae 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ This repo is intended to be a single fixture for the [Goddard Fortran Ecosystem] | fArgParse | v1.7.0 | | pFUnit | v4.9.0 | | yaFyaml | v1.3.0 | -| pFlogger | v1.12.0 | +| pFlogger | v1.13.1 | ## Set up diff --git a/pFlogger b/pFlogger index fe5602b..645af7a 160000 --- a/pFlogger +++ b/pFlogger @@ -1 +1 @@ -Subproject commit fe5602b192a342d4d08175eda3fded476fc0b823 +Subproject commit 645af7a6848a146c9342bdd9d321212da3d101b4