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

Tpetra: compile problem on Cori #5336

Closed
jhux2 opened this issue Jun 6, 2019 · 8 comments
Closed

Tpetra: compile problem on Cori #5336

jhux2 opened this issue Jun 6, 2019 · 8 comments
Labels
client: ExaWind All issue that impact the ECP project ExaWind pkg: Tpetra type: bug The primary issue is a bug in Trilinos code or tests

Comments

@jhux2
Copy link
Member

jhux2 commented Jun 6, 2019

An ExaWind colleague has reported the following compile error on Cori @ NERSC with Trilinos develop, SHA 3a7d195.

../packages/kokkos/containers/src/Kokkos_DualView.hpp(403): error: static assertion failed with "Template parameter to .sync() must exactly match one of the DualView's device types or one of the execution or memory spaces"
      static_assert(
      ^
          detected during:
            instantiation of "int Kokkos::DualView<DataType, Arg1Type, Arg2Type, Arg3Type>::get_device_side<Device>() [with DataType=double **, Arg1Type=Kokkos::LayoutLeft, Arg2Type=Kokkos::Serial::execution_space, Arg3Type=void, Device=Kokkos::HostSpace::execution_space]" at line 538
            instantiation of "bool Kokkos::DualView<DataType, Arg1Type, Arg2Type, Arg3Type>::need_sync<Device>() const [with DataType=double **, Arg1Type=Kokkos::LayoutLeft, Arg2Type=Kokkos::Serial::execution_space, Arg3Type=void, Device=Kokkos::HostSpace::execution_space]" at line 1519 of "../packages/tpetra/core/src/Tpetra_MultiVector_decl.hpp"
            instantiation of "bool Tpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>::need_sync<TargetDeviceType>() const [with Scalar=double, LocalOrdinal=int, GlobalOrdinal=int, Node=Kokkos_Compat_KokkosSerialWrapperNode, TargetDeviceType=Kokkos::HostSpace::execution_space]" at line 221 of "../packages/tpetra/core/src/Tpetra_withLocalAccess_MultiVector.hpp"
            instantiation of "Tpetra::Details::GetMasterLocalObject<Tpetra::Details::LocalAccess<Tpetra::Vector<SC, LO, GO, NT>, MemorySpace, am>>::master_local_object_type Tpetra::Details::GetMasterLocalObject<Tpetra::Details::LocalAccess<Tpetra::Vector<SC, LO, GO, NT>, MemorySpace, am>>::get(Tpetra::Details::GetMasterLocalObject<Tpetra::Details::LocalAccess<Tpetra::Vector<SC, LO, GO, NT>, MemorySpace, am>>::local_access_type) [with SC=double, LO=int, GO=int,
                      NT=Kokkos_Compat_KokkosSerialWrapperNode, MemorySpace=Kokkos::HostSpace, am=Tpetra::Details::AccessMode::ReadWrite]" at line 136 of "../packages/tpetra/core/src/Tpetra_withLocalAccess.hpp"
            instantiation of "Tpetra::Details::GetMasterLocalObject<LocalAccessType>::master_local_object_type Tpetra::Details::getMasterLocalObject(LocalAccessType) [with LocalAccessType=Tpetra::Details::LocalAccess<Tpetra::Vector<double, int, int, Kokkos_Compat_KokkosSerialWrapperNode>, Kokkos::HostSpace, Tpetra::Details::AccessMode::ReadWrite>]" at line 533 of "../packages/tpetra/core/src/Tpetra_withLocalAccess.hpp"
            instantiation of "void Tpetra::Details::WithLocalAccess<FirstLocalAccessType, Rest...>::withLocalAccess(Tpetra::Details::WithLocalAccess<FirstLocalAccessType, Rest...>::current_user_function_type, FirstLocalAccessType, Rest...) [with FirstLocalAccessType=Tpetra::Details::LocalAccess<Tpetra::Vector<double, int, int, Kokkos_Compat_KokkosSerialWrapperNode>, Kokkos::HostSpace, Tpetra::Details::AccessMode::ReadWrite>, Rest=<>]" at line 617 of
                      "../packages/tpetra/core/src/Tpetra_withLocalAccess.hpp"
            instantiation of "void Tpetra::withLocalAccess(Tpetra::Details::ArgsToFunction<LocalAccessTypes...>::type, LocalAccessTypes...) [with LocalAccessTypes=<Tpetra::Details::LocalAccess<Tpetra::Vector<double, int, int, Kokkos_Compat_KokkosSerialWrapperNode>, Kokkos::HostSpace, Tpetra::Details::AccessMode::ReadWrite>>]" at line 1103 of "../packages/ifpack2/src/Ifpack2_Relaxation_def.hpp"
            instantiation of "void Ifpack2::Relaxation<MatrixType>::compute() [with MatrixType=Tpetra::RowMatrix<double, int, int, Kokkos_Compat_KokkosSerialWrapperNode>]" at line 61 of "packages/ifpack2/src/Ifpack2_Relaxation_Serial.cpp"

