Closed 100souci closed 2 years ago
Could you provide us with the config.log file (that you get for the original error, not the "cheat" attempt), and also the output of
make -s -f petsc_makefile getincludedirs
run from the fluidity source directory (with the same environment including PETSC_DIR and PETSC_ARCH as when you ran configure)
Cheers Stephan
On 07/12/2021 13:48, 100souci wrote:
Hello,
I'm trying to install Fluidity on a cluster (I'm the admin) using Intel MPI. I already installed it using OpenMPI a few months ago and your help was very useful. But we upgraded our drivers so now I have to recompile it as the previous OpenMPI is incompatible with the new drivers.
I successfully installed petsc but when running configure in the main Fluidity folder I get the following error:
./configure F77=mpif90 FC=mpif90 CXX=mpicxx CC=mpicc CXXFLAGS="-I$PETSC_DIR/include -I/softs/python/3.9.6-shared/include/python3.9 -I/softs/python/3.9.6-shared/lib/python3.9/site-packages/numpy/core/include/numpy -I$VTK_INCLUDE" LIBS="-L$PETSC_DIR/lib -L/softs/python/3.9.6-shared/lib -L$VTK_LIBS" --enable-2d-adaptivity --with-blas-dir=$PETSC_DIR --with-lapack=$PETSC_DIR/lib/liblapack.a --with-hdf5=/softs/hdf5-intel/bin/h5pcc --prefix=$PWD --with-libspud-root=/softs/spud CMAKE_PREFIX_PATH=/softs/SOURCES/Fluidity412/Fluidity ..... configure: Using PETSC_DIR=/softs/SOURCES/Fluidity412/Fluidity configure: error: Unknown petsc major version``` I did the following to install PETSc: ```git clone -b release https://gitlab.com/petsc/petsc.git petsc cd petsc git checkout v3.12.5 export PETSC_DIR=$PWD make PETSC_DIR=/softs/SOURCES/Fluidity412/test/petsc PETSC_ARCH=arch-linux-c-opt all make PETSC_DIR=/softs/SOURCES/Fluidity412/test/petsc PETSC_ARCH=arch-linux-c-opt install export PETSC_DIR=/softs/SOURCES/Fluidity412/Fluidity ``` I also tried without git checkout v3.12.5 but I get the same error. I tried to cheat by editing configure and commenting a few lines: ```# first check we have the right petsc version #if ac_fn_c_compute_int "$LINENO" ""PETSC_VERSION_MAJOR"" "PETSC_VERSION_MAJOR" "#include \"petscversion.h\""; then : #else # as_fn_error $? "Unknown petsc major version" "$LINENO" 5 #fi #if ac_fn_c_compute_int "$LINENO" ""PETSC_VERSION_MINOR"" "PETSC_VERSION_MINOR" "#include \"petscversion.h\""; then : #else # as_fn_error $? "Unknown petsc minor version" "$LINENO" 5 #fi``` But then I get another error: ```configure: error: PETSc fortran modules cannot be used. Either it the petsc*.mod files cannot be found, or petsc has been built using a different fortran compiler.``` Could you help me please? Thanks in advance.
So it seems you're getting linking errors
/softs/intel/clck/2019.10/lib/intel64/libutil.so: undefined reference to `std::__throw_out_of_range_fmt(char const*, ...)@GLIBCXX_3.4.20'
/softs/intel/clck/2019.10/lib/intel64/libcpil.so: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8'
with the fairly trivial bit of c code (lines 1863-1928 of config.log) in combination with the library flags that come from your petsc build (the output of make -s -f petsc_makefile getlinklibs
). So something's not quite right with your petsc build
Ok so I recompiled petsc using gnu8 and now:
# make -s -f petsc_makefile getlinklibs
-Wl,-rpath,/softs/SOURCES/0812/Fluidity/lib -Wl,-rpath,/softs/SOURCES/0812/Fluidity/lib -L/softs/SOURCES/0812/Fluidity/lib -Wl,-rpath,/softs/SOURCES/0812/Fluidity/lib -L/softs/SOURCES/0812/Fluidity/lib -Wl,-rpath,/softs/intel/compilers_and_libraries_2020.4.304/linux/mpi/intel64/lib/debug_mt -L/softs/intel/compilers_and_libraries_2020.4.304/linux/mpi/intel64/lib/debug_mt -Wl,-rpath,/softs/intel/compilers_and_libraries_2020.4.304/linux/mpi/intel64/lib -L/softs/intel/compilers_and_libraries_2020.4.304/linux/mpi/intel64/lib -Wl,-rpath,/opt/ohpc/pub/compiler/gcc/8.3.0/lib/gcc/x86_64-pc-linux-gnu/8.3.0 -L/opt/ohpc/pub/compiler/gcc/8.3.0/lib/gcc/x86_64-pc-linux-gnu/8.3.0 -Wl,-rpath,/opt/ohpc/pub/compiler/gcc/8.3.0/lib64 -L/opt/ohpc/pub/compiler/gcc/8.3.0/lib64 -Wl,-rpath,/softs/hdf5-intel/lib -L/softs/hdf5-intel/lib -Wl,-rpath,/softs/intel/clck/2019.10/lib/intel64 -L/softs/intel/clck/2019.10/lib/intel64 -Wl,-rpath,/softs/intel/compilers_and_libraries_2020.4.304/linux/mpi/intel64/libfabric/lib -L/softs/intel/compilers_and_libraries_2020.4.304/linux/mpi/intel64/libfabric/lib -Wl,-rpath,/softs/intel/compilers_and_libraries_2020.4.304/linux/ipp/lib/intel64 -L/softs/intel/compilers_and_libraries_2020.4.304/linux/ipp/lib/intel64 -Wl,-rpath,/softs/intel/compilers_and_libraries_2020.4.304/linux/compiler/lib/intel64_lin -L/softs/intel/compilers_and_libraries_2020.4.304/linux/compiler/lib/intel64_lin -Wl,-rpath,/softs/intel/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64_lin -L/softs/intel/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64_lin -Wl,-rpath,/softs/intel/compilers_and_libraries_2020.4.304/linux/tbb/lib/intel64/gcc4.8 -L/softs/intel/compilers_and_libraries_2020.4.304/linux/tbb/lib/intel64/gcc4.8 -Wl,-rpath,/softs/intel/compilers_and_libraries_2020.4.304/linux/daal/lib/intel64_lin -L/softs/intel/compilers_and_libraries_2020.4.304/linux/daal/lib/intel64_lin -Wl,-rpath,/softs/intel/compilers_and_libraries_2020.4.304/linux/tbb/lib/intel64_lin/gcc4.8 -L/softs/intel/compilers_and_libraries_2020.4.304/linux/tbb/lib/intel64_lin/gcc4.8 -Wl,-rpath,/opt/ohpc/pub/compiler/gcc/8.3.0/lib -L/opt/ohpc/pub/compiler/gcc/8.3.0/lib -lpetsc -lHYPRE -lcmumps -ldmumps -lsmumps -lzmumps -lmumps_common -lpord -lscalapack -lumfpack -lklu -lcholmod -lbtf -lccolamd -lcolamd -lcamd -lamd -lsuitesparseconfig -lml -lflapack -lfblas -lzoltan -lptesmumps -lptscotchparmetis -lptscotch -lptscotcherr -lesmumps -lscotch -lscotcherr -lparmetis -lmetis -lm -lz -lX11 -lstdc++ -ldl -lmpifort -lmpi -lrt -lpthread -lgfortran -lm -lgfortran -lm -lgcc_s -lquadmath -lrt -lquadmath -lstdc++ -ldl
But running configure in the Fluidity folder still fails:
./configure F77=mpif90 FC=mpif90 CXX=mpicxx CC=mpicc CXXFLAGS="-I$PETSC_DIR/include -I/softs/python/3.9.6-shared/include/python3.9 -I/softs/python/3.9.6-shared/lib/python3.9/site-packages/numpy/core/include/numpy -I$VTK_INCLUDE" LIBS="-L$PETSC_DIR/lib -L/softs/python/3.9.6-shared/lib -L$VTK_LIBS" --enable-2d-adaptivity --with-blas-dir=$PETSC_DIR --with-lapack=$PETSC_DIR/lib/liblapack.a --with-hdf5=/softs/hdf5-intel/bin/h5pcc --prefix=$PWD --with-libspud-root=/softs/spud CMAKE_PREFIX_PATH=/softs/SOURCES/0812/Fluidity
......
configure: Detected PETSc version "3"."12"
configure: error: PETSc fortran modules cannot be used. Either it the petsc*.mod files cannot be found, or petsc has been built using a different fortran compiler.
I also tried with F77=gfortran FC=gfortran CXX=g++ CC=gcc
The config.log file: config.log
The mpif90, mpicxx, mpicc in your path are they actually using gfortran/gcc? According to the config.log it's still using /softs/intel/compilers_and_libraries_2020.4.304/linux/mpi/intel64/bin/mpiifort
- which gives you the error you get: you have to use the same fortran compiler when building fluidity as when you use petsc.
Is the error the same when you used F77=gfortran FC=gfortran CXX=g++ CC=gcc
? You might need a mpi library built with gfortran/gcc to actually make this work...
Right, so I changed to F77=ifort FC=ifort CXX=icpc CC=icc
Now I get the following error:
./configure F77=ifort FC=ifort CXX=icpc CC=icc CXXFLAGS="-I$PETSC_DIR/include -I/softs/intel/intelpython3/include -I$VTK_INCLUDE" LIBS="-L$PETSC_DIR/lib -L/softs/intel/intelpython3/lib -L$VTK_LIBS" --enable-2d-adaptivity --with-blas-dir=$PETSC_DIR --with-lapack=$PETSC_DIR/lib/liblapack.a --with-hdf5=/softs/hdf5-intel/bin/h5pcc --prefix=$PWD --with-libspud-root=/softs/spud CMAKE_PREFIX_PATH=/softs/SOURCES/0812/Fluidity
...................
checking consistency of all components of python development environment... no
configure: error: in `/softs/SOURCES/0812/Fluidity':
configure: error:
Could not link test program to Python. Maybe the main Python library has been
installed in some non-standard library path. If so, pass it to configure,
via the LIBS environment variable.
Example: ./configure LIBS="-L/usr/non-standard-path/python/lib"
============================================================================
ERROR!
You probably have to install the development version of the Python package
for your distribution. The exact name of this package varies among them.
============================================================================
See `config.log' for more details
I use Intel Parallel Studio.
I'm a little confused what you're trying to do now: you said you rebuilt petsc with gfortran/gcc. If you want to use that petsc build you can only build fluidity with the same compilers. If you're trying to use a petsc built with icc/ifort you first need to solve what I discussed in my comments 5 hours ago: https://github.com/FluidityProject/fluidity/issues/342#issuecomment-988693063 That's an issue with your petsc build, not with fluidity
In any case, the error you are getting now in fluidity's configure is before the check for petsc, so looks like you've gone backwards. If you are getting this because you've swapped F77=mpif90 FC=mpif90 CXX=mpicxx CC=mpicc
(that you were originally, presumably with paths set to some intel parallel suite) with F77=ifort FC=ifort CXX=icpc CC=icc
it probably means that the ifort in your path is not the same as the one that mpif90 is using, and this version doesn't play well with your python library.
Thanks, there was a problem with python indeed. Is there a way to install Fluidity without VTK ? I tried ./configure --enable-vtk, --disable-vtk, --enable-vtk=no or 0 but I still get this message:
configure: Checking for VTK automagic.
CMake Error: Problem processing arguments. Aborting.
CMake Error: Problem processing arguments. Aborting.
configure: No VTK automagic
ls: cannot access /usr/include/vtk*: No such file or directory
checking / usability... no
checking / presence... no
checking for /... no
configure: error: Cannot find vtk installation.
configure: error: Configuration of libadaptivity has failed.
I think VTK is required, otherwise, you will not be able to output anything from your simulations.
Thank you
Hello,
I'm trying to install Fluidity on a cluster (I'm the admin) using Intel MPI. I already installed it using OpenMPI a few months ago and your help was very useful. But we upgraded our drivers so now I have to recompile it as the previous OpenMPI is incompatible with the new drivers.
I successfully installed petsc but when running configure in the main Fluidity folder I get the following error:
I did the following to install PETSc:
I also tried without git checkout v3.12.5 but I get the same error.
I tried to cheat by editing configure and commenting a few lines:
But then I get another error:
configure: error: PETSc fortran modules cannot be used. Either it the petsc*.mod files cannot be found, or petsc has been built using a different fortran compiler.
Could you help me please?
Thanks in advance.