Skip to content

Commit

Permalink
Merge pull request #860 from DrTimothyAldenDavis/dev
Browse files Browse the repository at this point in the history
SuiteSparse 7.8.0
  • Loading branch information
DrTimothyAldenDavis authored Aug 5, 2024
2 parents 1380672 + 58e6558 commit 64c23a0
Show file tree
Hide file tree
Showing 4,605 changed files with 192,525 additions and 159,728 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
No pull request can be accepted unless you first sign the Contributor License Agreement [ CONTRIBUTOR-LICENSE.txt ]. Print it as a PDF and email me a signed PDF (digital signature OK). Submit all PRs to the dev2 branch only.
No pull request can be accepted unless you first sign the Contributor License Agreement (see the PDF agreement in the `Contributor_License` folder). Sign the PDF and email it to me (digital signature OK). Submit all PRs to the dev2 branch only.
16 changes: 9 additions & 7 deletions .github/workflows/build-arch-emu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,20 +35,22 @@ jobs:
matrix:
# For available CPU architectures, see:
# https://github.com/marketplace/actions/setup-alpine-linux-environment
arch: [x86, aarch64, armv7, ppc64le, s390x]
arch: [x86, aarch64, armv7, ppc64le, s390x, riscv64]
include:
- arch: x86
ccache-max: 80M
ccache-max: 64M
extra-build-libs: ":GraphBLAS:LAGraph"
extra-check-libs: ":GraphBLAS:LAGraph"
- arch: aarch64
ccache-max: 42M
ccache-max: 28M
- arch: armv7
ccache-max: 42M
ccache-max: 25M
- arch: ppc64le
ccache-max: 45M
ccache-max: 28M
- arch: s390x
ccache-max: 42M
ccache-max: 28M
- arch: riscv64
ccache-max: 28M

name: alpine (${{ matrix.arch }})

Expand Down Expand Up @@ -76,11 +78,11 @@ jobs:
mpfr-dev
lapack-dev
python3
valgrind
util-linux-misc
autoconf
automake
libtool
# ${{ matrix.arch != 'riscv64' && 'valgrind' || '' }}

