Page 1 of 1

Install via BuildWithMake

Posted: Fri Nov 15, 2019 5:13 am
by hfwang
Dear Developers,

Currently I'm switching to using simVascular on Ubuntu.
When I install/compile the svSolver and svFSI (from GitHub), however, I'm facing with some errors as follows:

****************************************************
/usr/bin/ld: /home/whf/svsolver/externals/bin/gnu-4.8/x64/vtk-6.2.0/lib/libvtksys-6.2.a(RegularExpression.cxx.o): relocation R_X86_64_32S against `.bss' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
Makefile:68: recipe for target '../../../../BuildWithMake/Bin/svpost-gcc-gfortran.exe' failed

--> Question 1: How to solve this problem? The current gcc version in my notebook is 'gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)'. I tried to install gcc-4.8 and g++-4.8 but failed. How to recompile with -fPIC? Could you kindly give me some hints?

****************************************************
I also tried to install simvascular, svsolver and svFSI in another machine which has gcc.4.8.2. Then, I'm facing with another problem:
chmod a+rx mysolver-nompi
chmod: cannot access 'mysolver-nompi': No such file or directory
make: [post-build] Error 1 (ignored)

--> Question 2: Could you also kindly let me know how I can fix this issue?
****************************************************

Best wishes,
Haifeng

Re: Install via BuildWithMake

Posted: Fri Nov 15, 2019 9:19 am
by davep
Hi Haifeng,

Use CMake to build, not BuildWithMake, that is an internal hack that some developers use on HPC clusters where CMake has problems finding some libraries.

Cheers,
Dave

Re: Install via BuildWithMake

Posted: Fri Nov 15, 2019 3:19 pm
by hfwang
Thank you, Dave, for your time and patience!
I should have checked this forum carefully.

Cheers,
Haifeng

Re: Install via BuildWithMake

Posted: Sun Nov 17, 2019 11:43 pm
by nwilson
Dear Haifeng,

The error messages you were receiving were due to the precompiled binaries of VTK not being built with the -fPIC flag. The CMake build also failed on Ubuntu 18.

As VTK 6.2 was too old to build on Ubuntu 18, I've upgraded svSolver to use VTK version 8.1.1 just like the core SimVascular application uses.

I've also upgraded the Make build system to be like the Make build system for the core SV application.

Please update your git branch with the latest master branch in svSolver. This will fix the the issues for both the Make and CMake build. See the "README..." file in BuildWithMake to use the make build. It should build "out of the box" on your system using the "quick-build-linux.sh" script. Note that the default build using Make builds svSolver with the "dummy MPI" version. You need to override the flags as described to use MPICH or OPENMPI. You may also need to update MakeHelpers/2019.06/*mpi* scripts if your installation of MPI varies from the default.

The CMake build should build both the dummy MPI version of the solver and attempts to automatically find MPI installed on your system.

Nathan
SimVascular Support Team

Re: Install via BuildWithMake

Posted: Mon Nov 18, 2019 1:06 am
by hfwang
Hi Nathan,

many thanks for your update and detailed explanation!
I hope now I can successfully build SimVascular on my machines.

Cheers,
Haifeng

Re: Install via BuildWithMake

Posted: Tue Nov 19, 2019 1:51 am
by hfwang
Hello Nathan and Dave,

I try to compile/build the svSolver using the latest version. Unfortunately, another error occurs (see below):

------
/home/users/wanghach/storage/simVascular/svsolver/Code/FlowSolvers/ThreeDSolver/svSolver/main.cxx:271: undefined reference to `ompi_mpi_comm_world'
CMakeFiles/svsolver-nompi.dir/main.cxx.o:(.data.rel.ro._ZTVN3MPI8DatatypeE[_ZTVN3MPI8DatatypeE]+0x78): undefined reference to `MPI::Datatype::Free()'
CMakeFiles/svsolver-nompi.dir/main.cxx.o:(.data.rel.ro._ZTVN3MPI3WinE[_ZTVN3MPI3WinE]+0x48): undefined reference to `MPI::Win::Free()'
CMakeFiles/svsolver-nompi.dir/write_restart_files.c.o: In function `write_restart_':
/home/users/wanghach/storage/simVascular/svsolver/Code/FlowSolvers/ThreeDSolver/svSolver/write_restart_files.c:172: undefined reference to `ompi_mpi_comm_world'
collect2: error: ld returned 1 exit status
FlowSolvers/ThreeDSolver/svSolver-nompi/CMakeFiles/svsolver-nompi.dir/build.make:489: recipe for target 'bin/svsolver-nompi' failed
make[5]: *** [bin/svsolver-nompi] Error 1
CMakeFiles/Makefile2:1168: recipe for target 'FlowSolvers/ThreeDSolver/svSolver-nompi/CMakeFiles/svsolver-nompi.dir/all' failed
make[4]: *** [FlowSolvers/ThreeDSolver/svSolver-nompi/CMakeFiles/svsolver-nompi.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make[3]: *** [all] Error 2
CMakeFiles/svSolver.dir/build.make:111: recipe for target 'svSolver-prefix/src/svSolver-stamp/svSolver-build' failed
make[2]: *** [svSolver-prefix/src/svSolver-stamp/svSolver-build] Error 2
CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/svSolver.dir/all' failed
make[1]: *** [CMakeFiles/svSolver.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
------

I double-check and I am pretty sure that the mpiexec/openmpi is already installed:
------
/etc/alternatives/mpiexec
/etc/alternatives/mpiexec.1.gz
/usr/bin/mpiexec
/usr/bin/mpiexec.hydra
/usr/bin/mpiexec.mpich
/usr/bin/mpiexec.openmpi
/usr/share/man/man1/mpiexec.1.gz
/usr/share/man/man1/mpiexec.hydra.1.gz
/usr/share/man/man1/mpiexec.mpich.1.gz
/usr/share/man/man1/mpiexec.openmpi.1.gz
------

Could you kindly comment on this issue?

Best,
Haifeng

Re: Install via BuildWithMake

Posted: Tue Nov 19, 2019 10:33 am
by davep
Hi Haifeng,

You need to build svSolver using MPICH, not OpenMPI.

Cheers,
Dave