cmake error when building with arbox

87 views
Skip to first unread message

Kaushik Das

unread,
Oct 15, 2024, 10:45:34 AM10/15/24
to deal.II User Group
Hi,
If I turn on Arborx then cmake is also looking for ADOLC. 
Is Arborx support dependent on ADOLC?
I have attached a log from a docker build. Arborx was built first then I used -DDEAL_II_WITH_ARBORX=ON  and -DARBORX_DIR="/usr/local/Arborx" but cmake thorws an error  "ADOLC_INCLUDE_DIR not found!"

Thanks,
Kaushik 
build.log

Bruno Turcksin

unread,
Oct 16, 2024, 9:57:56 AM10/16/24
to deal.II User Group
Kaushik,

The message you see is the auto-detect trying to find ADOLC. It's OK if the auto-detect does not find ADOLC. The real issue is with Kokkos. When you installed ArborX, did you use the Kokkos library from Trilinos or did you install Kokkos yourself too?

Best,

Bruno

Kaushik Das

unread,
Oct 16, 2024, 10:04:44 AM10/16/24
to dea...@googlegroups.com
Thanks for the clarification. I installed Kokkos separately, and I also have Trilinos support. Can this issue be related to Kokkos's version? It seems the latest Arborx needs Kokkos 4.3.00, but I have 4.3.01. It's not a major version mismatch, though. 

--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to a topic in the Google Groups "deal.II User Group" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/dealii/e518ui3VC3Y/unsubscribe.
To unsubscribe from this group and all its topics, send an email to dealii+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/c0996099-3f1d-4205-9523-3ed062cf9a70n%40googlegroups.com.

Bruno Turcksin

unread,
Oct 16, 2024, 10:18:18 AM10/16/24
to dea...@googlegroups.com
The issue is that you have two versions of Kokkos installed. You can only have a single version of Kokkos. Remove the version of Kokkos you installed yourself and reinstall ArborX . Set the Kokkos directory to the Trilinos directory when configuring ArborX.

Bruno

Kaushik Das

unread,
Oct 16, 2024, 12:37:59 PM10/16/24
to dea...@googlegroups.com
I see. The only reason I installed Kokkos separately was I wanted to use Kokkos GPU and LAMDA support for other parts of my code. But I could not find how to do that for kokkos that come with Trilinos. Specifically, I want to set these kokkos cmake configs -DKokkos_ENABLE_CUDA=ON, -DKokkos_ARCH_PASCAL61=ON,  -DKokkos_ENABLE_OPENMP=ON , -DCMAKE_CXX_COMPILER=/kokkos/bin/nvcc_wrapper,  -DKokkos_ENABLE_CUDA_LAMBDA=ON,  -DKokkos_ENABLE_CUDA_CONSTEXPR=ON, -DKokkos_ENABLE_AGGRESSIVE_VECTORIZATION=ON. For some reason, automatic detection of ARCH does not work on my machine so I have to set  Kokkos_ARCH_PASCAL61 explicitly. And I could not find a way to do that for the kokkos that comes with Trilinous. I would appreciate any help on this matter. Thank you. 

Daniel Arndt

unread,
Oct 16, 2024, 2:08:20 PM10/16/24
to dea...@googlegroups.com
Kaushik,

You can use the same flags you are using to configure the standalone
Kokkos to configure Kokkos inside Trilinos.

Best,
Daniel
> You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to dealii+un...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/CAC-fs6sGh%2B0NZW2hoHYQvLuh3%3Dv0q8ApxHPrCcRY6qnO-HkTyQ%40mail.gmail.com.

Kaushik Das

unread,
Oct 17, 2024, 2:55:24 PM10/17/24
to deal.II User Group
Thanks for the tip. Using kokkos that came with trillions solved my problem. 

Kaushik Das

