Skip to content

Commit

Permalink
Merge pull request #1229 from ExtremeFLOW/release/0.8
Browse files Browse the repository at this point in the history
NEKO v0.8.0
  • Loading branch information
njansson authored Jul 7, 2024
2 parents 6f5c7fa + c3650f5 commit e01443b
Show file tree
Hide file tree
Showing 486 changed files with 31,689 additions and 11,689 deletions.
20 changes: 20 additions & 0 deletions .github/workflows/citation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
on:
# push:
# paths:
# - CITATION.cff
workflow_dispatch:

name: CITATION.cff
jobs:
Validate-CITATION-cff:
runs-on: ubuntu-latest
name: Validate CITATION.cff
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}

steps:
- name: Checkout
uses: actions/checkout@v3

- name: Validate CITATION.cff
uses: dieghernan/cff-validator@v3
102 changes: 72 additions & 30 deletions .github/workflows/develop.yml
Original file line number Diff line number Diff line change
@@ -1,38 +1,54 @@
name: develop

# Controls when the action will run.
# Controls when the action will run.
on:
pull_request:
branches: [develop,release/*]
types:
- opened
- synchronize
- reopened
- ready_for_review
workflow_dispatch:

jobs:
is_draft:
name: Check if PR is a draft
if: github.event.pull_request.draft == true

runs-on: ubuntu-latest
steps:
- name: Check if PR is a draft
run: echo "This PR is a draft"

linting:
name: "Flint"
if: github.event.pull_request.draft != true
runs-on: ubuntu-20.04
steps:
- name: Setup env.
run: |
sudo apt-get update && sudo apt-get install -yq python3-dev python3-pip python3-tk
pip install nobvisual==0.2.0 flinter==0.4.0
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Lint
run: |
flint score src/ -d 10 -r flinter_rc.yml | tee flint.txt
score=$(awk '$1==0{print $3}' flint.txt)
if (( $(echo "$score < 8.13" |bc -l) )) ; then
if (( $(echo "$score < 8.06" |bc -l) )) ; then
exit 1
fi
- name: Archive linter report
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: flint-report
path: flint.txt
retention-days: 5
GNU:
if: github.event.pull_request.draft != true
needs: linting
runs-on: ${{matrix.os}}
strategy:
Expand All @@ -58,7 +74,7 @@ jobs:
include:
- os: ubuntu-20.04
setup-env: |
sudo apt-get update && sudo apt-get install -y openmpi-bin libopenmpi-dev autoconf automake autotools-dev libopenblas-dev make git m4 python3 cmake-curses-gui
sudo apt-get update && sudo apt-get install -y openmpi-bin libopenmpi-dev autoconf automake autotools-dev libopenblas-dev make git m4 python3 cmake-curses-gui
- os: macos-13
setup-env: export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 && brew install openmpi && brew install automake && brew install gcc@11 && brew install gcc@12
env:
Expand All @@ -74,7 +90,7 @@ jobs:
run: ${{ matrix.setup-env }}
- name: Cache pFUnit
id: cache-pfunit
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~/pkg/pfunit
key: pfunit-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}
Expand All @@ -96,14 +112,14 @@ jobs:
+ error stop '*** Encountered 1 or more failures/errors during testing. ***'
#endif
end if
_ACEOF
git apply pfunit_error_stop.patch && mkdir b && cd b
cmake -DCMAKE_INSTALL_PREFIX=${HOME}/pkg/pfunit ..
make -j$(nproc) && make install && cd ../../
- name: Cache json-fortran
id: cache-json-fortran
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~/pkg/json-fortran
key: json-fortran-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}
Expand All @@ -121,36 +137,36 @@ jobs:
echo "PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:${HOME}/pkg/json-fortran/lib/pkgconfig/" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/pkg/json-fortran/lib/" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Build (CPU backend)
if: matrix.backend == 'cpu'
run: |
echo $PKG_CONFIG_PATH
./regen.sh
./regen.sh
./configure FC=${FC} FCFLAGS="-O2 -pedantic -std=f2008" --with-pfunit=${HOME}/pkg/pfunit/PFUNIT-4.4 --enable-real=${RP}
make -j$(nproc)
- name: Build (CUDA backend)
- name: Build (CUDA backend)
if: matrix.backend == 'cuda'
run: |
sudo apt-get install -y nvidia-cuda-toolkit
./regen.sh
./regen.sh
./configure FC=${FC} FCFLAGS="-O2 -pedantic -std=f2008" --enable-real=${RP} --with-cuda=/usr
make -j$(nproc)
- name: Build (HIP backend)
- name: Build (HIP backend)
if: matrix.backend == 'HIP'
run: |
wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add -
echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/debian/ ubuntu main' | sudo tee /etc/apt/sources.list.d/rocm.list
sudo apt-get update && sudo apt-get install -y rocm-dev
./regen.sh
./configure FC=${FC} FCFLAGS="-O2 -pedantic -std=f2008" HIP_HIPCC_FLAGS="-O2 -fPIE" --enable-real=${RP} --with-hip=/opt/rocm-6.0.0
./regen.sh
./configure FC=${FC} FCFLAGS="-O2 -pedantic -std=f2008" HIP_HIPCC_FLAGS="-O2 -fPIE" --enable-real=${RP} --with-hip=/opt/rocm-6.1.2
make -j$(nproc)
- name: Build (OpenCL backend)
if: matrix.backend == 'opencl'
run: |
./regen.sh
./regen.sh
./configure FC=${FC} FCFLAGS="-O2 -pedantic -std=f2008" --enable-real=${RP} --with-opencl
make -j$(nproc)
- name: Check
Expand Down Expand Up @@ -190,7 +206,7 @@ jobs:
mkdir releng
tar xf neko-*.tar.gz -C releng
cd releng/neko-*
./configure FC=${FC} FCFLAGS="-fPIE" --enable-real=${RP} HIP_HIPCC_FLAGS="-O2 -fPIE" --with-hip=/opt/rocm-6.0.0
./configure FC=${FC} FCFLAGS="-fPIE" --enable-real=${RP} HIP_HIPCC_FLAGS="-O2 -fPIE" --with-hip=/opt/rocm-6.1.2
make -j $(nproc)
- name: Dist (OpenCL backend)
if: matrix.backend == 'opencl'
Expand All @@ -201,8 +217,9 @@ jobs:
cd releng/neko-*
./configure FC=${FC} --enable-real=${RP} --with-opencl
make -j $(nproc)
Intel:
if: github.event.pull_request.draft != true
needs: linting
runs-on: ${{matrix.os}}
strategy:
Expand All @@ -218,7 +235,8 @@ jobs:
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null && echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list && sudo apt-get update -y && sudo apt install -y --no-install-recommends intel-oneapi-compiler-fortran intel-oneapi-mpi intel-oneapi-mpi-devel intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
source /opt/intel/oneapi/setvars.sh
sudo apt install -y autoconf automake autotools-dev libopenblas-dev make git m4 python3 ca-certificates cmake
export PATH=/opt/intel/oneapi/compiler/2024.0/bin:${PATH}
INTEL_PATH=$(find /opt/intel/oneapi/compiler/ -name "${FC}" -type f | xargs dirname)
export PATH=$INTEL_PATH:${PATH}
printenv >> $GITHUB_ENV
env:
CC: icc
Expand All @@ -230,7 +248,7 @@ jobs:
run: ${{ matrix.setup-env }}
- name: Cache json-fortran
id: cache-json-fortran
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~/pkg/json-fortran
key: json-fortran-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}
Expand All @@ -248,16 +266,17 @@ jobs:
echo "PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:${HOME}/pkg/json-fortran/lib/pkgconfig/" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/pkg/json-fortran/lib/" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Build
run: |
echo $PKG_CONFIG_PATH
./regen.sh
./configure FC=${FC} CC=${CC} MPIFC"=mpiifort -fc=${FC}" --enable-real=${RP}
./configure FC=${FC} CC=${CC} MPIFC"=mpiifort -fc=${FC}" --enable-real=${RP}
make FCFLAGS="-O2 -stand f08 -warn errors `pkg-config --cflags json-fortran`" -j$(nproc)
NVIDIA:
if: github.event.pull_request.draft != true
needs: linting
runs-on: ${{matrix.os}}
strategy:
Expand All @@ -269,7 +288,7 @@ jobs:
precision: [dp]
include:
- os: ubuntu-20.04
setup-env: sudo apt-get update && sudo apt-get install -y autoconf automake autotools-dev make git m4 libopenblas-dev && curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg && echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list && sudo apt-get update -y && sudo apt-get install -y nvhpc-23-7 && NVARCH=`uname -s`_`uname -m`; export NVARCH && NVCOMPILERS=/opt/nvidia/hpc_sdk; export NVCOMPILERS && PATH=$NVCOMPILERS/$NVARCH/23.7/compilers/bin:$PATH; export PATH && export PATH=$NVCOMPILERS/$NVARCH/23.7/comm_libs/mpi/bin:$PATH && printenv >> $GITHUB_ENV
setup-env: sudo apt-get update && sudo apt-get install -y autoconf automake autotools-dev make git m4 libopenblas-dev && curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg && echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list && sudo apt-get update -y && sudo apt-get install -y nvhpc-24-3 && NVARCH=`uname -s`_`uname -m`; export NVARCH && NVCOMPILERS=/opt/nvidia/hpc_sdk; export NVCOMPILERS && PATH=$NVCOMPILERS/$NVARCH/24.3/compilers/bin:$PATH; export PATH && export PATH=$NVCOMPILERS/$NVARCH/24.3/comm_libs/mpi/bin:$PATH && printenv >> $GITHUB_ENV
env:
CC: gcc
FC: ${{ matrix.compiler }}
Expand All @@ -285,7 +304,7 @@ jobs:
run: ${{ matrix.setup-env }}
- name: Cache json-fortran
id: cache-json-fortran
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~/pkg/json-fortran
key: json-fortran-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}
Expand All @@ -303,7 +322,7 @@ jobs:
echo "PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:${HOME}/pkg/json-fortran/lib/pkgconfig/" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/pkg/json-fortran/lib/" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Build (CPU backend)
Expand All @@ -318,9 +337,32 @@ jobs:
run: |
git apply patches/nvhpc_bge.patch
./regen.sh
./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP} --with-cuda=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/cuda/
./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP} --with-cuda=/opt/nvidia/hpc_sdk/Linux_x86_64/24.3/cuda/
make
- name: Dist (CPU backend)
if: matrix.backend == 'cpu'
run: |
git stash
make dist
mkdir releng
tar xf neko-*.tar.gz -C releng
cd releng/neko-*
patch -u src/common/signal.f90 -i patches/nvhpc_bge.patch
./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP}
make -j $(nproc)
- name: Dist (CUDA backend)
if: matrix.backend == 'cuda'
run: |
git stash
make dist
mkdir releng
tar xf neko-*.tar.gz -C releng
cd releng/neko-*
patch -u src/common/signal.f90 -i patches/nvhpc_bge.patch
./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP} --with-cuda=/opt/nvidia/hpc_sdk/Linux_x86_64/24.3/cuda/
make -j $(nproc)
ReFrame:
if: github.event.pull_request.draft != true
needs: GNU
runs-on: ubuntu-20.04
strategy:
Expand All @@ -340,10 +382,10 @@ jobs:
- name: Setup env.
run: |
sudo apt-get update && sudo apt-get install -y openmpi-bin libopenmpi-dev autoconf automake autotools-dev libopenblas-dev make git m4 python3
pip install reframe-hpc
pip install reframe-hpc
- name: Cache json-fortran
id: cache-json-fortran
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~/pkg/json-fortran
key: json-fortran-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}
Expand All @@ -364,7 +406,7 @@ jobs:
run: |
reframe --detect-host-topology
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Regression tests
Expand Down
8 changes: 5 additions & 3 deletions .github/workflows/docsdev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,13 @@ name: Documentation (develop)
on:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '55 19 * * *'
- cron: '30 03 * * *'
# workflow_dispatch:

jobs:
build-dev-documentation:
# This workflow runs only on the official repository.
if: github.repository == 'ExtremeFLOW/neko'
runs-on: ubuntu-latest

steps:
Expand All @@ -28,7 +30,7 @@ jobs:
./regen.sh
./configure FC=${FC}
make html
# Deploy the HTML documentation to GitHub Pages
- name: GH Pages Deployment
uses: peaceiris/actions-gh-pages@v3
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Setup env.
run: |
sudo apt-get update && sudo apt-get install -y git openmpi-bin libopenmpi-dev autoconf automake autotools-dev libopenblas-dev make git m4 python3 doxygen fonts-freefont-ttf graphviz
Expand All @@ -30,13 +30,13 @@ jobs:
# Deploy the HTML documentation to GitHub Pages
- name: GH Pages Deployment
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./doc/html/
allow_empty_commit: false
force_orphan: false
publish_branch: gh-pages
destination_dir: docs
destination_dir: docs/release
keep_files: false
enable_jekyll: true
31 changes: 31 additions & 0 deletions .github/workflows/formatter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Formatting

# Controls when the action will run.
on:
# pull_request:
# branches: [develop,release/*,master]
workflow_dispatch:

jobs:
formatting:
name: "Formatter (findent)"
description: "Check if the code is formatted according to the rules"
runs-on: ubuntu-20.04
steps:
- name: Setup env.
run: |
sudo apt-get update && sudo apt-get install -yq python3-dev python3-pip python3-tk
pip install findent
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Check Format
run: |
export FINDENT_FLAGS="-i2 -d3 -f3 -s3 -w3 -t3 -j3 -k- -Rr -c3"
find src/ -name "*.f90" -exec bash -c 'findent < {} > {}.tmp; mv -f {}.tmp {}' \;
if [ "$(git diff --exit-code)" != 0 ]; then
>&2 echo "Formatting rules violated"
git diff --exit-code
exit 1
fi
Loading

0 comments on commit e01443b

Please sign in to comment.