Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CMake: require ArborX-1.3 or newer when configuring with external kokkos-4 #15490

Closed
tamiko opened this issue Jun 26, 2023 · 5 comments · Fixed by #15494
Closed

CMake: require ArborX-1.3 or newer when configuring with external kokkos-4 #15490

tamiko opened this issue Jun 26, 2023 · 5 comments · Fixed by #15494

Comments

@tamiko
Copy link
Member

tamiko commented Jun 26, 2023

This looks like an issue in arborx/kokkos when compiled with clang and linked against libc++:

arborx/distributed_tree_intersect.mpirun=2.debug: BUILD successful.
arborx/distributed_tree_intersect.mpirun=2.debug: RUN failed. ------ Return code 134
arborx/distributed_tree_intersect.mpirun=2.debug: RUN failed. ------ Result: /srv/temp/testsuite-A5y53XhQ/build/tests/arborx/distributed_tree_intersect.debug/mpirun=2/failing_output
arborx/distributed_tree_intersect.mpirun=2.debug: RUN failed. ------ Partial output:

arborx/distributed_tree_intersect.mpirun=2.debug: RUN failed. ------ Additional output on stdout/stderr:

Constructor for Kokkos View 'ArborX::Distributor::doPostsAndWaits::destination_buffer' has mismatched number of arguments. Number of arguments = 0 but dynamic rank = 1 
Constructor for Kokkos View 'ArborX::Distributor::doPostsAndWaits::destination_buffer' has mismatched number of arguments. Number of arguments = 0 but dynamic rank = 1 

Backtrace:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Kokkos::Impl::save_stacktrace() [0x7f7a193b2192]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Kokkos::Impl::traceback_callstack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&) [0x7f7a193aab7a]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Kokkos::Impl::host_abort(char const*) [0x7f7a193aabfb]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            [0x5581d2e4d8e6]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Kokkos::Impl::runtime_check_rank(unsigned long, unsigned long, bool, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) [0x5581d2e4d4f7]
                                                                                                                                                                                                                                                                                                                                             Kokkos::View<int*, Kokkos::LayoutRight, Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>>::View<Kokkos::Serial, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>(Kokkos::Impl::ViewCtorProp<Kokkos::Serial, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> const&, std::__1::enable_if<!Impl::ViewCtorProp<Kokkos::Serial, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>::has_pointer, Kokkos::LayoutRight>::type const&) [0x5581d2e898b5]
                                                                                                                                                                                                                                                                                                                                                                                                                            void ArborX::Details::Distributor<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>>::doPostsAndWaits<Kokkos::Serial, Kokkos::View<int*, Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>>, Kokkos::View<int*, Kokkos::HostSpace, Kokkos::MemoryTraits<1u>>>(Kokkos::Serial const&, Kokkos::View<int*, Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>> const&, unsigned long, Kokkos::View<int*, Kokkos::HostSpace, Kokkos::MemoryTraits<1u>> const&) const [0x5581d2e8808e]
                                                                                                                                                                                                                                                                              std::__1::enable_if<Kokkos::is_view<Kokkos::View<int*, Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>>>::value, void>::type ArborX::Details::DistributedTreeImpl<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>>::sendAcrossNetwork<Kokkos::Serial, Kokkos::View<int*, Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>>>(Kokkos::Serial const&, ArborX::Details::Distributor<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>> const&, Kokkos::View<int*, Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>>, Kokkos::View<int*, Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>>::non_const_type) [0x5581d2e84c59]
                                                                                   void ArborX::Details::DistributedTreeImpl<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>>::forwardQueries<Kokkos::Serial, dealii::ArborXWrappers::BoundingBoxIntersectPredicate, Kokkos::View<int*, Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>>, ArborX::Intersects<ArborX::Box>>(ompi_communicator_t*, Kokkos::Serial const&, dealii::ArborXWrappers::BoundingBoxIntersectPredicate const&, Kokkos::View<int*, Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>>, Kokkos::View<int*, Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>>, Kokkos::View<ArborX::Intersects<ArborX::Box>*, Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>>&, Kokkos::View<int*, Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>>&, Kokkos::View<int*, Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>>&) [0x5581d2e5f2c5]
