Closed EnderWiggin14 closed 1 year ago
PICLas tries to download a HOPR tag, which is currently set to v1.0.0 and not yet released but hopefully will be in the next few weeks. You could comment out the respective setting in the CMakeListsLib.txt, Line 466 for now:
GIT_REPOSITORY ${HOPR_DOWNLOAD}
## GIT_TAG v1.0.0
GIT_PROGRESS FALSE
But it might be best if we try to resolve the HOPR installation issues at the respective GitHub page.
Because the current build that is available from the hopr-framework repository is broken, the HOPR install step of compilation fails. I have commented my own issue to what appears to be a the same issue posted in Nov 2022.
Hi,
does this problem still persist? I just tested the compilation process with the hopr tag v1.0.0 and everything worked fine.
These are the compiler settings that I used:
CMAKE_BUILD_TYPE Release
CMAKE_INSTALL_PREFIX /home/stephen/piclas-github
LIBS_BUILD_HDF5 OFF
LIBS_BUILD_HOPR ON
LIBS_BUILD_MATH_LIB OFF
LIBS_USE_MKL OFF
LIBS_USE_MPI ON
PICLAS_BUILD_POSTI ON
PICLAS_CODE_ANALYZE OFF
PICLAS_CTAGS ON
PICLAS_DEBUG_MEMORY OFF
PICLAS_EQNSYSNAME maxwell
PICLAS_EXTRAE OFF
PICLAS_IMPLICIT_ANALYZE OFF
PICLAS_INTKIND8 OFF
PICLAS_IPO ON
PICLAS_LOADBALANCE ON
PICLAS_MEASURE_MPI_WAIT OFF
PICLAS_NODETYPE GAUSS
PICLAS_PARTICLES ON
PICLAS_PERFORMANCE OFF
PICLAS_PETSC OFF
PICLAS_POLYNOMIAL_DEGREE N
PICLAS_READIN_CONSTANTS OFF
PICLAS_SHARED_MEMORY MPI_COMM_TYPE_SHARED
PICLAS_TIMEDISCMETHOD RK4
PICLAS_UNITTESTS ON
PICLAS_VDM_ANALYTICAL OFF
POSTI_BUILD_DMD OFF
POSTI_BUILD_PICLAS2VTK ON
POSTI_BUILD_SUPERB ON
POSTI_BUILD_VISU ON
POSTI_USE_PARAVIEW OFF
USED_CMAKE_GENERATOR Unix Makefiles
And here are the pre-installed libs:
1) cmake/3.24.2
2) gcc/12.2.0
3) openmpi/4.1.4
4) hdf5/1.12.2
Kind regards Stephen
@scopplestone I did manage to get things compiled. I have not had time to actually attempt to use the software yet. The biggest problem was one introduced by HOPR that went far beyond a version number requirement. I couldn't install their software with the default CCMAKE configuration, and picLas itself could not get it to install either. Your response came a while after they fixed the issue. If I remember correctly, the issue revolved heavily around MPI and the removal of MPI as a requirement for HOPR.
That being said, the compilation of picLas was not without some issues. I'm not sure as why it happens this way, but despite having followed the instructions in the installation guide, I ended up having to modify what the cmake fortran compiler was. It defaulted to gfortran, but it needs to match the MPI fortran compiler. I had to manually change the cmake fortran compiler entry to point at the mpif90 compiler.
Also, at this point in time, I would say that it is highly ill advised to try to install HOPR independently because there seems to be only one working configuration. I ran into a number of issues trying to compile HOPR so I could compile picLas as previously stated.
@scopplestone As a heads up, when installing HDF5 1.14.0, the flag --enable-fortran2003
does not seem to work. Will this break picLas?
Trying to install HOPR through piclas did not work.
My configuration is this.
CMAKE_BUILD_TYPE Release
CMAKE_INSTALL_PREFIX /zfs_pool/Engineering/piclas
LIBS_BUILD_HDF5 OFF
LIBS_BUILD_HOPR ON
LIBS_BUILD_MATH_LIB OFF
LIBS_USE_MKL OFF
LIBS_USE_MPI ON
PICLAS_BUILD_POSTI ON
PICLAS_CODE_ANALYZE OFF
PICLAS_CTAGS ON
PICLAS_DEBUG_MEMORY OFF
PICLAS_EQNSYSNAME maxwell
PICLAS_EXTRAE OFF
PICLAS_IMPLICIT_ANALYZE OFF
PICLAS_INTKIND8 OFF
PICLAS_IPO ON
PICLAS_LOADBALANCE ON
PICLAS_MEASURE_MPI_WAIT OFF
PICLAS_NODETYPE GAUSS
PICLAS_PARTICLES ON
PICLAS_PERFORMANCE OFF
PICLAS_PETSC OFF
PICLAS_POLYNOMIAL_DEGREE N
PICLAS_READIN_CONSTANTS OFF
PICLAS_SHARED_MEMORY MPI_COMM_TYPE_SHARED
PICLAS_TIMEDISCMETHOD RK4
PICLAS_UNITTESTS ON
PICLAS_VDM_ANALYTICAL OFF
POSTI_BUILD_DMD OFF
POSTI_BUILD_PICLAS2VTK ON
POSTI_BUILD_SUPERB ON
POSTI_BUILD_VISU ON
POSTI_USE_PARAVIEW OFF
USED_CMAKE_GENERATOR Unix Makefiles
My libraries are
cmake/3.16.3
gcc/12.2.0
openmpi/4.1.5
hdf5/1.12.2
My error is this
[100%] Performing build step for 'HOPR'
CMake Error at /zfs_pool/Engineering/piclas/share/GNU-MPI/hopr/build/src/HOPR-stamp/HOPR-build-Release.cmake:37 (message):
Command failed: 2
'make'
See also
/zfs_pool/Engineering/piclas/share/GNU-MPI/hopr/build/src/HOPR-stamp/HOPR-build-*.log
-- stdout output is:
Scanning dependencies of target cgns
Scanning dependencies of target stacksizelib
Scanning dependencies of target tags
Scanning dependencies of target hoprlibC
[ 1%] Creating directories for 'cgns'
[ 2%] Generating ctags.txt
[ 5%] Building C object CMakeFiles/hoprlibC.dir/src/sfc/hilbert.c.o
[ 5%] Building C object CMakeFiles/hoprlibC.dir/src/sfc/evalhilbert.c.o
[ 7%] Building C object CMakeFiles/stacksizelib.dir/src/stacksize.c.o
[ 8%] Linking C static library lib/libstacksizelib.a
[ 8%] Built target tags
[ 8%] Built target stacksizelib
[ 10%] Performing download step (git clone) for 'cgns'
[ 10%] Built target hoprlibC
[ 11%] Performing update step for 'cgns'
[ 13%] No patch step for 'cgns'
[ 14%] Performing configure step for 'cgns'
-- The C compiler identification is GNU 12.2.0
-- Check for working C compiler: /zfs_pool/Engineering/gcc/12.2.0/bin/gcc
-- Check for working C compiler: /zfs_pool/Engineering/gcc/12.2.0/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of long
-- Check size of long - done
-- Check size of off_t
-- Check size of off_t - done
-- The Fortran compiler identification is GNU 12.2.0
-- Check for working Fortran compiler: /zfs_pool/Engineering/gcc/12.2.0/bin/gfortran
-- Check for working Fortran compiler: /zfs_pool/Engineering/gcc/12.2.0/bin/gfortran -- works
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Checking whether /zfs_pool/Engineering/gcc/12.2.0/bin/gfortran supports Fortran 90
-- Checking whether /zfs_pool/Engineering/gcc/12.2.0/bin/gfortran supports Fortran 90 -- yes
-- Detecting Fortran/C Interface
-- Detecting Fortran/C Interface - Found GLOBAL and MODULE mangling
-- Fortran name mangling convention: LOWERCASE_
-- HDF5 find comps: C;static
-- Could NOT find HDF5 (missing: HDF5_DIR)
-- HDF5 C libs:0 static: and shared:
-- HDF5: Using hdf5 compiler wrapper to determine C configuration
-- Found HDF5: /zfs_pool/Engineering/hdf5/1.12.2/lib/libhdf5.a;/usr/lib/x86_64-linux-gnu/libz.so;/usr/lib/x86_64-linux-gnu/libdl.so;/usr/lib/x86_64-linux-gnu/libm.so (found version "1.12.2")
-- HDF5-1.12.2 found: INC=/zfs_pool/Engineering/hdf5/1.12.2/include TOOLS=/../bin HDF5_BUILD_SHARED_LIBS=0
-- HDF5 link libs: /zfs_pool/Engineering/hdf5/1.12.2/lib/libhdf5.a;/usr/lib/x86_64-linux-gnu/libz.so;/usr/lib/x86_64-linux-gnu/libdl.so;/usr/lib/x86_64-linux-gnu/libm.so
-- Checking C compiler flag -std=gnu99
-- Performing Test std-gnu99
-- Performing Test std-gnu99 - Success
-- Testing Fortran Fortran2003 - OK
-- Testing Fortran Fortran2008TS - OK
-- Testing Fortran Fortran2008 - OK
-- Testing Fortran Sizeof_int - OK
-- Testing Fortran FortranConcat - Fail
-- Testing HDF5 Multi_Dataset - NOT FOUND
-- Testing HDF5 Collective_metadata - NOT FOUND
-- Testing HDF5 H5Pset_file_space_strategy - NOT FOUND
-- Performing Test CHECK_HAVE_STAT64_STRUCT
-- Performing Test CHECK_HAVE_STAT64_STRUCT - Failed
-- Configuring done
-- Generating done
-- Build files have been written to: /zfs_pool/Engineering/piclas/share/GNU-MPI/hopr/build/src/HOPR/share/GNU/CGNSv4.3.0/src/cgns-build
[ 16%] Performing build step for 'cgns'
Scanning dependencies of target cgns_f2c
[ 3%] Building Fortran object src/CMakeFiles/cgns_f2c.dir/cgns_f.F90.o
[ 3%] Built target cgns_f2c
Scanning dependencies of target cgns_static
[ 6%] Building C object src/CMakeFiles/cgns_static.dir/adfh/ADFH.c.o
[ 9%] Building C object src/CMakeFiles/cgns_static.dir/cgns_error.c.o
[ 12%] Building C object src/CMakeFiles/cgns_static.dir/cgns_io.c.o
[ 19%] Building C object src/CMakeFiles/cgns_static.dir/adf/ADF_interface.c.o
[ 19%] Building C object src/CMakeFiles/cgns_static.dir/cgio_ftoc.c.o
[ 25%] Building C object src/CMakeFiles/cgns_static.dir/cgns_internals.c.o
[ 25%] Building C object src/CMakeFiles/cgns_static.dir/cg_hashmap.c.o
[ 32%] Building C object src/CMakeFiles/cgns_static.dir/cgnslib.c.o
[ 32%] Building C object src/CMakeFiles/cgns_static.dir/adf/ADF_internals.c.o
[ 35%] Building C object src/CMakeFiles/cgns_static.dir/cg_ftoc.c.o
-- stderr output is:
...skipping to end...
remote: Total 11757 (delta 932), reused 1153 (delta 749), pack-reused 10368
Receiving objects: 100% (11757/11757), 19.22 MiB | 9.07 MiB/s, done.
Resolving deltas: 100% (8581/8581), done.
Note: switching to 'v4.3.0'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at ec538ac add 4.3.0 release to version list
In file included from /zfs_pool/Engineering/hdf5/1.12.2/include/hdf5.h:22,
from /zfs_pool/Engineering/piclas/share/GNU-MPI/hopr/build/src/HOPR/share/GNU/CGNSv4.3.0/src/cgns/src/adfh/ADFH.c:42:
/zfs_pool/Engineering/hdf5/1.12.2/include/H5public.h:68:10: fatal error: mpi.h: No such file or directory
68 | #include <mpi.h>
| ^~~~~~~
compilation terminated.
make[8]: *** [src/CMakeFiles/cgns_static.dir/build.make:154: src/CMakeFiles/cgns_static.dir/adfh/ADFH.c.o] Error 1
make[8]: *** Waiting for unfinished jobs....
In file included from /zfs_pool/Engineering/hdf5/1.12.2/include/hdf5.h:22,
from /zfs_pool/Engineering/piclas/share/GNU-MPI/hopr/build/src/HOPR/share/GNU/CGNSv4.3.0/src/cgns/src/cgns_internals.c:40:
/zfs_pool/Engineering/hdf5/1.12.2/include/H5public.h:68:10: fatal error: mpi.h: No such file or directory
68 | #include <mpi.h>
| ^~~~~~~
compilation terminated.
make[8]: *** [src/CMakeFiles/cgns_static.dir/build.make:76: src/CMakeFiles/cgns_static.dir/cgns_internals.c.o] Error 1
In file included from /zfs_pool/Engineering/hdf5/1.12.2/include/hdf5.h:22,
from /zfs_pool/Engineering/piclas/share/GNU-MPI/hopr/build/src/HOPR/share/GNU/CGNSv4.3.0/src/cgns/src/cgnslib.c:58:
/zfs_pool/Engineering/hdf5/1.12.2/include/H5public.h:68:10: fatal error: mpi.h: No such file or directory
68 | #include <mpi.h>
| ^~~~~~~
compilation terminated.
make[8]: *** [src/CMakeFiles/cgns_static.dir/build.make:102: src/CMakeFiles/cgns_static.dir/cgnslib.c.o] Error 1
make[7]: *** [CMakeFiles/Makefile2:154: src/CMakeFiles/cgns_static.dir/all] Error 2
make[6]: *** [Makefile:152: all] Error 2
make[5]: *** [CMakeFiles/cgns.dir/build.make:112: /zfs_pool/Engineering/piclas/share/GNU-MPI/hopr/build/src/HOPR/share/GNU/CGNSv4.3.0/src/cgns-stamp/cgns-build] Error 2
make[4]: *** [CMakeFiles/Makefile2:95: CMakeFiles/cgns.dir/all] Error 2
make[3]: *** [Makefile:141: all] Error 2
CMake Error at /zfs_pool/Engineering/piclas/share/GNU-MPI/hopr/build/src/HOPR-stamp/HOPR-build-Release.cmake:47 (message):
Stopping after outputting logs.
make[2]: *** [CMakeFiles/HOPR.dir/build.make:108: ../share/GNU-MPI/hopr/build/src/HOPR-stamp/HOPR-build] Error 1
make[1]: *** [CMakeFiles/Makefile2:254: CMakeFiles/HOPR.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
However, compiling HOPR separately did work once again. I'm not sure how you accomplished your compile @scopplestone , but I was not able to reproduce it with the instructions given in the guide without having to manually change the CMAKE_Fortran_COMPILER
flag to match the MPI_Fortran_COMPILER
flag as well as installing HOPR separately.
Hi,
the errors indicate that the MPI lib is not correctly found within the hopr build. Maybe you need to use a newer version of cmake. We also list cmake minimum version as 3.17 and you are using cmake/3.16.3.
Hopr is now also available as binary download, so no compilation is required anymore. It is available in the Github Actions Artifacts and soon in the software release assets.
I just tested the compilation process again on a completely different system (old centos7 unix cluster) and everything worked fine.
...
[ 98%] Built target all_tests
SUCCESS: PICLAS BUILD COMPLETE!
[ 98%] Built target piclas
[ 98%] Creating directories for 'HOPR'
[ 98%] Performing download step (git clone) for 'HOPR'
Cloning into 'HOPR'...
SUCCESS: PICLAS2VTK BUILD COMPLETE!
[ 98%] Built target piclas2vtk
HEAD is now at d6fb2b0 Merge pull request #25 from hopr-framework/update.installation.docu.hdf5
[ 98%] No patch step for 'HOPR'
[ 99%] Performing configure step for 'HOPR'
-- HOPR configure command succeeded. See also /home/XX/piclas/share/GNU-MPI/hopr/build/src/HOPR-stamp/HOPR-configure-*.log
[ 99%] Performing build step for 'HOPR'
-- HOPR build command succeeded. See also /home/XX/piclas/share/GNU-MPI/hopr/build/src/HOPR-stamp/HOPR-build-*.log
[100%] Performing install step for 'HOPR'
-- HOPR install command succeeded. See also /home/XX/piclas/share/GNU-MPI/hopr/build/src/HOPR-stamp/HOPR-install-*.log
[100%] Completed 'HOPR'
[100%] Built target HOPR
These are the compiler settings that I used:
CMAKE_BUILD_TYPE Release
CMAKE_INSTALL_PREFIX /home/XX/piclas
LIBS_BUILD_HDF5 OFF
LIBS_BUILD_HOPR ON
LIBS_BUILD_MATH_LIB OFF
LIBS_USE_MKL OFF
LIBS_USE_MPI ON
PICLAS_BUILD_POSTI ON
PICLAS_CODE_ANALYZE OFF
PICLAS_CTAGS ON
PICLAS_DEBUG_MEMORY OFF
PICLAS_EQNSYSNAME maxwell
PICLAS_EXTRAE OFF
PICLAS_IMPLICIT_ANALYZE OFF
PICLAS_INTKIND8 OFF
PICLAS_IPO ON
PICLAS_LOADBALANCE ON
PICLAS_MEASURE_MPI_WAIT OFF
PICLAS_NODETYPE GAUSS
PICLAS_PARTICLES ON
PICLAS_PERFORMANCE OFF
PICLAS_PETSC OFF
PICLAS_POLYNOMIAL_DEGREE N
PICLAS_READIN_CONSTANTS OFF
PICLAS_SHARED_MEMORY MPI_COMM_TYPE_SHARED
PICLAS_TIMEDISCMETHOD RK4
PICLAS_UNITTESTS ON
PICLAS_VDM_ANALYTICAL OFF
POSTI_BUILD_DMD OFF
POSTI_BUILD_PICLAS2VTK ON
POSTI_BUILD_SUPERB ON
POSTI_BUILD_VISU ON
POSTI_USE_PARAVIEW OFF
USED_CMAKE_GENERATOR Unix Makefiles
And here are the pre-installed libs:
1) cmake/3.24.0
2) gcc/11.2.1
3) openmpi/4.1.3
4) hdf5/1.12.1
If it is fine with you, I would close this issue as we cannot find a machine/software stack to reproduce your specific error.
Kind regards Stephen
Hi,
maybe you could also the the following, to set the correcty paths for MPI to be found
export CC="/opt/openmpi/4.1.2/gcc/11.2.1/bin/mpicc"
export CXX="/opt/openmpi/4.1.2/gcc/11.2.1/bin/mpic++"
export FC="/opt/openmpi/4.1.2/gcc/11.2.1/bin/mpifort"
export MPICC="mpicc"
export MPICXX="mpicxx"
export MPIFC="mpifort"
and replace the paths with your paths, of course.
Kind regards Stephen
Closing for now due to inactivity.
During the compilation step when the piclas compiler clones the HOPR repository, the compilation fails. Further, I have tried to compile the HOPR code directly, but that failed horribly for reasons not known by me. All I can see is that there are a lot of "undefined references" to MPI related variables. I will have to submit a ticket there for that issue.
Here is the piclas_make.out file.
Also, I did successfully clone HOPR with
git clone "https://github.com/hopr-framework/hopr.git"