building version 5.8.0 fails

Hi,

I am trying to build ParaView 5.8.0 from source, but it is failing with the following output:

WARNING: Target "cmTC_42f5c" requests linking to directory "/sw/installed/impi/2018.1.163-iccifort-2018.1.163-GCC-6.4.0-2.28/intel64/lib/release_mt".  Targets may link only to libraries.  CMake is dropping the item.
WARNING: Target "cmTC_42f5c" requests linking to directory "/sw/installed/impi/2018.1.163-iccifort-2018.1.163-GCC-6.4.0-2.28/intel64/lib".  Targets may link only to libraries.  CMake is dropping the item.
-- Could NOT find MPI_C (missing: MPI_C_WORKS) 
-- Could NOT find MPI (missing: MPI_C_FOUND C) 
CMake Error at VTK/CMake/vtkModule.cmake:4111 (message):
  Could not find the MPI external dependency.
Call Stack (most recent call first):
  VTK/CMake/vtkModule.cmake:4634 (vtk_module_find_package)
  VTK/Utilities/MPI/CMakeLists.txt:1 (vtk_module_third_party_external)


-- Configuring incomplete, errors occurred!
See also "/lustre/ssd/ws/alves-paraview/v5.8.0/build/CMakeFiles/CMakeOutput.log".
See also "/lustre/ssd/ws/alves-paraview/v5.8.0/build/CMakeFiles/CMakeError.log".

CMakeOutput.log (400.3 KB) and CMakeError.log (37.7 KB) are attached. The very same script works with version 5.7.0:

ml purge
ml Qt5/5.10.1-intel-2018a
ml Python/3.6.4-intel-2018a
ml CMake/3.12.1-GCCcore-6.4.0

CMAKE_FLAGS=""
CMAKE_FLAGS="${CMAKE_FLAGS} -D CMAKE_INSTALL_PREFIX=${INSTALL_DIR}"
CMAKE_FLAGS="${CMAKE_FLAGS} -D PARAVIEW_ENABLE_PYTHON:BOOL=ON"
CMAKE_FLAGS="${CMAKE_FLAGS} -D PARAVIEW_USE_MPI:BOOL=ON"
CMAKE_FLAGS="${CMAKE_FLAGS} ${SOURCE_DIR}"

Could you help me?

Thank you very much,

Are you able to build without MPI enabled ?

I am building in a Linux cluster: deactivating MPI is not an option… The very same script taurus.sh (2.4 KB) works for version 5.7.0, however.

Well yes, but does it build without MPI ?

In any case, if this is indeed a MPI problem, you will have to provide more info about the MPI you are running.

Hi Mathieu,

I am Rigel, from ZIH (Dresden). I am using Intel 2018a, and the script loads the same modules for both versions (5.7.0 and 5.8.0). The issue is certainly on the CMake files of the new version, as the very same script works (with the same modules and flags, including the MPI installation) for version 5.7.0.

I can see here that the build process manages to pass that point if you deactivate MPI.

Okay, but in order to understand where does the problem come from, we would need more information about your MPI installation.

Lots of things changed between 5.7 and 5.8, especially regarding CMake.

Right. Is there any command you would like me to run, in order to provide such details? Here a first one:

alves@tauruslogin6:~> ml iimpi/2018a
Module iimpi/2018a and 6 dependencies loaded.
alves@tauruslogin6:~> mpicc --version
icc (ICC) 18.0.1 20171018
Copyright (C) 1985-2017 Intel Corporation.  All rights reserved

For reference, we have a dashboard machine building ParaView with Intel’s MPI 2019.5.281. See e.g., https://open.cdash.org/buildSummary.php?buildid=6378041.

Is mpiicc available by chance (note the two "i"s)?

Yes, it is:

alves@tauruslogin6:~> ml iimpi/2018a
Module iimpi/2018a and 6 dependencies loaded.
alves@tauruslogin6:~> whereis mpiicc
mpiicc: /software/generic/impi/2018.1.163-iccifort-2018.1.163-GCC-6.4.0-2.28/intel64/bin/mpiicc

Which of them (mpicc, mpiicc, icc etc.) is being used, I don’t know: the script – which works fine for version 5.7.0 – just loads the modules and then calls CMake (the only flags being those mentioned above)…

