From 92b77cb3210280315c47d18f3c87cdd2c59021bc Mon Sep 17 00:00:00 2001 From: "Michael Hirsch, Ph.D" Date: Sun, 24 Nov 2019 00:13:54 -0500 Subject: deps: add scalapack Scalapack uses a library stack that can be challenging to manage. Not least of all since many Scalapacks ship with broken / incomplete pkg-config files and CMake FindScalapack.cmake This resolves those issues for typical Scalapack setups including: * Linux: Intel MKL or OpenMPI + Netlib * MacOS: Intel MKL or OpenMPI + Netlib * Windows: Intel MKL (OpenMPI not available on Windows) --- .github/workflows/ci_frameworks.yml | 67 +++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/ci_frameworks.yml (limited to '.github/workflows') diff --git a/.github/workflows/ci_frameworks.yml b/.github/workflows/ci_frameworks.yml new file mode 100644 index 000000000..0a0ce8bb4 --- /dev/null +++ b/.github/workflows/ci_frameworks.yml @@ -0,0 +1,67 @@ +name: ci_frameworks + +on: + push: + paths: + - "mesonbuild/dependencies/**" + - "test cases/frameworks/**" + - ".github/workflows/frameworks.yml" + pull_request: + paths: + - "mesonbuild/dependencies/**" + - "test cases/frameworks/**" + - ".github/workflows/frameworks.yml" + +jobs: + + scalapack_linux: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-python@v1 + with: + python-version: '3.x' + - run: python -m pip install . + - name: install prereq + run: | + sudo apt update -yq + sudo apt install -yq --no-install-recommends pkg-config ninja-build gfortran liblapack-dev libscalapack-mpi-dev libopenmpi-dev openmpi-bin + - run: meson setup "test cases/frameworks/30 scalapack" build + env: + FC: gfortran + CC: gcc + - run: ninja -C build + - uses: actions/upload-artifact@v1 + if: failure() + with: + name: Scalpack_Linux_Build + path: build/meson-logs/meson-log.txt + - run: meson test -C build -v + - uses: actions/upload-artifact@v1 + if: failure() + with: + name: Scalapack_Linux_Test + path: build/meson-logs/testlog.txt + + scalapack_mac: + runs-on: macos-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-python@v1 + with: + python-version: '3.x' + - run: python -m pip install -e . + - run: brew install pkg-config ninja gcc openmpi lapack scalapack + - run: meson setup "test cases/frameworks/30 scalapack" build + - run: ninja -C build + - uses: actions/upload-artifact@v1 + if: failure() + with: + name: Scalapack_Mac_build + path: build/meson-logs/meson-log.txt + - run: meson test -C build -v + - uses: actions/upload-artifact@v1 + if: failure() + with: + name: Scalapack_Mac_test + path: build/meson-logs/testlog.txt -- cgit v1.2.3 From e097c22f8246bb44e356d83cd9e04d768df86030 Mon Sep 17 00:00:00 2001 From: "Michael Hirsch, Ph.D" Date: Wed, 27 Nov 2019 00:41:11 -0500 Subject: scalapack: add to Dockerfile scalapack: actions Macos --- .github/workflows/ci_frameworks.yml | 31 +------------------------------ ciimage/Dockerfile | 1 + 2 files changed, 2 insertions(+), 30 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/ci_frameworks.yml b/.github/workflows/ci_frameworks.yml index 0a0ce8bb4..44cb8432f 100644 --- a/.github/workflows/ci_frameworks.yml +++ b/.github/workflows/ci_frameworks.yml @@ -14,36 +14,7 @@ on: jobs: - scalapack_linux: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - uses: actions/setup-python@v1 - with: - python-version: '3.x' - - run: python -m pip install . - - name: install prereq - run: | - sudo apt update -yq - sudo apt install -yq --no-install-recommends pkg-config ninja-build gfortran liblapack-dev libscalapack-mpi-dev libopenmpi-dev openmpi-bin - - run: meson setup "test cases/frameworks/30 scalapack" build - env: - FC: gfortran - CC: gcc - - run: ninja -C build - - uses: actions/upload-artifact@v1 - if: failure() - with: - name: Scalpack_Linux_Build - path: build/meson-logs/meson-log.txt - - run: meson test -C build -v - - uses: actions/upload-artifact@v1 - if: failure() - with: - name: Scalapack_Linux_Test - path: build/meson-logs/testlog.txt - - scalapack_mac: + scalapackMacOS: runs-on: macos-latest steps: - uses: actions/checkout@v1 diff --git a/ciimage/Dockerfile b/ciimage/Dockerfile index 6d9550086..a98662cb0 100644 --- a/ciimage/Dockerfile +++ b/ciimage/Dockerfile @@ -27,6 +27,7 @@ RUN sed -i '/^#\sdeb-src /s/^#//' "/etc/apt/sources.list" \ && eatmydata apt-get -y install libboost-python-dev \ && eatmydata apt-get -y install libblocksruntime-dev \ && eatmydata apt-get -y install libperl-dev \ +&& eatmydata apt-get -y install liblapack-dev libscalapack-mpi-dev \ && eatmydata dub fetch urld && dub build urld --compiler=gdc \ && eatmydata dub fetch dubtestproject \ && eatmydata dub build dubtestproject:test1 --compiler=ldc2 \ -- cgit v1.2.3 From 9e6e6f5b1ced0ae361db32cb72d3b6a632b57dba Mon Sep 17 00:00:00 2001 From: "Michael Hirsch, Ph.D" Date: Sat, 30 Nov 2019 21:35:19 -0500 Subject: CI-actions: combine extra frameworks tests into one .yml file --- .github/workflows/ci_frameworks.yml | 27 +++++++++++++++++++++++-- .github/workflows/frameworks.yml | 39 ------------------------------------- 2 files changed, 25 insertions(+), 41 deletions(-) delete mode 100644 .github/workflows/frameworks.yml (limited to '.github/workflows') diff --git a/.github/workflows/ci_frameworks.yml b/.github/workflows/ci_frameworks.yml index 44cb8432f..682f5b907 100644 --- a/.github/workflows/ci_frameworks.yml +++ b/.github/workflows/ci_frameworks.yml @@ -5,12 +5,12 @@ on: paths: - "mesonbuild/dependencies/**" - "test cases/frameworks/**" - - ".github/workflows/frameworks.yml" + - ".github/workflows/ci_frameworks.yml" pull_request: paths: - "mesonbuild/dependencies/**" - "test cases/frameworks/**" - - ".github/workflows/frameworks.yml" + - ".github/workflows/ci_frameworks.yml" jobs: @@ -36,3 +36,26 @@ jobs: with: name: Scalapack_Mac_test path: build/meson-logs/testlog.txt + + HDF5macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-python@v1 + with: + python-version: '3.x' + - run: python -m pip install -e . + - run: brew install pkg-config ninja gcc hdf5 + - run: meson setup "test cases/frameworks/25 hdf5" build + - run: ninja -C build + - uses: actions/upload-artifact@v1 + if: failure() + with: + name: HDF5_Mac_build + path: build/meson-logs/meson-log.txt + - run: meson test -C build -v + - uses: actions/upload-artifact@v1 + if: failure() + with: + name: HDF5_Mac_test + path: build/meson-logs/testlog.txt diff --git a/.github/workflows/frameworks.yml b/.github/workflows/frameworks.yml deleted file mode 100644 index da57514ce..000000000 --- a/.github/workflows/frameworks.yml +++ /dev/null @@ -1,39 +0,0 @@ -# at first, we demo HDF5 framework. More can be added. -name: ci_frameworks - -on: - push: - paths: - - "mesonbuild/dependencies/**" - - "test cases/frameworks/25 hdf5" - - ".github/workflows/frameworks.yml" - pull_request: - paths: - - "mesonbuild/dependencies/**" - - "test cases/frameworks/25 hdf5" - - ".github/workflows/frameworks.yml" - -jobs: - - macosHDF5: - runs-on: macos-latest - steps: - - uses: actions/checkout@v1 - - uses: actions/setup-python@v1 - with: - python-version: '3.x' - - run: python -m pip install -e . - - run: brew install pkg-config ninja gcc hdf5 - - run: meson setup "test cases/frameworks/25 hdf5" build - - run: ninja -C build - - uses: actions/upload-artifact@v1 - if: failure() - with: - name: Mac_Log - path: build/meson-logs/meson-log.txt - - run: meson test -C build -v - - uses: actions/upload-artifact@v1 - if: failure() - with: - name: Mac_Test - path: build/meson-logs/testlog.txt -- cgit v1.2.3