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

Trilinos nightly failure, ifpack2: spiluk errors with too few arguments to function call #2086

Closed
ndellingwood opened this issue Jan 12, 2024 · 1 comment

Comments

@ndellingwood
Copy link
Contributor

Trilinos nightly builds are failing to compile in ifpack2 (all backends) with the following errors:

17:51:07 /home/jenkins/blake-new/workspace/KokkosEco_Trilinos_Blake_LLVM1507_Serial_debug/Trilinos/packages/ifpack2/src/Ifpack2_IlukGraph.hpp:598:98: error: too few arguments to function call, expected 4, have 3
17:51:07                                                     KernelHandle->get_spiluk_handle()->get_nnzU());
17:51:07                                                                                                  ^
17:51:07 /home/jenkins/blake-new/workspace/KokkosEco_Trilinos_Blake_LLVM1507_Serial_debug/Trilinos/packages/ifpack2/src/Ifpack2_RILUK_def.hpp:620:17: note: in instantiation of member function 'Ifpack2::IlukGraph<Tpetra::CrsGraph<>, KokkosKernels::Experimental::KokkosKernelsHandle<const unsigned long, const int, double, Kokkos::Serial, Kokkos::HostSpace, Kokkos::HostSpace>>::initialize' requested here
17:51:07         Graph_->initialize (KernelHandle_); // this calls spiluk_symbolic
17:51:07                 ^
17:51:07 /home/jenkins/blake-new/workspace/KokkosEco_Trilinos_Blake_LLVM1507_Serial_debug/Trilinos/kokkos-kernels/sparse/src/KokkosSparse_spiluk_handle.hpp:134:8: note: 'reset_handle' declared here
17:51:07   void reset_handle(const size_type nrows_, const size_type nnzL_,
17:51:07        ^
17:51:07 In file included from /home/jenkins/blake-new/workspace/KokkosEco_Trilinos_Blake_LLVM1507_Serial_debug/Build/packages/ifpack2/src/Ifpack2_RILUK_DOUBLE_INT_LONG_LONG_SERIAL.cpp:49:
17:51:07 In file included from /home/jenkins/blake-new/workspace/KokkosEco_Trilinos_Blake_LLVM1507_Serial_debug/Trilinos/packages/ifpack2/src/Ifpack2_RILUK_decl.hpp:55:
17:51:07 /home/jenkins/blake-new/workspace/KokkosEco_Trilinos_Blake_LLVM1507_Serial_debug/Trilinos/packages/ifpack2/src/Ifpack2_IlukGraph.hpp:618:76: error: too few arguments to function call, expected 4, have 3
17:51:07       KernelHandle->get_spiluk_handle()->reset_handle(NumMyRows, nnzL, nnzU);
17:51:07       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      ^
17:51:07 /home/jenkins/blake-new/workspace/KokkosEco_Trilinos_Blake_LLVM1507_Serial_debug/Trilinos/kokkos-kernels/sparse/src/KokkosSparse_spiluk_handle.hpp:134:8: note: 'reset_handle' declared here
17:51:07   void reset_handle(const size_type nrows_, const size_type nnzL_,

This follows from merge of #2064 , @jgfouca can you take a look? It's not clear to me if the changes introduced a compatibility-breaking change which will need to be addressed and guarded (by version) in Trilinos, or perhaps a missing overload to handle function calls with fewer args (I'm guessing exec space instance maybe)?

Reproducer (Blake, all queue):

# Repos
git clone -b develop https://github.com/trilinos/Trilinos.git
TRILINOS_DIR=$PWD/Trilinos
git clone -b develop https://github.com/kokkos/kokkos.git
KOKKOS_DIR=$PWD/kokkos
git clone -b develop https://github.com/kokkos/kokkos-kernels.git
KOKKOSKERNELS_DIR=$PWD/kokkos-kernels

# Grab a node
salloc -N 1 -p all

# Environment
module load cmake llvm openblas/0.3.23

# Configure
cmake \
  -D CMAKE_INSTALL_PREFIX="${TRILINOS_INSTALL_DIR}" \
  -D CMAKE_CXX_COMPILER="`which clang++`" \
  -D CMAKE_C_COMPILER="`which clang`" \
  -D CMAKE_Fortran_COMPILER="`which gfortran`" \
  -D CMAKE_CXX_FLAGS="-g -fPIC" \
  -D CMAKE_C_FLAGS="-g -fPIC" \
  -D CMAKE_Fortran_FLAGS="-g -fPIC" \
  -D CMAKE_BUILD_TYPE:STRING=DEBUG \
  -D BUILD_SHARED_LIBS:BOOL=OFF \
  -DTPL_ENABLE_MPI=OFF \
  -DTPL_ENABLE_BLAS:BOOL=ON \
   -DBLAS_LIBRARY_DIRS:FILEPATH=${OPENBLAS_ROOT}/lib \
   -DBLAS_LIBRARY_NAMES:STRING="openblas" \
  -DTPL_ENABLE_LAPACK:BOOL=ON \
   -DLAPACK_INCLUDE_DIRS:FILEPATH=${OPENBLAS_ROOT}/include \
   -DLAPACK_LIBRARY_DIRS:FILEPATH=${OPENBLAS_ROOT}/lib \
   -DLAPACK_LIBRARY_NAMES:STRING="openblas" \
  -DTrilinos_ENABLE_ALL_PACKAGES=OFF \
  -DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES=OFF \
  -DTrilinos_ENABLE_TESTS=ON \
  -DTrilinos_MUST_FIND_ALL_TPL_LIBS=TRUE \
  -DTrilinos_ENABLE_COMPLEX=ON \
  -DTrilinos_ENABLE_OpenMP=OFF \
  -DTrilinos_ENABLE_Kokkos=ON \
  -D Kokkos_ENABLE_SERIAL=ON \
   -D Kokkos_ENABLE_TESTS=ON \
  -D Kokkos_ARCH_SKX=ON \
  -DTrilinos_ENABLE_KokkosKernels=ON \
   -D KokkosKernels_ENABLE_TESTS=ON \
  -DTrilinos_ENABLE_Tpetra=ON \
   -D Tpetra_ENABLE_TESTS=ON \
  -DTrilinos_ENABLE_Sacado=ON \
   -D Sacado_ENABLE_TESTS=ON \
  -DTrilinos_ENABLE_Stokhos=ON \
   -D Stokhos_ENABLE_TESTS=ON \
  -DTrilinos_ENABLE_Intrepid2=ON \
   -D Intrepid2_ENABLE_TESTS=ON \
  -DTrilinos_ENABLE_Adelus=ON \
   -D Adelus_ENABLE_TESTS:BOOL=ON \
  -DTrilinos_ENABLE_Compadre=ON \
   -D Compadre_ENABLE_TESTS=ON \
  -DTrilinos_ENABLE_Panzer=ON \
   -D Panzer_ENABLE_TESTS=ON \
  -DTrilinos_ENABLE_Amesos2=ON \
   -D Amesos2_ENABLE_TESTS=ON \
  -DTrilinos_ENABLE_Zoltan2=ON \
   -D Zoltan2_ENABLE_TESTS=ON \
  -DTrilinos_ENABLE_Teuchos=ON \
   -D Teuchos_ENABLE_TESTS=ON \
  -DTrilinos_ENABLE_Ifpack2=ON \
   -D Ifpack2_ENABLE_TESTS=ON \
\
  -DTPL_ENABLE_Matio=OFF \
\
-DKokkos_SOURCE_DIR_OVERRIDE:STRING=kokkos \
-DKokkosKernels_SOURCE_DIR_OVERRIDE:STRING=kokkos-kernels \
\
$TRILINOS_DIR

# Compile
make -j16

Most of the packages enabled can be removed, probably only need to enable ifpack2 and its tests (snip above is from the nightly job)

@jgfouca
Copy link
Contributor

jgfouca commented Jan 12, 2024

@ndellingwood , I see the problem. Fix comong.

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

No branches or pull requests

2 participants