SeisSol: Cannot build or run SeisSol
I have tried installing SeisSol using Spack on my machine:
spack install seissol-env +mpi +asagi %gcc@8.3.0 ^openmpi@3.1.5
At first, I had to change the “easi” lib version in the seissol-spack-aid from 1.2 to 1.1.2, as there is no 1.2 release on GitHub.
spack install seissol-env +mpi +asagi %gcc@8.3.0 ^openmpi@3.1.5
==> Error: No valid version for 'easi' satisfies '@1.2'
After doing this, the Spack installation succeeded. However, when I tried to build SeisSol, I encountered this error:
make -j 16
[ 0%] Built target build-time-make-directory
[ 1%] Built target SeisSol-codegen
[ 56%] Built target SeisSol-lib
[ 56%] Linking CXX executable SeisSol_Release_dskx_4_elastic
[ 71%] Built target SeisSol-proxy-core
[ 72%] Linking CXX executable SeisSol_proxy_Release_dskx_4_elastic
/usr/bin/ld: libSeisSol-lib.a(kernel.cpp.o): in function `seissol::kernel::volume::execute()':
kernel.cpp:(.text+0x1623): undefined reference to `pspammsparse_33f3061583206b1313c415ced24e4498_m16_n9_k9_ldA24_ldB0_ldC16_alpha1_beta0_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: kernel.cpp:(.text+0x165c): undefined reference to `pspammsparse_33f3061583206b1313c415ced24e4498_m16_n9_k9_ldA24_ldB0_ldC16_alpha1_beta0_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: kernel.cpp:(.text+0x1695): undefined reference to `pspammsparse_33f3061583206b1313c415ced24e4498_m16_n9_k9_ldA24_ldB0_ldC16_alpha1_beta0_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: libSeisSol-lib.a(kernel.cpp.o): in function `seissol::dynamicRupture::kernel::computeTractionInterpolated::execute()':
kernel.cpp:(.text+0x4df2): undefined reference to `pspammsparse_a0d2c8cfeae1143c9f2710f1bf35c52e_m32_n3_k6_ldA32_ldB0_ldC32_alpha1_beta0_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: libSeisSol-lib.a(kernel.cpp.o): in function `seissol::kernel::derivative::execute1()':
kernel.cpp:(.text+0x808f): undefined reference to `pspammsparse_33f3061583206b1313c415ced24e4498_m16_n9_k9_ldA16_ldB0_ldC16_alpha1_beta0_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: kernel.cpp:(.text+0x80cd): undefined reference to `pspammsparse_33f3061583206b1313c415ced24e4498_m16_n9_k9_ldA16_ldB0_ldC16_alpha1_beta1_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: kernel.cpp:(.text+0x810b): undefined reference to `pspammsparse_33f3061583206b1313c415ced24e4498_m16_n9_k9_ldA16_ldB0_ldC16_alpha1_beta1_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: libSeisSol-lib.a(kernel.cpp.o): in function `seissol::kernel::derivative::execute2()':
kernel.cpp:(.text+0x81b0): undefined reference to `pspammsparse_33f3061583206b1313c415ced24e4498_m8_n9_k9_ldA8_ldB0_ldC8_alpha1_beta0_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: kernel.cpp:(.text+0x81ef): undefined reference to `pspammsparse_33f3061583206b1313c415ced24e4498_m8_n9_k9_ldA8_ldB0_ldC8_alpha1_beta1_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: kernel.cpp:(.text+0x822e): undefined reference to `pspammsparse_33f3061583206b1313c415ced24e4498_m8_n9_k9_ldA8_ldB0_ldC8_alpha1_beta1_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: libSeisSol-lib.a(kernel.cpp.o): in function `seissol::kernel::derivative::execute3()':
kernel.cpp:(.text+0x82d0): undefined reference to `pspammsparse_33f3061583206b1313c415ced24e4498_m8_n9_k9_ldA8_ldB0_ldC8_alpha1_beta0_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: kernel.cpp:(.text+0x830f): undefined reference to `pspammsparse_33f3061583206b1313c415ced24e4498_m8_n9_k9_ldA8_ldB0_ldC8_alpha1_beta1_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: kernel.cpp:(.text+0x834e): undefined reference to `pspammsparse_33f3061583206b1313c415ced24e4498_m8_n9_k9_ldA8_ldB0_ldC8_alpha1_beta1_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: libSeisSol-lib.a(kernel.cpp.o): in function `seissol::kernel::subTriangleVelocity::execute0()':
kernel.cpp:(.text+0xaaf2): undefined reference to `pspammsparse_e60658f2bd24617a41c922e81bd775a8_m8_n3_k3_ldA8_ldB0_ldC8_alpha1_beta0_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: libSeisSol-lib.a(kernel.cpp.o): in function `seissol::kernel::subTriangleVelocity::execute1()':
kernel.cpp:(.text+0xab92): undefined reference to `pspammsparse_e60658f2bd24617a41c922e81bd775a8_m8_n3_k3_ldA8_ldB0_ldC8_alpha1_beta0_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: libSeisSol-lib.a(kernel.cpp.o): in function `seissol::kernel::subTriangleVelocity::execute2()':
kernel.cpp:(.text+0xac32): undefined reference to `pspammsparse_e60658f2bd24617a41c922e81bd775a8_m16_n3_k3_ldA16_ldB0_ldC16_alpha1_beta0_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: libSeisSol-lib.a(kernel.cpp.o): in function `seissol::kernel::subTriangleVelocity::execute3()':
kernel.cpp:(.text+0xacba): undefined reference to `pspammsparse_e60658f2bd24617a41c922e81bd775a8_m24_n3_k3_ldA24_ldB0_ldC24_alpha1_beta0_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: libSeisSol-lib.a(kernel.cpp.o): in function `seissol::kernel::addVelocity::execute0()':
kernel.cpp:(.text+0xad72): undefined reference to `pspammsparse_e60658f2bd24617a41c922e81bd775a8_m16_n3_k3_ldA16_ldB0_ldC16_alpha1_beta1_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: libSeisSol-lib.a(kernel.cpp.o): in function `seissol::kernel::addVelocity::execute1()':
kernel.cpp:(.text+0xae12): undefined reference to `pspammsparse_e60658f2bd24617a41c922e81bd775a8_m16_n3_k3_ldA16_ldB0_ldC16_alpha1_beta1_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: libSeisSol-lib.a(kernel.cpp.o): in function `seissol::kernel::addVelocity::execute2()':
kernel.cpp:(.text+0xaeb2): undefined reference to `pspammsparse_e60658f2bd24617a41c922e81bd775a8_m16_n3_k3_ldA16_ldB0_ldC16_alpha1_beta1_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: libSeisSol-lib.a(kernel.cpp.o): in function `seissol::kernel::addVelocity::execute3()':
kernel.cpp:(.text+0xaf52): undefined reference to `pspammsparse_e60658f2bd24617a41c922e81bd775a8_m16_n3_k3_ldA16_ldB0_ldC16_alpha1_beta1_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
/usr/bin/ld: libSeisSol-lib.a(kernel.cpp.o): in function `seissol::dynamicRupture::kernel::computeTractionInterpolated::execute()':
kernel.cpp:(.text+0x4e17): undefined reference to `pspammsparse_a0d2c8cfeae1143c9f2710f1bf35c52e_m32_n3_k6_ldA32_ldB0_ldC32_alpha1_beta1_alignedA1_alignedC1_transAFalse_transBFalse_pfsigonly(double const*, double const*, double*, double, double, double const*)'
collect2: error: ld returned 1 exit status
It seems that the PSpaMM library isn’t linked properly, however this should have been handled by Spack. I have been able to replicate this issue while trying to install manually every dependency, so I believe this might be an issue with my entire environment (fresh Ubuntu installation).
Is this a known issue? Or perhaps this is something that I need to manually patch in order to compile and run SeisSol?
About this issue
- Original URL
- State: closed
- Created a year ago
- Comments: 29 (17 by maintainers)
Ah, yes, I did install it separately last week. I reinstalled and now: [emadden@spartan01 build-release]$ head -n 1 /home/emadden/.local/bin/pspamm-generator #!/home/emadden/spack/opt/spack/linux-centos7-broadwell/gcc-9.3.0/python-3.11.6-h5cvoretvc6nwtfbh5bo3br2uueu5q45/bin/python
I am recompiling SeisSol with PSpaMM and it is working 😃
Thanks very much!