make CXXFLAGS="-Xpreprocessor -fopenmp" LDFLAGS="-lomp"
This was based on the MacOS clang++ issues highlighted in step 8. This results in 8 warnings and 1 error. The error being:
/opt/homebrew/include/eigen3/Eigen/Core:70:10: fatal error: 'omp.h' file not found
#include <omp.h>
^~~~~~~
8 warnings and 1 error generated.
make[2]: *** [src/chrono/CMakeFiles/ChronoEngine.dir/core/ChFilePS.cpp.o] Error 1
make[1]: *** [src/chrono/CMakeFiles/ChronoEngine.dir/all] Error 2
make: *** [all] Error 2
Question 2: Again, where did I go wrong here?
I am new to the macOS, shell, and cmake and the learning curve was steep getting to this point. So, I hope you cut me some slack if any/all of my questions are basic/naive and I hope you can help me get over this hurdle and successfully run Chrono. Of course running the additional modules and parallelization would be an amazing bonus after successful installation.
From what I read, Chrono sounds solid in multi-body dynamics. I hope I can make it run on my mac and start benefiting from it.
Thank you,
Akthem
cmake -S /Users/Akthem/chrono -B build \
-DCMAKE_BUILD_TYPE=Release \
-DOpenMP_CXX_FLAGS:STRING="-Xclang -fopenmp" \
-DOpenMP_C_FLAGS:STRING="-Xclang -fopenmp" \
-DOpenMP_C_INCLUDE_DIR:PATH=-L/opt/homebrew/opt/libomp/lib \
-DOpenMP_CXX_INCLUDE_DIR:PATH=/opt/homebrew/opt/libomp/include \
-DOpenMP_C_LIB_NAMES:STRING=libomp \
-DOpenMP_CXX_LIB_NAMES:STRING=libomp \
-DOpenMP_libomp_LIBRARY:FILEPATH="/opt/homebrew/opt/libomp/lib/libomp.dylib" \
-DTHRUST_INCLUDE_DIR:PATH=${DEPFIX}/include \
-DBLAZE_INSTALL_DIR:PATH=/usr/local/include \
-DENABLE_MODULE_POSTPROCESS:BOOL=ON \
-DENABLE_MODULE_VEHICLE:BOOL=ON \
-DENABLE_MODULE_IRRLICHT:BOOL=ON \
-DENABLE_MODULE_MULTICORE=ON \
-DIRRLICHT_INSTALL_DIR:PATH=/opt/homebrew
Then, I follow through with cmake --build build and get the below error:
/Users/Akthem/Downloads/thrust/thrust/detail/type_traits.h:27:10: fatal error: 'cuda/std/type_traits' file not found
#include <cuda/std/type_traits>
^~~~~~~~~~~~~~~~~~~~~~
10 warnings and 1 error generated.
make[2]: *** [src/chrono/CMakeFiles/ChronoEngine.dir/physics/ChBody.cpp.o] Error 1
make[1]: *** [src/chrono/CMakeFiles/ChronoEngine.dir/all] Error 2
make: *** [all] Error 2
I tried to comment out the line causing the error in the above mentioned file:
#include <cuda/std/type_traits>
This leads to other errors and a fatal error linked to cuda too. Could you please check my workflow/syntax and let me know where did I go wrong. Alternatively, if all went well, then how to overcome this hurdle?
Thank you,
Sincerely,
Akthem
cmake -S /Users/Akthem/chrono -B build \
-DCMAKE_BUILD_TYPE=Release \
-DOpenMP_CXX_FLAGS:STRING="-Xclang -fopenmp" \
-DOpenMP_C_FLAGS:STRING="-Xclang -fopenmp" \
-DOpenMP_C_INCLUDE_DIR:PATH=-L/opt/homebrew/opt/libomp/lib \
-DOpenMP_CXX_INCLUDE_DIR:PATH=/opt/homebrew/opt/libomp/include \
-DOpenMP_C_LIB_NAMES:STRING=libomp \
-DOpenMP_CXX_LIB_NAMES:STRING=libomp \
-DOpenMP_libomp_LIBRARY:FILEPATH="/opt/homebrew/opt/libomp/lib/libomp.dylib" \
-DTHRUST_INCLUDE_DIR:PATH=/Users/Akthem/Downloads/thrust-1.17.2 \
-DBLAZE_INSTALL_DIR:PATH=/usr/local/include \
-DBLAZE_VERSION_FILENAME=/usr/local/include/blaze/system/Version.h \
-DENABLE_MODULE_POSTPROCESS:BOOL=ON \
-DENABLE_MODULE_VEHICLE:BOOL=ON \
-DENABLE_MODULE_IRRLICHT:BOOL=ON \
-DENABLE_MODULE_MULTICORE=ON \
-DIRRLICHT_INSTALL_DIR:PATH=/opt/homebrew
/usr/local/include/blaze/system/BLAS.h:58:10: fatal error: 'cblas.h' file not found
#include BLAZE_BLAS_INCLUDE_FILE
^~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/blaze/config/BLAS.h:208:33: note: expanded from macro 'BLAZE_BLAS_INCLUDE_FILE'
#define BLAZE_BLAS_INCLUDE_FILE <cblas.h>
^~~~~~~~~
<scratch space>:440:1: note: expanded from here
<cblas.h>
^~~~~~~~~
10 warnings and 1 error generated.
make[2]: *** [src/chrono_multicore/CMakeFiles/ChronoEngine_multicore.dir/ChDataManager.cpp.o] Error 1
make[1]: *** [src/chrono_multicore/CMakeFiles/ChronoEngine_multicore.dir/all] Error 2
make: *** [all] Error 2
cmake -S /Users/Akthem/chrono -B build \
-DCMAKE_BUILD_TYPE=Release \
-DOpenMP_CXX_FLAGS:STRING="-Xclang -fopenmp" \
-DOpenMP_C_FLAGS:STRING="-Xclang -fopenmp" \
-DOpenMP_C_INCLUDE_DIR:PATH=-L/opt/homebrew/opt/libomp/lib \
-DOpenMP_CXX_INCLUDE_DIR:PATH=/opt/homebrew/opt/libomp/include \
-DOpenMP_C_LIB_NAMES:STRING=libomp \
-DOpenMP_CXX_LIB_NAMES:STRING=libomp \
-DOpenMP_libomp_LIBRARY:FILEPATH="/opt/homebrew/opt/libomp/lib/libomp.dylib" \
-DTHRUST_INCLUDE_DIR:PATH=/Users/Akthem/Downloads/thrust-1.17.2 \
-DBLAZE_INSTALL_DIR:PATH=/usr/local/include \
-DBLAZE_VERSION_FILENAME=/usr/local/include/blaze/system/Version.h \
-DIRRLICHT_INSTALL_DIR=/opt/homebrew/Cellar/irrlicht/1.8.5_1 \
-DENABLE_MODULE_POSTPROCESS:BOOL=ON \
-DENABLE_MODULE_VEHICLE:BOOL=ON \
-DENABLE_MODULE_IRRLICHT:BOOL=ON \
-DENABLE_MODULE_MULTICORE=ON \
-DENABLE_MODULE_MODAL=ON \
-DENABLE_MODULE_POSTPROCESS=ON \
-DENABLE_MODULE_PYTHON=ON \
-DBUILD_DEMOS=ON
/Users/Akthem/chrono/src/chrono_modal/ChEigenvalueSolver.cpp:28:10: fatal error: 'Spectra/KrylovSchurGEigsSolver.h' file not found
#include <Spectra/KrylovSchurGEigsSolver.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10 warnings and 1 error generated.
make[2]: *** [src/chrono_modal/CMakeFiles/ChronoEngine_modal.dir/ChEigenvalueSolver.cpp.o] Error 1
make[1]: *** [src/chrono_modal/CMakeFiles/ChronoEngine_modal.dir/all] Error 2
make: *** [all] Error 2
Hi Rainer,
This is not quite correct. Thrust still supports the OpenMP backend. It’s just that in recent versions they introduced these dependencies on CUDA headers and so it cannot be used anymore without a CUDA installation (thrust is distributed as part of it) even though one may never use CUDA (as is the case in our case here).
I’m not sure what the best solution is here. For now, I suggest simply not enabling the Chrono::Multicore module. Akthem, looking at the problem you describe, I don’t see why you would need that module anyway. Note that FEA in Chrono does use OpenMP parallelization, but it does not rely on Thrust.
--Radu
--
You received this message because you are subscribed to the Google Groups "ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
projectchron...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/projectchrono/08214a60-0e0e-4bbf-8ff8-538e4b581465n%40googlegroups.com.
cmake -S /Users/Akthem/chrono -B build \
-DCMAKE_BUILD_TYPE=Release \
-DOpenMP_CXX_FLAGS:STRING="-Xclang -fopenmp" \
-DOpenMP_C_FLAGS:STRING="-Xclang -fopenmp" \
-DOpenMP_C_INCLUDE_DIR:PATH=-L/opt/homebrew/opt/libomp/lib \
-DOpenMP_CXX_INCLUDE_DIR:PATH=/opt/homebrew/opt/libomp/include \
-DOpenMP_C_LIB_NAMES:STRING=libomp \
-DOpenMP_CXX_LIB_NAMES:STRING=libomp \
-DOpenMP_libomp_LIBRARY:FILEPATH="/opt/homebrew/opt/libomp/lib/libomp.dylib" \
-DTHRUST_INCLUDE_DIR:PATH=/Users/Akthem/Downloads/thrust-1.17.2 \
-DBLAZE_INSTALL_DIR:PATH=/usr/local/include \
-DBLAZE_VERSION_FILENAME=/usr/local/include/blaze/system/Version.h \
-DIRRLICHT_INSTALL_DIR=/opt/homebrew/Cellar/irrlicht/1.8.5_1 \
-DSPECTRA_INCLUDE_DIR:PATH=/Users/Akthem/Downloads/spectra/include \
-DENABLE_MODULE_COSIMULATION:BOOL=ON \
-DENABLE_MODULE_POSTPROCESS:BOOL=ON \
-DENABLE_MODULE_VEHICLE:BOOL=ON \
-DENABLE_MODULE_IRRLICHT:BOOL=ON \
-DENABLE_HDF5=ON \
-DENABLE_MODULE_MODAL=ON \
-DENABLE_MODULE_POSTPROCESS=ON \
-DENABLE_MODULE_PYTHON=ON \
-DBUILD_DEMOS=ON