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)

Most upvoted comments

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!