Skip to content

Commit d664c1e

Browse files
authored
Merge branch 'MFlowCode:master' into BB-src
2 parents dacae37 + efc9d67 commit d664c1e

36 files changed

+609
-1199
lines changed

.github/codecov.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
coverage:
2+
status:
3+
project:
4+
default:
5+
target: 1%
6+
threshold: 1%

.github/workflows/bench.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ jobs:
3333
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
3434
steps:
3535
- name: Clone - PR
36-
uses: actions/checkout@v3
36+
uses: actions/checkout@v4
3737
with:
3838
path: pr
3939

4040
- name: Clone - Master
41-
uses: actions/checkout@v3
41+
uses: actions/checkout@v4
4242
with:
4343
repository: MFlowCode/MFC
4444
ref: master
@@ -56,7 +56,7 @@ jobs:
5656
(cd pr && ./mfc.sh bench_diff ../master/bench-${{ matrix.device }}.yaml ../pr/bench-${{ matrix.device }}.yaml)
5757
5858
- name: Archive Logs
59-
uses: actions/upload-artifact@v3
59+
uses: actions/upload-artifact@v4
6060
if: always()
6161
with:
6262
name: logs-${{ matrix.device }}

.github/workflows/cleanliness.yml

Lines changed: 120 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -3,108 +3,125 @@ name: Cleanliness
33
on: [push, pull_request, workflow_dispatch]
44

