From 8d022ab863df83f0ff511cd83eeea7fc48127ef1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=BCller?= Date: Wed, 31 Jul 2024 17:35:23 +0200 Subject: [PATCH 01/11] update GH workflow to more recent Python version and Intel env vars MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcel Müller --- .github/workflows/build.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3e25bccd..b4fd28e7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -58,14 +58,14 @@ jobs: FC: ${{ matrix.compiler == 'intel' && 'ifort' || 'gfortran' }} CC: ${{ matrix.compiler == 'intel' && 'icc' || 'gcc' }} GCC_V: ${{ matrix.version }} - PYTHON_V: 3.8 + PYTHON_V: 3.9 OMP_NUM_THREADS: 1,2,1 steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - - uses: actions/setup-python@v1 + - uses: actions/setup-python@v5 with: python-version: ${{ env.PYTHON_V }} @@ -176,7 +176,6 @@ jobs: if: ${{ matrix.compiler == 'intel' }} run: | source /opt/intel/oneapi/setvars.sh - source /opt/intel/oneapi/compiler/2024.0/env/vars.sh printenv >> $GITHUB_ENV - name: Install build and test dependencies From 32177d94512c68be4b44e66b53eb8d5a990951e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=BCller?= Date: Wed, 31 Jul 2024 17:48:59 +0200 Subject: [PATCH 02/11] fix intel compiler version and increase gcc version for macOS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcel Müller --- .github/workflows/build.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b4fd28e7..f4b97728 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,7 +5,7 @@ on: [push, pull_request] env: BUILD_DIR: _build PIP_PACKAGES: >- - meson==0.55 + meson cmake ninja gcovr @@ -14,10 +14,10 @@ env: MACOS_HPCKIT_URL: >- https://registrationcenter-download.intel.com/akdlm/irc_nas/17890/m_HPCKit_p_2021.3.0.3226_offline.dmg LINUX_INTEL_COMPONENTS: >- - intel-oneapi-compiler-fortran - intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic - intel-oneapi-mkl - intel-oneapi-mkl-devel + intel-oneapi-compiler-fortran-2021.2.0 + intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2021.2.0 + intel-oneapi-mkl-2021.2.0 + intel-oneapi-mkl-devel-2021.2.0 jobs: build: @@ -29,14 +29,14 @@ jobs: build: [meson, cmake] build-type: [debug] compiler: [gnu] - version: [10] + version: [11] include: - os: ubuntu-latest build: meson build-type: coverage compiler: gnu - version: 10 + version: 11 - os: windows-latest build: meson From 8b4c86ffc46358874eee91b18cc06f07b806321b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=BCller?= Date: Wed, 31 Jul 2024 18:07:34 +0200 Subject: [PATCH 03/11] remove unnecessary brew install and take appropriate gfortran version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcel Müller --- .github/workflows/build.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f4b97728..5a825ca1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,7 +29,7 @@ jobs: build: [meson, cmake] build-type: [debug] compiler: [gnu] - version: [11] + version: [12] include: - os: ubuntu-latest @@ -69,13 +69,13 @@ jobs: with: python-version: ${{ env.PYTHON_V }} - - name: Install GCC (OSX) + - name: Link pre-installed GCC and FC (macOS) if: ${{ contains(matrix.os, 'macos') && matrix.compiler == 'gnu' }} run: | - brew install gcc@${{ env.GCC_V }} - ln -s /usr/local/bin/gfortran-${{ env.GCC_V }} /usr/local/bin/gfortran - ln -s /usr/local/bin/gcc-${{ env.GCC_V }} /usr/local/bin/gcc - ln -s /usr/local/bin/g++-${{ env.GCC_V }} /usr/local/bin/g++ + alias gfortran=gfortran-${{ env.GCC_V }} + alias gcc=gcc-${{ env.GCC_V }} + export FC=gfortran-${{ env.GCC_V }} + export CC=gcc-${{ env.GCC_V }} - name: Install GCC (Linux) if: ${{ contains(matrix.os, 'ubuntu') && matrix.compiler == 'gnu' }} From 93a82457b16a5cd78ac3a1e9e33450412a0392f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=BCller?= Date: Wed, 31 Jul 2024 18:12:21 +0200 Subject: [PATCH 04/11] check gfortran version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcel Müller --- .github/workflows/build.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5a825ca1..deb939f1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -186,6 +186,12 @@ jobs: if: ${{ contains(matrix.os, 'windows') }} run: pip3 install meson==0.55 + - name: Check gfortran version (meson) + if: ${{ matrix.build == 'meson' }} + run: | + gfortran --version + which gfortran + - name: Configure build (meson) if: ${{ matrix.build == 'meson' }} run: >- From cc1b088e89b06e4be2c9fb8a989c052bddd3c3c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=BCller?= Date: Wed, 31 Jul 2024 18:15:45 +0200 Subject: [PATCH 05/11] add brew install command back again MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcel Müller --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index deb939f1..0c67ae44 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,6 +72,7 @@ jobs: - name: Link pre-installed GCC and FC (macOS) if: ${{ contains(matrix.os, 'macos') && matrix.compiler == 'gnu' }} run: | + brew install gfortran@${{ env.GCC_V }} alias gfortran=gfortran-${{ env.GCC_V }} alias gcc=gcc-${{ env.GCC_V }} export FC=gfortran-${{ env.GCC_V }} From 6e0297f1e1ead38d3fa292a871031447de398d20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=BCller?= Date: Wed, 31 Jul 2024 18:18:17 +0200 Subject: [PATCH 06/11] check only for present gfortran versions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcel Müller --- .github/workflows/build.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0c67ae44..04dc9b7e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,9 +72,7 @@ jobs: - name: Link pre-installed GCC and FC (macOS) if: ${{ contains(matrix.os, 'macos') && matrix.compiler == 'gnu' }} run: | - brew install gfortran@${{ env.GCC_V }} - alias gfortran=gfortran-${{ env.GCC_V }} - alias gcc=gcc-${{ env.GCC_V }} + which gfortran-${{ env.GCC_V }} export FC=gfortran-${{ env.GCC_V }} export CC=gcc-${{ env.GCC_V }} From 104205a9bf2dcc73d5954e94afff197177727c14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=BCller?= Date: Wed, 31 Jul 2024 18:22:48 +0200 Subject: [PATCH 07/11] correct alias for pre-installed gfortran and gcc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcel Müller --- .github/workflows/build.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 04dc9b7e..90022691 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,9 +72,12 @@ jobs: - name: Link pre-installed GCC and FC (macOS) if: ${{ contains(matrix.os, 'macos') && matrix.compiler == 'gnu' }} run: | - which gfortran-${{ env.GCC_V }} - export FC=gfortran-${{ env.GCC_V }} - export CC=gcc-${{ env.GCC_V }} + gfortran_path=$( which gfortran-${{ env.GCC_V }} ) + gcc_path=$( which gcc-${{ env.GCC_V }} ) + export FC=$gfortran_path + export CC=$gcc_path + alias gfortran=$gfortran_path + alias gcc=$gcc_path - name: Install GCC (Linux) if: ${{ contains(matrix.os, 'ubuntu') && matrix.compiler == 'gnu' }} @@ -185,8 +188,8 @@ jobs: if: ${{ contains(matrix.os, 'windows') }} run: pip3 install meson==0.55 - - name: Check gfortran version (meson) - if: ${{ matrix.build == 'meson' }} + - name: Check gfortran version for meson build + if: ${{ matrix.build == 'meson' && matrix.compiler == 'gnu' }} run: | gfortran --version which gfortran From 66b547486825c6bc3f6097cd3ff4a591f900841f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=BCller?= Date: Wed, 31 Jul 2024 18:32:45 +0200 Subject: [PATCH 08/11] use symbolic link instead of alias MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcel Müller --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 90022691..f698f66a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -76,8 +76,8 @@ jobs: gcc_path=$( which gcc-${{ env.GCC_V }} ) export FC=$gfortran_path export CC=$gcc_path - alias gfortran=$gfortran_path - alias gcc=$gcc_path + ln -s $gfortran_path /usr/local/bin/gfortran + ln -s $gcc_path /usr/local/bin/gcc - name: Install GCC (Linux) if: ${{ contains(matrix.os, 'ubuntu') && matrix.compiler == 'gnu' }} From 016c7a4f25dd90bd77e1d7a15900c7133606d371 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=BCller?= Date: Wed, 31 Jul 2024 18:38:30 +0200 Subject: [PATCH 09/11] install openblas for lapack MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcel Müller --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f698f66a..35ae9ead 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,6 +72,7 @@ jobs: - name: Link pre-installed GCC and FC (macOS) if: ${{ contains(matrix.os, 'macos') && matrix.compiler == 'gnu' }} run: | + brew install openblas gfortran_path=$( which gfortran-${{ env.GCC_V }} ) gcc_path=$( which gcc-${{ env.GCC_V }} ) export FC=$gfortran_path From 9a0798c1871dc591afabf2128c88ccec9870e0eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=BCller?= Date: Wed, 31 Jul 2024 18:57:49 +0200 Subject: [PATCH 10/11] use openBLAS instead of Accelerate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcel Müller --- .github/workflows/build.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 35ae9ead..8159219d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -75,10 +75,14 @@ jobs: brew install openblas gfortran_path=$( which gfortran-${{ env.GCC_V }} ) gcc_path=$( which gcc-${{ env.GCC_V }} ) + gplusplus_path=$( which g++-${{ env.GCC_V }} ) export FC=$gfortran_path export CC=$gcc_path + export CXX=$gplusplus_path ln -s $gfortran_path /usr/local/bin/gfortran ln -s $gcc_path /usr/local/bin/gcc + ln -s $gplusplus_path /usr/local/bin/g++ + echo "PKG_CONFIG_PATH=/usr/local/opt/openblas/lib/pkgconfig" >> $GITHUB_ENV - name: Install GCC (Linux) if: ${{ contains(matrix.os, 'ubuntu') && matrix.compiler == 'gnu' }} @@ -207,7 +211,9 @@ jobs: ${{ env.MESON_ARGS }} env: COVERAGE: ${{ matrix.build-type == 'coverage' }} - MESON_ARGS: ${{ matrix.compiler == 'intel' && '-Dfortran_link_args=-qopenmp' || '' }} + MESON_ARGS: >- + ${{ matrix.compiler == 'intel' && '-Dfortran_link_args=-qopenmp' || '' }} + ${{ contains(matrix.os, 'macos') && '-Dlapack=openblas' || '' }} - name: Configure build (CMake) if: ${{ matrix.build == 'cmake' }} From ddc1fdd80da4a15d2c1ed62fefadc1aea2daba4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=BCller?= Date: Wed, 31 Jul 2024 19:03:17 +0200 Subject: [PATCH 11/11] add some more compiler flags to find openblas MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcel Müller --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8159219d..b2d9ad7f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -83,6 +83,8 @@ jobs: ln -s $gcc_path /usr/local/bin/gcc ln -s $gplusplus_path /usr/local/bin/g++ echo "PKG_CONFIG_PATH=/usr/local/opt/openblas/lib/pkgconfig" >> $GITHUB_ENV + echo "LDFLAGS=-L/opt/homebrew/opt/openblas/lib" >> $GITHUB_ENV + echo "CPPFLAGS=-I/opt/homebrew/opt/openblas/include" >> $GITHUB_ENV - name: Install GCC (Linux) if: ${{ contains(matrix.os, 'ubuntu') && matrix.compiler == 'gnu' }}