std::__1::enable_if<Kokkos::is_view<Kokkos::View<Kokkos::pair<int, int>*, Kokkos::HostSpace>>{} && Kokkos::is_view<Kokkos::View<int*, Kokkos::HostSpace>>{}, void>::type ArborX::Details::DistributedTreeImpl<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>>::queryDispatch<ArborX::DistributedTree<Kokkos::HostSpace, void>, Kokkos::Serial, dealii::ArborXWrappers::BoundingBoxIntersectPredicate, Kokkos::View<Kokkos::pair<int, int>*, Kokkos::HostSpace>, Kokkos::View<int*, Kokkos::HostSpace>, ArborX::Details::DefaultCallbackWithRank>(ArborX::Details::SpatialPredicateTag, ArborX::DistributedTree<Kokkos::HostSpace, void> const&, Kokkos::Serial const&, dealii::ArborXWrappers::BoundingBoxIntersectPredicate const&, ArborX::Details::DefaultCallbackWithRank const&, Kokkos::View<Kokkos::pair<int, int>*, Kokkos::HostSpace>&, Kokkos::View<int*, Kokkos::HostSpace>&) [0x5581d2e5e07d]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             std::__1::pair<std::__1::vector<std::__1::pair<int, int>, std::__1::allocator<std::__1::pair<int, int>>>, std::__1::vector<int, std::__1::allocator<int>>> dealii::ArborXWrappers::DistributedTree::query<dealii::ArborXWrappers::BoundingBoxIntersectPredicate>(dealii::ArborXWrappers::BoundingBoxIntersectPredicate const&) [0x5581d2e45d59]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  test_2d() [0x5581d2e4384e]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       main [0x5581d2e452c4]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            [0x7f7a0805098a]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          __libc_start_main [0x7f7a08050a45]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _start [0x5581d2e41c81]
[testsuite:390548] *** Process received signal ***
[testsuite:390548] Signal: Aborted (6)
[testsuite:390548] Signal code:  (-6)
[testsuite:390548] [ 0] /usr/lib64/libc.so.6(+0x38900)[0x7f7a08065900]
[testsuite:390548] [ 1] /usr/lib64/libc.so.6(+0x8585c)[0x7f7a080b285c]
[testsuite:390548] [ 2] /usr/lib64/libc.so.6(gsignal+0x12)[0x7f7a08065862]
[testsuite:390548] [ 3] /usr/lib64/libc.so.6(abort+0xd3)[0x7f7a0804f4ad]
[testsuite:390548] [ 4] /usr/lib64/trilinos/libkokkoscore.so.14(_ZN6Kokkos4Impl17human_memory_sizeEm+0x0)[0x7f7a193aac00]
[testsuite:390548] [ 5] /srv/temp/testsuite-A5y53XhQ/build/tests/arborx/distributed_tree_intersect.debug/distributed_tree_intersect.debug(+0xa28e6)[0x5581d2e4d8e6]
[testsuite:390548] [ 6] /srv/temp/testsuite-A5y53XhQ/build/tests/arborx/distributed_tree_intersect.debug/distributed_tree_intersect.debug(_ZN6Kokkos4Impl18runtime_check_rankEmmbmmmmmmmmRKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE+0x2d7)[0x5581d2e4d4f7]
[testsuite:390548] [ 7] /srv/temp/testsuite-A5y53XhQ/build/tests/arborx/distributed_tree_intersect.debug/distributed_tree_intersect.debug(_ZN6Kokkos4ViewIPiJNS_11LayoutRightENS_6DeviceINS_6SerialENS_9HostSpaceEEEEEC2IJS4_NSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEERKNS_4Impl12ViewCtorPropIJDpT_EEERKNS9_9enable_ifIXntsr4Impl12ViewCtorPropISJ_EE11has_pointerES2_E4typeE+0xe5)[0x5581d2e898b5]
[testsuite:390548] [ 8] /srv/temp/testsuite-A5y53XhQ/build/tests/arborx/distributed_tree_intersect.debug/distributed_tree_intersect.debug(_ZNK6ArborX7Details11DistributorIN6Kokkos6DeviceINS2_6SerialENS2_9HostSpaceEEEE15doPostsAndWaitsIS4_NS2_4ViewIPiJS6_EEENS9_ISA_JS5_NS2_12MemoryTraitsILj1EEEEEEEEvRKT_RKT0_mRKT1_+0xfe)[0x5581d2e8808e]
[testsuite:390548] [ 9] /srv/temp/testsuite-A5y53XhQ/build/tests/arborx/distributed_tree_intersect.debug/distributed_tree_intersect.debug(_ZN6ArborX7Details19DistributedTreeImplIN6Kokkos6DeviceINS2_6SerialENS2_9HostSpaceEEEE17sendAcrossNetworkIS4_NS2_4ViewIPiJS6_EEEEENSt3__19enable_ifIXsr6Kokkos7is_viewIT0_EE5valueEvE4typeERKT_RKNS0_11DistributorIS6_EESE_NSE_14non_const_typeE+0x139)[0x5581d2e84c59]
[testsuite:390548] [10] /srv/temp/testsuite-A5y53XhQ/build/tests/arborx/distributed_tree_intersect.debug/distributed_tree_intersect.debug(_ZN6ArborX7Details19DistributedTreeImplIN6Kokkos6DeviceINS2_6SerialENS2_9HostSpaceEEEE14forwardQueriesIS4_N6dealii14ArborXWrappers29BoundingBoxIntersectPredicateENS2_4ViewIPiJS6_EEENS_10IntersectsINS_3BoxEEEEEvP19ompi_communicator_tRKT_RKT0_SE_SE_RNSC_IPT2_JS6_EEERSE_RT1_+0x665)[0x5581d2e5f2c5]
[testsuite:390548] [11] /srv/temp/testsuite-A5y53XhQ/build/tests/arborx/distributed_tree_intersect.debug/distributed_tree_intersect.debug(_ZN6ArborX7Details19DistributedTreeImplIN6Kokkos6DeviceINS2_6SerialENS2_9HostSpaceEEEE13queryDispatchINS_15DistributedTreeIS5_vEES4_N6dealii14ArborXWrappers29BoundingBoxIntersectPredicateENS2_4ViewIPNS2_4pairIiiEEJS5_EEENSE_IPiJS5_EEENS0_23DefaultCallbackWithRankEEENSt3__19enable_ifIXaatlNS2_7is_viewIT2_EEEtlNSO_IT3_EEEEvE4typeENS0_19SpatialPredicateTagERKT_RKT0_RKT1_RKT4_RSP_RSR_+0x31d)[0x5581d2e5e07d]
[testsuite:390548] [12] /srv/temp/testsuite-A5y53XhQ/build/tests/arborx/distributed_tree_intersect.debug/distributed_tree_intersect.debug(_ZN6dealii14ArborXWrappers15DistributedTree5queryINS0_29BoundingBoxIntersectPredicateEEENSt3__14pairINS4_6vectorINS5_IiiEENS4_9allocatorIS7_EEEENS6_IiNS8_IiEEEEEERKT_+0xd9)[0x5581d2e45d59]
[testsuite:390548] [13] /srv/temp/testsuite-A5y53XhQ/build/tests/arborx/distributed_tree_intersect.debug/distributed_tree_intersect.debug(_Z7test_2dv+0x6ce)[0x5581d2e4384e]
[testsuite:390548] [14] /srv/temp/testsuite-A5y53XhQ/build/tests/arborx/distributed_tree_intersect.debug/distributed_tree_intersect.debug(main+0x44)[0x5581d2e452c4]
[testsuite:390548] [15] /usr/lib64/libc.so.6(+0x2398a)[0x7f7a0805098a]
[testsuite:390548] [16] /usr/lib64/libc.so.6(__libc_start_main+0x85)[0x7f7a08050a45]
[testsuite:390548] [17] /srv/temp/testsuite-A5y53XhQ/build/tests/arborx/distributed_tree_intersect.debug/distributed_tree_intersect.debug(_start+0x21)[0x5581d2e41c81]
[testsuite:390548] *** End of error message ***