55
jobs:
6-
cleanliness:
7-
name: Code Cleanliness Test
8-
runs-on: "ubuntu-latest"
9-
env:
10-
pr_everything: 0
11-
master_everything: 0
12-
steps:
13-
- name: Clone - PR
14-
uses: actions/checkout@v3
15-
with:
16-
path: pr
17-
- name: Clone - Master
18-
uses: actions/checkout@v3
19-
with:
20-
repository: MFlowCode/MFC
21-
ref: master
22-
path: master
23-
24-
- name: Setup Ubuntu
25-
run: |
26-
sudo apt update -y
27-
sudo apt install -y tar wget make cmake gcc g++ python3 python3-dev "openmpi-*" libopenmpi-dev
28-
29-
- name: Build
30-
run: |
31-
(cd pr && /bin/bash mfc.sh build -j $(nproc) --debug 2> ../pr.txt)
32-
(cd master && /bin/bash mfc.sh build -j $(nproc) --debug 2> ../master.txt)
33-
sed -i '/\/pr\//d' pr.txt
34-
sed -i '/\/master\//d' master.txt
35-
36-
- name: Unused Variables Diff
37-
continue-on-error: true
38-
run: |
39-
grep -F 'Wunused-variable' master.txt > mUnused.txt
40-
grep -F 'Wunused-variable' pr.txt > prUnused.txt
41-
diff prUnused.txt mUnused.txt
42-
43-
- name: Unused Dummy Arguments Diff
44-
continue-on-error: true
45-
run: |
46-
grep -F 'Wunused-dummy-argument' pr.txt > prDummy.txt
47-
grep -F 'Wunused-dummy-argument' master.txt > mDummy.txt
48-
diff prDummy.txt mDummy.txt
49-
50-
- name: Unused Value Diff
51-
continue-on-error: true
52-
run: |
53-
grep -F 'Wunused-value' pr.txt > prUnused_val.txt
54-
grep -F 'Wunused-value' master.txt > mUnused_val.txt
55-
diff prUnused_val.txt mUnused_val.txt
56-
57-
- name: Maybe Uninitialized Variables Diff
58-
continue-on-error: true
59-
run: |
60-
grep -F 'Wmaybe-uninitialized' pr.txt > prMaybe.txt
61-
grep -F 'Wmaybe-uninitialized' master.txt > mMaybe.txt
62-
diff prMaybe.txt mMaybe.txt
63-
64-
65-
- name: Everything Diff
66-
continue-on-error: true
67-
run: |
68-
grep '\-W' pr.txt > pr_every.txt
69-
grep '\-W' master.txt > m_every.txt
70-
diff pr_every.txt m_every.txt
71-
72-
- name: List of Warnings
73-
run: |
74-
cat pr_every.txt
75-
76-
77-
- name: Summary
78-
continue-on-error: true
79-
run: |
80-
pr_variable=$(grep -c -F 'Wunused-variable' pr.txt)
81-
pr_argument=$(grep -c -F 'Wunused-dummy-argument' pr.txt)
82-
pr_value=$(grep -c -F 'Wunused-value' pr.txt)
83-
pr_uninit=$(grep -c -F 'Wmaybe-uninitialized' pr.txt)
84-
pr_everything=$(grep -c '\-W' pr.txt)
85-
86-
master_variable=$(grep -c -F 'Wunused-variable' master.txt)
87-
master_argument=$(grep -c -F 'Wunused-dummy-argument' master.txt)
88-
master_value=$(grep -c -F 'Wunused-value' master.txt)
89-
master_uninit=$(grep -c -F 'Wmaybe-uninitialized' master.txt)
90-
master_everything=$(grep -c '\-W' master.txt )
91-
92-
echo "pr_everything=$pr_everything" >> $GITHUB_ENV
93-
echo "master_everything=$master_everything" >> $GITHUB_ENV
94-
95-
echo "Difference is how many warnings were added or removed from master to PR."
96-
echo "Negative numbers are better since you are removing warnings."
97-
echo " "
98-
echo "Unused Variable Count: $pr_variable, Difference: $((pr_variable - master_variable))"
99-
echo "Unused Dummy Argument: $pr_argument, Difference: $((pr_argument - master_argument))"
100-
echo "Unused Value: $pr_value, Difference: $((pr_value - master_value))"
101-
echo "Maybe Uninitialized: $pr_uninit, Difference: $((pr_uninit - master_uninit))"
102-
echo "Everything: $pr_everything, Difference: $((pr_everything - master_everything))"
103-
104-
105-
- name: Check Differences
106-
if: env.pr_everything > env.master_everything
107-
run: |
108-
echo "Difference between warning count in PR is greater than in master."
6+
file-changes:
7+
name: Detect File Changes
8+
runs-on: 'ubuntu-latest'
9+
outputs:
10+
checkall: ${{ steps.changes.outputs.checkall }}
11+
steps:
12+
- name: Clone
13+
uses: actions/checkout@v4
14+
15+
- name: Detect Changes
16+
uses: dorny/paths-filter@v3
17+
id: changes
18+
with:
19+
filters: ".github/file-filter.yml"
20+
21+
cleanliness:
22+
name: Code Cleanliness Check
23+
if: needs.file-changes.outputs.checkall == 'true'
24+
needs: file-changes
25+
runs-on: "ubuntu-latest"
26+
env:
27+
pr_everything: 0
28+
master_everything: 0
29+
steps:
30+
- name: Clone - PR
31+
uses: actions/checkout@v4
32+
with:
33+
path: pr
34+
- name: Clone - Master
35+
uses: actions/checkout@v4
36+
with:
37+
repository: MFlowCode/MFC
38+
ref: master
39+
path: master
40+
41+
- name: Setup Ubuntu
42+
run: |
43+
sudo apt update -y
44+
sudo apt install -y tar wget make cmake gcc g++ python3 python3-dev "openmpi-*" libopenmpi-dev
45+
46+
- name: Build
47+
run: |
48+
(cd pr && /bin/bash mfc.sh build -j $(nproc) --debug 2> ../pr.txt)
49+
(cd master && /bin/bash mfc.sh build -j $(nproc) --debug 2> ../master.txt)
50+
sed -i '/\/pr\//d' pr.txt
51+
sed -i '/\/master\//d' master.txt
52+
53+
- name: Unused Variables Diff
54+
continue-on-error: true
55+
run: |
56+
grep -F 'Wunused-variable' master.txt > mUnused.txt
57+
grep -F 'Wunused-variable' pr.txt > prUnused.txt
58+
diff prUnused.txt mUnused.txt
59+
60+
- name: Unused Dummy Arguments Diff
61+
continue-on-error: true
62+
run: |
63+
grep -F 'Wunused-dummy-argument' pr.txt > prDummy.txt
64+
grep -F 'Wunused-dummy-argument' master.txt > mDummy.txt
65+
diff prDummy.txt mDummy.txt
66+
67+
- name: Unused Value Diff
68+
continue-on-error: true
69+
run: |
70+
grep -F 'Wunused-value' pr.txt > prUnused_val.txt
71+
grep -F 'Wunused-value' master.txt > mUnused_val.txt
72+
diff prUnused_val.txt mUnused_val.txt
73+
74+
- name: Maybe Uninitialized Variables Diff
75+
continue-on-error: true
76+
run: |
77+
grep -F 'Wmaybe-uninitialized' pr.txt > prMaybe.txt
78+
grep -F 'Wmaybe-uninitialized' master.txt > mMaybe.txt
79+
diff prMaybe.txt mMaybe.txt
80+
81+
82+
- name: Everything Diff
83+
continue-on-error: true
84+
run: |
85+
grep '\-W' pr.txt > pr_every.txt
86+
grep '\-W' master.txt > m_every.txt
87+
diff pr_every.txt m_every.txt
88+
89+
- name: List of Warnings
90+
run: |
91+
cat pr_every.txt
92+
93+
94+
- name: Summary
95+
continue-on-error: true
96+
run: |
97+
pr_variable=$(grep -c -F 'Wunused-variable' pr.txt)
98+
pr_argument=$(grep -c -F 'Wunused-dummy-argument' pr.txt)
99+
pr_value=$(grep -c -F 'Wunused-value' pr.txt)
100+
pr_uninit=$(grep -c -F 'Wmaybe-uninitialized' pr.txt)
101+
pr_everything=$(grep -c '\-W' pr.txt)
102+
103+
master_variable=$(grep -c -F 'Wunused-variable' master.txt)
104+
master_argument=$(grep -c -F 'Wunused-dummy-argument' master.txt)
105+
master_value=$(grep -c -F 'Wunused-value' master.txt)
106+
master_uninit=$(grep -c -F 'Wmaybe-uninitialized' master.txt)
107+
master_everything=$(grep -c '\-W' master.txt )
108+
109+
echo "pr_everything=$pr_everything" >> $GITHUB_ENV
110+
echo "master_everything=$master_everything" >> $GITHUB_ENV
111+
112+
echo "Difference is how many warnings were added or removed from master to PR."
113+
echo "Negative numbers are better since you are removing warnings."
114+
echo " "
115+
echo "Unused Variable Count: $pr_variable, Difference: $((pr_variable - master_variable))"
116+
echo "Unused Dummy Argument: $pr_argument, Difference: $((pr_argument - master_argument))"
117+
echo "Unused Value: $pr_value, Difference: $((pr_value - master_value))"
118+
echo "Maybe Uninitialized: $pr_uninit, Difference: $((pr_uninit - master_uninit))"
119+
echo "Everything: $pr_everything, Difference: $((pr_everything - master_everything))"
120+
121+
122+
- name: Check Differences
123+
if: env.pr_everything > env.master_everything
124+
run: |
125+
echo "Difference between warning count in PR is greater than in master."
109126
110127

