Skip to content

Commit e01443b

Browse files
authored
Merge pull request #1229 from ExtremeFLOW/release/0.8
NEKO v0.8.0
2 parents 6f5c7fa + c3650f5 commit e01443b

File tree

486 files changed

+31689
-11689
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

486 files changed

+31689
-11689
lines changed

.github/workflows/citation.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
on:
2+
# push:
3+
# paths:
4+
# - CITATION.cff
5+
workflow_dispatch:
6+
7+
name: CITATION.cff
8+
jobs:
9+
Validate-CITATION-cff:
10+
runs-on: ubuntu-latest
11+
name: Validate CITATION.cff
12+
env:
13+
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
14+
15+
steps:
16+
- name: Checkout
17+
uses: actions/checkout@v3
18+
19+
- name: Validate CITATION.cff
20+
uses: dieghernan/cff-validator@v3

.github/workflows/develop.yml

Lines changed: 72 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,54 @@
11
name: develop
22

3-
# Controls when the action will run.
3+
# Controls when the action will run.
44
on:
55
pull_request:
66
branches: [develop,release/*]
7+
types:
8+
- opened
9+
- synchronize
10+
- reopened
11+
- ready_for_review
712
workflow_dispatch:
8-
13+
914
jobs:
15+
is_draft:
16+
name: Check if PR is a draft
17+
if: github.event.pull_request.draft == true
18+
19+
runs-on: ubuntu-latest
20+
steps:
21+
- name: Check if PR is a draft
22+
run: echo "This PR is a draft"
23+
1024
linting:
1125
name: "Flint"
26+
if: github.event.pull_request.draft != true
1227
runs-on: ubuntu-20.04
1328
steps:
1429
- name: Setup env.
1530
run: |
1631
sudo apt-get update && sudo apt-get install -yq python3-dev python3-pip python3-tk
1732
pip install nobvisual==0.2.0 flinter==0.4.0
1833
- name: Checkout
19-
uses: actions/checkout@v3
34+
uses: actions/checkout@v4
2035
with:
2136
fetch-depth: 1
2237
- name: Lint
2338
run: |
2439
flint score src/ -d 10 -r flinter_rc.yml | tee flint.txt
2540
score=$(awk '$1==0{print $3}' flint.txt)
26-
if (( $(echo "$score < 8.13" |bc -l) )) ; then
41+
if (( $(echo "$score < 8.06" |bc -l) )) ; then
2742
exit 1
2843
fi
2944
- name: Archive linter report
30-
uses: actions/upload-artifact@v3
45+
uses: actions/upload-artifact@v4
3146
with:
3247
name: flint-report
3348
path: flint.txt
3449
retention-days: 5
3550
GNU:
51+
if: github.event.pull_request.draft != true
3652
needs: linting
3753
runs-on: ${{matrix.os}}
3854
strategy:
@@ -58,7 +74,7 @@ jobs:
5874
include:
5975
- os: ubuntu-20.04
6076
setup-env: |
61-
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
77+
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
6278
- os: macos-13
6379
setup-env: export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 && brew install openmpi && brew install automake && brew install gcc@11 && brew install gcc@12
6480
env:
@@ -74,7 +90,7 @@ jobs:
7490
run: ${{ matrix.setup-env }}
7591
- name: Cache pFUnit
7692
id: cache-pfunit
77-
uses: actions/cache@v3
93+
uses: actions/cache@v4
7894
with:
7995
path: ~/pkg/pfunit
8096
key: pfunit-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}
@@ -96,14 +112,14 @@ jobs:
96112
+ error stop '*** Encountered 1 or more failures/errors during testing. ***'
97113
#endif
98114
end if
99-
115+
100116
_ACEOF
101117
git apply pfunit_error_stop.patch && mkdir b && cd b
102118
cmake -DCMAKE_INSTALL_PREFIX=${HOME}/pkg/pfunit ..
103119
make -j$(nproc) && make install && cd ../../
104120
- name: Cache json-fortran
105121
id: cache-json-fortran
106-
uses: actions/cache@v3
122+
uses: actions/cache@v4
107123
with:
108124
path: ~/pkg/json-fortran
109125
key: json-fortran-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}
@@ -121,36 +137,36 @@ jobs:
121137
echo "PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:${HOME}/pkg/json-fortran/lib/pkgconfig/" >> $GITHUB_ENV
122138
echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/pkg/json-fortran/lib/" >> $GITHUB_ENV
123139
- name: Checkout
124-
uses: actions/checkout@v3
140+
uses: actions/checkout@v4
125141
with:
126142
fetch-depth: 1
127143
- name: Build (CPU backend)
128144
if: matrix.backend == 'cpu'
129145
run: |
130146
echo $PKG_CONFIG_PATH
131-
./regen.sh
147+
./regen.sh
132148
./configure FC=${FC} FCFLAGS="-O2 -pedantic -std=f2008" --with-pfunit=${HOME}/pkg/pfunit/PFUNIT-4.4 --enable-real=${RP}
133149
make -j$(nproc)
134-
- name: Build (CUDA backend)
150+
- name: Build (CUDA backend)
135151
if: matrix.backend == 'cuda'
136152
run: |
137153
sudo apt-get install -y nvidia-cuda-toolkit
138-
./regen.sh
154+
./regen.sh
139155
./configure FC=${FC} FCFLAGS="-O2 -pedantic -std=f2008" --enable-real=${RP} --with-cuda=/usr
140156
make -j$(nproc)
141-
- name: Build (HIP backend)
157+
- name: Build (HIP backend)
142158
if: matrix.backend == 'HIP'
143159
run: |
144160
wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add -
145161
echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/debian/ ubuntu main' | sudo tee /etc/apt/sources.list.d/rocm.list
146162
sudo apt-get update && sudo apt-get install -y rocm-dev
147-
./regen.sh
148-
./configure FC=${FC} FCFLAGS="-O2 -pedantic -std=f2008" HIP_HIPCC_FLAGS="-O2 -fPIE" --enable-real=${RP} --with-hip=/opt/rocm-6.0.0
163+
./regen.sh
164+
./configure FC=${FC} FCFLAGS="-O2 -pedantic -std=f2008" HIP_HIPCC_FLAGS="-O2 -fPIE" --enable-real=${RP} --with-hip=/opt/rocm-6.1.2
149165
make -j$(nproc)
150166
- name: Build (OpenCL backend)
151167
if: matrix.backend == 'opencl'
152168
run: |
153-
./regen.sh
169+
./regen.sh
154170
./configure FC=${FC} FCFLAGS="-O2 -pedantic -std=f2008" --enable-real=${RP} --with-opencl
155171
make -j$(nproc)
156172
- name: Check
@@ -190,7 +206,7 @@ jobs:
190206
mkdir releng
191207
tar xf neko-*.tar.gz -C releng
192208
cd releng/neko-*
193-
./configure FC=${FC} FCFLAGS="-fPIE" --enable-real=${RP} HIP_HIPCC_FLAGS="-O2 -fPIE" --with-hip=/opt/rocm-6.0.0
209+
./configure FC=${FC} FCFLAGS="-fPIE" --enable-real=${RP} HIP_HIPCC_FLAGS="-O2 -fPIE" --with-hip=/opt/rocm-6.1.2
194210
make -j $(nproc)
195211
- name: Dist (OpenCL backend)
196212
if: matrix.backend == 'opencl'
@@ -201,8 +217,9 @@ jobs:
201217
cd releng/neko-*
202218
./configure FC=${FC} --enable-real=${RP} --with-opencl
203219
make -j $(nproc)
204-
220+
205221
Intel:
222+
if: github.event.pull_request.draft != true
206223
needs: linting
207224
runs-on: ${{matrix.os}}
208225
strategy:
@@ -218,7 +235,8 @@ jobs:
218235
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
219236
source /opt/intel/oneapi/setvars.sh
220237
sudo apt install -y autoconf automake autotools-dev libopenblas-dev make git m4 python3 ca-certificates cmake
221-
export PATH=/opt/intel/oneapi/compiler/2024.0/bin:${PATH}
238+
INTEL_PATH=$(find /opt/intel/oneapi/compiler/ -name "${FC}" -type f | xargs dirname)
239+
export PATH=$INTEL_PATH:${PATH}
222240
printenv >> $GITHUB_ENV
223241
env:
224242
CC: icc
@@ -230,7 +248,7 @@ jobs:
230248
run: ${{ matrix.setup-env }}
231249
- name: Cache json-fortran
232250
id: cache-json-fortran
233-
uses: actions/cache@v3
251+
uses: actions/cache@v4
234252
with:
235253
path: ~/pkg/json-fortran
236254
key: json-fortran-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}
@@ -248,16 +266,17 @@ jobs:
248266
echo "PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:${HOME}/pkg/json-fortran/lib/pkgconfig/" >> $GITHUB_ENV
249267
echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/pkg/json-fortran/lib/" >> $GITHUB_ENV
250268
- name: Checkout
251-
uses: actions/checkout@v3
269+
uses: actions/checkout@v4
252270
with:
253271
fetch-depth: 1
254272
- name: Build
255273
run: |
256274
echo $PKG_CONFIG_PATH
257275
./regen.sh
258-
./configure FC=${FC} CC=${CC} MPIFC"=mpiifort -fc=${FC}" --enable-real=${RP}
276+
./configure FC=${FC} CC=${CC} MPIFC"=mpiifort -fc=${FC}" --enable-real=${RP}
259277
make FCFLAGS="-O2 -stand f08 -warn errors `pkg-config --cflags json-fortran`" -j$(nproc)
260278
NVIDIA:
279+
if: github.event.pull_request.draft != true
261280
needs: linting
262281
runs-on: ${{matrix.os}}
263282
strategy:
@@ -269,7 +288,7 @@ jobs:
269288
precision: [dp]
270289
include:
271290
- os: ubuntu-20.04
272-
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
291+
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
273292
env:
274293
CC: gcc
275294
FC: ${{ matrix.compiler }}
@@ -285,7 +304,7 @@ jobs:
285304
run: ${{ matrix.setup-env }}
286305
- name: Cache json-fortran
287306
id: cache-json-fortran
288-
uses: actions/cache@v3
307+
uses: actions/cache@v4
289308
with:
290309
path: ~/pkg/json-fortran
291310
key: json-fortran-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}
@@ -303,7 +322,7 @@ jobs:
303322
echo "PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:${HOME}/pkg/json-fortran/lib/pkgconfig/" >> $GITHUB_ENV
304323
echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/pkg/json-fortran/lib/" >> $GITHUB_ENV
305324
- name: Checkout
306-
uses: actions/checkout@v3
325+
uses: actions/checkout@v4
307326
with:
308327
fetch-depth: 1
309328
- name: Build (CPU backend)
@@ -318,9 +337,32 @@ jobs:
318337
run: |
319338
git apply patches/nvhpc_bge.patch
320339
./regen.sh
321-
./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP} --with-cuda=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/cuda/
340+
./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP} --with-cuda=/opt/nvidia/hpc_sdk/Linux_x86_64/24.3/cuda/
322341
make
342+
- name: Dist (CPU backend)
343+
if: matrix.backend == 'cpu'
344+
run: |
345+
git stash
346+
make dist
347+
mkdir releng
348+
tar xf neko-*.tar.gz -C releng
349+
cd releng/neko-*
350+
patch -u src/common/signal.f90 -i patches/nvhpc_bge.patch
351+
./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP}
352+
make -j $(nproc)
353+
- name: Dist (CUDA backend)
354+
if: matrix.backend == 'cuda'
355+
run: |
356+
git stash
357+
make dist
358+
mkdir releng
359+
tar xf neko-*.tar.gz -C releng
360+
cd releng/neko-*
361+
patch -u src/common/signal.f90 -i patches/nvhpc_bge.patch
362+
./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP} --with-cuda=/opt/nvidia/hpc_sdk/Linux_x86_64/24.3/cuda/
363+
make -j $(nproc)
323364
ReFrame:
365+
if: github.event.pull_request.draft != true
324366
needs: GNU
325367
runs-on: ubuntu-20.04
326368
strategy:
@@ -340,10 +382,10 @@ jobs:
340382
- name: Setup env.
341383
run: |
342384
sudo apt-get update && sudo apt-get install -y openmpi-bin libopenmpi-dev autoconf automake autotools-dev libopenblas-dev make git m4 python3
343-
pip install reframe-hpc
385+
pip install reframe-hpc
344386
- name: Cache json-fortran
345387
id: cache-json-fortran
346-
uses: actions/cache@v3
388+
uses: actions/cache@v4
347389
with:
348390
path: ~/pkg/json-fortran
349391
key: json-fortran-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}
@@ -364,7 +406,7 @@ jobs:
364406
run: |
365407
reframe --detect-host-topology
366408
- name: Checkout
367-
uses: actions/checkout@v3
409+
uses: actions/checkout@v4
368410
with:
369411
fetch-depth: 1
370412
- name: Regression tests

.github/workflows/docsdev.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ name: Documentation (develop)
33
on:
44
schedule:
55
# * is a special character in YAML so you have to quote this string
6-
- cron: '55 19 * * *'
6+
- cron: '30 03 * * *'
77
# workflow_dispatch:
8-
8+
99
jobs:
1010
build-dev-documentation:
11+
# This workflow runs only on the official repository.
12+
if: github.repository == 'ExtremeFLOW/neko'
1113
runs-on: ubuntu-latest
1214

1315
steps:
@@ -28,7 +30,7 @@ jobs:
2830
./regen.sh
2931
./configure FC=${FC}
3032
make html
31-
33+
3234
# Deploy the HTML documentation to GitHub Pages
3335
- name: GH Pages Deployment
3436
uses: peaceiris/actions-gh-pages@v3

.github/workflows/documentation.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
runs-on: ubuntu-latest
1111

1212
steps:
13-
- uses: actions/checkout@v2
13+
- uses: actions/checkout@v4
1414
- name: Setup env.
1515
run: |
1616
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
@@ -30,13 +30,13 @@ jobs:
3030
3131
# Deploy the HTML documentation to GitHub Pages
3232
- name: GH Pages Deployment
33-
uses: peaceiris/actions-gh-pages@v3
33+
uses: peaceiris/actions-gh-pages@v4
3434
with:
3535
github_token: ${{ secrets.GITHUB_TOKEN }}
3636
publish_dir: ./doc/html/
3737
allow_empty_commit: false
3838
force_orphan: false
3939
publish_branch: gh-pages
40-
destination_dir: docs
40+
destination_dir: docs/release
4141
keep_files: false
4242
enable_jekyll: true

.github/workflows/formatter.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Formatting
2+
3+
# Controls when the action will run.
4+
on:
5+
# pull_request:
6+
# branches: [develop,release/*,master]
7+
workflow_dispatch:
8+
9+
jobs:
10+
formatting:
11+
name: "Formatter (findent)"
12+
description: "Check if the code is formatted according to the rules"
13+
runs-on: ubuntu-20.04
14+
steps:
15+
- name: Setup env.
16+
run: |
17+
sudo apt-get update && sudo apt-get install -yq python3-dev python3-pip python3-tk
18+
pip install findent
19+
- name: Checkout
20+
uses: actions/checkout@v3
21+
with:
22+
fetch-depth: 1
23+
- name: Check Format
24+
run: |
25+
export FINDENT_FLAGS="-i2 -d3 -f3 -s3 -w3 -t3 -j3 -k- -Rr -c3"
26+
find src/ -name "*.f90" -exec bash -c 'findent < {} > {}.tmp; mv -f {}.tmp {}' \;
27+
if [ "$(git diff --exit-code)" != 0 ]; then
28+
>&2 echo "Formatting rules violated"
29+
git diff --exit-code
30+
exit 1
31+
fi

0 commit comments

Comments
 (0)