Skip to content

Commit

Permalink
Merge pull request #433 from DrTimothyAldenDavis/dev2
Browse files Browse the repository at this point in the history
v7.2.1.beta2
  • Loading branch information
DrTimothyAldenDavis authored Oct 8, 2023
2 parents 75cb8b4 + bdb6ddc commit a68ff27
Show file tree
Hide file tree
Showing 28 changed files with 2,233 additions and 2,209 deletions.
18 changes: 14 additions & 4 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
runs-on: ubuntu-latest

name: ubuntu (${{ matrix.compiler }} ${{ matrix.cuda }} CUDA)
name: ubuntu (${{ matrix.compiler }} ${{ matrix.cuda }} CUDA ${{ matrix.openmp }} OpenMP)

strategy:
# Allow other runners in the matrix to continue if some fail
Expand All @@ -31,6 +31,7 @@ jobs:
matrix:
compiler: [gcc, clang]
cuda: [with, without]
openmp: [with]
include:
- compiler: gcc
compiler-pkgs: "g++ gcc"
Expand All @@ -51,6 +52,14 @@ jobs:
-DENABLE_CUDA=On
-DCUDAToolkit_INCLUDE_DIR="/usr/include"
-DCMAKE_CUDA_COMPILER_LAUNCHER="ccache"
- compiler: gcc
compiler-pkgs: "g++ gcc"
cc: "gcc"
cxx: "g++"
ccache-max: 600M
cuda: without
openmp: without
openmp-cmake-flags: "-DNOPENMP=ON"

env:
CC: ${{ matrix.cc }}
Expand All @@ -75,7 +84,7 @@ jobs:
# used in action/cache/restore and action/cache/save steps
id: ccache-prepare
run: |
echo "key=ccache:ubuntu:${{ matrix.compiler }}:${{ matrix.cuda }}:${{ github.ref }}:$(date +"%Y-%m-%d_%H-%M-%S"):${{ github.sha }}" >> $GITHUB_OUTPUT
echo "key=ccache:ubuntu:${{ matrix.compiler }}:${{ matrix.cuda }}:${{ matrix.openmp }}:${{ github.ref }}:$(date +"%Y-%m-%d_%H-%M-%S"):${{ github.sha }}" >> $GITHUB_OUTPUT
- name: restore ccache
# setup the GitHub cache used to maintain the ccache from one job to the next
Expand All @@ -85,8 +94,8 @@ jobs:
key: ${{ steps.ccache-prepare.outputs.key }}
# Prefer caches from the same branch. Fall back to caches from the dev branch.
restore-keys: |
ccache:ubuntu:${{ matrix.compiler }}:${{ matrix.cuda }}:${{ github.ref }}
ccache:ubuntu:${{ matrix.compiler }}:${{ matrix.cuda }}:
ccache:ubuntu:${{ matrix.compiler }}:${{ matrix.cuda }}:${{ matrix.openmp }}:${{ github.ref }}
ccache:ubuntu:${{ matrix.compiler }}:${{ matrix.cuda }}:${{ matrix.openmp }}:
- name: create empty libraries
# This is to work around a bug in nvlink.
Expand Down Expand Up @@ -127,6 +136,7 @@ jobs:
-DCMAKE_Fortran_COMPILER_LAUNCHER="ccache" \
-DBLA_VENDOR="OpenBLAS" \
${{ matrix.cuda-cmake-flags }} \
${{ matrix.openmp-cmake-flags }} \
..
echo "::endgroup::"
echo "::group::Build $lib"
Expand Down
4 changes: 2 additions & 2 deletions CHOLMOD/SuiteSparse_metis/GKlib/random.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ GK_MKRANDOM(gk_z, size_t, ssize_t)
#elif defined ( HAVE_KEYWORD__THREAD )

// gcc and many other compilers support the __thread keyword
__thread static uint64_t mt[NN];
__thread static int mti=NN+1;
static __thread uint64_t mt[NN];
static __thread int mti=NN+1;

