Explore updating TBB
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 839
- Forks
- 220
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 14
Description
A couple issues have come up on the forums which were caused by environments (hpc or conda) shipping newer versions of TBB than Stan, causing linking issues if the environment's version was picked up by the C++ compiler
These have been slowly growing over time (conda-forge migrated their ecosystem back in 2021), and will only get worse. Stan already supports using these versions, but you need to opt-in with -DTBB_INTERFACE_NEW and providing the correct headers at build time.
I think we should make this the default. My understanding is the major barrier here is that the newer versions of TBB are only available as cmake builds? So we would either need to use cmake ourselves (#3068 #2967) or require users have cmake installed and invoke it from our own Makefiles
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the Makefile-based build approach and the CMake-related issues #3068 and #2967. Reproduce the TBB linking problem in an HPC or conda environment, then determine whether the newer TBB interface can become the default while builds succeed without the current opt-in flag.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100