@trilinos/tpetra @sayerhs

@jhux2 jhux2 added type: bug The primary issue is a bug in Trilinos code or tests pkg: Tpetra client: ExaWind All issue that impact the ECP project ExaWind labels Jun 6, 2019
@mhoemmen
Copy link
Contributor

mhoemmen commented Jun 6, 2019

Mark Hoemmen [12:03 PM]
I sent a suggestion. My thought was that they have OpenMP enabled in Kokkos, but have only Serial enabled in Tpetra. We don't have any builds that test this condition.
If you aren't using OpenMP at all, then turn it off in the build.
You'll make the build faster that way anyway.
If for some reason you really want that -- say you use OpenMP in Nalu but don't want to build Trilinos' solvers with OpenMP -- let me know and I'll fix this.

@mhoemmen
Copy link
Contributor

mhoemmen commented Jun 6, 2019

@jhux2 I need to know the CMake configuration before I can diagnose the issue.

@jhux2
Copy link
Member Author

jhux2 commented Jun 6, 2019

@mhoemmen I think you're spot on. I'll attach the configure script.

@jhux2
Copy link
Member Author

jhux2 commented Jun 6, 2019

config.txt

@jhux2
Copy link
Member Author

jhux2 commented Jun 6, 2019

Here's the configure output. Looks like OpenMP is enabled in both Kokkos and Tpetra.

-- ****************** Kokkos Settings ******************
-- Execution Spaces
--   Device Parallel: None
--     Host Parallel: OpenMP
--       Host Serial: Serial
-- 
-- Architectures:
--     None
-- 
-- Enabled options
--   KOKKOS_ENABLE_SERIAL
--   KOKKOS_ENABLE_OPENMP
--   KOKKOS_ENABLE_PROFILING

[snip]

Processing enabled package: Tpetra (Classic, TSQR, Core)
-- Tpetra: Enabling deprecated code
-- Determine whether Tpetra will assume that MPI is CUDA aware:
--   - Tpetra_ENABLE_CUDA is OFF, so Tpetra will assume that MPI is not CUDA aware.
-- Tpetra execution space availability (ON means available): 
--   - Serial:  ON
--   - Threads: OFF
--   - OpenMP:  ON
--   - Cuda:    OFF
-- Tpetra: Tpetra_INST_INT_LONG_LONG is enabled by default.
-- Tpetra: Tpetra_INST_INT_UNSIGNED is disabled by default.
-- Tpetra: Tpetra_INST_INT_UNSIGNED_LONG is disabled by default.
-- Tpetra: Tpetra_INST_INT_INT is enabled by default.
-- Tpetra: Tpetra_INST_INT_LONG_LONG is disabled because Tpetra_INST_INT_LONG was enabled by user option.
-- Tpetra: Tpetra_INST_INT_LONG is enabled.

@mhoemmen
Copy link
Contributor

mhoemmen commented Jun 6, 2019

@jhux2 The issue could be caused by Kokkos::DefaultHostExecutionSpace (OpenMP, in this case) differing from Tpetra's default execution space (Serial, in this case).

@mhoemmen
Copy link
Contributor

mhoemmen commented Jun 6, 2019

@jhux2 Fix here #5343 please review.

trilinos-autotester added a commit that referenced this issue Jun 7, 2019
Automatically Merged using Trilinos Pull Request AutoTester
PR Title: Tpetra: Fix #5336
PR Author: mhoemmen
@jhux2
Copy link
Member Author

jhux2 commented Jun 7, 2019

@mhoemmen Thank you for fixing this so quickly.

jmgate pushed a commit to tcad-charon/Trilinos that referenced this issue Jun 8, 2019
…s:develop' (8380623).

* trilinos-develop: (89 commits)
  bug fixes
  Panzer: fix multiblock test for order check
  Tpetra: Fix trilinos#5336
  Fixed review erros for AMGX rebuilding
  MueLu: Avatar interface mods
  TrilinosCouplings: More cleanup to example
  Fixed rebuild issue for MueLu+AMGX run
  epetra: Fix for unguarded macro defined in SLU
  epetra: Fix for unguarded SuperLU macro
  MueLu: fixing an issue in the structured region driver data
  Fix std::complex<> interface to GEEV/GGEVX in Teuchos::LAPACK
  Xpetra: ETI conversion for Xpetra_TpetraExport.hpp
  Updates to handle when a non RK stepper observer is passed in. (trilinos#5324)
  Xpetra: add forced map writing to unit test
  MueLu: updating some tests/unit_tests, see issue trilinos#5310
  Xpetra: add option to force writing of all maps
  Fixes to make stk build when BoostLib is not enabled.
  Add Intel 18.0.5 compiler to ATDM environment.
  Tpetra: Fix trilinos#4627
  Xpetra: don't write maps unnecessarily
  ...
jmgate pushed a commit to tcad-charon/Trilinos that referenced this issue Jun 9, 2019
…s:develop' (8380623).

* trilinos-develop: (93 commits)
  Upgrade Intel default environment to 18.0.5 and add sems-rhel7 drivers.
  Automatic snapshot commit from tribits at 6858917
  Automatic snapshot commit from tribits at c8b8ef0
  Xpetra: remove GO check in binary reader
  bug fixes
  Panzer: fix multiblock test for order check
  Tpetra: Fix trilinos#5336
  Fixed review erros for AMGX rebuilding
  MueLu: Avatar interface mods
  TrilinosCouplings: More cleanup to example
  Fixed rebuild issue for MueLu+AMGX run
  epetra: Fix for unguarded macro defined in SLU
  epetra: Fix for unguarded SuperLU macro
  MueLu: fixing an issue in the structured region driver data
  Fix std::complex<> interface to GEEV/GGEVX in Teuchos::LAPACK
  Xpetra: ETI conversion for Xpetra_TpetraExport.hpp
  Updates to handle when a non RK stepper observer is passed in. (trilinos#5324)
  Xpetra: add forced map writing to unit test
  MueLu: updating some tests/unit_tests, see issue trilinos#5310
  Xpetra: add option to force writing of all maps
  ...
jmgate pushed a commit to tcad-charon/Trilinos that referenced this issue Jun 10, 2019
…s:develop' (8380623).

* trilinos-develop: (130 commits)
  Upgrade Intel default environment to 18.0.5 and add sems-rhel7 drivers.
  Automatic snapshot commit from tribits at 6858917
  Automatic snapshot commit from tribits at c8b8ef0
  Xpetra: remove GO check in binary reader
  Teko:  changes to address review concerns in trilinos#5326 by @mhoemmen Replaced maxNumEntriesPerRow with per-row number of entries. Added a "count then allocate then fill" pattern.
  tpetra:  Removed  debugging output
  xpetra:  fixed misplaced deprecation notice that cause compilation errors in PR testing
  bug fixes
  Panzer: fix multiblock test for order check
  Tpetra: Fix trilinos#5336
  Fixed review erros for AMGX rebuilding
  MueLu: Avatar interface mods
  TrilinosCouplings: More cleanup to example
  Fixed rebuild issue for MueLu+AMGX run
  epetra: Fix for unguarded macro defined in SLU
  epetra: Fix for unguarded SuperLU macro
  MueLu: fixing an issue in the structured region driver data
  Fix std::complex<> interface to GEEV/GGEVX in Teuchos::LAPACK
  Xpetra: ETI conversion for Xpetra_TpetraExport.hpp
  Updates to handle when a non RK stepper observer is passed in. (trilinos#5324)
  ...
jmgate pushed a commit to tcad-charon/Trilinos that referenced this issue Jun 11, 2019
…s:develop' (8380623).

* trilinos-develop: (132 commits)
  MueLu: Changes to DriverCore for AMGx standalone
  Fix stk cmake error: stk_mesh_fixtures can be enabled regardless of whether STKNGP_TEST is enabled.
  Upgrade Intel default environment to 18.0.5 and add sems-rhel7 drivers.
  Automatic snapshot commit from tribits at 6858917
  Automatic snapshot commit from tribits at c8b8ef0
  Xpetra: remove GO check in binary reader
  Teko:  changes to address review concerns in trilinos#5326 by @mhoemmen Replaced maxNumEntriesPerRow with per-row number of entries. Added a "count then allocate then fill" pattern.
  tpetra:  Removed  debugging output
  xpetra:  fixed misplaced deprecation notice that cause compilation errors in PR testing
  bug fixes
  Panzer: fix multiblock test for order check
  Tpetra: Fix trilinos#5336
  Fixed review erros for AMGX rebuilding
  MueLu: Avatar interface mods
  TrilinosCouplings: More cleanup to example
  Fixed rebuild issue for MueLu+AMGX run
  epetra: Fix for unguarded macro defined in SLU
  epetra: Fix for unguarded SuperLU macro
  MueLu: fixing an issue in the structured region driver data
  Fix std::complex<> interface to GEEV/GGEVX in Teuchos::LAPACK
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client: ExaWind All issue that impact the ECP project ExaWind pkg: Tpetra type: bug The primary issue is a bug in Trilinos code or tests
Projects
None yet
Development

No branches or pull requests

2 participants