.github/workflows/coverage.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ jobs:
3131
run: |
3232
sudo apt update -y
3333
sudo apt install -y tar wget make cmake gcc g++ python3 python3-dev "openmpi-*" libopenmpi-dev
34-
35-
34+
3635
- name: Build
3736
run: /bin/bash mfc.sh build -j $(nproc) --gcov
3837

@@ -42,7 +41,6 @@ jobs:
4241
- name: Upload coverage reports to Codecov
4342
uses: codecov/codecov-action@v4
4443
with:
45-
token: ${{ secrets.CODECOV_TOKEN }}
4644
fail_ci_if_error: false
4745
verbose: true
4846
env:
File renamed without changes.

.github/workflows/count.yml renamed to .github/workflows/line-count.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,25 @@ name: Check Line Counts
33
on: [push, pull_request, workflow_dispatch]
44

55
jobs:
6+
file-changes:
7+
name: Detect File Changes
8+
runs-on: 'ubuntu-latest'
9+
outputs:
10+
checkall: ${{ steps.changes.outputs.checkall }}
11+
steps:
12+
- name: Clone
13+
uses: actions/checkout@v4
14+
15+
- name: Detect Changes
16+
uses: dorny/paths-filter@v3
17+
id: changes
18+
with:
19+
filters: ".github/file-filter.yml"
20+
621
sz:
722
name: Core MFC Line Difference
23+
if: needs.file-changes.outputs.checkall == 'true'
24+
needs: file-changes
825
permissions:
926
contents: read
1027
pull-requests: write

.github/workflows/test.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ jobs:
115115
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
116116
steps:
117117
- name: Clone
118-
uses: actions/checkout@v3
118+
uses: actions/checkout@v4
119119

