DrTimothyAldenDavis / SuiteSparse

The official SuiteSparse library: a suite of sparse matrix algorithms authored or co-authored by Tim Davis, Texas A&M University.
https://people.engr.tamu.edu/davis/suitesparse.html
Other
1.17k stars 261 forks source link

5.10.1: build fails against tbb 2021.4.0 #110

Closed kloczek closed 2 years ago

kloczek commented 2 years ago

Describe the bug Looks like build fails when in build env is tbb 2021.4.0

To Reproduce Install tbb 2021.4.0 and build.

Expected behavior Build should not fail.

Screenshots

/home/tkloczko/rpmbuild/BUILD/suitesparse-5.10.1/SuiteSparse-5.10.1
+ cd SPQR
+ /usr/bin/make -O -j12 V=1 VERBOSE=1 -C Lib 'CFLAGS=-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -I/usr/include/metis -DHAVE_TBB -DNPARTITION' TBB=-ltbb BLAS=-lflexiblas LIBRARY_SUFFIX=
/usr/bin/make install INSTALL=/home/tkloczko/rpmbuild/BUILD/suitesparse-5.10.1/SuiteSparse-5.10.1
make[1]: Entering directory '/home/tkloczko/rpmbuild/BUILD/suitesparse-5.10.1/SuiteSparse-5.10.1/SPQR/Lib'
/usr/bin/g++ -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -I/usr/include/metis -DHAVE_TBB -DNPARTITION   -O3 -fexceptions -fPIC -fopenmp   -DNPARTITION -I../../CHOLMOD/Include -I../../SuiteSparse_config -I../Include -c ../Source/spqr_parallel.cpp
../Source/spqr_parallel.cpp:10:10: fatal error: tbb/task_scheduler_init.h: No such file or directory
   10 | #include <tbb/task_scheduler_init.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:126: spqr_parallel.o] Error 1
make[1]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/suitesparse-5.10.1/SuiteSparse-5.10.1/SPQR/Lib'
[tkloczko@ss-desktop SPECS]$ rpm -ql tbb-devel | grep include/tbb
/usr/include/tbb
/usr/include/tbb/blocked_range.h
/usr/include/tbb/blocked_range2d.h
/usr/include/tbb/blocked_range3d.h
/usr/include/tbb/blocked_rangeNd.h
/usr/include/tbb/cache_aligned_allocator.h
/usr/include/tbb/collaborative_call_once.h
/usr/include/tbb/combinable.h
/usr/include/tbb/concurrent_hash_map.h
/usr/include/tbb/concurrent_lru_cache.h
/usr/include/tbb/concurrent_map.h
/usr/include/tbb/concurrent_priority_queue.h
/usr/include/tbb/concurrent_queue.h
/usr/include/tbb/concurrent_set.h
/usr/include/tbb/concurrent_unordered_map.h
/usr/include/tbb/concurrent_unordered_set.h
/usr/include/tbb/concurrent_vector.h
/usr/include/tbb/enumerable_thread_specific.h
/usr/include/tbb/flow_graph.h
/usr/include/tbb/flow_graph_abstractions.h
/usr/include/tbb/global_control.h
/usr/include/tbb/info.h
/usr/include/tbb/memory_pool.h
/usr/include/tbb/null_mutex.h
/usr/include/tbb/null_rw_mutex.h
/usr/include/tbb/parallel_for.h
/usr/include/tbb/parallel_for_each.h
/usr/include/tbb/parallel_invoke.h
/usr/include/tbb/parallel_pipeline.h
/usr/include/tbb/parallel_reduce.h
/usr/include/tbb/parallel_scan.h
/usr/include/tbb/parallel_sort.h
/usr/include/tbb/partitioner.h
/usr/include/tbb/profiling.h
/usr/include/tbb/queuing_mutex.h
/usr/include/tbb/queuing_rw_mutex.h
/usr/include/tbb/scalable_allocator.h
/usr/include/tbb/spin_mutex.h
/usr/include/tbb/spin_rw_mutex.h
/usr/include/tbb/task.h
/usr/include/tbb/task_arena.h
/usr/include/tbb/task_group.h
/usr/include/tbb/task_scheduler_observer.h
/usr/include/tbb/tbb.h
/usr/include/tbb/tbb_allocator.h
/usr/include/tbb/tbbmalloc_proxy.h
/usr/include/tbb/tick_count.h
/usr/include/tbb/version.h
[tkloczko@ss-desktop SPECS]$ rpm -ql tbb-devel | grep task_scheduler_init.h
[tkloczko@ss-desktop SPECS]$

Desktop (please complete the following information):

Additional context Add any other context about the problem here.

DrTimothyAldenDavis commented 2 years ago

This is expected. TBB changed and deprecated the feature I'm using. Use the older TBB, or disable TBB completely. This won't be fixed.

kloczek commented 2 years ago

Realy? Why?

DrTimothyAldenDavis commented 2 years ago

Ask Intel. They broke my code. I can't use TBB anymore. This method is used in x=A\b in MATLAB, so it's not a trivial thing to abandon. I have to revise the code to use OpenMP tasking instead of TBB.

kloczek commented 2 years ago

Did you try to open the ticket to explain that?

DrTimothyAldenDavis commented 2 years ago

I tried to contact Intel. It's an intentional deprecation and removal of the feature I need. I can't fix SPQR to use the new TBB (which I why I thought at first I should just comment and close this) but I can ditch TBB in the future and use OpenMP tasking in its place. I'll reopen this issue so it's more easy to find this problem for others who encounter it.

DrTimothyAldenDavis commented 2 years ago

This is now fixed in the draft SuiteSparse v5.11.0, where TBB is no longer used in SuiteSparseQR.