Closed jjellio closed 8 years ago
@trilinos/tpetra
@jhux2 If you disable long long and enable long instead, does that make the problem go away?
@mhoemmen this did make these issues go away for me when I was building for NALU (I eventually hit other problems to do with STK).
I am trying this now and will report back.
Based on what @jjellio said in an e-mail, it could be an issue relating to the offset_type (which might not be size_t on Power? not sure).
@nmhamster, can you post your enabled instantiations?
I disabled Tpetra's LONG LONG, and enabled LONG and INT. I still have this error. I did not disable Teuchos LONG LONG.
I am guessing disabling LONG or INT would resolve this, but that restricts the build to all 32 or all 64 bit ordinals.
sizeof: int = 4
sizeof: long = 8
sizeof: size_t = 8
sizeof: long long = 8
\
-D Trilinos_ENABLE_EXPLICIT_INSTANTIATION=ON \
-D Tpetra_INST_FLOAT=OFF \
-D Tpetra_INST_DOUBLE=ON \
-D Tpetra_INST_COMPLEX_FLOAT=OFF \
-D Tpetra_INST_COMPLEX_DOUBLE=OFF \
-D Tpetra_INST_INT_INT=ON \
-D Tpetra_INST_INT_LONG=ON \
-D Tpetra_INST_INT_UNSIGNED=OFF \
-D Tpetra_INST_INT_LONG_LONG=OFF \
-D Teuchos_ENABLE_LONG_LONG_INT=ON \
-D Teuchos_ENABLE_COMPLEX=OFF \
-D Zoltan_ENABLE_ULLONG_IDS=ON \
Processing ETI support: TpetraCore
-- TpetraCore: Processing ETI / test support
-- Enabled Scalar types: int|long|double
-- Enabled LocalOrdinal types: int
-- Enabled GlobalOrdinal types: int|long
-- Enabled Node types: Kokkos::Compat::KokkosOpenMPWrapperNode
@jjellio these are the TPetra ones I have in the CMake configure I am using. It does allow me to get to Trilinos tests.
-D Tpetra_INST_COMPLEX_FLOAT:BOOL=OFF \
-D Tpetra_INST_COMPLEX_DOUBLE:BOOL=OFF \
-D Tpetra_INST_INT_LONG:BOOL=OFF \
-D Tpetra_INST_INT_INT:BOOL=ON \
-D Tpetra_INST_INT_LONG_LONG:BOOL=ON \
Edit: I have additional TPetra_INST etc as well these are just the types I pieces.
btw, offset type is controlled in the code itself, not through CMake. Got TUG tutorial very soon so can't look now, but let's chat at some point.
@nmhamster My build failed. Perhaps this is OpenMP specific? I'll look into the cpp files and see if I see anything. I need to finish some other stuff first though.
-D Tpetra_INST_INT_INT=OFF \
-D Tpetra_INST_INT_LONG=ON \
-D Tpetra_INST_INT_UNSIGNED=OFF \
-D Tpetra_INST_INT_LONG_LONG=OFF \
-D Teuchos_ENABLE_LONG_LONG_INT=ON \
-D Teuchos_ENABLE_COMPLEX=OFF \
-D Zoltan_ENABLE_ULLONG_IDS=ON \
CMakeFiles/tpetra.dir/Tpetra_DistObject_DOUBLE_INT_LONG_OPENMP.cpp.o:(.data+0x1234): multiple definition of `_ZNK6Kokkos4Impl11ParallelForINS_12Experimental4Impl16ViewValueFunctorINS_6OpenMPEjLb1EEENS_11RangePolicyIJS5_EEES5_E16execute_scheduleINS_6StaticEEENSt9enable_ifIXsr3std7is_sameIT_SB_EE5valueEvE4typeEv$$OL$$6RVL4EB9'
CMakeFiles/tpetra.dir/Tpetra_DistObject_LONG_INT_LONG_OPENMP.cpp.o:(.data+0x1234): first defined here
CMakeFiles/tpetra.dir/Tpetra_DistObject_DOUBLE_INT_LONG_OPENMP.cpp.o:(.data+0x123c): multiple definition of `_ZNK6Kokkos4Impl11ParallelForINS_12Experimental4Impl9ViewRemapINS2_4ViewIPmJNS_6OpenMPEvvEEENS5_IS6_JNS_11LayoutRightENS_6DeviceIS7_NS_9HostSpaceEEEEEES7_EENS_11RangePolicyIJS7_EEES7_E16execute_scheduleINS_6StaticEEENSt9enable_ifIXsr3std7is_sameIT_SJ_EE5valueEvE4typeEv$$OL$$8RVL4FC9'
CMakeFiles/tpetra.dir/Tpetra_DistObject_LONG_INT_LONG_OPENMP.cpp.o:(.data+0x123c): first defined here
CMakeFiles/tpetra.dir/Tpetra_DistObject_DOUBLE_INT_LONG_OPENMP.cpp.o:(.data+0x1240): multiple definition of `_ZNK6Kokkos4Impl11ParallelForINS_12Experimental4Impl9ViewRemapINS2_4ViewIPmJNS_11LayoutRightENS_6DeviceINS_6OpenMPENS_9HostSpaceEEEEEENS5_IS6_JS9_vvEEES9_EENS_11RangePolicyIJS9_EEES9_E16execute_scheduleINS_6StaticEEENSt9enable_ifIXsr3std7is_sameIT_SJ_EE5valueEvE4typeEv$$OL$$9RVL50A3'
CMakeFiles/tpetra.dir/Tpetra_DistObject_LONG_INT_LONG_OPENMP.cpp.o:(.data+0x1240): first defined here
@jjellio My build is creating OpenMP as well. This is a huge pain. What nodes are you running on right now?
Thanks, I did not try that. I will see if that works, as we are enabling both.
From: Mark Hoemmen notifications@github.com Sent: Sunday, October 23, 2016 5:21 PM To: trilinos/Trilinos Cc: Elliott, James John; Author Subject: [EXTERNAL] Re: [trilinos/Trilinos] Tpetra / Power8 / OpenMP, multiple definitions (#723)
@jhux2https://github.com/jhux2 If you disable long long and enable long instead, does that make the problem go away?
You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/trilinos/Trilinos/issues/723#issuecomment-255622042, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AUQ6kTwaiOrdSGZqa4_MGUz5Rv9hLwnGks5q2-wEgaJpZM4KdbJr.
@jjellio Isn't that what I put in my script above?
@jjellio no its not! I am answering my own question. I think I did try that and the conflict issue here is with INT
and LONG
My head hurts. I've tried a few combos. I suspect the only way to have this working is ScalarType_INT_INT or ScalarType_LONG_LONG.
But mixing types for GO and LO is the problem.
@jjellio Wasn't my suggestion ...
I'm calling this a duplicate of #513.
On a power8 machine, Trilinos is failing to build with libtpetra.so having multiple definitions of some functions. Perhaps sizeof(INT) and sizeof(LONG LONG) are the same?
The build setup for this is
@mhoemmen @tpetra