Skip to content

Commit

Permalink
SuiteSparse 5.9.0 with GraphBLAS v4.0.3
Browse files Browse the repository at this point in the history
  • Loading branch information
DrTimothyAldenDavis committed Mar 3, 2021
1 parent 1869379 commit ca1e2ee
Show file tree
Hide file tree
Showing 4,704 changed files with 446,162 additions and 177,387 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
Binary file modified CHOLMOD/Doc/CHOLMOD_UserGuide.pdf
Binary file not shown.
4 changes: 4 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
Mar 3, 2021, SuiteSparse 5.9.0

* GraphBLAS v4.0.3: many new features, much faster performance

July 14, 2020, SuiteSparse 5.8.1

* SLIP_LU v1.0.2: resolved issue #51
Expand Down
3 changes: 3 additions & 0 deletions GraphBLAS/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ my_*.out
.nfs*
.pyc
*.tmp
gunk*

Demo/bfs_demo.out
Demo/mis_demo.out
Expand All @@ -60,6 +61,7 @@ alternative/*_demo
Test/*.log
Test/errlog.txt
Test/errlog2.txt
Test/errlog3.txt
Test/log.txt
Test/gunk*
Test/fprint.txt
Expand All @@ -69,6 +71,7 @@ Doc/GraphBLAS_UserGuide.out

Tcov/errlog.txt
Tcov/errlog2.txt
Tcov/errlog3.txt
Tcov/log.txt
Tcov/grbstat.mat
Tcov/fprint.txt
Expand Down
117 changes: 40 additions & 77 deletions GraphBLAS/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
# GraphBLAS/CMakeLists.txt: cmake script for GraphBLAS
#-------------------------------------------------------------------------------

# SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2020, All Rights Reserved.
# http://suitesparse.com See GraphBLAS/Doc/License.txt for license.
# SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0

# CMakeLists.txt: instructions for cmake to build GraphBLAS.
# An ANSI C11 compiler is required.
Expand Down Expand Up @@ -59,9 +59,9 @@ endif ( )
set ( CMAKE_MACOSX_RPATH TRUE )

# version of SuiteSparse:GraphBLAS
set ( GraphBLAS_DATE "July 14, 2020" )
set ( GraphBLAS_VERSION_MAJOR 3 )
set ( GraphBLAS_VERSION_MINOR 3 )
set ( GraphBLAS_DATE "Jan 19, 2021")
set ( GraphBLAS_VERSION_MAJOR 4 )
set ( GraphBLAS_VERSION_MINOR 0 )
set ( GraphBLAS_VERSION_SUB 3 )

# GraphBLAS C API Specification version, at graphblas.org
Expand Down Expand Up @@ -101,12 +101,14 @@ else ( )
message ( STATUS "Building dynamic GraphBLAS library only" )
endif ( )

# select "true" to enable burble, for GraphBLAS development only
# set ( GB_BURBLE true )
set ( GB_BURBLE false )
# select "false" to disable the burble. It is now enabled by default.
set ( GB_BURBLE true )
# set ( GB_BURBLE false )

if ( GB_BURBLE )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGB_BURBLE=1 " )
else ( )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGB_BURBLE=0 " )
endif ( )

if ( GBCOMPACT )
Expand Down Expand Up @@ -159,7 +161,7 @@ if ( CMAKE_CUDA )
message ( STATUS "CUDA enabled" )
set ( CMAKE_CUDA_FLAG " -DGBCUDA" )
set ( GB_CUDA graphblascuda cuda cudadevrt cudart nvrtc )
link_directories ( "CUDA" "/usr/local/cuda/lib64" )
link_directories ( "CUDA" "/usr/local/cuda/lib64" "/usr/local/cuda/lib64/stubs" )
else ( )
message ( STATUS "CUDA not enabled" )
set ( CMAKE_CUDA_FLAG " " )
Expand All @@ -180,8 +182,6 @@ endif ( )

message ( STATUS "CMAKE compiler ID: " ${CMAKE_C_COMPILER_ID} )
message ( STATUS "CMAKE thread library: " ${CMAKE_THREAD_LIBS_INIT} )
message ( STATUS "CMAKE have pthreads: " ${CMAKE_USE_PTHREADS_INIT} )
message ( STATUS "CMAKE have Win32 pthreads: " ${CMAKE_USE_WIN32_THREADS_INIT} )
message ( STATUS "CMAKE have OpenMP: " ${OPENMP_FOUND} )

#-------------------------------------------------------------------------------
Expand Down Expand Up @@ -238,6 +238,9 @@ include_directories ( Source/Template Source Source/Generated Source/Generator I
# check which compiler is being used. If you need to make
# compiler-specific modifications, here is the place to do it.
if ( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
# The -g option is useful for the Intel VTune tool, but it should be
# removed in production. Comment this line out if not in use:
# set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g" )
# cmake 2.8 workaround: gcc needs to be told to do ANSI C11.
# cmake 3.0 doesn't have this problem.
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -lm -Wno-pragmas " )
Expand All @@ -251,7 +254,6 @@ if ( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fwrapv ")
# check all warnings (uncomment for development only)
# set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wpedantic -Werror " )
# set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g" )
if ( CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9 )
message ( FATAL_ERROR "gcc version must be at least 4.9" )
endif ( )
Expand All @@ -274,6 +276,7 @@ elseif ( "${CMAKE_C_COMPILER_ID}" STREQUAL "Intel" )
endif ( )
elseif ( "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" )
# options for clang
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-pointer-sign " )
if ( CMAKE_C_COMPILER_VERSION VERSION_LESS 3.3 )
message ( FATAL_ERROR "clang version must be at least 3.3" )
endif ( )
Expand Down Expand Up @@ -349,25 +352,10 @@ endif ( )
# select the threading library
#-------------------------------------------------------------------------------

if ( USER_OPENMP )
# user insists on OpenMP synchronization inside GraphBLAS
message ( STATUS "cmake -DUSER_OPENMP=1: insisting on using OpenMP" )
if ( OPENMP_FOUND )
# set this to 'false' if you do not want OpenMP
# set ( USE_OPENMP false )
set ( USE_OPENMP true )
elseif ( USER_POSIX )
# user insists on POSIX synchronization inside GraphBLAS
message ( STATUS "cmake -DUSER_POSIX=1: insisting on using POSIX" )
set ( USE_POSIX true )
elseif ( USER_NONE )
message ( STATUS "cmake -DUSER_NONE=1: insisting on using no threading" )
set ( USE_NONE true )
else ( )
# default: automatic selection
message ( STATUS "Automatic selection of synchronization method for user threads" )
if ( OPENMP_FOUND )
set ( USE_OPENMP true )
elseif ( CMAKE_USE_PTHREADS_INIT )
set ( USE_POSIX true )
endif ( )
endif ( )

#-------------------------------------------------------------------------------
Expand All @@ -380,67 +368,44 @@ else ( )
set ( M_LIB "m" )
endif ( )

target_link_libraries ( graphblas ${M_LIB} )
if ( BUILD_GRB_STATIC_LIBRARY )
target_link_libraries ( graphblas_static ${M_LIB} )
endif ( )

#-------------------------------------------------------------------------------
# add the threading library
# add the OpenMP, CUDA, BLAS, ... libraries
#-------------------------------------------------------------------------------

if ( USE_OPENMP )
# use OpenMP for user thread synchronization
message ( STATUS "Using OpenMP to synchronize user threads" )
target_link_libraries ( graphblas ${M_LIB} ${OpenMP_C_LIBRARIES} ${GB_CUDA} )
if ( BUILD_GRB_STATIC_LIBRARY )
target_link_libraries ( graphblas_static ${M_LIB} ${OpenMP_C_LIBRARIES} ${GB_CUDA} )
endif ( )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS} -DUSER_OPENMP_THREADS " )
elseif ( USE_POSIX )
# use POSIX for user thread synchronization
message ( STATUS "Using POSIX pthreads to synchronize user threads" )
target_link_libraries ( graphblas ${M_LIB} ${GB_CUDA} )
target_link_libraries ( graphblas ${OpenMP_C_LIBRARIES} )
if ( BUILD_GRB_STATIC_LIBRARY )
target_link_libraries ( graphblas_static ${M_LIB} ${GB_CUDA} )
target_link_libraries ( graphblas_static ${OpenMP_C_LIBRARIES} )
endif ( )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread -DUSER_POSIX_THREADS " )
else ( )
# use no threading at all
message ( WARNING "No support for user threads; GraphBLAS will not be thread-safe" )
target_link_libraries ( graphblas ${M_LIB} ${GB_CUDA} )
if ( BUILD_GRB_STATIC_LIBRARY )
target_link_libraries ( graphblas_static ${M_LIB} ${GB_CUDA} )
endif ( )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSER_NO_THREADS " )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS} " )
endif ( )

if ( CMAKE_THREAD_LIBS_INIT )
target_link_libraries ( graphblas ${CMAKE_THREAD_LIBS_INIT} ${GB_CUDA} )
if ( CMAKE_CUDA )
target_link_libraries ( graphblas ${GB_CUDA} )
if ( BUILD_GRB_STATIC_LIBRARY )
target_link_libraries ( graphblas_static ${CMAKE_THREAD_LIBS_INIT} ${GB_CUDA} )
target_link_libraries ( graphblas_static ${GB_CUDA} )
endif ( )
endif ( )

if ( OPENMP_FOUND )
# use OpenMP for internal parallelism
message ( STATUS "Using OpenMP for internal parallelism" )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}" )
target_link_libraries ( graphblas ${M_LIB} ${OpenMP_C_LIBRARIES} ${GB_CUDA} )
if ( CMAKE_THREAD_LIBS_INIT )
target_link_libraries ( graphblas ${CMAKE_THREAD_LIBS_INIT} )
if ( BUILD_GRB_STATIC_LIBRARY )
target_link_libraries ( graphblas_static ${M_LIB} ${OpenMP_C_LIBRARIES} ${GB_CUDA} )
target_link_libraries ( graphblas_static ${CMAKE_THREAD_LIBS_INIT} )
endif ( )
endif ( )

if ( CMAKE_USE_PTHREADS_INIT )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_PTHREADS " )
endif ( )

if ( CMAKE_USE_WIN32_THREADS_INIT )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_WINDOWS_THREADS " )
endif ( )

if ( BLAS_FOUND )
# use the dense CBLAS
message ( STATUS "Using dense CBLAS for faster dense matrix/vector operations" )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGB_HAS_CBLAS " )
target_link_libraries ( graphblas ${BLAS_LIBRARIES} )
endif ( )
# FUTURE:
# if ( BLAS_FOUND )
# # use the dense CBLAS
# message ( STATUS "Using dense CBLAS for faster dense matrix/vector operations" )
# set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGB_HAS_CBLAS " )
# target_link_libraries ( graphblas ${BLAS_LIBRARIES} )
# endif ( )

#-------------------------------------------------------------------------------
# determine the default matrix format
Expand Down Expand Up @@ -487,7 +452,6 @@ endif ( )
add_executable ( pagerank_demo "Demo/Program/pagerank_demo.c" )
add_executable ( bfs_demo "Demo/Program/bfs_demo.c" )
add_executable ( tri_demo "Demo/Program/tri_demo.c" )
add_executable ( pthread_demo "Demo/Program/pthread_demo.c" )
add_executable ( openmp_demo "Demo/Program/openmp_demo.c" )
add_executable ( mis_demo "Demo/Program/mis_demo.c" )
add_executable ( complex_demo "Demo/Program/complex_demo.c" )
Expand All @@ -501,7 +465,6 @@ add_executable ( import_demo "Demo/Program/import_demo.c" )
target_link_libraries ( pagerank_demo graphblas graphblasdemo ${GB_CUDA} )
target_link_libraries ( bfs_demo graphblas graphblasdemo ${GB_CUDA} )
target_link_libraries ( tri_demo graphblas graphblasdemo ${GB_CUDA} )
target_link_libraries ( pthread_demo graphblas graphblasdemo ${GB_CUDA} )
target_link_libraries ( openmp_demo graphblas graphblasdemo ${GB_CUDA} )
target_link_libraries ( mis_demo graphblas graphblasdemo ${GB_CUDA} )
target_link_libraries ( complex_demo graphblas graphblasdemo ${GB_CUDA} )
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Ignore these files:
*.o
tri_main
*.a
*.so
jitFactory
stringify

# Do not ignore this file
!.gitignore
Expand Down
Loading

0 comments on commit ca1e2ee

Please sign in to comment.