120120
- name: Build & Test
121121
if: matrix.lbl == 'gt'
@@ -134,8 +134,8 @@ jobs:
134134
run: cat test-${{ matrix.device }}.out
135135

136136
- name: Archive Logs
137-
uses: actions/upload-artifact@v3
137+
uses: actions/upload-artifact@v4
138138
if: always()
139139
with:
140-
name: logs
140+
name: logs-${{ strategy.job-index }}-${{ matrix.device }}
141141
path: test-${{ matrix.device }}.out

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,11 +147,11 @@ if (CMAKE_Fortran_COMPILER_ID STREQUAL "GNU")
147147
endif()
148148
elseif (CMAKE_Fortran_COMPILER_ID STREQUAL "Cray")
149149
add_compile_options(
150-
"SHELL:-h nomessage=296:878:1391:1069"
150+
"SHELL:-M 296,878,1391,1069,5025"
151151
"SHELL:-h static" "SHELL:-h keepfiles"
152152
"SHELL:-h acc_model=auto_async_none"
153153
"SHELL: -h acc_model=no_fast_addr"
154-
"SHELL: -h list=adm" "-DCRAY_ACC_SIMPLIFY" "-DCRAY_ACC_WAR"
154+
"SHELL: -h list=adm"
155155
)
156156

157157
add_link_options("SHELL:-hkeepfiles")

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2021-2024 Spencer Bryngelson, Tim Colonius
3+
Copyright (c) 2021 Spencer Bryngelson and Tim Colonius
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
66

