ECP-WarpX / WarpX

WarpX is an advanced electromagnetic & electrostatic Particle-In-Cell code.
https://ecp-warpx.github.io
Other
290 stars 184 forks source link

assertion failure message, compilation fails #4730

Open techie879 opened 6 months ago

techie879 commented 6 months ago

Hi, I am having trouble compiling the latest and/or branch 24.02 .

Below is the list of tools I am using. OS is Rocky Linux 8.8 with the stock kernel.

Currently Loaded Modulefiles:
 1) cmake/3.22.1   4) openmpi/4.1.2/gcc.11.2.0   7) java/17                               
 2) gcc/11.2.0     5) boost/1.78.0/gcc.11.2.0    8) hdf5/1.13.1/gcc.11.2.0-openmpi.4.1.2  
 3) cuda/11.7.1    6) OpenBLAS/0.3.21            9) python/3.10.2
(warpx-gpu) (base) [itoufiqu@hpc3-gpu-16-00:~/src/warpx] $uname -a 
Linux hpc3-gpu-16-00 4.18.0-477.15.1.el8_8.x86_64 #1 SMP Wed Jun 28 15:04:18 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Here is the error that it starts with:

[ 90%] Linking CXX executable bin/warpx.2d.MPI.CUDA.DP.PDP.OPMD.PSATD.QED.GENQEDTABLES
/opt/apps/gcc/11.2.0/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: lib/libwarpx.2d.MPI.CUDA.DP.PDP.OPMD.PSATD.QED.GENQEDTABLES.a(BreitWheelerEngineWrapper.cpp.o): in function `long double boost::math::detail::gamma_imp<long double, boost::math::policies::policy<boost::math::policies::promote_float<false>, boost::math::policies::promote_double<false>, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy>, boost::math::lanczos::lanczos17m64>(long double, boost::math::policies::policy<boost::math::policies::promote_float<false>, boost::math::policies::promote_double<false>, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy> const&, boost::math::lanczos::lanczos17m64 const&) [clone .isra.0]':
tmpxft_002b560f_00000000-6_BreitWheelerEngineWrapper.cudafe1.cpp:(.text+0x4b36): undefined reference to `boost::assertion_failed_msg(char const*, char const*, char const*, char const*, long)'

/opt/apps/gcc/11.2.0/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: lib/libwarpx.2d.MPI.CUDA.DP.PDP.OPMD.PSATD.QED.GENQEDTABLES.a(QuantumSyncEngineWrapper.cpp.o): in function `long double boost::math::detail::gamma_imp<long double, boost::math::policies::policy<boost::math::policies::promote_float<false>, boost::math::policies::promote_double<false>, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy>, boost::math::lanczos::lanczos17m64>(long double, boost::math::policies::policy<boost::math::policies::promote_float<false>, boost::math::policies::promote_double<false>, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy> const&, boost::math::lanczos::lanczos17m64 const&) [clone .isra.0]':
tmpxft_002b567a_00000000-6_QuantumSyncEngineWrapper.cudafe1.cpp:(.text+0x4e36): undefined reference to `boost::assertion_failed_msg(char const*, char const*, char const*, char const*, long)'
collect2: error: ld returned 1 exit status
gmake[2]: *** [CMakeFiles/app_2d.dir/build.make:108: bin/warpx.2d.MPI.CUDA.DP.PDP.OPMD.PSATD.QED.GENQEDTABLES] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:1382: CMakeFiles/app_2d.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....

Then compile fails after it goes through everything.

Is there anything I am not doing or setting up correctly? I have followed this link to do this compile. https://warpx.readthedocs.io/en/latest/install/hpc/hpc3.html

Any help is appreciated. thanks.

ax3l commented 6 months ago

Looks to me like an issue how the Boost module is used for the QED module, CC @lucafedeli88 . https://stackoverflow.com/questions/48949865/boost-assertion-failed-message-using-quantile-function

To temporarily work-around, you can set -DWarpX_QED_TABLE_GEN=OFF.