ECP-copa/ExaMiniMD

Build error with Kokkos master

junghans opened this issue · 1 comments

With kokkos/kokkos@120d9ce, I get:

mpicxx -I./ -I/home/junghans/kokkos/core/src -I/home/junghans/kokkos/containers/src -I/home/junghans/kokkos/algorithms/src  --std=c++11 -mavx -O3 -g -DEXAMINIMD_ENABLE_MPI  -c binning_kksort.cpp
binning_kksort.cpp: In constructor ‘BinningKKSort::BinningKKSort(System*)’:
binning_kksort.cpp:3:51: error: no matching function for call to ‘Kokkos::BinSort<Kokkos::View<const double* [3], Kokkos::LayoutRight>, Kokkos::BinOp3D<Kokkos::View<const double* [3], Kokkos::LayoutRight> >, Kokkos::Serial, int>::BinSort()’
 BinningKKSort::BinningKKSort(System* s): Binning(s) {}
                                                   ^
In file included from ./binning_kksort.h:4:0,
                 from binning_kksort.cpp:1:
/home/junghans/kokkos/algorithms/src/Kokkos_Sort.hpp:164:3: note: candidate: Kokkos::BinSort<KeyViewType, BinSortOp, ExecutionSpace, SizeType>::BinSort(Kokkos::BinSort<KeyViewType, BinSortOp, ExecutionSpace, SizeType>::const_key_view_type, BinSortOp, bool) [with KeyViewType = Kokkos::View<const double* [3], Kokkos::LayoutRight>; BinSortOp = Kokkos::BinOp3D<Kokkos::View<const double* [3], Kokkos::LayoutRight> >; ExecutionSpace = Kokkos::Serial; SizeType = int; Kokkos::BinSort<KeyViewType, BinSortOp, ExecutionSpace, SizeType>::const_key_view_type = Kokkos::View<const double* [3], Kokkos::LayoutRight, Kokkos::HostSpace>; typename KeyViewType::array_layout = Kokkos::LayoutRight; typename KeyViewType::memory_space = Kokkos::HostSpace; typename KeyViewType::const_data_type = const double* [3]]
   BinSort(const_key_view_type keys_, BinSortOp bin_op_,
   ^~~~~~~
/home/junghans/kokkos/algorithms/src/Kokkos_Sort.hpp:164:3: note:   candidate expects 3 arguments, 0 provided
/home/junghans/kokkos/algorithms/src/Kokkos_Sort.hpp:95:7: note: candidate: Kokkos::BinSort<Kokkos::View<const double* [3], Kokkos::LayoutRight>, Kokkos::BinOp3D<Kokkos::View<const double* [3], Kokkos::LayoutRight> >, Kokkos::Serial, int>::BinSort(const Kokkos::BinSort<Kokkos::View<const double* [3], Kokkos::LayoutRight>, Kokkos::BinOp3D<Kokkos::View<const double* [3], Kokkos::LayoutRight> >, Kokkos::Serial, int>&)
 class BinSort {
       ^~~~~~~
/home/junghans/kokkos/algorithms/src/Kokkos_Sort.hpp:95:7: note:   candidate expects 1 argument, 0 provided
/home/junghans/kokkos/algorithms/src/Kokkos_Sort.hpp:95:7: note: candidate: Kokkos::BinSort<Kokkos::View<const double* [3], Kokkos::LayoutRight>, Kokkos::BinOp3D<Kokkos::View<const double* [3], Kokkos::LayoutRight> >, Kokkos::Serial, int>::BinSort(Kokkos::BinSort<Kokkos::View<const double* [3], Kokkos::LayoutRight>, Kokkos::BinOp3D<Kokkos::View<const double* [3], Kokkos::LayoutRight> >, Kokkos::Serial, int>&&)
/home/junghans/kokkos/algorithms/src/Kokkos_Sort.hpp:95:7: note:   candidate expects 1 argument, 0 provided
make: *** [Makefile:56: binning_kksort.o] Error 1

This is actually stated in the readme. There was a very small use-case oversight in both the unordered map and BinSort of Kokkos which was exposed by something I needed to do for this app. I fixed that in Kokkos but it didn't make it to the master branch yet. I am in the process of a develop->master promotion, after which we will note an official minimal version of Kokkos and the master branch will work.