From 5906d785d01b6f3316266cf5798584d86b4e86d1 Mon Sep 17 00:00:00 2001 From: Michel Pelletier Date: Wed, 14 Aug 2024 09:50:21 -0700 Subject: [PATCH 1/5] take stab and builtin graphblas build. --- .github/workflows/new_build.yml | 85 +++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 .github/workflows/new_build.yml diff --git a/.github/workflows/new_build.yml b/.github/workflows/new_build.yml new file mode 100644 index 0000000000..fe3793f9fc --- /dev/null +++ b/.github/workflows/new_build.yml @@ -0,0 +1,85 @@ +name: LAGraph CI with Builtin GraphBLAS + +on: + workflow_dispatch: + push: + branches-ignore: + - '**/*dev2' + pull_request: + +jobs: + linux: + runs-on: ubuntu-22.04 + strategy: + matrix: + config: + - {grb_version: 9.3.1} + steps: + - name: Checkout + uses: actions/checkout@v2.0.0 + - name: Install tools for build + run: | + sudo apt install -y lcov + - name: Get GraphBLAS binaries + run: | + git clone https://github.com/DrTimothyAldenDavis/GraphBLAS.git + cd GraphBLAS + git checkout tags/v${{ matrix.config.grb_version }} + make && make install + cd .. + - name: Build project + run: | + export GRAPHBLAS_INCLUDE_DIR=`pwd`/graphblas/include/suitesparse + export GRAPHBLAS_LIBRARY=`pwd`/graphblas/lib/libgraphblas.so + cd build + cmake .. -DCOVERAGE=1 -DGRAPHBLAS_INCLUDE_DIR=${GRAPHBLAS_INCLUDE_DIR} -DGRAPHBLAS_LIBRARY=${GRAPHBLAS_LIBRARY} + JOBS=2 make + make test_coverage + # - name: Deploy + # uses: JamesIves/github-pages-deploy-action@4.1.1 + # if: matrix.config.grb_version == '9.1.0' && github.event_name == 'push' && github.ref == 'refs/heads/stable' + # with: + # branch: gh-pages + # folder: build/test_coverage/ + # single-commit: true + # - name: Save output + # uses: actions/upload-artifact@v2.2.3 + # with: + # name: test_coverage + # path: build/test_coverage/ + # macos: + # runs-on: macos-12 + # strategy: + # matrix: + # config: + # - {grb_version: 9.1.0, conda_grb_package_hash: heb48c95, conda_extension: conda} + # steps: + # - name: Checkout + # uses: actions/checkout@v2.0.0 + # - name: Install dependencies + # run: | + # brew tap-new libomp/cask + # brew extract --version=14.0.6 libomp libomp/cask + # brew install libomp@14.0.6 + # - name: Get GraphBLAS binaries + # run: | + # mkdir graphblas-binaries + # cd graphblas-binaries + # wget --quiet https://anaconda.org/conda-forge/graphblas/${{ matrix.config.grb_version }}/download/osx-64/graphblas-${{ matrix.config.grb_version }}-${{ matrix.config.conda_grb_package_hash }}_0.${{ matrix.config.conda_extension }} + # if [ ${{ matrix.config.conda_extension }} == "tar.bz2" ]; then + # tar xf graphblas-${{ matrix.config.grb_version }}-${{ matrix.config.conda_grb_package_hash }}_0.${{ matrix.config.conda_extension }} + # else + # unzip graphblas-${{ matrix.config.grb_version }}-${{ matrix.config.conda_grb_package_hash }}_0.${{ matrix.config.conda_extension }} + # tar xf pkg-graphblas-${{ matrix.config.grb_version }}-${{ matrix.config.conda_grb_package_hash }}_0.tar.zst + # fi + # cd .. + # - name: Build project + # run: | + # export GRAPHBLAS_INCLUDE_DIR=`pwd`/graphblas-binaries/include/suitesparse + # export GRAPHBLAS_LIBRARY=`pwd`/graphblas-binaries/lib/libgraphblas.dylib + # # adding an extra line to the CMakeLists.txt file to locate the libomp instance installed by brew + # echo 'include_directories("/usr/local/opt/libomp/include")' | cat - CMakeLists.txt + # cd build + # CC=gcc cmake .. -DGRAPHBLAS_INCLUDE_DIR=${GRAPHBLAS_INCLUDE_DIR} -DGRAPHBLAS_LIBRARY=${GRAPHBLAS_LIBRARY} + # JOBS=2 make + # make test From e9693f99d7b751345fbdd8f72f42ffd8921d48aa Mon Sep 17 00:00:00 2001 From: Michel Pelletier Date: Wed, 14 Aug 2024 10:19:19 -0700 Subject: [PATCH 2/5] make compact. --- .github/workflows/new_build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/new_build.yml b/.github/workflows/new_build.yml index fe3793f9fc..243e524ce2 100644 --- a/.github/workflows/new_build.yml +++ b/.github/workflows/new_build.yml @@ -25,7 +25,8 @@ jobs: git clone https://github.com/DrTimothyAldenDavis/GraphBLAS.git cd GraphBLAS git checkout tags/v${{ matrix.config.grb_version }} - make && make install + make compact + sudo make install cd .. - name: Build project run: | From 10d4de081eff884321ae885c824cac2a769b7b0d Mon Sep 17 00:00:00 2001 From: Michel Pelletier Date: Wed, 14 Aug 2024 20:21:46 -0700 Subject: [PATCH 3/5] change path names for lagraph build, not necessary since make install puts it in system path but more correct if Tim has some reason for being specific. --- .github/workflows/new_build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/new_build.yml b/.github/workflows/new_build.yml index 243e524ce2..b9811f1b27 100644 --- a/.github/workflows/new_build.yml +++ b/.github/workflows/new_build.yml @@ -30,8 +30,8 @@ jobs: cd .. - name: Build project run: | - export GRAPHBLAS_INCLUDE_DIR=`pwd`/graphblas/include/suitesparse - export GRAPHBLAS_LIBRARY=`pwd`/graphblas/lib/libgraphblas.so + export GRAPHBLAS_INCLUDE_DIR=`pwd`/GraphBLAS/include/suitesparse + export GRAPHBLAS_LIBRARY=`pwd`/GraphBLAS/lib/libgraphblas.so cd build cmake .. -DCOVERAGE=1 -DGRAPHBLAS_INCLUDE_DIR=${GRAPHBLAS_INCLUDE_DIR} -DGRAPHBLAS_LIBRARY=${GRAPHBLAS_LIBRARY} JOBS=2 make From 3a1ce93d583873696f49948c92ff817e33ed10d2 Mon Sep 17 00:00:00 2001 From: Michel Pelletier Date: Thu, 15 Aug 2024 09:40:24 -0700 Subject: [PATCH 4/5] stab at macos --- .github/workflows/new_build.yml | 92 ++++++++++++++++----------------- 1 file changed, 44 insertions(+), 48 deletions(-) diff --git a/.github/workflows/new_build.yml b/.github/workflows/new_build.yml index b9811f1b27..a1e5aa7129 100644 --- a/.github/workflows/new_build.yml +++ b/.github/workflows/new_build.yml @@ -36,51 +36,47 @@ jobs: cmake .. -DCOVERAGE=1 -DGRAPHBLAS_INCLUDE_DIR=${GRAPHBLAS_INCLUDE_DIR} -DGRAPHBLAS_LIBRARY=${GRAPHBLAS_LIBRARY} JOBS=2 make make test_coverage - # - name: Deploy - # uses: JamesIves/github-pages-deploy-action@4.1.1 - # if: matrix.config.grb_version == '9.1.0' && github.event_name == 'push' && github.ref == 'refs/heads/stable' - # with: - # branch: gh-pages - # folder: build/test_coverage/ - # single-commit: true - # - name: Save output - # uses: actions/upload-artifact@v2.2.3 - # with: - # name: test_coverage - # path: build/test_coverage/ - # macos: - # runs-on: macos-12 - # strategy: - # matrix: - # config: - # - {grb_version: 9.1.0, conda_grb_package_hash: heb48c95, conda_extension: conda} - # steps: - # - name: Checkout - # uses: actions/checkout@v2.0.0 - # - name: Install dependencies - # run: | - # brew tap-new libomp/cask - # brew extract --version=14.0.6 libomp libomp/cask - # brew install libomp@14.0.6 - # - name: Get GraphBLAS binaries - # run: | - # mkdir graphblas-binaries - # cd graphblas-binaries - # wget --quiet https://anaconda.org/conda-forge/graphblas/${{ matrix.config.grb_version }}/download/osx-64/graphblas-${{ matrix.config.grb_version }}-${{ matrix.config.conda_grb_package_hash }}_0.${{ matrix.config.conda_extension }} - # if [ ${{ matrix.config.conda_extension }} == "tar.bz2" ]; then - # tar xf graphblas-${{ matrix.config.grb_version }}-${{ matrix.config.conda_grb_package_hash }}_0.${{ matrix.config.conda_extension }} - # else - # unzip graphblas-${{ matrix.config.grb_version }}-${{ matrix.config.conda_grb_package_hash }}_0.${{ matrix.config.conda_extension }} - # tar xf pkg-graphblas-${{ matrix.config.grb_version }}-${{ matrix.config.conda_grb_package_hash }}_0.tar.zst - # fi - # cd .. - # - name: Build project - # run: | - # export GRAPHBLAS_INCLUDE_DIR=`pwd`/graphblas-binaries/include/suitesparse - # export GRAPHBLAS_LIBRARY=`pwd`/graphblas-binaries/lib/libgraphblas.dylib - # # adding an extra line to the CMakeLists.txt file to locate the libomp instance installed by brew - # echo 'include_directories("/usr/local/opt/libomp/include")' | cat - CMakeLists.txt - # cd build - # CC=gcc cmake .. -DGRAPHBLAS_INCLUDE_DIR=${GRAPHBLAS_INCLUDE_DIR} -DGRAPHBLAS_LIBRARY=${GRAPHBLAS_LIBRARY} - # JOBS=2 make - # make test + - name: Deploy + uses: JamesIves/github-pages-deploy-action@4.1.1 + if: matrix.config.grb_version == '9.1.0' && github.event_name == 'push' && github.ref == 'refs/heads/stable' + with: + branch: gh-pages + folder: build/test_coverage/ + single-commit: true + - name: Save output + uses: actions/upload-artifact@v2.2.3 + with: + name: test_coverage + path: build/test_coverage/ + macos: + runs-on: macos-12 + strategy: + matrix: + config: + - {grb_version: 9.3.1} + steps: + - name: Checkout + uses: actions/checkout@v2.0.0 + - name: Install dependencies + run: | + brew tap-new libomp/cask + brew extract --version=14.0.6 libomp libomp/cask + brew install libomp@14.0.6 + - name: Get GraphBLAS binaries + run: | + git clone https://github.com/DrTimothyAldenDavis/GraphBLAS.git + cd GraphBLAS + git checkout tags/v${{ matrix.config.grb_version }} + make compact + sudo make install + cd .. + - name: Build project + run: | + export GRAPHBLAS_INCLUDE_DIR=`pwd`/GraphBLAS/include/suitesparse + export GRAPHBLAS_LIBRARY=`pwd`/GraphBLAS/lib/libgraphblas.dylib + # adding an extra line to the CMakeLists.txt file to locate the libomp instance installed by brew + echo 'include_directories("/usr/local/opt/libomp/include")' | cat - CMakeLists.txt + cd build + CC=gcc cmake .. -DGRAPHBLAS_INCLUDE_DIR=${GRAPHBLAS_INCLUDE_DIR} -DGRAPHBLAS_LIBRARY=${GRAPHBLAS_LIBRARY} + JOBS=2 make + make test From 89bf3a0511100866935dabb7493f3696c5e59878 Mon Sep 17 00:00:00 2001 From: Michel Pelletier Date: Thu, 15 Aug 2024 10:33:05 -0700 Subject: [PATCH 5/5] move new build over to build. --- .github/workflows/build.yml | 46 ++++++++---------- .github/workflows/new_build.yml | 82 --------------------------------- 2 files changed, 19 insertions(+), 109 deletions(-) delete mode 100644 .github/workflows/new_build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b02eb2bfed..3a76340ad9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: LAGraph CI +name: LAGraph CI with Builtin GraphBLAS on: workflow_dispatch: @@ -13,29 +13,25 @@ jobs: strategy: matrix: config: - - {grb_version: 9.1.0, conda_grb_package_hash: hd29ac08, conda_extension: conda} + - {grb_version: 9.3.1} steps: - name: Checkout uses: actions/checkout@v2.0.0 - name: Install tools for build run: | sudo apt install -y lcov - - name: Get GraphBLAS binaries + - name: Build GraphBLAS run: | - mkdir graphblas-binaries - cd graphblas-binaries - wget --quiet https://anaconda.org/conda-forge/graphblas/${{ matrix.config.grb_version }}/download/linux-64/graphblas-${{ matrix.config.grb_version }}-${{ matrix.config.conda_grb_package_hash }}_0.${{ matrix.config.conda_extension }} - if [ ${{ matrix.config.conda_extension }} == "tar.bz2" ]; then - tar xf graphblas-${{ matrix.config.grb_version }}-${{ matrix.config.conda_grb_package_hash }}_0.${{ matrix.config.conda_extension }} - else - unzip graphblas-${{ matrix.config.grb_version }}-${{ matrix.config.conda_grb_package_hash }}_0.${{ matrix.config.conda_extension }} - tar xf pkg-graphblas-${{ matrix.config.grb_version }}-${{ matrix.config.conda_grb_package_hash }}_0.tar.zst - fi + git clone https://github.com/DrTimothyAldenDavis/GraphBLAS.git + cd GraphBLAS + git checkout tags/v${{ matrix.config.grb_version }} + make compact + sudo make install cd .. - name: Build project run: | - export GRAPHBLAS_INCLUDE_DIR=`pwd`/graphblas-binaries/include/suitesparse - export GRAPHBLAS_LIBRARY=`pwd`/graphblas-binaries/lib/libgraphblas.so + export GRAPHBLAS_INCLUDE_DIR=`pwd`/GraphBLAS/include/suitesparse + export GRAPHBLAS_LIBRARY=`pwd`/GraphBLAS/lib/libgraphblas.so cd build cmake .. -DCOVERAGE=1 -DGRAPHBLAS_INCLUDE_DIR=${GRAPHBLAS_INCLUDE_DIR} -DGRAPHBLAS_LIBRARY=${GRAPHBLAS_LIBRARY} JOBS=2 make @@ -57,7 +53,7 @@ jobs: strategy: matrix: config: - - {grb_version: 9.1.0, conda_grb_package_hash: heb48c95, conda_extension: conda} + - {grb_version: 9.3.1} steps: - name: Checkout uses: actions/checkout@v2.0.0 @@ -66,22 +62,18 @@ jobs: brew tap-new libomp/cask brew extract --version=14.0.6 libomp libomp/cask brew install libomp@14.0.6 - - name: Get GraphBLAS binaries + - name: Build GraphBLAS run: | - mkdir graphblas-binaries - cd graphblas-binaries - wget --quiet https://anaconda.org/conda-forge/graphblas/${{ matrix.config.grb_version }}/download/osx-64/graphblas-${{ matrix.config.grb_version }}-${{ matrix.config.conda_grb_package_hash }}_0.${{ matrix.config.conda_extension }} - if [ ${{ matrix.config.conda_extension }} == "tar.bz2" ]; then - tar xf graphblas-${{ matrix.config.grb_version }}-${{ matrix.config.conda_grb_package_hash }}_0.${{ matrix.config.conda_extension }} - else - unzip graphblas-${{ matrix.config.grb_version }}-${{ matrix.config.conda_grb_package_hash }}_0.${{ matrix.config.conda_extension }} - tar xf pkg-graphblas-${{ matrix.config.grb_version }}-${{ matrix.config.conda_grb_package_hash }}_0.tar.zst - fi + git clone https://github.com/DrTimothyAldenDavis/GraphBLAS.git + cd GraphBLAS + git checkout tags/v${{ matrix.config.grb_version }} + make compact + sudo make install cd .. - name: Build project run: | - export GRAPHBLAS_INCLUDE_DIR=`pwd`/graphblas-binaries/include/suitesparse - export GRAPHBLAS_LIBRARY=`pwd`/graphblas-binaries/lib/libgraphblas.dylib + export GRAPHBLAS_INCLUDE_DIR=`pwd`/GraphBLAS/include/suitesparse + export GRAPHBLAS_LIBRARY=`pwd`/GraphBLAS/lib/libgraphblas.dylib # adding an extra line to the CMakeLists.txt file to locate the libomp instance installed by brew echo 'include_directories("/usr/local/opt/libomp/include")' | cat - CMakeLists.txt cd build diff --git a/.github/workflows/new_build.yml b/.github/workflows/new_build.yml deleted file mode 100644 index a1e5aa7129..0000000000 --- a/.github/workflows/new_build.yml +++ /dev/null @@ -1,82 +0,0 @@ -name: LAGraph CI with Builtin GraphBLAS - -on: - workflow_dispatch: - push: - branches-ignore: - - '**/*dev2' - pull_request: - -jobs: - linux: - runs-on: ubuntu-22.04 - strategy: - matrix: - config: - - {grb_version: 9.3.1} - steps: - - name: Checkout - uses: actions/checkout@v2.0.0 - - name: Install tools for build - run: | - sudo apt install -y lcov - - name: Get GraphBLAS binaries - run: | - git clone https://github.com/DrTimothyAldenDavis/GraphBLAS.git - cd GraphBLAS - git checkout tags/v${{ matrix.config.grb_version }} - make compact - sudo make install - cd .. - - name: Build project - run: | - export GRAPHBLAS_INCLUDE_DIR=`pwd`/GraphBLAS/include/suitesparse - export GRAPHBLAS_LIBRARY=`pwd`/GraphBLAS/lib/libgraphblas.so - cd build - cmake .. -DCOVERAGE=1 -DGRAPHBLAS_INCLUDE_DIR=${GRAPHBLAS_INCLUDE_DIR} -DGRAPHBLAS_LIBRARY=${GRAPHBLAS_LIBRARY} - JOBS=2 make - make test_coverage - - name: Deploy - uses: JamesIves/github-pages-deploy-action@4.1.1 - if: matrix.config.grb_version == '9.1.0' && github.event_name == 'push' && github.ref == 'refs/heads/stable' - with: - branch: gh-pages - folder: build/test_coverage/ - single-commit: true - - name: Save output - uses: actions/upload-artifact@v2.2.3 - with: - name: test_coverage - path: build/test_coverage/ - macos: - runs-on: macos-12 - strategy: - matrix: - config: - - {grb_version: 9.3.1} - steps: - - name: Checkout - uses: actions/checkout@v2.0.0 - - name: Install dependencies - run: | - brew tap-new libomp/cask - brew extract --version=14.0.6 libomp libomp/cask - brew install libomp@14.0.6 - - name: Get GraphBLAS binaries - run: | - git clone https://github.com/DrTimothyAldenDavis/GraphBLAS.git - cd GraphBLAS - git checkout tags/v${{ matrix.config.grb_version }} - make compact - sudo make install - cd .. - - name: Build project - run: | - export GRAPHBLAS_INCLUDE_DIR=`pwd`/GraphBLAS/include/suitesparse - export GRAPHBLAS_LIBRARY=`pwd`/GraphBLAS/lib/libgraphblas.dylib - # adding an extra line to the CMakeLists.txt file to locate the libomp instance installed by brew - echo 'include_directories("/usr/local/opt/libomp/include")' | cat - CMakeLists.txt - cd build - CC=gcc cmake .. -DGRAPHBLAS_INCLUDE_DIR=${GRAPHBLAS_INCLUDE_DIR} -DGRAPHBLAS_LIBRARY=${GRAPHBLAS_LIBRARY} - JOBS=2 make - make test