@Rombur @masterleinad ping If there is nothing that we can do here (short of managing to get a fix into upstream arborx/trilinos/kokkos) then I will simply disable these two tests for the clang-16 regression tester variant.

@tamiko
Copy link
Member Author

tamiko commented Jun 26, 2023

Some enable_if<> confusion?

@masterleinad
Copy link
Member

What are the Kokkos and ArborX versions?

@masterleinad
Copy link
Member

It looks like arborx/ArborX#758 might have fixed it, meaning we should require ArborX 1.3 or later (when using Kokkos 4).

@tamiko
Copy link
Member Author

tamiko commented Jun 26, 2023

@masterleinad Good point, this was with arborx 1.2 - I have no idea why it didn't upgrade to 1.4.1.

@tamiko tamiko removed the Bug label Jun 26, 2023
@tamiko tamiko modified the milestones: Release 9.5, Release 9.6 Jun 26, 2023
@tamiko tamiko changed the title Error in arborx/distributed_tree_{intersect,nearest} when compiled with clang against libc++ CMake: require ArborX-1.3 or newer when configuring with external kokkos-4 Jun 26, 2023
@tamiko
Copy link
Member Author

tamiko commented Jun 26, 2023

Everything's fine with ArborX-1.4.1

 1/20 Test #245: arborx/point_intersect.release .........................................   Passed   19.30 sec
 2/20 Test #233: arborx/bounding_box_intersect.release ..................................   Passed   19.46 sec
 3/20 Test #249: arborx/sphere_intersect.release ........................................   Passed   19.54 sec
 4/20 Test #232: arborx/bounding_box_intersect.debug ....................................   Passed   20.04 sec
 5/20 Test #248: arborx/sphere_intersect.debug ..........................................   Passed   20.44 sec
 6/20 Test #244: arborx/point_intersect.debug ...........................................   Passed   20.68 sec
 7/20 Test #251: arborx/sphere_nearest.release ..........................................   Passed   21.85 sec
 8/20 Test #235: arborx/bounding_box_nearest.release ....................................   Passed   22.08 sec
 9/20 Test #247: arborx/point_nearest.release ...........................................   Passed   23.26 sec
