v2.2.1 - Update windows build and TBB
Waves v2.2.1 - Windows build + TBB
This MR updates the build instructions to easily compile waves on windows using the Visual Studio compilers and the latest versions of the required packages, especially Intel TBB.
Changes
- Update CMake's findTBB and TBB usage (fix #46)
- Add documentation
Notes
TBB usage
tbb::thread_scheduler
, tbb::parallel_do
, tbb::mutex
and tbb::atomic
are deprecated since 2020. They have been replaced by tbb::global_control
, tbb::parallel_for_each
, std::mutex
and std::atomic
, repspectively.
Note that including tbb/global_control.h
using IntelTBB < 2019U4 requires to define TBB_PREVIEW_GLOBAL_CONTROL
during compilation. This has been included in tbox/CMakeLists.
CMake/findTBB.cmake
Using Intel's oneAPI, the TBB libraries have changed names (tbb12 instead of tbb). Consequently, I adapted the findTBB to search for the oneTBB (tbb12) if the env variable ONEAPI_ROOT
is defined. Note that oneTBB comes with its own tbb-config.cmake. As such, I suggest that we update TBB on all machine for future releases so that we can remove our old findTBB.
Tests
Tests are passing on ubuntu20.04 (gcc 9, python 3.8.2), windows10 (vs2019, python 3.8.7) and msys2 (gcc 9, python 3.8.1).
Merge request reports
Activity
added cleaning enhancement labels
- Resolved by Adrien Crovato
It is absolutely not a good idea to update tbb/mkl on all the systems while using mkl 2019 allows us to have good performance on AMD processors (Warson) that will not be accessible anymore if using mkl 2020 (intel remove the possibility to force the detection of AMD procs features (sse2, ..) => mkl perfs becomes not good at all ..). And as mkl's sparse direct solver (in fact an old implementeation of pardiso) is the best solver for Metafor, we cannot loose it (we have to find another efficient direct solver before doing this)... We will have to keep compatibility with old implementation of mkl/tbb. Did you try your cmake on lab linux box (gaston, clifton, warson, ... ?)
With MyLibs : waves (branch adrien) :
- compilation ok (juste quelques warnings de cast Eigen::Index -> int)
- ctest : 100% tests passed, 0 tests failed out of 63
pfem (branch master) :
- compilation ok
- ctest : running ...
Edited by Papeleux Luc- Resolved by Adrien Crovato
With cmake 3.20.1 :
waves Debug :
- Build : OK (same warnings)
- CTest : OK : 100% tests passed
Edited by Papeleux Luc