trilinos / Trilinos

Primary repository for the Trilinos Project
https://trilinos.org/
Other
1.21k stars 564 forks source link

Tpetra / Power8 / OpenMP, multiple definitions #723

Closed jjellio closed 8 years ago

jjellio commented 8 years ago

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?

[ 73%] Linking CXX shared library libtpetra.so
/opt/ibm/xlC/13.1.3/bin/.orig/xlC: warning: 1501-218 file ../../tsqr/src/libkokkostsqr.so.12.9 contains an incorrect file suffix
/opt/ibm/xlC/13.1.3/bin/.orig/xlC: warning: 1501-218 file ../../kernels/src/libtpetrakernels.so.12.9 contains an incorrect file suffix
/opt/ibm/xlC/13.1.3/bin/.orig/xlC: warning: 1501-218 file ../../classic/LinAlg/libtpetraclassiclinalg.so.12.9 contains an incorrect file suffix
/opt/ibm/xlC/13.1.3/bin/.orig/xlC: warning: 1501-218 file ../../classic/NodeAPI/libtpetraclassicnodeapi.so.12.9 contains an incorrect file suffix
/opt/ibm/xlC/13.1.3/bin/.orig/xlC: warning: 1501-218 file ../../classic/src/libtpetraclassic.so.12.9 contains an incorrect file suffix
/opt/ibm/xlC/13.1.3/bin/.orig/xlC: warning: 1501-218 file ../../../epetra/src/libepetra.so.12.9 contains an incorrect file suffix
/opt/ibm/xlC/13.1.3/bin/.orig/xlC: warning: 1501-218 file ../../../teuchos/remainder/src/libteuchosremainder.so.12.9 contains an incorrect file suffix
/opt/ibm/xlC/13.1.3/bin/.orig/xlC: warning: 1501-218 file ../../../teuchos/numerics/src/libteuchosnumerics.so.12.9 contains an incorrect file suffix
/opt/ibm/xlC/13.1.3/bin/.orig/xlC: warning: 1501-218 file ../../../teuchos/kokkoscomm/src/libteuchoskokkoscomm.so.12.9 contains an incorrect file suffix
/opt/ibm/xlC/13.1.3/bin/.orig/xlC: warning: 1501-218 file ../../../teuchos/kokkoscompat/src/libteuchoskokkoscompat.so.12.9 contains an incorrect file suffix
/opt/ibm/xlC/13.1.3/bin/.orig/xlC: warning: 1501-218 file ../../../kokkos/algorithms/src/libkokkosalgorithms.so.12.9 contains an incorrect file suffix
/opt/ibm/xlC/13.1.3/bin/.orig/xlC: warning: 1501-218 file ../../../kokkos/containers/src/libkokkoscontainers.so.12.9 contains an incorrect file suffix
/opt/ibm/xlC/13.1.3/bin/.orig/xlC: warning: 1501-218 file ../../../teuchos/comm/src/libteuchoscomm.so.12.9 contains an incorrect file suffix
/opt/ibm/xlC/13.1.3/bin/.orig/xlC: warning: 1501-218 file ../../../teuchos/parameterlist/src/libteuchosparameterlist.so.12.9 contains an incorrect file suffix
/opt/ibm/xlC/13.1.3/bin/.orig/xlC: warning: 1501-218 file ../../../teuchos/core/src/libteuchoscore.so.12.9 contains an incorrect file suffix
/opt/ibm/xlC/13.1.3/bin/.orig/xlC: warning: 1501-218 file ../../../kokkos/core/src/libkokkoscore.so.12.9 contains an incorrect file suffix
CMakeFiles/tpetra.dir/Tpetra_Vector_INT_INT_LONG_LONG_OPENMP.cpp.o:(.data+0x3e0): multiple definition of `_ZNK6Kokkos4Impl11ParallelForINS_12Experimental4Impl16ViewValueFunctorINS_6OpenMPEiLb1EEENS_11RangePolicyIJS5_EEES5_E16execute_scheduleINS_6StaticEEENSt9enable_ifIXsr3std7is_sameIT_SB_EE5valueEvE4typeEv$$OL$$1RVL8FE'
CMakeFiles/tpetra.dir/Tpetra_Vector_INT_INT_INT_OPENMP.cpp.o:(.data+0x3e0): first defined here
CMakeFiles/tpetra.dir/Tpetra_Vector_INT_INT_LONG_LONG_OPENMP.cpp.o:(.data+0x3e4): multiple definition of `_ZNK6Kokkos4Impl14ParallelReduceIN10KokkosBlas4Impl15V_Nrm2w_FunctorINS_12Experimental4ViewIiJNS_11LayoutRightENS_6DeviceINS_6OpenMPENS_9HostSpaceEEENS_12MemoryTraitsILj1EEEEEENS6_IPKiJNS_10LayoutLeftESB_SD_EEEiEENS_11RangePolicyIJS9_iEEENS_11InvalidTypeES9_E16execute_scheduleINS_6StaticEEENSt9enable_ifIXsr3std7is_sameIT_SP_EE5valueEvE4typeEv$$OL$$2RVL9A5'
CMakeFiles/tpetra.dir/Tpetra_Vector_INT_INT_INT_OPENMP.cpp.o:(.data+0x3e4): first defined here
CMakeFiles/tpetra.dir/Tpetra_Vector_INT_INT_LONG_LONG_OPENMP.cpp.o:(.data+0x3e8): multiple definition of `_ZNK6Kokkos4Impl14ParallelReduceIN10KokkosBlas4Impl15V_Nrm2w_FunctorINS_12Experimental4ViewIiJNS_11LayoutRightENS_6DeviceINS_6OpenMPENS_9HostSpaceEEENS_12MemoryTraitsILj1EEEEEENS6_IPKiJNS_10LayoutLeftESB_SD_EEEmEENS_11RangePolicyIJS9_mEEENS_11InvalidTypeES9_E16execute_scheduleINS_6StaticEEENSt9enable_ifIXsr3std7is_sameIT_SP_EE5valueEvE4typeEv$$OL$$3RVLA3E'
CMakeFiles/tpetra.dir/Tpetra_Vector_INT_INT_INT_OPENMP.cpp.o:(.data+0x3e8): first defined here
CMakeFiles/tpetra.dir/Tpetra_Vector_DOUBLE_INT_LONG_LONG_OPENMP.cpp.o:(.data+0x3e0): multiple definition of `_ZNK6Kokkos4Impl11ParallelForINS_12Experimental4Impl16ViewValueFunctorINS_6OpenMPEdLb1EEENS_11RangePolicyIJS5_EEES5_E16execute_scheduleINS_6StaticEEENSt9enable_ifIXsr3std7is_sameIT_SB_EE5valueEvE4typeEv$$OL$$1RVL8FB'
CMakeFiles/tpetra.dir/Tpetra_Vector_DOUBLE_INT_INT_OPENMP.cpp.o:(.data+0x3e0): first defined here
CMakeFiles/tpetra.dir/Tpetra_Vector_DOUBLE_INT_LONG_LONG_OPENMP.cpp.o:(.data+0x3e4): multiple definition of `_ZNK6Kokkos4Impl14ParallelReduceIN10KokkosBlas4Impl15V_Nrm2w_FunctorINS_12Experimental4ViewIdJNS_11LayoutRightENS_6DeviceINS_6OpenMPENS_9HostSpaceEEENS_12MemoryTraitsILj1EEEEEENS6_IPKdJNS_10LayoutLeftESB_SD_EEEiEENS_11RangePolicyIJS9_iEEENS_11InvalidTypeES9_E16execute_scheduleINS_6StaticEEENSt9enable_ifIXsr3std7is_sameIT_SP_EE5valueEvE4typeEv$$OL$$2RVL9A2'
CMakeFiles/tpetra.dir/Tpetra_Vector_DOUBLE_INT_INT_OPENMP.cpp.o:(.data+0x3e4): first defined here
CMakeFiles/tpetra.dir/Tpetra_Vector_DOUBLE_INT_LONG_LONG_OPENMP.cpp.o:(.data+0x3e8): multiple definition of `_ZNK6Kokkos4Impl14ParallelReduceIN10KokkosBlas4Impl15V_Nrm2w_FunctorINS_12Experimental4ViewIdJNS_11LayoutRightENS_6DeviceINS_6OpenMPENS_9HostSpaceEEENS_12MemoryTraitsILj1EEEEEENS6_IPKdJNS_10LayoutLeftESB_SD_EEEmEENS_11RangePolicyIJS9_mEEENS_11InvalidTypeES9_E16execute_scheduleINS_6StaticEEENSt9enable_ifIXsr3std7is_sameIT_SP_EE5valueEvE4typeEv$$OL$$3RVLA3B'
CMakeFiles/tpetra.dir/Tpetra_Vector_DOUBLE_INT_INT_OPENMP.cpp.o:(.data+0x3e8): first defined here
CMakeFiles/tpetra.dir/Tpetra_Details_getDiagCopyWithoutOffsets_INT_INT_LONG_LONG_OPENMP.cpp.o:(.data+0xeb4): multiple definition of `_ZNK6Kokkos4Impl11ParallelForINS_12Experimental4Impl9ViewRemapINS2_4ViewIPPiJNS_10LayoutLeftENS_6OpenMPEvEEENS5_IS7_JS8_NS_6DeviceIS9_NS_9HostSpaceEEEEEES9_EENS_11RangePolicyIJS9_EEES9_E16execute_scheduleINS_6StaticEEENSt9enable_ifIXsr3std7is_sameIT_SK_EE5valueEvE4typeEv$$OL$$2RVL855'
CMakeFiles/tpetra.dir/Tpetra_Details_getDiagCopyWithoutOffsets_INT_INT_INT_OPENMP.cpp.o:(.data+0xeb4): first defined here
CMakeFiles/tpetra.dir/Tpetra_Details_getDiagCopyWithoutOffsets_INT_INT_LONG_LONG_OPENMP.cpp.o:(.data+0xeb8): multiple definition of `_ZNK6Kokkos4Impl11ParallelForINS_12Experimental4Impl9ViewRemapINS2_4ViewIPPiJNS_10LayoutLeftENS_6DeviceINS_6OpenMPENS_9HostSpaceEEEEEENS5_IS7_JS8_SA_vEEESA_EENS_11RangePolicyIJSA_EEESA_E16execute_scheduleINS_6StaticEEENSt9enable_ifIXsr3std7is_sameIT_SK_EE5valueEvE4typeEv$$OL$$3RVL898'
CMakeFiles/tpetra.dir/Tpetra_Details_getDiagCopyWithoutOffsets_INT_INT_INT_OPENMP.cpp.o:(.data+0xeb8): first defined here
CMakeFiles/tpetra.dir/Tpetra_Details_getDiagCopyWithoutOffsets_DOUBLE_INT_LONG_LONG_OPENMP.cpp.o:(.data+0xeb4): multiple definition of `_ZNK6Kokkos4Impl11ParallelForINS_12Experimental4Impl9ViewRemapINS2_4ViewIPPdJNS_10LayoutLeftENS_6OpenMPEvEEENS5_IS7_JS8_NS_6DeviceIS9_NS_9HostSpaceEEEEEES9_EENS_11RangePolicyIJS9_EEES9_E16execute_scheduleINS_6StaticEEENSt9enable_ifIXsr3std7is_sameIT_SK_EE5valueEvE4typeEv$$OL$$2RVL855'
CMakeFiles/tpetra.dir/Tpetra_Details_getDiagCopyWithoutOffsets_DOUBLE_INT_INT_OPENMP.cpp.o:(.data+0xeb4): first defined here
CMakeFiles/tpetra.dir/Tpetra_Details_getDiagCopyWithoutOffsets_DOUBLE_INT_LONG_LONG_OPENMP.cpp.o:(.data+0xeb8): multiple definition of `_ZNK6Kokkos4Impl11ParallelForINS_12Experimental4Impl9ViewRemapINS2_4ViewIPPdJNS_10LayoutLeftENS_6DeviceINS_6OpenMPENS_9HostSpaceEEEEEENS5_IS7_JS8_SA_vEEESA_EENS_11RangePolicyIJSA_EEESA_E16execute_scheduleINS_6StaticEEENSt9enable_ifIXsr3std7is_sameIT_SK_EE5valueEvE4typeEv$$OL$$3RVL898'
CMakeFiles/tpetra.dir/Tpetra_Details_getDiagCopyWithoutOffsets_DOUBLE_INT_INT_OPENMP.cpp.o:(.data+0xeb8): first defined here
make[2]: *** [packages/tpetra/core/src/libtpetra.so.12.9] Error 1
make[1]: *** [packages/tpetra/core/src/CMakeFiles/tpetra.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

The build setup for this is

EXTRA_F_FLAGS="-O3 -g -qsmp=omp -qsimd=auto -L${XLF_ROOT}/lib -L${XLC_ROOT}/lib -lxlf90"
EXTRA_C_FLAGS="-O3 -g -qsmp=omp -mcpu=power8 -qsimd=auto -L${XLF_ROOT}/lib -L${XLC_ROOT}/lib -lxlf90 -qnoxlcompatmacros"
LINK_FLAGS="-O3 -g -qsmp=omp -qsimd=auto -L${XLF_ROOT}/lib -L${XLC_ROOT}/lib -lopen-pal -lxl -lxlopt -lxlf90 -lxlfmath -lm -libmc++ -lstdc++ -L${MPIHOME}/lib -lmpi"

cmake \
   -D CMAKE_VERBOSE_MAKEFILE=FALSE \
   -D CMAKE_INSTALL_PREFIX:PATH=${TRILINOS_INSTALL} \
   -D CMAKE_BUILD_TYPE:STRING=Release \
   -D BUILD_SHARED_LIBS=ON \
   \
   -D CMAKE_C_COMPILER="mpicc" \
   -D CMAKE_CXX_COMPILER="mpicxx" \
   -D CMAKE_Fortran_COMPILER="xlf" \
   -D CMAKE_C_FLAGS="$EXTRA_C_FLAGS" \
   -D CMAKE_CXX_FLAGS="$EXTRA_C_FLAGS" \
   -D OpenMP_C_FLAGS="-qsmp=omp" \
   -D OpenMP_CXX_FLAGS="-qsmp=omp" \
   -D OpenMP_Fortran_FLAGS="-qsmp=omp" \
   -D CMAKE_Fortran_FLAGS="$EXTRA_F_FLAGS" \
   -D CMAKE_EXE_LINKER_FLAGS="$LINK_FLAGS" \
   \
   -D Trilinos_VERBOSE_CONFIGURE=OFF \
   -D Trilinos_ENABLE_ALL_PACKAGES=OFF \
   -D Trilinos_ENABLE_SECONDARY_TESTED_CODE=OFF \
   \
   -D Trilinos_ENABLE_TESTS=ON \
   -D DART_TESTING_TIMEOUT:STRING="600" \
   \
   -D Trilinos_ENABLE_Belos=ON \
       -D Belos_ENABLE_TEUCHOS_TIME_MONITOR:BOOL=ON \
       -D Belos_Tpetra_Timers:BOOL=ON \
       -D Belos_ENABLE_TSQR=ON \
       -D Belos_ENABLE_TriUtils=ON \
    \
   -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=OFF \
   -D Tpetra_INST_INT_UNSIGNED=OFF \
   -D Tpetra_INST_INT_LONG_LONG=ON \
   -D Teuchos_ENABLE_LONG_LONG_INT=ON \
   -D Teuchos_ENABLE_COMPLEX=OFF \
   -D Zoltan_ENABLE_ULLONG_IDS=ON \
   \
   -D Trilinos_ENABLE_OpenMP=ON \
   -D TPL_ENABLE_Pthread=OFF \
   \
   -D Trilinos_ENABLE_Teuchos=ON \
   -D Trilinos_ENABLE_Epetra=ON \
   -D Trilinos_ENABLE_EpetraExt=ON \
   -D Trilinos_ENABLE_AztecOO=ON \
   -D Trilinos_ENABLE_Amesos=OFF \
   -D Trilinos_ENABLE_Stratimikos=OFF \
   -D Trilinos_ENABLE_Anasazi=ON \
       -D Anasazi_ENABLE_TESTS=OFF \
       -D Anasazi_ENABLE_RBGen=ON \
   -D Trilinos_ENABLE_Ifpack=ON \
   -D Trilinos_ENABLE_ML=ON \
   -D Trilinos_ENABLE_Teko=OFF \
   -D Trilinos_ENABLE_NOX=OFF \
   -D Trilinos_ENABLE_Thyra=OFF \
   -D Trilinos_ENABLE_Rythmos=OFF \
   -D Trilinos_ENABLE_Sacado=ON \
   -D Trilinos_ENABLE_Stokhos=OFF \
   -D Trilinos_ENABLE_Panzer=OFF \
   -D Trilinos_ENABLE_Tpetra=ON \
   -D Tpetra_INST_SERIAL=OFF \
   -D Tpetra_INST_OPENMP=ON \
   -D Trilinos_ENABLE_Amesos2=OFF \
   -D Amesos2_ENABLE_KLU2=OFF \
   -D Trilinos_ENABLE_Ifpack2=ON \
   -D Trilinos_ENABLE_MueLu=OFF \
   -D Trilinos_ENABLE_Zoltan2=ON \
   -D Trilinos_ENABLE_STKMesh=ON \
   -D Trilinos_ENABLE_STKIO=ON \
   -D Trilinos_ENABLE_STKTransfer=ON \
   -D Trilinos_ENABLE_STKSearch=ON \
   -D Trilinos_ENABLE_STKUtil=ON \
   -D Trilinos_ENABLE_STKTopology=ON \
   \
   -D Trilinos_ENABLE_Kokkos=ON \
   -D Trilinos_ENABLE_KokkosCore=ON \
   -D Kokkos_ENABLE_Serial=OFF \
   -D Kokkos_ENABLE_OpenMP=ON \
   -D Kokkos_ENABLE_Pthread=OFF \
   -D Kokkos_ENABLE_Cuda=OFF \
   -D Kokkos_ENABLE_Cuda_UVM=OFF \
   \
   -D Trilinos_ENABLE_SEACAS=ON \
   -D TPL_ENABLE_X11=OFF \
   -D TPL_ENABLE_Matio=OFF \
   \
   -D Trilinos_ENABLE_Gtest=ON \
   \
   -D TPL_ENABLE_MPI=ON \
   -D MPI_USE_COMPILER_WRAPPERS=ON \
   -D MPI_BASE_DIR:PATH=${MPI_DIR} \
   -D MPI_EXEC:PATH="mpirun" \
   -D MPI_EXEC_MAX_NUMPROCS:STRING="4" \
   -D MPI_EXEC_NUMPROCS_FLAG:STRING="--map-by;numa:PE=4" \
   \
   -D TPL_ENABLE_BLAS=ON \
   -D BLAS_LIBRARY_DIRS:PATH="${BLAS_DIR}/lib" \
   -D BLAS_LIBRARY_NAMES:STRING="blas" \
   \
   -D TPL_ENABLE_LAPACK=ON \
   -D LAPACK_LIBRARY_DIRS:PATH="${LAPACK_DIR}/lib" \
   -D LAPACK_LIBRARY_NAMES:STRING="lapack" \
   \
   -D TPL_ENABLE_Boost=ON \
   -D Boost_INCLUDE_DIRS:PATH=${BOOST_DIR}/include \
   \
   -D TPL_ENABLE_BoostLib=ON \
   -D BoostLib_INCLUDE_DIRS:PATH=${BOOST_DIR}/include \
   -D BoostLib_LIBRARY_DIRS:PATH=${BOOST_DIR}/lib \
   \
   -D TPL_ENABLE_Netcdf=ON \
   -D Netcdf_INCLUDE_DIRS:PATH="${NETCDF_DIR}/include;${HDF5_DIR}/include" \
   -D Netcdf_LIBRARY_DIRS:PATH="${NETCDF_DIR}/lib;${PNETCDF_ROOT}/lib;${HDF5_DIR}/lib;${ZLIB_DIR}/lib;${XLF_ROOT}/lib" \
   -D Netcdf_LIBRARY_NAMES:STRING="netcdf;pnetcdf;hdf5_hl;hdf5;z;xl;xlopt" \
   \
   -D TPL_ENABLE_METIS=ON \
   -D METIS_INCLUDE_DIRS:PATH=${METIS_DIR}/include \
   -D METIS_LIBRARY_DIRS:PATH=${METIS_DIR}/lib \
   \
   -D TPL_ENABLE_ParMETIS=ON \
   -D ParMETIS_INCLUDE_DIRS:PATH=${PARMETIS_DIR}/include \
   -D ParMETIS_LIBRARY_DIRS:PATH=${PARMETIS_DIR}/lib \
   \
   -D TPL_ENABLE_SuperLUDist=ON \
   -D SuperLUDist_INCLUDE_DIRS:PATH=${SUPERLUDIST_DIR}/include \
   -D SuperLUDist_LIBRARY_DIRS:PATH=${SUPERLUDIST_DIR}/lib \
   -D SuperLUDist_LIBRARY_NAMES:STRING="superlu_dist_4.3" \
   \
   -D Trilinos_EXTRA_LINK_FLAGS:STRING="" \
   \
   ${EXTRA_ARGS} \
   ${TRILINOS_HOME}

@mhoemmen @tpetra

jhux2 commented 8 years ago

@trilinos/tpetra

mhoemmen commented 8 years ago

@jhux2 If you disable long long and enable long instead, does that make the problem go away?

nmhamster commented 8 years ago

@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).

jjellio commented 8 years ago

I am trying this now and will report back.

mhoemmen commented 8 years ago

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).

jjellio commented 8 years ago

@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
nmhamster commented 8 years ago

@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.

mhoemmen commented 8 years ago

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.

jjellio commented 8 years ago

@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
nmhamster commented 8 years ago

@jjellio My build is creating OpenMP as well. This is a huge pain. What nodes are you running on right now?

jjellio commented 8 years ago

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.

nmhamster commented 8 years ago

@jjellio Isn't that what I put in my script above?

nmhamster commented 8 years ago

@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

jjellio commented 8 years ago

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.

jhux2 commented 8 years ago

@jjellio Wasn't my suggestion ...

mhoemmen commented 8 years ago

I'm calling this a duplicate of #513.