lanl / spiner

Performance portable routines for generic, tabulated, multi-dimensional data
https://lanl.github.io/spiner
BSD 3-Clause "New" or "Revised" License
7 stars 3 forks source link

[JOSS REVIEW] installation warnings #31

Closed lgarrison closed 2 years ago

lgarrison commented 2 years ago

I get a few warnings that are somewhat confusing during the installation:

```console lgarrison@ccalin008:~/spiner/bin$ cmake -DBUILD_TESTING=ON -DSPINER_USE_KOKKOS=1 -DSPINER_USE_KOKKOS_SRC=$HOME/kokkos -DSPINER_USE_CUDA=1 .. -- The C compiler identification is GNU 7.5.0 -- The CXX compiler identification is GNU 7.5.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /cm/shared/sw/nix/store/vwnmqpr70sxsb0gpa3ivyp9yidh0snmj-gcc-7.5.0/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /cm/shared/sw/nix/store/vwnmqpr70sxsb0gpa3ivyp9yidh0snmj-gcc-7.5.0/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Setting build type to 'RelWithDebInfo' as none was specified. CMake Warning at cmake/Format.cmake:37 (message): Couldn't determine clang-format version. clang-format 12.0 is expected - results on other versions may not be stable Call Stack (most recent call first): CMakeLists.txt:63 (include) -- Kokkos source directory found. Adding source. -- Setting default Kokkos CXX standard to 14 -- Setting policy CMP0074 to use _ROOT variables -- The project name is: Kokkos -- Compiler Version: 11.4.120 -- kokkos_launch_compiler (/mnt/home/lgarrison/kokkos/bin/kokkos_launch_compiler) is enabled... -- SERIAL backend is being turned on to ensure there is at least one Host space. To change this, you must enable another host execution space and configure with -DKokkos_ENABLE_SERIAL=OFF or change CMakeCache.txt -- Using -std=c++14 for C++14 standard as feature -- CUDA auto-detection of architecture failed with /cm/shared/sw/nix/store/vwnmqpr70sxsb0gpa3ivyp9yidh0snmj-gcc-7.5.0/bin/c++. Enabling CUDA language ONLY to auto-detect architecture... -- Looking for a CUDA compiler -- Looking for a CUDA compiler - /cm/shared/sw/nix/store/n5pp14c99923566d8gjwjq0qvyashxr8-cuda-11.4.2/bin/nvcc -- The CUDA compiler identification is NVIDIA 11.4.120 -- Detecting CUDA compiler ABI info -- Detecting CUDA compiler ABI info - done -- Check for working CUDA compiler: /cm/shared/sw/nix/store/n5pp14c99923566d8gjwjq0qvyashxr8-cuda-11.4.2/bin/nvcc - skipped -- Detecting CUDA compile features -- Detecting CUDA compile features - done -- Detected CUDA Compute Capability 75 -- Setting Kokkos_ARCH_TURING75=ON -- Built-in Execution Spaces: -- Device Parallel: Kokkos::Cuda -- Host Parallel: NoTypeDefined -- Host Serial: SERIAL -- -- Architectures: -- TURING75 -- Found CUDAToolkit: /cm/shared/sw/nix/store/n5pp14c99923566d8gjwjq0qvyashxr8-cuda-11.4.2/include (found version "11.4.120") -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Found TPLCUDA: TRUE -- Found TPLLIBDL: /usr/lib64/libdl.so -- Kokkos Devices: CUDA;SERIAL, Kokkos Backends: CUDA;SERIAL -- Looking for ports-of-call -- Could NOT find ports-of-call (missing: ports-of-call_DIR) -- Ports of call not available in-system. Using submodule. CMake Warning at ports-of-call/CMakeLists.txt:74 (message): The portability strategy ["Kokkos"] is not valid, defaulting to "None", valid options are None;Kokkos;Cuda -- Will define PORTABILITY_STRATEGY_NONE Configuring tests -- Fetching Catch2 as needed -- Found Python3: /cm/shared/sw/nix/store/mmjyg0figxiv63a170dvx7xjvr6jh21h-python-3.8.12-view/bin/python3.8 (found version "3.8.12") found components: Interpreter NumPy Development.Module CMake Warning at test/CMakeLists.txt:64 (message): Python, numpy, or matplotlib is unavailable. Convergence can be run, but no plots will be generated. CMake Warning at CMakeLists.txt:174 (message): Installation not supported when Kokkos built from source. Disabling. -- Configuring done -- Generating done -- Build files have been written to: /mnt/home/lgarrison/spiner/bin ```

The clang one makes sense because I'm not using clang. But the Kokkos one makes less sense:

CMake Warning at ports-of-call/CMakeLists.txt:74 (message):
  The portability strategy ["Kokkos"] is

      not valid, defaulting to "None", valid options are 
      None;Kokkos;Cuda

Likewise, the Python one says I'm missing Python, numpy, or matplotlib, but it's finding the right Python executable and I can import all those packages. That is, /cm/shared/sw/nix/store/mmjyg0figxiv63a170dvx7xjvr6jh21h-python-3.8.12-view/bin/python3.8 -c 'import numpy, matplotlib' works fine.

-- Found Python3: /cm/shared/sw/nix/store/mmjyg0figxiv63a170dvx7xjvr6jh21h-python-3.8.12-view/bin/python3.8 (found version "3.8.12") found components: Interpreter NumPy Development.Module 
CMake Warning at test/CMakeLists.txt:64 (message):
  Python, numpy, or matplotlib is unavailable.  Convergence can be run, but
  no plots will be generated.
lgarrison commented 2 years ago

x-ref https://github.com/openjournals/joss-reviews/issues/4367

Yurlungur commented 2 years ago

Thanks for the catch, @lgarrison ! Can you check again? Both issues should be resolved now.

lgarrison commented 2 years ago

Hmm, I'm on main (5a5e367d54d8f75e4afad27cd0ea7941cd2200d1) but I'm still getting the Kokkos warning. Or to simplify it further, without Kokkos I get:

CMake Warning at ports-of-call/CMakeLists.txt:74 (message):
  The portability strategy ["None"] is

      not valid, defaulting to "None", valid options are 
      None;Kokkos;Cuda
Yurlungur commented 2 years ago

Can you try updating your port-of-call submodule with git submodule update --init --recursive? That error was actually a bug in ports of call, which is a separate repository.

lgarrison commented 2 years ago

Ah, it's always submodules, isn't it? Thanks, all looks good now!