Skip to content

Fix arpack solver

Fix arpack solver #456

Workflow file for this run

name: arpack-ng
on: [push, pull_request]
jobs:
ubuntu_latest_cmake:
runs-on: ubuntu-latest
steps:
- name: Clone and check out repository code
uses: actions/checkout@v2
with:
fetch-depth: 0
ref: ${{github.event.pull_request.head.ref}} # Branch where changes are implemented.
repository: ${{github.event.pull_request.head.repo.full_name}} # Repo where changes are implemented.
- name: Check commit
run: |
git log -1
- name: Update OS
run: sudo apt-get update
- name: Install apt-get dependencies
run: sudo apt-get install -y gfortran gcc g++ openmpi-bin libopenmpi-dev libblas-dev liblapack-dev libeigen3-dev cmake
- name: Run job
run: |
mkdir build
cd build
cmake -DEXAMPLES=ON -DMPI=ON -DICB=ON -DEIGEN=ON ..
make all
cd ./EXAMPLES/MATRIX_MARKET;
bash arpackmm.sh
#CTEST_OUTPUT_ON_FAILURE=1 make test
#make package_source
# ubuntu_latest_cmake_install:
# runs-on: ubuntu-latest
# steps:
# - name: Clone and check out repository code
# uses: actions/checkout@v2
# with:
# fetch-depth: 0
# ref: ${{github.event.pull_request.head.ref}} # Branch where changes are implemented.
# repository: ${{github.event.pull_request.head.repo.full_name}} # Repo where changes are implemented.
# - name: Check commit
# run: |
# git log -1
# - name: Update OS
# run: sudo apt-get update
# - name: Install apt-get dependencies
# run: sudo apt-get install -y gfortran gcc g++ openmpi-bin libopenmpi-dev libblas-dev liblapack-dev libeigen3-dev cmake
# - name: Run job
# run: |
# mkdir build
# cd build
# cmake ..
# bash ./tstCMakeInstall.sh
# bash ./tstCMakeInstall.sh 64-
# bash ./tstCMakeInstall.sh -ILP64
# bash ./tstCMakeInstall.sh 64-ILP64
# ubuntu_latest_autotools:
# runs-on: ubuntu-latest
# steps:
# - name: Clone and check out repository code
# uses: actions/checkout@v2
# with:
# fetch-depth: 0
# ref: ${{github.event.pull_request.head.ref}} # Branch where changes are implemented.
# repository: ${{github.event.pull_request.head.repo.full_name}} # Repo where changes are implemented.
# - name: Check commit
# run: |
# git log -1
# - name: Update OS
# run: sudo apt-get update
# - name: Install apt-get dependencies
# run: sudo apt-get install -y gfortran gcc g++ openmpi-bin libopenmpi-dev libblas-dev liblapack-dev libeigen3-dev automake autoconf pkg-config libtool
# - name: Run job
# run: |
# ./bootstrap
# ./configure --enable-mpi --enable-icb --enable-eigen
# make all
# make check
# make distcheck
# ubuntu_latest_autotools_install:
# runs-on: ubuntu-latest
# steps:
# - name: Clone and check out repository code
# uses: actions/checkout@v2
# with:
# fetch-depth: 0
# ref: ${{github.event.pull_request.head.ref}} # Branch where changes are implemented.
# repository: ${{github.event.pull_request.head.repo.full_name}} # Repo where changes are implemented.
# - name: Check commit
# run: |
# git log -1
# - name: Update OS
# run: sudo apt-get update
# - name: Install apt-get dependencies
# run: sudo apt-get install -y gfortran gcc g++ openmpi-bin libopenmpi-dev libblas-dev liblapack-dev libeigen3-dev automake autoconf pkg-config libtool
# - name: Run job
# run: |
# ./bootstrap
# ./configure
# bash ./tstAutotoolsInstall.sh
# bash ./tstAutotoolsInstall.sh 64-
# bash ./tstAutotoolsInstall.sh -ILP64
# bash ./tstAutotoolsInstall.sh 64-ILP64
# ubuntu_latest_cmake_python:
# runs-on: ubuntu-latest
# steps:
# - name: Clone and check out repository code
# uses: actions/checkout@v2
# with:
# fetch-depth: 0
# ref: ${{github.event.pull_request.head.ref}} # Branch where changes are implemented.
# repository: ${{github.event.pull_request.head.repo.full_name}} # Repo where changes are implemented.
# - name: Check commit
# run: |
# git log -1
# - name: Update OS
# run: sudo apt-get update
# - name: Install apt-get dependencies
# run: sudo apt-get install -y gfortran gcc g++ openmpi-bin libopenmpi-dev libblas-dev liblapack-dev cmake libeigen3-dev
# - name: Install python dependencies
# run: sudo apt-get -y install python3-minimal python3-pip python3-numpy
# - name: Build boost-python for python3 (not provided by apt-cache)
# run : |
# sudo apt-get -y install wget
# wget https://sourceforge.net/projects/boost/files/boost/1.79.0/boost_1_79_0.tar.gz
# tar -xf boost_1_79_0.tar.gz
# cd boost_1_79_0
# ./bootstrap.sh --with-libraries=python --with-python=/usr/bin/python3 --with-toolset=gcc
# sudo ./b2 toolset=gcc install
# sudo apt-get install locate
# sudo updatedb
# - name: Run job
# run: |
# mkdir build
# cd build
# cmake -DEXAMPLES=ON -DMPI=ON -DICB=ON -DEIGEN=ON -DPYTHON3=ON ..
# make all
# CTEST_OUTPUT_ON_FAILURE=1 make test
# ubuntu_latest_autotools_ilp64:
# runs-on: ubuntu-latest
# steps:
# - name: Clone and check out repository code
# uses: actions/checkout@v2
# with:
# fetch-depth: 0
# ref: ${{github.event.pull_request.head.ref}} # Branch where changes are implemented.
# repository: ${{github.event.pull_request.head.repo.full_name}} # Repo where changes are implemented.
# - name: Check commit
# run: |
# git log -1
# - name: Update OS
# run: sudo apt-get update
# - name: Install apt-get dependencies
# run: sudo apt-get install -y gfortran gcc g++ openmpi-bin libopenmpi-dev libblas-dev liblapack-dev automake autoconf pkg-config libtool libeigen3-dev
# - name: Install Intel MKL (ILP64 blas/lapack)
# run: echo yes | sudo apt-get -y install intel-mkl libmkl-dev
# - name: Run job
# run: |
# ./bootstrap
# ./configure --enable-icb --with-blas=mkl_gf_ilp64 --with-lapack=mkl_gf_ilp64
# make all
# make check
# env:
# FFLAGS: "-DMKL_ILP64 -I/usr/include/mkl"
# FCFLAGS: "-DMKL_ILP64 -I/usr/include/mkl"
# LIBS: "-Wl,--no-as-needed -L/usr/lib/x86_64-linux-gnu -lmkl_sequential -lmkl_core -lpthread -lm -ldl"
# INTERFACE64: "1"
# macos_latest_cmake:
# runs-on: macos-latest
# steps:
# - name: Clone and check out repository code
# uses: actions/checkout@v2
# with:
# fetch-depth: 0
# ref: ${{github.event.pull_request.head.ref}} # Branch where changes are implemented.
# repository: ${{github.event.pull_request.head.repo.full_name}} # Repo where changes are implemented.
# - name: Check commit
# run: |
# git log -1
# - name: Install brew dependencies
# run: |
# brew reinstall gcc # brings gfortran on path
# brew install cmake mpich eigen
# - name: Run job
# run: |
# mkdir -p build
# cd build
# export FC=mpif90 # Uses gfortran.
# export FFLAGS="-ff2c -fno-second-underscore"
# export CC=mpicc # Uses clang.
# export CFLAGS="-Qunused-arguments"
# export CXX=mpic++ # Uses clang++.
# export CXXFLAGS="-Qunused-arguments"
# cmake -DBLA_VENDOR=Apple -DEXAMPLES=ON -DICB=ON -DEIGEN=ON -DMPI=ON ..
# make all
# CTEST_OUTPUT_ON_FAILURE=1 make test
# macos_latest_cmake_python:
# runs-on: macos-latest
# steps:
# - name: Clone and check out repository code
# uses: actions/checkout@v2
# with:
# fetch-depth: 0
# ref: ${{github.event.pull_request.head.ref}} # Branch where changes are implemented.
# repository: ${{github.event.pull_request.head.repo.full_name}} # Repo where changes are implemented.
# - name: Check commit
# run: |
# git log -1
# - name: Install brew dependencies
# run: |
# # Unlink and re-link to prevent errors when github mac runner images
# # install python outside of brew, for example:
# # https://github.com/orgs/Homebrew/discussions/3895
# # https://github.com/actions/setup-python/issues/577
# # https://github.com/actions/runner-images/issues/6459
# # https://github.com/actions/runner-images/issues/6507
# # https://github.com/actions/runner-images/issues/2322
# brew list -1 | grep python | while read formula; do brew unlink $formula; brew link --overwrite $formula; done
# brew reinstall gcc # brings gfortran on path
# brew install cmake eigen boost-python3 python3 numpy
# - name: Run job
# run: |
# mkdir -p build
# cd build
# export FC=gfortran
# export FFLAGS="-ff2c -fno-second-underscore"
# export CC=clang
# export CFLAGS="-Qunused-arguments"
# export CXX=clang++
# export CXXFLAGS="-Qunused-arguments"
# cmake -DBLA_VENDOR=Apple -DEXAMPLES=ON -DICB=ON -DEIGEN=ON -DPYTHON3=ON ..
# make all
# CTEST_OUTPUT_ON_FAILURE=1 make test
# macos_latest_autotools:
# runs-on: macos-latest
# steps:
# - name: Clone and check out repository code
# uses: actions/checkout@v2
# with:
# fetch-depth: 0
# ref: ${{github.event.pull_request.head.ref}} # Branch where changes are implemented.
# repository: ${{github.event.pull_request.head.repo.full_name}} # Repo where changes are implemented.
# - name: Check commit
# run: |
# git log -1
# - name: Install brew dependencies
# run: |
# brew reinstall gcc # brings gfortran on path
# brew install autoconf automake libtool pkg-config mpich eigen
# - name: Run job
# run: |
# ./bootstrap
# LIBS="-framework Accelerate" FFLAGS="-ff2c -fno-second-underscore" FCFLAGS="-ff2c -fno-second-underscore" \
# ./configure --enable-icb --enable-eigen --enable-mpi
# make all
# make check
# windows_latest_cmake:
# runs-on: windows-latest
# name: MinGW-w64 ${{ matrix.msystem }} INTERFACE64=${{ matrix.int64 }}/MPI=${{ matrix.mpi }}
# strategy:
# fail-fast: false
# matrix:
# msystem: [UCRT64, CLANG64]
# int64: [ON, OFF]
# mpi: [ON, OFF]
# exclude:
# - int64: ON
# mpi: ON
# defaults:
# run:
# # Use MSYS2 as default shell
# shell: msys2 {0}
# steps:
# - name: Install MSYS2 build environment
# uses: msys2/setup-msys2@v2
# with:
# update: true
# msystem: ${{ matrix.msystem }}
# install: >-
# base-devel
# git
# pacboy: >-
# cmake:p
# ninja:p
# cc:p
# fc:p
# eigen3:p
# - name: Install OpenBLAS and MS-MPI from MSYS2
# run: |
# if [[ ${{ matrix.int64 }} != ON ]]; then
# pacboy -S openblas:p --noconfirm
# else
# pacboy -S openblas64:p --noconfirm
# fi
# if [[ ${{ matrix.mpi }} = ON ]]; then
# # This installs only the link library.
# # The actual library will be installed in the next step.
# pacboy -S msmpi:p --noconfirm
# fi
# - name: Install MS-MPI (for mpiexec)
# uses: mpi4py/setup-mpi@v1
# - name: Clone and check out repository code
# uses: actions/checkout@v2
# with:
# fetch-depth: 0
# ref: ${{github.event.pull_request.head.ref}} # Branch where changes are implemented.
# repository: ${{github.event.pull_request.head.repo.full_name}} # Repo where changes are implemented.
# - name: Check commit
# run: |
# git log -1
# - name: Run job
# run: |
# mkdir -p build && cd build
# echo "::group::Configure"
# if [[ ${{ matrix.int64 }} == ON ]]; then
# _blas_lib_flag="-DBLAS_LIBRARIES=openblas_64"
# fi
# cmake \
# -GNinja \
# -DICB=ON \
# -DEIGEN=ON \
# -DEXAMPLES=ON \
# -DMPI=${{ matrix.mpi }} \
# -DINTERFACE64=${{ matrix.int64 }} \
# ${_blas_lib_flag} \
# ..
# echo "::endgroup::"
# echo "::group::Build"
# cmake --build . -v
# echo "::endgroup::"
# - name: Run tests
# id: run-ctest
# run: |
# if [[ ${{ matrix.mpi }} == ON ]]; then
# export PATH="/c/Program Files/Microsoft MPI/Bin":$PATH # add mpiexec to msys2 path
# fi
# export PATH="${GITHUB_WORKSPACE}/build":$PATH # add libarpack.dll to msys2 path for tests that run in different directory
# cd build
# ctest
# - name: Re-run tests
# if: always() && (steps.run-ctest.outcome == 'failure')
# timeout-minutes: 60
# run: |
# if [[ ${{ matrix.mpi }} == ON ]]; then
# export PATH="/c/Program Files/Microsoft MPI/Bin":$PATH # add mpiexec to msys2 path
# fi
# export PATH="${GITHUB_WORKSPACE}/build":$PATH # add libarpack.dll to msys2 path for tests that run in different directory
# cd build
# echo "::group::Re-run ctest"
# ctest --rerun-failed --output-on-failure || true
# echo "::endgroup::"
# echo "::group::Log from these tests"
# [ ! -f Testing/Temporary/LastTest.log ] || cat Testing/Temporary/LastTest.log
# echo "::endgroup::"
# echo "::group::Content of arpackmm.run.log"
# [ ! -f EXAMPLES/MATRIX_MARKET/arpackmm.run.log ] || cat EXAMPLES/MATRIX_MARKET/arpackmm.run.log
# echo "::endgroup::"