#elif defined ( HAVE_KEYWORD__DECLSPEC_THREAD )

Expand Down
6 changes: 5 additions & 1 deletion ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
Sept 18, 2023: version 7.2.1
Oct 7, 2023: version 7.2.1

* GraphBLAS 8.2.1: bug fix to GrB_mxm; incorrect handling of typecasting
* cross-compiler support: replace check_c_source_runs with _compiles,
for GraphBLAS and SuiteSparse_config, and remove check for
getenv("HOME").
* cmake update: add "None" build type, from Antonio Rojas, for Arch Linux,
to all *Config.cmake files for all packages except CSparse (CXSparse
is built instead, and CSparse does not have CSparseConfig.cmake file)
Expand Down
7 changes: 4 additions & 3 deletions GraphBLAS/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -384,9 +384,10 @@ else ( )
"(Linux, conda-forge, spack, brew, vcpkg, etc). " )
# check for __thread, __declspec(thread), and _Thread_local keywords
include ( SuiteSparse__thread )
if ( NOT HAVE_KEYWORD__DECLSPEC_THREAD AND NOT HAVE_KEYWORD__THREAD )
message ( WARNING "The C compiler supports neither the __thread "
"nor the __declspec(thread) keyword for thread-local-storage; "
if ( NOT HAVE_KEYWORD__DECLSPEC_THREAD AND NOT HAVE_KEYWORD__THREAD
AND NOT HAVE_KEYWORD__THREAD_LOCAL )
message ( WARNING
"The C compiler does not support thread-local-storage; "
"GxB_Context_engage will return GrB_NOT_IMPLEMENTED." )
endif ( )
endif ( )
Expand Down
7 changes: 3 additions & 4 deletions GraphBLAS/Config/README.md.in
Original file line number Diff line number Diff line change
Expand Up @@ -225,10 +225,9 @@ Thanks for packaging SuiteSparse! Here are some suggestions:

To cite this package, please use the following:

T. Davis, Algorithm 10xx: SuiteSparse:GraphBLAS: parallel graph
algorithms in the language of sparse linear algebra, ACM Trans on
Mathematical Software, just acceped, 2023. See the pdf in
https://github.com/DrTimothyAldenDavis/GraphBLAS/tree/stable/Doc .
T. A. Davis. Algorithm 1037: SuiteSparse:GraphBLAS: Parallel Graph
Algorithms in the Language of Sparse Linear Algebra. ACM Trans. Math.
Softw. 49, 3, Article 28 (September 2023), 30 pages.
https://doi.org/10.1145/3577195

T. Davis, Algorithm 1000: SuiteSparse:GraphBLAS: graph algorithms in
Expand Down
7 changes: 6 additions & 1 deletion GraphBLAS/Doc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
Sept 18, 2023: version 8.2.1
Oct 7, 2023: version 8.2.1

* (49) bug fix: GrB_mxm saxpy4 and saxpy5 had incorrectly handling of
typecasting in v8.0.0 to v8.2.0 (caught by Erik Welch)
* cross-compiler support: replace check_c_source_runs with _compiles,
for GraphBLAS and SuiteSparse_config, and remove check for
getenv("HOME").
* cmake update: add "None" build type, from Antonio Rojas, for Arch Linux

Sept 8, 2023: version 8.2.0
Expand Down
21 changes: 16 additions & 5 deletions GraphBLAS/Doc/GraphBLAS_UserGuide.bib
Original file line number Diff line number Diff line change
Expand Up @@ -162,15 +162,26 @@ @article{Davis19
keywords = {sparse matrices, GraphBLAS, Graph algorithms}
}

@article{Davis22,
@article{Davis23,
author = {Davis, Timothy A.},
title = {Algorithm 10xx: {SuiteSparse:GraphBLAS}: Parallel Graph Algorithms in the Language of Sparse Linear Algebra},
journal = {ACM Trans. Math. Softw.},
title = {Algorithm 1037: SuiteSparse:GraphBLAS: Parallel Graph Algorithms in the Language of Sparse Linear Algebra},
year = {2023},
note = {(to appear)}
issue_date = {September 2023},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {49},
number = {3},
issn = {0098-3500},
url = {https://doi.org/10.1145/3577195},
doi = {10.1145/3577195},
abstract = {SuiteSparse:GraphBLAS is a full parallel implementation of the GraphBLAS standard, which defines a set of sparse matrix operations on an extended algebra of semirings using an almost unlimited variety of operators and types. When applied to sparse adjacency matrices, these algebraic operations are equivalent to computations on graphs. A description of the parallel implementation of SuiteSparse:GraphBLAS is given, including its novel parallel algorithms for sparse matrix multiply, addition, element-wise multiply, submatrix extraction and assignment, and the GraphBLAS mask/accumulator operation. Its performance is illustrated by solving the graph problems in the GAP Benchmark and by comparing it with other sparse matrix libraries.},
journal = {ACM Trans. Math. Softw.},
month = {sep},
articleno = {28},
numpages = {30},
keywords = {Graph algorithms, GraphBLAS, sparse matrices}
}


@book{Higham,
author={Higham, N.},
title={Accuracy and Stability of Numerical Algorithms},
Expand Down
Binary file modified GraphBLAS/Doc/GraphBLAS_UserGuide.pdf
Binary file not shown.
9 changes: 7 additions & 2 deletions GraphBLAS/Doc/GraphBLAS_UserGuide.tex
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ \section{Introduction} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
GraphBLAS library.

For more details on SuiteSparse:GraphBLAS, and its use in LAGraph, see
\cite{Davis19,Davis22,Davis18b,DavisAznavehKolodziej19,Davis20,Mattson19}.
\cite{Davis19,Davis23,Davis18b,DavisAznavehKolodziej19,Davis20,Mattson19}.

A full and precise definition of the GraphBLAS specification is provided in
{\em The GraphBLAS C API Specification} by {Ayd\i n Bulu\c{c}, Timothy Mattson,
Expand Down Expand Up @@ -16448,9 +16448,14 @@ \section{Release Notes}

\begin{itemize}

\item Sept 18, 2023: version 8.2.1
\item Oct 7, 2023: version 8.2.1

\begin{itemize}
\item (49) bug fix: \verb'GrB_mxm' saxpy4 and saxpy5 had incorrectly handling of
typecasting in v8.0.0 to v8.2.0 (caught by Erik Welch)
\item cross-compiler support: replace \verb'check_c_source_runs' with \verb'_compiles'
for GraphBLAS and SuiteSparse\_config, and remove check for
\verb'getenv("HOME")'.
\item cmake update: add "None" build type, from Antonio Rojas, for Arch Linux
\end{itemize}

Expand Down
2 changes: 1 addition & 1 deletion GraphBLAS/Doc/GraphBLAS_version.tex
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
% version of SuiteSparse:GraphBLAS
\date{VERSION
8.2.1,
Sept 18, 2023}
Oct 7, 2023}

2 changes: 1 addition & 1 deletion GraphBLAS/Include/GraphBLAS.h
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@

// The version of this implementation, and the GraphBLAS API version:
#define GxB_IMPLEMENTATION_NAME "SuiteSparse:GraphBLAS"
#define GxB_IMPLEMENTATION_DATE "Sept 18, 2023"
#define GxB_IMPLEMENTATION_DATE "Oct 7, 2023"
#define GxB_IMPLEMENTATION_MAJOR 8
#define GxB_IMPLEMENTATION_MINOR 2
#define GxB_IMPLEMENTATION_SUB 1
Expand Down
Loading

0 comments on commit a68ff27

Please sign in to comment.