Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update compatibility matrix #43

Open
wants to merge 29 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
56f36a1
install intel mkl libraries in addition to the compiler (#1)
iulusoy Sep 13, 2023
adbf96a
Update action.yml
iulusoy Sep 13, 2023
f731ad7
Update compatibility matrix (#3)
github-actions[bot] Sep 14, 2023
687069d
Update compatibility matrix (#2)
github-actions[bot] Sep 14, 2023
81c4847
V0 (#4)
iulusoy Sep 14, 2023
3dacbb4
merge
iulusoy Feb 22, 2024
2b7dceb
Merge branch 'fortran-lang-main'
iulusoy Feb 22, 2024
646b405
fix failing macos tests (#6)
iulusoy Mar 7, 2024
d712ae0
Merge branch 'fortran-lang:main' into main
iulusoy Mar 7, 2024
3b77edb
Check usage of marketplace action (#7)
iulusoy Mar 11, 2024
281d495
Sync fork (#8)
iulusoy Mar 14, 2024
20eb13d
Update compatibility matrix (#9)
github-actions[bot] Mar 18, 2024
8b18bbe
merge changes
iulusoy Mar 27, 2024
e775f91
Merge branch 'fortran-lang-main'
iulusoy Mar 27, 2024
44e8930
Create pr and sync (#10)
iulusoy Mar 29, 2024
1dc6f5a
include math branch in test trigger (#15)
iulusoy Mar 30, 2024
bcd830b
Update compatibility matrix (#17)
github-actions[bot] Apr 8, 2024
0ceb65f
Sync fork (#19)
iulusoy Apr 9, 2024
47b27ce
Update compatibility matrix (#20)
github-actions[bot] Apr 17, 2024
66ac57e
merge changes (#22)
iulusoy Apr 17, 2024
eb912f3
merge changes
iulusoy Apr 17, 2024
76d42aa
Update compatibility matrix (#26)
github-actions[bot] May 27, 2024
93652fa
Pull changes from math/main upstream (#29)
iulusoy Jun 11, 2024
547846c
remove duplicate lines
iulusoy Jun 11, 2024
cbb7f4e
Merge branch 'math' into main
iulusoy Jun 11, 2024
4408788
fix failures for ifx version 2021.1.2 (#40)
iulusoy Aug 23, 2024
0bdf874
docs(readme): order columns of the compatibility matrix (#103) (#41)
iulusoy Sep 6, 2024
c4c3c08
Get changes from compat (#42)
iulusoy Sep 6, 2024
a754b8e
Update compatibility matrix
github-actions[bot] Sep 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions .github/actions/test-mkl/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Test mkl
description: Test installation of mkl libraries
inputs:
compiler:
description: "Toolchain or compiler to install"
required: true
version:
description: "Version of toolchain or compiler"
required: true
install_mkl:
description: "If MKL should be installed along with the compiler"
required: false
default: "false"
runs:
using: "composite"
steps:
- name: Test compile and link mkl (bash)
working-directory: test
shell: bash
run: |
# check settings if mkl tests should be run
# mkl cannot be installed for 2021.5 on macos;
# and for macos-14 also not 2021.6-2021.9
mkl_tests=true
echo "$RUNNER_OS"
if [[ "${{ inputs.compiler }}" =~ "gcc" ]]; then mkl_tests=false; fi
if [[ "${{ inputs.compiler }}" =~ "lfortran" ]]; then mkl_tests=false; fi
if [[ "${{ inputs.compiler }}" =~ "nvidia" ]]; then mkl_tests=false; fi
if [[ "${{ inputs.install_mkl }}" == "false" ]]; then mkl_tests=false; fi
if [[ "${{ inputs.version }}" == "2021.5" ]] && [[ "$RUNNER_OS" == "macOS" ]]; then mkl_tests=false; fi
if [[ "$RUNNER_OS" == "macOS" ]]; then
macos_version=$(sw_vers | grep "ProductVersion")
echo "$macos_version"
if [[ "$macos_version" =~ "14." ]] && [[ "${{ inputs.version }}" == '2021.6' || "${{ inputs.version }}" == '2021.7' || "${{ inputs.version }}" == '2021.7.1' || "${{ inputs.version }}" == '2021.8' ]]; then
mkl_tests=false
fi
fi

# # now we know if we should, run the tests
if $mkl_tests; then
if [ "$RUNNER_OS" == "macOS" ]; then
MKLLIB="$MKLROOT/lib"
export DYLD_LIBRARY_PATH="$MKLLIB:$DYLD_LIBRARY_PATH"
elif [ "$RUNNER_OS" == "Linux" ]; then
MKLLIB="$MKLROOT/latest/lib/intel64"
export LD_LIBRARY_PATH="$MKLLIB:$LD_LIBRARY_PATH"
fi
linking="-L$MKLLIB -lmkl_intel_lp64 -lmkl_sequential -lmkl_core"
# hello world with blas call program
${{ env.FC }} $args $linking -o hw_mkl hw_mkl.f90
output=$(./hw_mkl '2>&1')
[[ "$output" == *"hello world 9.00000000000000"* ]] && echo "$output" || (echo "Unexpected Fortran program 'hw_mkl' output: $output"; exit 1)
rm hw_mkl
else
echo "Skipping MKL tests"
fi
16 changes: 8 additions & 8 deletions .github/compat/compat.csv
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
compiler,gcc,gcc,gcc,gcc,gcc,intel,intel,intel,intel,intel,intel,intel,intel,intel,intel,intel,intel,intel,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,lfortran,lfortran,lfortran,nvidia-hpc,nvidia-hpc,nvidia-hpc,nvidia-hpc,nvidia-hpc,nvidia-hpc,nvidia-hpc,nvidia-hpc
version,10,11,12,13,9,2021.1,2021.1.2,2021.2,2021.4,2022.0,2022.1,2022.2,2022.2.1,2023.0,2023.1,2023.2,2024.0,2024.1,2021.1,2021.1.2,2021.10,2021.11,2021.12,2021.2,2021.3,2021.4,2021.5,2021.6,2021.7,2021.7.1,2021.8,2021.9,0.31.0,0.32.0,0.33.0,20.11,21.11,22.11,23.11,23.3,23.5,23.7,23.9
version,9,10,11,12,13,2021.1,2021.1.2,2021.2,2021.4,2022.0,2022.1,2022.2,2022.2.1,2023.0,2023.1,2023.2,2024.0,2024.1,2021.1,2021.1.2,2021.2,2021.3,2021.4,2021.5,2021.6,2021.7,2021.7.1,2021.8,2021.9,2021.10,2021.11,2021.12,0.31.0,0.32.0,0.33.0,20.11,21.11,22.11,23.3,23.5,23.7,23.9,23.11
runner,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
macos-12,✓,✓,✓,✓,✓,,,,,,,,,,,,,,✓,,✓,,,✓,✓,✓,✓,✓,✓,,✓,✓,✓,✓,✓,,,,,,,,
macos-13,✓,✓,✓,✓,,,,,,,,,,,,,,,✓,,✓,,,✓,✓,✓,✓,✓,✓,,✓,✓,✓,✓,✓,,,,,,,,
macos-14,,✓,✓,✓,,,,,,,,,,,,,,,✓,,✓,,,✓,✓,✓,✓,✓,✓,,✓,✓,✓,✓,✓,,,,,,,,
ubuntu-20.04,✓,✓,,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓
ubuntu-22.04,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓
windows-2019,✓,✓,✓,✓,✓,,,,,,✓,✓,,,✓,✓,✓,✓,,,✓,✓,✓,,,,,✓,✓,,,✓,✓,✓,✓,,,,,,,,
windows-2022,✓,✓,✓,✓,✓,,,,,,✓,✓,,,✓,✓,✓,✓,,,✓,✓,✓,,,,,✓,✓,,,✓,✓,✓,✓,,,,,,,,
macos-12,✓,✓,✓,✓,✓,,,,,,,,,,,,,,✓,,✓,✓,✓,✓,✓,✓,,✓,✓,✓,,,✓,✓,✓,,,,,,,,
macos-13,,✓,✓,✓,✓,,,,,,,,,,,,,,✓,,✓,✓,✓,✓,✓,,,✓,✓,✓,,,✓,✓,✓,,,,,,,,
macos-14,,,✓,✓,✓,,,,,,,,,,,,,,✓,,✓,✓,✓,✓,✓,✓,,✓,✓,✓,,,✓,✓,✓,,,,,,,,
ubuntu-20.04,✓,✓,✓,,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓
ubuntu-22.04,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓,✓
windows-2019,✓,✓,✓,✓,✓,,,,,,✓,✓,,,✓,✓,✓,✓,,,,,,,✓,✓,,,✓,✓,✓,✓,✓,✓,✓,,,,,,,,
windows-2022,✓,✓,✓,✓,✓,,,,,,✓,✓,,,✓,✓,✓,✓,,,,,,,✓,✓,,,✓,✓,✓,✓,✓,✓,✓,,,,,,,,
13 changes: 9 additions & 4 deletions .github/compat/long_compat.csv
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ macos-12,gcc,9,✓
macos-12,intel-classic,2021.1.2,
macos-12,intel-classic,2021.1,✓
macos-12,intel-classic,2021.10,✓
macos-12,intel-classic,2021.11,
macos-12,intel-classic,2021.12,
macos-12,intel-classic,2021.2,✓
macos-12,intel-classic,2021.3,✓
macos-12,intel-classic,2021.4,✓
Expand All @@ -26,13 +28,15 @@ macos-13,gcc,13,✓
macos-13,intel-classic,2021.1.2,
macos-13,intel-classic,2021.1,✓
macos-13,intel-classic,2021.10,✓
macos-13,intel-classic,2021.11,
macos-13,intel-classic,2021.12,
macos-13,intel-classic,2021.2,✓
macos-13,intel-classic,2021.3,✓
macos-13,intel-classic,2021.4,✓
macos-13,intel-classic,2021.5,✓
macos-13,intel-classic,2021.6,✓
macos-13,intel-classic,2021.7.1,
macos-13,intel-classic,2021.7,✓
macos-13,intel-classic,2021.7,
macos-13,intel-classic,2021.8,✓
macos-13,intel-classic,2021.9,✓
macos-13,lfortran,0.31.0,✓
Expand All @@ -44,6 +48,8 @@ macos-14,gcc,13,✓
macos-14,intel-classic,2021.1.2,
macos-14,intel-classic,2021.1,✓
macos-14,intel-classic,2021.10,✓
macos-14,intel-classic,2021.11,
macos-14,intel-classic,2021.12,
macos-14,intel-classic,2021.2,✓
macos-14,intel-classic,2021.3,✓
macos-14,intel-classic,2021.4,✓
Expand Down Expand Up @@ -96,8 +102,6 @@ ubuntu-20.04,nvidia-hpc,20.7,
ubuntu-20.04,nvidia-hpc,20.9,
ubuntu-20.04,nvidia-hpc,21.1,
ubuntu-20.04,nvidia-hpc,21.11,✓
ubuntu-20.04,nvidia-hpc,21.3,
ubuntu-20.04,nvidia-hpc,21.5,
ubuntu-20.04,nvidia-hpc,21.7,
ubuntu-20.04,nvidia-hpc,21.9,
ubuntu-20.04,nvidia-hpc,22.1,
Expand Down Expand Up @@ -153,12 +157,13 @@ ubuntu-22.04,nvidia-hpc,20.7,
ubuntu-22.04,nvidia-hpc,20.9,
ubuntu-22.04,nvidia-hpc,21.1,
ubuntu-22.04,nvidia-hpc,21.11,✓
ubuntu-22.04,nvidia-hpc,21.9,
ubuntu-22.04,nvidia-hpc,22.1,
ubuntu-22.04,nvidia-hpc,22.11,✓
ubuntu-22.04,nvidia-hpc,22.2,
ubuntu-22.04,nvidia-hpc,22.3,
ubuntu-22.04,nvidia-hpc,22.5,
ubuntu-22.04,nvidia-hpc,22.7,
ubuntu-22.04,nvidia-hpc,22.9,
ubuntu-22.04,nvidia-hpc,23.1,
ubuntu-22.04,nvidia-hpc,23.11,✓
ubuntu-22.04,nvidia-hpc,23.3,✓
Expand Down
18 changes: 17 additions & 1 deletion .github/compat/wide_compat_reports.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
# read long CSV
df = pd.read_csv(ip)

# pivot and sort
# pivot and sort by runners
df = pd.pivot_table(
df,
index="runner",
Expand All @@ -26,6 +26,22 @@
aggfunc="first",
).sort_values(by=["runner"])


# group by compiler and sort by versions
grouped_versions = {}
for compiler in df.columns.get_level_values("compiler").unique():
versions = df.loc[:, (compiler,)].columns.get_level_values("version").unique()
versions = sorted(versions, key=lambda version: tuple(map(int, version.split("."))))
grouped_versions[compiler] = versions

sorted_columns = []
for compiler in grouped_versions:
sorted_columns.extend(
[(compiler, version) for version in grouped_versions[compiler]]
)

df = df[sorted_columns]

# write wide CSV
df.to_csv(op)

Expand Down
13 changes: 13 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ on:
branches:
- main
- develop*
- math
paths-ignore:
- '**.md'
schedule:
Expand Down Expand Up @@ -74,6 +75,7 @@ jobs:
with:
compiler: ${{ matrix.toolchain.compiler }}
version: ${{ matrix.toolchain.version }}
install_mkl: true

# - name: Debug with tmate
# uses: mxschmitt/action-tmate@v3
Expand All @@ -85,6 +87,17 @@ jobs:
compiler: ${{ matrix.toolchain.compiler }}
version: ${{ matrix.toolchain.version }}

- name: Test MKL libraries
# we could also exclude 2021.5 for all macos versions here
# this needs refactoring at some point - should the install
# fail if no mkl version exists?
if: steps.setup-fortran.outcome == 'success' && runner.os != 'windows'
uses: ./.github/actions/test-mkl
with:
compiler: ${{ matrix.toolchain.compiler }}
version: ${{ matrix.toolchain.version }}
install_mkl: true

- name: Test C compiler
continue-on-error: true
if: needs.options.outputs.mode == 'report' && steps.setup-fortran.outcome == 'success'
Expand Down
Loading