Skip to content

Commit

Permalink
Merge pull request #30 from Goddard-Fortran-Ecosystem/feature/update-…
Browse files Browse the repository at this point in the history
…for-1.13-release

Updates for 1.13 Release
  • Loading branch information
tclune authored Mar 7, 2024
2 parents 583b9cc + d2268da commit 35fb199
Show file tree
Hide file tree
Showing 10 changed files with 117 additions and 31 deletions.
100 changes: 82 additions & 18 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,40 +46,35 @@ jobs:
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: Cache MPI
id: cache-mpi
uses: actions/cache@v3
with:
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
Expand All @@ -98,7 +93,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
Expand All @@ -109,7 +104,7 @@ jobs:
runs-on: ubuntu-latest

env:
FC: ifort
FC: ifx
CC: icx

name: Intel Fortran
Expand All @@ -119,22 +114,88 @@ jobs:
with:
fetch-depth: 1
submodules: true
- name: Install Intel compilers

- name: Set all directories as git safe
run: |
git config --global --add safe.directory '*'
- 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
${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
Expand All @@ -143,14 +204,17 @@ 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@v3
uses: actions/upload-artifact@v4
if: failure()
with:
name: logfiles
path: |
build/**/*.log
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
22 changes: 22 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [1.13.0] - 2024-03-07

### Changed

- 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
- Some bug fixes
- Update yaFyaml to v1.3.0
- Fujitsu compiler support
- GCC 13 fixes
- Update pFlogger to v1.13.1
- Fujitsu compiler support
- GCC 13 fixes
- Update CI to use Intel LLVM

## [1.12.0] - 2023-11-29

- Updated submodules for all repos. (See README)
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
| pFUnit | v4.8.0 |
| yaFyaml | v1.2.0 |
| pFlogger | v1.11.0 |
| gFTL | v1.12.0 |
| gFTL-shared | v1.8.0 |
| fArgParse | v1.7.0 |
| pFUnit | v4.9.0 |
| yaFyaml | v1.3.0 |
| pFlogger | v1.13.1 |

## Set up

Expand Down

0 comments on commit 35fb199

Please sign in to comment.