10/20 Test #250: arborx/sphere_nearest.debug ............................................   Passed   23.36 sec
11/20 Test #234: arborx/bounding_box_nearest.debug ......................................   Passed   24.35 sec
12/20 Test #246: arborx/point_nearest.debug .............................................   Passed   24.42 sec
13/20 Test #238: test_dependency/arborx.distributed_tree_intersect.release.executable ...   Passed   31.29 sec
      Start 239: arborx/distributed_tree_intersect.mpirun=2.release
14/20 Test #239: arborx/distributed_tree_intersect.mpirun=2.release .....................   Passed    0.82 sec
15/20 Test #236: test_dependency/arborx.distributed_tree_intersect.debug.executable .....   Passed   34.28 sec
      Start 237: arborx/distributed_tree_intersect.mpirun=2.debug
16/20 Test #237: arborx/distributed_tree_intersect.mpirun=2.debug .......................   Passed    0.83 sec
17/20 Test #242: test_dependency/arborx.distributed_tree_nearest.release.executable .....   Passed   43.00 sec
      Start 243: arborx/distributed_tree_nearest.mpirun=2.release
18/20 Test #243: arborx/distributed_tree_nearest.mpirun=2.release .......................   Passed    0.83 sec
19/20 Test #240: test_dependency/arborx.distributed_tree_nearest.debug.executable .......   Passed   46.70 sec
      Start 241: arborx/distributed_tree_nearest.mpirun=2.debug
20/20 Test #241: arborx/distributed_tree_nearest.mpirun=2.debug .........................   Passed    0.81 sec

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants