1. 01 Mar, 2017 1 commit
    • crtrott's avatar
      Kokkos-Kernels: Adding Kokkos-Kernels as a stand-alone package · 97ed757d
      crtrott authored
      Kokkos-Kernels was moved from its previous location tpetra/kernels
      to kokkos-kernels and now is its own package. Testing was performed
      on multiple platforms with gcc, intel and cuda, also debug mode.
      As far as I can tell the have the same errors as on current develop.
      I.e. hopefully nothing related to this switch. Testing was done with
      the samplescripts/Sandia-Sems/configure-testbeds-jenkins-all script.
      97ed757d
  2. 22 Sep, 2015 2 commits
  3. 22 Dec, 2014 2 commits
    • Mark Hoemmen's avatar
      Moved KokkosLinAlg subpackage from Kokkos into Tpetra as TpetraKernels. · 56a7f9b7
      Mark Hoemmen authored
      I moved the KokkosLinAlg subpackage of Kokkos into Tpetra, and renamed
      it "TpetraKernels".  This move will facilitate moving Kokkos from the
      Trilinos repository into its own Github repository.  I renamed it from
      "LinAlg" because all of Tpetra implements "linear algebra."  The name
      "Kernels" better suggests the contents: single-MPI-process,
      thread-parallel computational kernels.
      
      I also fixed downstream packages that depended on KokkosLinAlg.  This
      includes both the package name (KokkosLinAlg -> TpetraKernels) and
      various library names.
      
      This commit mainly affects Kokkos and Tpetra.  I also had to make
      minor changes to Isorropia, ShyLu, Stokhos, TrilinosCouplings, and
      Xpetra.  In particular, Xpetra's "FakeKokkos" (KokkosClassic
      replacement headers for when building with Tpetra disabled) caused
      some bizarre build errors until I finally figured out that Xpetra was
      using "Xpetra_ENABLE_Kokkos" to key on whether to use FakeKokkos'
      headers.  This manifested as Tpetra files not getting the contents of
      TpetraClassic files (like Kokkos_ConfigDefs.hpp), but only when
      building in Xpetra.  I fixed this by making Xpetra key on
      Xpetra_ENABLE_Tpetra, since the former KokkosClassic now lives in
      Tpetra.
      
      NOTE: The Kokkos refactor version of MueLu does not currently build
      with ETI enabled, because of some missing explicit instantiations.
      Here is the error message I get:
      
      Linking CXX executable MueLu_Challenge_XML.exe
      ../../../src/libmuelu.so.11.13: undefined reference to `Ifpack2::AdditiveSchwarz<Tpetra::RowMatrix<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> >, Ifpack2::Preconditioner<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> > >::AdditiveSchwarz(Teuchos::RCP<Tpetra::RowMatrix<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> > const> const&, int)'
      ../../../src/libmuelu.so.11.13: undefined reference to `Ifpack2::Details::OneLevelFactory<Tpetra::RowMatrix<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> > >::create(std::string const&, Teuchos::RCP<Tpetra::RowMatrix<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> > const> const&) const'
      ../../../src/libmuelu.so.11.13: undefined reference to `Ifpack2::Chebyshev<Tpetra::RowMatrix<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> > >::getLambdaMaxForApply() const'
      ../../../src/libmuelu.so.11.13: undefined reference to `Ifpack2::Hiptmair<Tpetra::CrsMatrix<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> > >::Hiptmair(Teuchos::RCP<Tpetra::RowMatrix<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> > const> const&, Teuchos::RCP<Tpetra::RowMatrix<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> > const> const&, Teuchos::RCP<Tpetra::RowMatrix<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> > const> const&)'
      ../../../src/libmuelu.so.11.13: undefined reference to `Ifpack2::Krylov<Tpetra::RowMatrix<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> > >::Krylov(Teuchos::RCP<Tpetra::RowMatrix<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> > const> const&)'
      collect2: error: ld returned 1 exit status
      
      Note that KokkosDeviceWrapperNode<Kokkos::OpenMP> is NOT the default
      Node type in this build; the default Node type is
      KokkosDeviceWrapperNode<Kokkos::Serial>.  As far as I can tell,
      Ifpack2 only does ETI for the default Node type.  It could be that
      MueLu is explicitly requesting ETI for a NON-default Node type, or it
      could be that I messed up somewhere with the macros.  I'll have to
      work a little bit harder at this, but I think it's OK to finish the
      subpackage migration process first.
      56a7f9b7
    • Mark Hoemmen's avatar
      Kokkos: Moved FENL example from KokkosExample to KokkosLinAlg. · 574eb134
      Mark Hoemmen authored
      The FENL example depends on KokkosCore, KokkosContainers, and
      KokkosLinAlg.  No other examples in the KokkosExample subpackage
      depend on KokkosLinAlg.  Since we want to move KokkosLinAlg out of
      Kokkos and into Tpetra, as a first step, I have moved the FENL example
      out of KokkosExample and into KokkosLinAlg.
      
      I also changed KokkosExample's dependencies so that it no longer
      depends on KokkosLinAlg.
      574eb134