I have just checked the CMakeCache.txt (296.3 KB) for version 5.7.0 (which builds successfully). This is the MPI compiler being used:

//MPI compiler for C
MPI_C_COMPILER:FILEPATH=/sw/installed/impi/2018.1.163-iccifort-2018.1.163-GCC-6.4.0-2.28/bin64/mpiicc

Can you modify your script to set MPI_C_COMPILER and MPI_CXX_COMPILER explicitly?

Ok. What should I set them to?

Using:

CMAKE_FLAGS="${CMAKE_FLAGS} -D MPI_C_COMPILER=`whereis mpiicc`"
CMAKE_FLAGS="${CMAKE_FLAGS} -D MPI_CXX_COMPILER=`whereis mpiicpc`"

Fails with the following output:

-- Could NOT find MPI_C (missing: MPI_C_LIB_NAMES MPI_C_HEADER_DIR MPI_C_WORKS) 
-- Could NOT find MPI (missing: MPI_C_FOUND C) 
CMake Error at VTK/CMake/vtkModule.cmake:4111 (message):
  Could not find the MPI external dependency.
Call Stack (most recent call first):
  VTK/CMake/vtkModule.cmake:4634 (vtk_module_find_package)
  VTK/Utilities/MPI/CMakeLists.txt:1 (vtk_module_third_party_external)

Using Foss 2018a (instead of Intel 2018a) modules:

ml Qt5/5.10.1-foss-2018a
ml Python/3.6.4-foss-2018a
ml CMake/3.12.1-GCCcore-6.4.0

Also fails with the same error:

-- Could NOT find MPI_C (missing: MPI_C_WORKS) 
-- Could NOT find MPI (missing: MPI_C_FOUND C) 
CMake Error at VTK/CMake/vtkModule.cmake:4111 (message):
  Could not find the MPI external dependency.
Call Stack (most recent call first):
  VTK/CMake/vtkModule.cmake:4634 (vtk_module_find_package)
  VTK/Utilities/MPI/CMakeLists.txt:1 (vtk_module_third_party_external)


-- Configuring incomplete, errors occurred!
See also "/lustre/ssd/ws/alves-paraview/v5.8.0/build/CMakeFiles/CMakeOutput.log".
See also "/lustre/ssd/ws/alves-paraview/v5.8.0/build/CMakeFiles/CMakeError.log".

Could someone help me?

Using Foss 2018b:

ml Qt5/5.10.1-foss-2018b
ml Python/3.6.6-foss-2018b
ml CMake/3.12.1-GCCcore-7.3.0

Also fails:

-- Could NOT find MPI_C (missing: MPI_C_WORKS) 
-- Could NOT find MPI (missing: MPI_C_FOUND C) 
CMake Error at VTK/CMake/vtkModule.cmake:4111 (message):
  Could not find the MPI external dependency.
Call Stack (most recent call first):
  VTK/CMake/vtkModule.cmake:4634 (vtk_module_find_package)
  VTK/Utilities/MPI/CMakeLists.txt:1 (vtk_module_third_party_external)


-- Configuring incomplete, errors occurred!
See also "/lustre/ssd/ws/alves-paraview/v5.8.0/build/CMakeFiles/CMakeOutput.log".
See also "/lustre/ssd/ws/alves-paraview/v5.8.0/build/CMakeFiles/CMakeError.log".

Foss 2019a:

ml Qt5/5.12.3-GCCcore-8.2.0
ml Python/3.6.6-foss-2019a
ml CMake/3.13.3-GCCcore-8.2.0

Fails the same way:

-- Could NOT find MPI_C (missing: MPI_C_WORKS) 
-- Could NOT find MPI (missing: MPI_C_FOUND C) 
CMake Error at VTK/CMake/vtkModule.cmake:4111 (message):
  Could not find the MPI external dependency.
Call Stack (most recent call first):
  VTK/CMake/vtkModule.cmake:4634 (vtk_module_find_package)
  VTK/Utilities/MPI/CMakeLists.txt:1 (vtk_module_third_party_external)


-- Configuring incomplete, errors occurred!
See also "/lustre/ssd/ws/alves-paraview/v5.8.0/build/CMakeFiles/CMakeOutput.log".
See also "/lustre/ssd/ws/alves-paraview/v5.8.0/build/CMakeFiles/CMakeError.log".

This problem must be on ParaView’s CMake files side.