Tpetra: compile error in OpenMP-only build
Created by: brian-kelley
@trilinos/tpetra
Current Behavior
On bowman with Intel 17.0.098 and OpenMPI 1.10.4, a release build of Tpetra with OpenMP as the only Node type fails. Enabling both Serial and OpenMP makes the error go away. This was on a fresh pull from develop (as of Mar. 29).
[ 77%] Building CXX object packages/tpetra/core/test/inout/CMakeFiles/TpetraCore_ReadTriples.dir/ReadTriples.cpp.o
/home/bmkelle/FreshTrilinos/Trilinos/packages/tpetra/core/inout/Tpetra_Details_PackTriples.hpp(364): error: static assertion failed with "countPackTriples: OrdinalType lacks an MpiTypeTraits specialization."
static_assert (MpiTypeTraits<OrdinalType>::isSpecialized, "countPackTriples: "
^
detected during:
instantiation of "int Tpetra::Details::countPackTriples<ScalarType,OrdinalType>(int, const Teuchos::Comm<int> &, int &, std::ostream *) [with ScalarType=double, OrdinalType=<unnamed>::GO={long long}]" at line 689 of "/home/bmkelle/FreshTrilinos/Trilinos/packages/tpetra/core/inout/Tpetra_Details_ReadTriples.hpp" instantiation of "int Tpetra::Details::Impl::readAndSendOneBatchOfTriples(std::istream &, std::size_t={unsigned long} &, std::size_t={unsigned long} &, Teuchos::ArrayRCP<int> &, Teuchos::ArrayRCP<char> &, std::vector<GO, std::allocator<GO>> &, std::vector<GO, std::allocator<GO>> &, std::vector<SC, std::allocator<SC>> &, std::size_t={unsigned long}, int, const Teuchos::Comm<int> &, bool, std::ostream *, bool) [with SC=double, GO=<unnamed>::GO={long long}]" at line 1019 of "/home/bmkelle/FreshTrilinos/Trilinos/packages/tpetra/core/inout/Tpetra_Details_ReadTriples.hpp"
instantiation of "int Tpetra::Details::readAndDealOutTriples(std::istream &, std::size_t={unsigned long} &, std::size_t={unsigned long} &, std::function<int (GO, GO, const SC &)>, std::size_t={unsigned long}, const Teuchos::Comm<int> &, bool, std::ostream *, bool) [with SC=double, GO=<unnamed>::GO={long long}]" at line 210 of "/home/bmkelle/FreshTrilinos/Trilinos/packages/tpetra/core/test/inout/ReadTriples.cpp"
/home/bmkelle/FreshTrilinos/Trilinos/packages/tpetra/core/inout/Tpetra_Details_PackTriples.hpp(368): error #165: too few arguments in function call
MPI_Datatype ordinalDt = MpiTypeTraits<OrdinalType>::getType ();
^
detected during:
instantiation of "int Tpetra::Details::countPackTriples<ScalarType,OrdinalType>(int, const Teuchos::Comm<int> &, int &, std::ostream *) [with ScalarType=double, OrdinalType=<unnamed>::GO={long long}]" at line 689 of "/home/bmkelle/FreshTrilinos/Trilinos/packages/tpetra/core/inout/Tpetra_Details_ReadTriples.hpp"
instantiation of "int Tpetra::Details::Impl::readAndSendOneBatchOfTriples(std::istream &, std::size_t={unsigned long} &, std::size_t={unsigned long} &, Teuchos::ArrayRCP<int> &, Teuchos::ArrayRCP<char> &, std::vector<GO, std::allocator<GO>> &, std::vector<GO, std::allocator<GO>> &, std::vector<SC, std::allocator<SC>> &, std::size_t={unsigned long}, int, const Teuchos::Comm<int> &, bool, std::ostream *, bool) [with SC=double, GO=<unnamed>::GO={long long}]" at line 1019 of "/home/bmkelle/FreshTrilinos/Trilinos/packages/tpetra/core/inout/Tpetra_Details_ReadTriples.hpp"
Steps to Reproduce
# in ../Trilinos/
git checkout f5753969053681ce7ec8d79f8aa0d159de59f35e
# in ../build/, put the module/configure script linked below
source config.sh
make -j8
Your Environment
- Trilinos: f5753969
- bowman KNL testbed with icc 17.0.098
- Module loading and Trilinos configure script
- Enabling Serial in the above configure script makes the build work