PaStiX4CalculiX: Dependency of CUDA_LIBRARIES 'Threads::Threads' NOT FOUND

Hello all,

I am quite aware that this topic is not new. However, even after reading multiple threads on compiling issues with PaStiX for CalculiX, I could still not figure out how to build PaStiX without errors.
The other features as stated in the official CalculiX instructions, such as OpenBLAS, hwloc, parsec and scotch could be installed. But when running the make_pastix.sh file, the following error occurs:

CMake Error at cmake_modules/morse_cmake/modules/find/LibrariesAbsolutePath.cmake:59 (message):
Dependency of CUDA_LIBRARIES ‘Threads::Threads’ NOT FOUND
Call Stack (most recent call first):
cmake_modules/morse_cmake/modules/find/FindPARSEC.cmake:211 (libraries_absolute_path)
CMakeLists.txt:365 (find_package)

I wonder, what triggers this error. I already tried the recommendations mentioned in PaStix4CalculiX compilation error, PasTix build issue or Pastix4Calculix - Build and installation issues - #8 by hem_28.

My make file looks like this:

#!/bin/bash
if ! [[ -d build ]]; then
mkdir build
fi
cd build

cmake
-DBLAS_DIR=/home/ph/OpenBLAS_i8
-DHWLOC_DIR=/home/ph/PaStiX/hwloc_i8
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.4
-DCMAKE_INSTALL_PREFIX=/home/ph/PaStiX/pastix_i8
-DCMAKE_BUILD_TYPE=Release
-DPASTIX_WITH_PARSEC=ON
-DPARSEC_DIR=/home/ph/PaStiX/parsec_i8
-DSCOTCH_DIR=/home/ph/PaStiX/scotch_i8
-DPASTIX_WITH_CUDA=ON
-DCUDA_DIR=/usr/local/cuda-11.4
-DPASTIX_ORDERING_SCOTCH=ON
-DCMAKE_C_COMPILER=gcc
-DCMAKE_CXX_COMPILER=g++
-DCMAKE_Fortran_COMPILER=gfortran
-DCMAKE_C_FLAGS="-fopenmp"

make -j8
make install

If you have any further ideas of how to solve this problem, I would highly appreciate it.

Thank you very much in advance and best regards!

maybe you should add libomp5

What is the output of nvidia-smi ?

Thank you so much for the quick response.

@Zyx1258: I installed the feature you mentioned, but unfortunately nothing changed. Do I have to include it in the path?

@feacluster: Here is the output of the smi:

±----------------------------------------------------------------------------+
| NVIDIA-SMI 470.57.02 Driver Version: 470.57.02 CUDA Version: 11.4 |
|-------------------------------±---------------------±---------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Tesla V100S-PCI… Off | 00000000:25:00.0 Off | 0 |
| N/A 34C P0 24W / 250W | 4MiB / 32510MiB | 0% Default |
| | | N/A |
±------------------------------±---------------------±---------------------+

±----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
±----------------------------------------------------------------------------+

Best regards.

Update: To test, what is the reason for this error, I made a modification in the make_pastix.sh file and set the option -DPASTIX_WITH_PARSEC to OFF. Even though an error that the file parsec.h cannot be found is printed, the compilation seems to run a lot farther. Is therefore something wrong with parsec? As I mentioned before, parsec actually seemed to compile just fine.

Not sure if it will help, but I managed to force PARSEC to not include the Threads::Threads library by changing the $CUDA_LIBRARIES variable in the CMakeLists.txt and it worked so far