unread,
Oct 17, 2024, 3:48:39 PM10/17/24
to dea...@googlegroups.com
Hello again, I may have declared victory a little too early. cmake configure completes but I am getting some build error. This may be due to version compatibility. Please let me know what versions of Trilinous, Kokkos (that comes with Trilinous), ArborX are compatible with dealii 9.4?
I am using dealii 9.6, trilinos-release-13-4-1, kokkos 3.6, ArborX v1.3. (Later versions of ArborX seem to need higher versions of Kokkos.) 

Just to let you know, the errors are as below: 
Thank you. 

/usr/local/Arborx/include/ArborX/details/ArborX_DetailsNode.hpp(71): error: no instance of constructor "ArborX::Details::NodeWithLeftChildAndRope<BoundingVolume>::NodeWithLeftChildAndRope [with BoundingVolume=ArborX::Box]" matches the argument list
            argument types are: (int, const int, ArborX::Box)
    return {-static_cast<int>(permutation_index), ROPE_SENTINEL,
           ^
/usr/local/Arborx/include/ArborX/details/ArborX_DetailsNode.hpp(31): note #3322-D: number of parameters of function "ArborX::Details::NodeWithLeftChildAndRope<BoundingVolume>::NodeWithLeftChildAndRope(const ArborX::Details::NodeWithLeftChildAndRope<ArborX::Box> &) [with BoundingVolume=ArborX::Box]" does not match the call
  struct NodeWithLeftChildAndRope
         ^
/usr/local/Arborx/include/ArborX/details/ArborX_DetailsNode.hpp(31): note #3322-D: number of parameters of function "ArborX::Details::NodeWithLeftChildAndRope<BoundingVolume>::NodeWithLeftChildAndRope(ArborX::Details::NodeWithLeftChildAndRope<ArborX::Box> &&) [with BoundingVolume=ArborX::Box]" does not match the call
  struct NodeWithLeftChildAndRope
         ^
/usr/local/Arborx/include/ArborX/details/ArborX_DetailsNode.hpp(36): note #3322-D: number of parameters of function "ArborX::Details::NodeWithLeftChildAndRope<BoundingVolume>::NodeWithLeftChildAndRope() [with BoundingVolume=ArborX::Box]" does not match the call
    constexpr NodeWithLeftChildAndRope() = default;
              ^
          detected during:
            instantiation of "ArborX::Details::NodeWithLeftChildAndRope<BoundingVolume> ArborX::Details::makeLeafNode(std::size_t, BoundingVolume) noexcept [with BoundingVolume=ArborX::Box]" at line 91 of /usr/local/Arborx/include/ArborX/details/ArborX_DetailsTreeConstruction.hpp
            instantiation of "void ArborX::Details::TreeConstruction::initializeSingleLeafNode(const ExecutionSpace &, const Primitives &, const Nodes &) [with ExecutionSpace=Kokkos::DefaultHostExecutionSpace, Primitives=std::vector<dealii::Point<3, double>, std::allocator<dealii::Point<3, double>>>, Nodes=Kokkos::View<ArborX::Details::NodeWithLeftChildAndRope<ArborX::Box> *, Kokkos::HostSpace>]" at line 176 of /usr/local/Arborx/include/ArborX/ArborX_LinearBVH.hpp
            instantiation of "ArborX::BasicBoundingVolumeHierarchy<MemorySpace, BoundingVolume, Enable>::BasicBoundingVolumeHierarchy(const ExecutionSpace &, const Primitives &, const SpaceFillingCurve &) [with MemorySpace=Kokkos::HostSpace, BoundingVolume=ArborX::Box, Enable=void, ExecutionSpace=Kokkos::DefaultHostExecutionSpace, Primitives=std::vector<dealii::Point<3, double>, std::allocator<dealii::Point<3, double>>>, SpaceFillingCurve=ArborX::Experimental::Morton64]" at line 160 of /usr/local/dealii/include/deal.II/arborx/bvh.h

Marco Feder

unread,
Oct 20, 2024, 5:29:48 AM10/20/24
to deal.II User Group
Kaushik,

the last error message you showed was observed also here: https://github.com/dealii/dealii/issues/15749#issuecomment-1636841767

Best,
Marco
Reply all
Reply to author
Forward
0 new messages