- name: get CPU information (emulated)
run: lscpu
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeql-analysis.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
language: ['c-cpp']
# Learn more...
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
group: [other]
# group: [other]
# GraphBLAS and LAGraph disabled (the runners run out of memory or
# disk space)
# group: [other, graph]
Expand Down
45 changes: 25 additions & 20 deletions .github/workflows/macos.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
name: macos
on:
workflow_dispatch:
schedule:
# Run job every Saturday at 08:20 UTC
- cron: '20 8 * * 6'
# push:
# branches-ignore:
# - '**/dev2'
Expand Down Expand Up @@ -51,6 +54,8 @@ jobs:
brew install --overwrite [email protected] [email protected] [email protected]
brew reinstall gcc
brew install autoconf automake ccache cmake gmp lapack libomp mpfr openblas
HOMEBREW_PREFIX=$(brew --prefix)
echo "HOMEBREW_PREFIX=$(brew --prefix)" >> $GITHUB_ENV
- name: prepare ccache
# create key with human readable timestamp
Expand Down Expand Up @@ -89,98 +94,98 @@ jobs:
-DCMAKE_C_COMPILER_LAUNCHER="ccache" \
-DCMAKE_CXX_COMPILER_LAUNCHER="ccache" \
-DCMAKE_Fortran_COMPILER_LAUNCHER="ccache" \
-DBLA_VENDOR="OpenBLAS" \
-DCMAKE_PREFIX_PATH="/usr/local/opt/lapack;/usr/local/opt/openblas;/usr/local/opt/libomp" \
-DBLA_VENDOR="Apple" \
-DCMAKE_PREFIX_PATH="${HOMEBREW_PREFIX}/opt/lapack;${HOMEBREW_PREFIX}/opt/openblas;${HOMEBREW_PREFIX}/opt/libomp" \
..
echo "::endgroup::"
echo "::group::Build $lib"
cmake --build . --config Release
echo "::endgroup::"
done
- name: check_Mongoose
- name: check Mongoose
run: |
cd ${GITHUB_WORKSPACE}/Mongoose/build
ctest .
- name: check_AMD
- name: check AMD
run: |
cd ${GITHUB_WORKSPACE}/AMD
make demos
- name: check_CAMD
- name: check CAMD
run: |
cd ${GITHUB_WORKSPACE}/CAMD
make demos
- name: check_COLAMD
- name: check COLAMD
run: |
cd ${GITHUB_WORKSPACE}/COLAMD
make demos
- name: check_CCOLAMD
- name: check CCOLAMD
run: |
cd ${GITHUB_WORKSPACE}/CCOLAMD
make demos
- name: check_CHOLMOD
- name: check CHOLMOD
run: |
cd ${GITHUB_WORKSPACE}/CHOLMOD
make demos
cd ${GITHUB_WORKSPACE}/CHOLMOD/build
ctest .
- name: check_CSparse
- name: check CSparse
run: |
cd ${GITHUB_WORKSPACE}/CSparse
make demos
- name: check_CXSparse
- name: check CXSparse
run: |
cd ${GITHUB_WORKSPACE}/CXSparse
make demos
- name: check_LDL
- name: check LDL
run: |
cd ${GITHUB_WORKSPACE}/LDL
make demos
- name: check_KLU
- name: check KLU
run: |
cd ${GITHUB_WORKSPACE}/KLU
make demos
- name: check_UMFPACK
- name: check UMFPACK
run: |
cd ${GITHUB_WORKSPACE}/UMFPACK
make demos
- name: check_RBio
- name: check RBio
run: |
cd ${GITHUB_WORKSPACE}/RBio
make demos
- name: check_SPQR
- name: check SPQR
run: |
cd ${GITHUB_WORKSPACE}/SPQR
make demos
- name: check_SPEX
- name: check SPEX
run: |
cd ${GITHUB_WORKSPACE}/SPEX
make demos
- name: check_GraphBLAS
- name: check GraphBLAS
run: |
cd ${GITHUB_WORKSPACE}/GraphBLAS
make demos
- name: check_LAGraph
- name: check LAGraph
run: |
cd ${GITHUB_WORKSPACE}/LAGraph
make demos
- name: check_ParU
- name: check ParU
run: |
cd ${GITHUB_WORKSPACE}/ParU
make demos
Expand Down Expand Up @@ -212,7 +217,7 @@ jobs:
cd ${GITHUB_WORKSPACE}/Example/build
printf "::group::\033[0;32m==>\033[0m Configuring example\n"
cmake \
-DCMAKE_PREFIX_PATH="${GITHUB_WORKSPACE}/lib/cmake;/usr/local/opt/lapack;/usr/local/opt/openblas;/usr/local/opt/libomp" \
-DCMAKE_PREFIX_PATH="${GITHUB_WORKSPACE}/lib/cmake;${HOMEBREW_PREFIX}/opt/lapack;${HOMEBREW_PREFIX}/opt/openblas;${HOMEBREW_PREFIX}/opt/libomp" \
..
echo "::endgroup::"
printf "::group::\033[0;32m==>\033[0m Building example\n"
Expand Down
35 changes: 26 additions & 9 deletions .github/workflows/root-cmakelists.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,7 @@ jobs:
cuda: [without]
link: [both]
cc: [cl]
cxx: [cl]
include:
- openmp: without
openmp-cmake-flags: "-DSUITESPARSE_USE_OPENMP=OFF"
Expand All @@ -315,6 +316,7 @@ jobs:
-DCMAKE_CUDA_COMPILER_LAUNCHER="ccache"
link: both
cc: cl
cxx: cl
- openmp: with
cuda: with
cuda-cmake-flags:
Expand All @@ -325,10 +327,17 @@ jobs:
-DBUILD_SHARED_LIBS=OFF
-DBUILD_STATIC_LIBS=ON
cc: cl
cxx: cl
- openmp: with
cuda: without
link: both
cc: clang-cl
cxx: clang-cl
- openmp: with
cuda: without
link: both
cc: clang
cxx: clang++

env:
CHERE_INVOKING: 1
Expand All @@ -351,16 +360,16 @@ jobs:
uses: actions/cache/restore@v4
with:
path: C:/Miniconda/envs/test
key: conda:msvc
key: conda:netlib:msvc

- name: install packages with conda
if: ${{ steps.conda-cache.outputs.cache-hit != 'true' }}
run: |
echo ${{ steps.conda-cache.outputs.cache-hit }}
conda info
conda list
conda install -y -c intel mkl-devel
conda install -y -c conda-forge --override-channels ccache
conda install -y -c conda-forge --override-channels ccache m2w64-gcc-libs
conda install -y -c conda-forge/label/lapack_rc --override-channels liblapack=3.11
- name: save conda cache
if: ${{ steps.conda-cache.outputs.cache-hit != 'true' }}
Expand All @@ -384,12 +393,12 @@ jobs:
msystem: UCRT64

- uses: Jimver/[email protected].14
- uses: Jimver/[email protected].16
name: install CUDA toolkit
if: matrix.cuda == 'with'
id: cuda-toolkit
with:
cuda: '12.2.0'
cuda: '12.5.0'
#See https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html#install-the-cuda-software
method: 'local'
# Do not cache the installer (~3 GiB). It doesn't speed up the
Expand Down Expand Up @@ -455,19 +464,27 @@ jobs:
if [ ${{ matrix.cuda }} = 'with' ]; then
_extra_config+=(-DCUDAToolkit_ROOT="$(cygpath -m "${{ steps.cuda-toolkit.outputs.CUDA_PATH }}")")
_extra_config+=(-DCMAKE_CUDA_COMPILER="$(cygpath -m "${{ steps.cuda-toolkit.outputs.CUDA_PATH }}")/bin/nvcc.exe")
# MSVC 19.40 is still Visual Studio 2022.
# Suppress erroneous version check.
_extra_config+=(-DCMAKE_CUDA_FLAGS=-allow-unsupported-compiler)
fi
if [[ ${{ matrix.cc }} == clang* ]]; then
# Move away (old) clang/clang++ and clang-cl that would be in PATH
# to make sure that we use the one that matches the MSVC runtime.
mv C:/Program\ Files/LLVM C:/Program\ Files/LLVM_old
fi
mkdir -p ${GITHUB_WORKSPACE}/build && cd ${GITHUB_WORKSPACE}/build
cmake -G"Ninja Multi-Config" \
-DCMAKE_C_COMPILER=${{ matrix.cc }} \
-DCMAKE_CXX_COMPILER=${{ matrix.cc }} \
-DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \
-DCMAKE_BUILD_TYPE="Release" \
-DCMAKE_INSTALL_PREFIX=".." \
-DCMAKE_PREFIX_PATH="C:/Miniconda/envs/test/Library;${GITHUB_WORKSPACE}/dependencies" \
-DCMAKE_C_COMPILER_LAUNCHER="ccache" \
-DCMAKE_CXX_COMPILER_LAUNCHER="ccache" \
-DCMAKE_Fortran_COMPILER_LAUNCHER="ccache" \
-DSUITESPARSE_USE_FORTRAN=OFF \
-DBLA_VENDOR="All" \
-DSUITESPARSE_C_TO_FORTRAN="(name,NAME) name##_" \
-DPython_EXECUTABLE="C:/msys64/ucrt64/bin/python.exe" \
-DSUITESPARSE_DEMOS=OFF \
-DBUILD_TESTING=OFF \
Expand Down Expand Up @@ -524,7 +541,7 @@ jobs:
printf "::group::\033[0;32m==>\033[0m Configuring example\n"
cmake -G"Ninja Multi-Config" \
-DCMAKE_C_COMPILER=${{ matrix.cc }} \
-DCMAKE_CXX_COMPILER=${{ matrix.cc }} \
-DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \
-DCMAKE_PREFIX_PATH="${GITHUB_WORKSPACE}/lib/cmake;C:/Miniconda/envs/test/Library;${GITHUB_WORKSPACE}/dependencies" \
-DBLA_VENDOR="All" \
${{ matrix.openmp-cmake-flags }} \
Expand Down Expand Up @@ -562,7 +579,7 @@ jobs:
cd build
cmake -G"Ninja Multi-Config" \
-DCMAKE_C_COMPILER=${{ matrix.cc }} \
-DCMAKE_CXX_COMPILER=${{ matrix.cc }} \
-DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \
-DCMAKE_PREFIX_PATH="${GITHUB_WORKSPACE}/lib/cmake;C:/Miniconda/envs/test/Library;${GITHUB_WORKSPACE}/dependencies" \
..
cmake --build . --config Release
Expand Down
14 changes: 8 additions & 6 deletions AMD/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@

cmake_minimum_required ( VERSION 3.22 )

set ( AMD_DATE "Mar 22, 2024" )
set ( AMD_DATE "June 20, 2024" )
set ( AMD_VERSION_MAJOR 3 CACHE STRING "" FORCE )
set ( AMD_VERSION_MINOR 3 CACHE STRING "" FORCE )
set ( AMD_VERSION_SUB 2 CACHE STRING "" FORCE )
set ( AMD_VERSION_SUB 3 CACHE STRING "" FORCE )

message ( STATUS "Building AMD version: v"
${AMD_VERSION_MAJOR}.
Expand Down Expand Up @@ -49,10 +49,10 @@ endif ( )
#-------------------------------------------------------------------------------

if ( NOT SUITESPARSE_ROOT_CMAKELISTS )
find_package ( SuiteSparse_config 7.7.0
find_package ( SuiteSparse_config 7.8.0
PATHS ${CMAKE_SOURCE_DIR}/../SuiteSparse_config/build NO_DEFAULT_PATH )
if ( NOT TARGET SuiteSparse::SuiteSparseConfig )
find_package ( SuiteSparse_config 7.7.0 REQUIRED )
find_package ( SuiteSparse_config 7.8.0 REQUIRED )
endif ( )
endif ( )

Expand Down Expand Up @@ -90,7 +90,8 @@ if ( BUILD_SHARED_LIBS )
OUTPUT_NAME amd
SOVERSION ${AMD_VERSION_MAJOR}
PUBLIC_HEADER "Include/amd.h"
WINDOWS_EXPORT_ALL_SYMBOLS ON )
WINDOWS_EXPORT_ALL_SYMBOLS ON
LINKER_LANGUAGE C )

if ( ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.25" )
set_target_properties ( AMD PROPERTIES EXPORT_NO_SYSTEM ON )
Expand All @@ -111,7 +112,8 @@ if ( BUILD_STATIC_LIBS )
C_STANDARD 11
C_STANDARD_REQUIRED ON
OUTPUT_NAME amd
PUBLIC_HEADER "Include/amd.h" )
PUBLIC_HEADER "Include/amd.h"
LINKER_LANGUAGE C )

if ( MSVC OR ("${CMAKE_C_SIMULATE_ID}" STREQUAL "MSVC") )
set_target_properties ( AMD_static PROPERTIES
Expand Down
4 changes: 2 additions & 2 deletions AMD/Config/amd.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -392,8 +392,8 @@ void amd_version (int version [3]) ;

#define AMD__VERSION SUITESPARSE__VERCODE(@AMD_VERSION_MAJOR@,@AMD_VERSION_MINOR@,@AMD_VERSION_SUB@)
#if !defined (SUITESPARSE__VERSION) || \
(SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0))
#error "AMD @AMD_VERSION_MAJOR@.@AMD_VERSION_MINOR@.@AMD_VERSION_SUB@ requires SuiteSparse_config 7.7.0 or later"
(SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0))
#error "AMD @AMD_VERSION_MAJOR@.@AMD_VERSION_MINOR@.@AMD_VERSION_SUB@ requires SuiteSparse_config 7.8.0 or later"
#endif

#endif
6 changes: 3 additions & 3 deletions AMD/Demo/amd_demo.out
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
AMD version 3.3.2, date: Mar 22, 2024
AMD version 3.3.3, date: June 20, 2024
AMD demo, with the 24-by-24 Harwell/Boeing matrix, can_24:

AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering
AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering
dense row parameter: 10
(rows with more than max (10 * sqrt (n), 16) entries are
considered "dense", and placed last in output permutation)
Expand Down Expand Up @@ -115,7 +115,7 @@ Plot of input matrix pattern:
23: . . . . . . X . . . . X X . . . . . . . . . . X
return value from amd_order: 0 (should be 0)

AMD version 3.3.2, Mar 22, 2024, results:
AMD version 3.3.3, June 20, 2024, results:
status: OK
n, dimension of A: 24
nz, number of nonzeros in A: 160
Expand Down
Loading

0 comments on commit 64c23a0

Please sign in to comment.