I am going through the same installation issue again…
A year ago, with your help I have installed ngsolve in a cluster… but I have no access to the cluster anymore…
Now, I would like to get ngsolve installed on my local cluster, but it cause issue again as usual.
So, after make install, I got the following error message at the final linking stage (100%):
/users/gfu1/data/ngbuild/ngsolve-install/lib/libmesh.so: undefined reference to gzclose' /users/gfu1/data/ngbuild/ngsolve-install/lib/libmesh.so: undefined reference to gzwrite’
/users/gfu1/data/ngbuild/ngsolve-install/lib/libmesh.so: undefined reference to gzopen' /users/gfu1/data/ngbuild/ngsolve-install/lib/libmesh.so: undefined reference to gzread’
A similar linking issue was found a year ago, but the fix there was simple…here I don’t have a clue what’s going on
sounds like you are missing “zlib”.
On my ubuntu 18.04 the package “zlib1g-dev” contains what you need. But at least for ubuntu, I thinks that’s installed by default. Which OS are you using?
you could check your netgen cmake cache. This file is located in the netgen subfolder of you ngsolve build folder.
My CMakeCache.txt contains these lines.
//Path to a file.
ZLIB_INCLUDE_DIR:PATH=/usr/include
//Path to a library.
ZLIB_LIBRARY_DEBUG:FILEPATH=ZLIB_LIBRARY_DEBUG-NOTFOUND
//Path to a library.
ZLIB_LIBRARY_RELEASE:FILEPATH=/usr/lib/x86_64-linux-gnu/libz.so
Which variable did you set? The location of the following variable should be used as hint to search for the header and the library.
ZLIB_INCLUDE_DIR:PATH=/gpfs/runtime/opt/zlib/1.2.8
//No help, variable specified on the command line.
ZLIB_LIBRARY:UNINITIALIZED=/gpfs/runtime/opt/zlib/1.2.8/lib
But I don’t have
ZLIB_LIBRARY_DEBUG
or
ZLIB_LIBRARY_RELEASE
Now, I have a even worse issue while building netgen…
[ 26%] Built target visual
/tmp/ccV60kWH.s: Assembler messages:
/tmp/ccV60kWH.s:1100: Error: suffix or operands invalid for vbroadcastsd' make[8]: *** [libsrc/linalg/CMakeFiles/la.dir/bfgs.cpp.o] Error 1 [ 26%] Building CXX object libsrc/general/CMakeFiles/gen.dir/seti.cpp.o [ 27%] Building CXX object libsrc/general/CMakeFiles/gen.dir/sort.cpp.o /tmp/ccsdcFfI.s: Assembler messages: /tmp/ccsdcFfI.s:896: Error: suffix or operands invalid for vbroadcastsd’
/tmp/ccsdcFfI.s:1039: Error: suffix or operands invalid for vbroadcastsd' /tmp/ccsdcFfI.s:1504: Error: no such instruction: vpbroadcastd %xmm0,%ymm0’
/tmp/ccsdcFfI.s:1505: Error: suffix or operands invalid for vpaddd' /tmp/ccsdcFfI.s:1510: Error: suffix or operands invalid for vpaddd’
/tmp/ccsdcFfI.s:2813: Error: suffix or operands invalid for vbroadcastsd' /tmp/ccsdcFfI.s:3999: Error: suffix or operands invalid for vbroadcastsd’
/tmp/ccsdcFfI.s:4462: Error: suffix or operands invalid for `vbroadcastsd’
make[8]: *** [libsrc/linalg/CMakeFiles/la.dir/densemat.cpp.o] Error 1
Also, could you try to import netgen in python and see if that crashes too?
Finally, your CmakeCache, the cmake-command you used and the cmake-output would be useful.
In principle, the tests are supposed to work with MPI! In this case, of course, they all fail because something is wrong with the ngsolve-libraries.
While this is probably not the issue you are running into in this case, on the cluster, they might still fail because you might not be allowed to run any MPI computations on the login node . If that is the issue, you have to go through the batch system (e.g. by switching to an interactive session and then running the tests as usual.)
I do not have ngspy in my $NETGENDIR directory, where only
ngs, ngscxx, ngsld
are available.
In my laptop version of ngsolve, I also do not have ngspy…
Now I have a complete rebuild of ngsolve.
The segmentation fault is gone, surprise!
But I have a MKL issue (this bug is way more friendly:>):
Intel MKL FATAL ERROR: Cannot load libmkl_avx.so or libmkl_def.so.
In my application, I need a hybrid-Poisson solver, so I am using the static condensation approach for the implementation, and apply a sparsecholesky factorization for the resulting hybrid matrix.
It is this line that cause the code crash:
If you have not enabled MPI, that makes things less complicated. You don’t need ngspy in that case
(that only exists because we had some issues with linking MKL libraries and MPI on certain systems).