docs/documentation/expectedPerformance.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,37 +30,38 @@ Note:
3030
| NVIDIA V100 | | GPU | 1 GPU | 0.99 | NVHPC 22.11 | GT Phoenix |
3131
| NVIDIA A30 | | GPU | 1 GPU | 1.1 | NVHPC 24.1 | GT Rogues Gallery |
3232
| AMD MI250X | | GPU | 1 _GCD_* | 1.1 | CCE 16.0.1 | OLCF Frontier |
33-
| AMD EPYC 9965 | Turin | CPU | 192 cores | 1.2 | AOCC 5.0.0 | AMD Volcano |
33+
| AMD EPYC 9965 | Turin, Zen5c | CPU | 192 cores | 1.2 | AOCC 5.0.0 | AMD Volcano |
3434
| AMD MI100 | | GPU | 1 GPU | 1.4 | CCE 16.0.1 | Cray internal system |
35+
| AMD EPYC 9755 | Turin, Zen5 | CPU | 128 cores | 1.4 | AOCC 5.0.0 | AMD Volcano |
3536
| Intel Xeon 6980P | Granite Rapids | CPU | 128 cores | 1.4 | Intel 2024.2 | Intel Endeavour |
3637
| NVIDIA L40S | FP32-only GPU | GPU | 1 GPU | 1.7 | NVHPC 24.5 | GT ICE |
37-
| AMD EPYC 9654 | Genoa | CPU | 96 cores | 1.7 | Intel 2021.9 | DOD Carpenter |
38+
| AMD EPYC 9654 | Genoa, Zen4 | CPU | 96 cores | 1.7 | Intel 2021.9 | DOD Carpenter |
3839
| Intel Xeon 6960P | Granite Rapids | CPU | 72 cores | 1.7 | Intel 2024.2 | Intel AI Cloud |
3940
| NVIDIA P100 | | GPU | 1 GPU | 2.4 | NVHPC 23.5 | GT CSE Internal |
4041
| Intel Xeon 8592+ | Emerald Rapids | CPU | 64 cores | 2.6 | Intel 2024.2 | Intel AI Cloud |
41-
| Intel Xeon 6900E | Sierra Forest Advanced, 2.8GHz Boost, 384 MiB L3 | CPU | 192 cores | 2.6 | Intel 2024.2 | Intel AI Cloud |
42-
| AMD EPYC 9534 | Genoa | CPU | 64 cores | 2.7 | GNU 12.3.0 | GT Phoenix |
42+
| Intel Xeon 6900E | Sierra Forest Adv., 2.8GHz Boost, 384 MiB L3 | CPU | 192 cores | 2.6 | Intel 2024.2 | Intel AI Cloud |
43+
| AMD EPYC 9534 | Genoa, Zen4 | CPU | 64 cores | 2.7 | GNU 12.3.0 | GT Phoenix |
4344
| NVIDIA A40 | FP32-only GPU | GPU | 1 GPU | 3.3 | NVHPC 22.11 | NCSA Delta |
4445
| Intel Xeon Max 9468 | Sapphire Rapids HBM | CPU | 48 cores | 3.5 | NVHPC 24.5 | GT Rogues Gallery |
4546
| NVIDIA Grace CPU | Arm, Neoverse V2 | CPU | 72 cores | 3.7 | NVHPC 24.1 | GT Rogues Gallery |
4647
| NVIDIA RTX6000 | FP32-only GPU | GPU | 1 GPU | 3.9 | NVHPC 22.11 | GT Phoenix |
47-
| AMD EPYC 7763 | Milan | CPU | 64 cores | 4.1 | GNU 11.4.0 | NCSA Delta |
48+
| AMD EPYC 7763 | Milan, Zen3 | CPU | 64 cores | 4.1 | GNU 11.4.0 | NCSA Delta |
4849
| Intel Xeon 6740E | Sierra Forest | CPU | 92 cores | 4.2 | Intel 2024.2 | Intel AI Cloud |
4950
| NVIDIA A10 | FP32-only GPU | GPU | 1 GPU | 4.3 | NVHPC 24.1 | TAMU Faster |
50-
| AMD EPYC 7713 | Milan | CPU | 64 cores | 5.0 | GNU 12.3.0 | GT Phoenix |
51+
| AMD EPYC 7713 | Milan, Zen3 | CPU | 64 cores | 5.0 | GNU 12.3.0 | GT Phoenix |
5152
| Intel Xeon 8480CL | Sapphire Rapids | CPU | 56 cores | 5.0 | NVHPC 24.5 | GT Phoenix |
5253
| Intel Xeon 6454S | Sapphire Rapids | CPU | 32 cores | 5.6 | NVHPC 24.5 | GT Rogues Gallery |
5354
| Intel Xeon 8462Y+ | Sapphire Rapids | CPU | 32 cores | 6.2 | GNU 12.3.0 | GT ICE |
5455
| Intel Xeon 6548Y+ | Emerald Rapids | CPU | 32 cores | 6.6 | Intel 2021.9 | GT ICE |
5556
| Intel Xeon 8352Y | Ice Lake | CPU | 32 cores | 6.6 | NVHPC 24.5 | GT Rogues Gallery |
5657
| Ampere Altra Q80-28 | Arm, Neoverse-N1 | CPU | 80 cores | 6.8 | GNU 12.2.0 | OLCF Wombat |
57-
| AMD EPYC 7513 | Milan | CPU | 32 cores | 7.4 | GNU 12.3.0 | GT ICE |
58+
| AMD EPYC 7513 | Milan, Zen3 | CPU | 32 cores | 7.4 | GNU 12.3.0 | GT ICE |
5859
| Intel Xeon 8268 | Cascade Lake | CPU | 24 cores | 7.5 | Intel 2024.2 | TAMU ACES |
59-
| AMD EPYC 7452 | Rome | CPU | 32 cores | 8.4 | GNU 12.3.0 | GT ICE |
60+
| AMD EPYC 7452 | Rome, Zen2 | CPU | 32 cores | 8.4 | GNU 12.3.0 | GT ICE |
6061
| NVIDIA T4 | FP32-only GPU | GPU | 1 GPU | 8.8 | NVHPC 24.1 | TAMU Faster |
6162
| Intel Xeon 8160 | Skylake | CPU | 24 cores | 8.9 | Intel 2024.0 | TACC Stampede3 |
6263
| IBM Power10 | | CPU | 24 cores | 10 | GNU 13.3.1 | GT Rogues Gallery |
63-
| AMD EPYC 7401 | Naples | CPU | 24 cores | 10 | GNU 10.3.1 | LLNL Corona |
64+
| AMD EPYC 7401 | Naples, Zen(1) | CPU | 24 cores | 10 | GNU 10.3.1 | LLNL Corona |
6465
| Intel Xeon 6226 | Cascade Lake | CPU | 12 cores | 17 | GNU 12.3.0 | GT ICE |
6566
| Apple M1 Max | | CPU | 10 cores | 20 | GNU 14.1.0 | N/A |
6667
| IBM Power9 | | CPU | 20 cores | 21 | GNU 9.1.0 | OLCF Summit |

0 commit comments

Comments
 (0)