[Trilinos-Users] End of progress on trilinos-13.0.0

John Cary cary at colorado.edu
Tue Oct 13 12:05:56 MST 2020


I got trilinos building with Kokkos without CUDA, but there my progress
stopped.  To get this far, I had to disable NOX and apply the attached 
patch.
My maximal configuration is at the end of this email.

Adding Xpetra or Tpetra leads to failures like

D:\winsame\cary\vorpalall-dev3\builds\trilinos-13.0.0\packages\kokkos\core\src\i
mpl/Kokkos_HostThreadTeam.hpp(387): warning C4244: 'initializing': 
conversion fr
om 'int64_t' to 'int', possible loss of data
D:\winsame\cary\vorpalall-dev3\builds\trilinos-13.0.0\packages\kokkos\core\src\i
mpl/Kokkos_HostThreadTeam.hpp(387): warning C4244: 'initializing': 
conversion fr
om 'int64_t' to 'const int', possible loss of data
D:\winsame\cary\vorpalall-dev3\builds\trilinos-13.0.0\packages\kokkos-kernels\sr
c\batched\KokkosBatched_Util.hpp(343): error C2146: syntax error: 
missing ')' be
fore identifier 'A'
D:\winsame\cary\vorpalall-dev3\builds\trilinos-13.0.0\packages\kokkos-kernels\sr
c\batched\KokkosBatched_Util.hpp(343): error C3646: 'A': unknown 
override specif
ier
D:\winsame\cary\vorpalall-dev3\builds\trilinos-13.0.0\packages\kokkos-kernels\sr
c\batched\KokkosBatched_Util.hpp(343): error C2988: unrecognizable 
template decl
aration/definition
D:\winsame\cary\vorpalall-dev3\builds\trilinos-13.0.0\packages\kokkos-kernels\sr
c\batched\KokkosBatched_Util.hpp(343): error C2059: syntax error: ','
D:\winsame\cary\vorpalall-dev3\builds\trilinos-13.0.0\packages\kokkos-kernels\sr
c\batched\KokkosBatched_Util.hpp(348): error C2059: syntax error: ')'
D:\winsame\cary\vorpalall-dev3\builds\trilinos-13.0.0\packages\kokkos-kernels\sr
c\batched\KokkosBatched_Util.hpp(348): error C2334: unexpected token(s) 
precedin
g '{'; skipping apparent function body
...

Has anyone done a similar build of trilinos-13.0.0 on Windows or have 
there been
any fixes for Windows builds?  (I am familiar with what i written at
https://github.com/kokkos/kokkos/pull/3018, but trying CUDA free first.)

Thanks!

John Cary




'/winsame/dev3/contrib-vs2019/cmake-3.18.2-ser/bin/cmake' \
-DCMAKE_INSTALL_PREFIX:PATH=D:/winsame/dev3/contrib-vs2019/trilinos-13.0.0-sercommio 
\
   -DCMAKE_BUILD_TYPE:STRING=Release \
   -DCMAKE_COLOR_MAKEFILE:BOOL=FALSE \
   -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE \
   -DCMAKE_C_COMPILER:FILEPATH='C:/Program Files (x86)/Microsoft Visual 
Studio/2019/Professional/VC/Tools/MSVC/14.27.29110/bin/HostX64/x64/cl.exe' \
   -DCMAKE_CXX_COMPILER:FILEPATH='C:/Program Files (x86)/Microsoft 
Visual 
Studio/2019/Professional/VC/Tools/MSVC/14.27.29110/bin/HostX64/x64/cl.exe' \
   -DCMAKE_C_FLAGS:STRING='/W3' \
   -DCMAKE_CXX_FLAGS:STRING='/W3 /GR /EHsc /std:c++17 /Zc:__cplusplus 
/D_HAS_AUTO_PTR_ETC' \
   -DDART_TESTING_TIMEOUT:STRING=600 \
   -DML_ENABLE_SuperLU:BOOL=OFF \
   -DTrilinos_ENABLE_SuperLU5_API=ON \
   -DPYTHON_EXECUTABLE:FILEPATH=C:/cygwin64/bin/python2.7.exe \
   -DTrilinos_ENABLE_Fortran=OFF \
   -DTrilinos_ENABLE_NOX:BOOL=FALSE \
   -DKokkos_ENABLE_CUDA:BOOL=FALSE \
   -DKokkos_ARCH_SNB:BOOL=FALSE \
   -DKokkos_ENABLE_PROFILING:BOOL=FALSE \
   -D:TPL_ENABLE_DLlib:BOOL=FALSE \
   -DTrilinos_ENABLE_Xpetra:BOOL=OFF \
-DTPL_BLAS_LIBRARIES:FILEPATH='/winsame/dev3/contrib-vs2019/clapack_cmake-3.2.1-ser/lib/blas.lib;/winsame/dev3/contrib-vs2019/clapack_cmake-3.2.1-ser/lib/f2c.lib' 
\
-DTPL_LAPACK_LIBRARIES:FILEPATH='/winsame/dev3/contrib-vs2019/clapack_cmake-3.2.1-ser/lib/lapack.lib' 
\
   -DTrilinos_ENABLE_Teuchos:BOOL=ON \
   -DTrilinos_ENABLE_Triutils:BOOL=ON \
   -DTrilinos_ENABLE_Epetra:BOOL=ON \
   -DTrilinos_ENABLE_Amesos:BOOL=ON \
   -DTrilinos_ENABLE_Ifpack:BOOL=ON \
   -DTrilinos_ENABLE_AztecOO:BOOL=ON \
   -DTrilinos_ENABLE_ML:BOOL=ON \
   -DTrilinos_ENABLE_EpetraExt:BOOL=ON \
   -DTrilinos_ENABLE_Galeri:BOOL=ON \
   -DTrilinos_ENABLE_Shards:BOOL=ON \
   -DTrilinos_ENABLE_Intrepid:BOOL=ON \
   -DTrilinos_ENABLE_Komplex:BOOL=ON \
   -DTrilinos_ENABLE_Zoltan:BOOL=ON \
   -DTrilinos_ENABLE_Kokkos:BOOL=ON \
   -DTPL_ENABLE_BinUtils:BOOL=OFF \
   -DTPL_ENABLE_Pthread:BOOL=OFF \
   -DTPL_ENABLE_SuperLU:BOOL=ON \
-DSuperLU_INCLUDE_DIRS:PATH='D:/winsame/dev3/volatile-vs2019/superlu-master.r73-ser/include' 
\
-DSuperLU_LIBRARY_DIRS:PATH='D:/winsame/dev3/volatile-vs2019/superlu-master.r73-ser/lib' 
\
   -DSuperLU_LIBRARY_NAMES:STRING='superlu' \
   -DTPL_ENABLE_Netcdf:BOOL=ON \
-DNetcdf_INCLUDE_DIRS:PATH='D:/winsame/dev3/contrib-vs2019/netcdfc-master.r6522-ser/include' 
\
-DNetcdf_LIBRARY_DIRS:PATH='D:/winsame/dev3/contrib-vs2019/netcdfc-master.r6522-ser/lib;D:/winsame/dev3/contrib-vs2019/hdf5-1.10.6-ser/lib' 
\
   -DNetcdf_LIBRARY_NAMES:STRING='netcdf;hdf5_hl;hdf5' \
   -DTPL_ENABLE_HDF5:BOOL=ON \
-DHDF5_INCLUDE_DIRS:PATH='D:/winsame/dev3/contrib-vs2019/hdf5-1.10.6-ser/include' 
\
-DHDF5_LIBRARY_DIRS:PATH='D:/winsame/dev3/contrib-vs2019/hdf5-1.10.6-ser/lib' 
\
   -DHDF5_LIBRARY_NAMES:STRING='hdf5_hl;hdf5;hdf5_tools' \
   -G 'NMake Makefiles JOM' \
   D:/winsame/cary/vorpalall-dev3/builds/trilinos-13.0.0

-------------- next part --------------
diff -ruN trilinos-13.0.0/cmake/tribits/win_interface/include/gettimeofday.c trilinos-13.0.0-new/cmake/tribits/win_interface/include/gettimeofday.c
--- trilinos-13.0.0/cmake/tribits/win_interface/include/gettimeofday.c	2020-08-05 19:22:40.000000000 -0600
+++ trilinos-13.0.0-new/cmake/tribits/win_interface/include/gettimeofday.c	2020-10-13 08:08:27.000000000 -0600
@@ -1,4 +1,4 @@
-#include < time.h >
+#include <time.h>
 #include <Winsock2.h> /* to get timeval struct */
 
 struct timezone 
diff -ruN trilinos-13.0.0/packages/amesos/CMakeLists.txt trilinos-13.0.0-new/packages/amesos/CMakeLists.txt
--- trilinos-13.0.0/packages/amesos/CMakeLists.txt	2020-08-05 19:22:40.000000000 -0600
+++ trilinos-13.0.0-new/packages/amesos/CMakeLists.txt	2020-10-13 08:08:27.000000000 -0600
@@ -10,9 +10,11 @@
 # B) Set up package-specific options
 #
 
-# if using SuperLUDist, must also link in ParMETIS for some reason
-IF(${PACKAGE_NAME}_ENABLE_SuperLUDist AND NOT ${PACKAGE_NAME}_ENABLE_ParMETIS)
-  MESSAGE(FATAL_ERROR "The Amesos support for the SuperLUIDist TPL requires the ParMETIS TPL.  Either disable Amesos SuperLUDist support or enable the ParMETIS TPL.")
+# One can now configure SuperLUDist without ParMETIS
+if (NOT TPL_ENABLE_SuperLUDist_Without_ParMETIS)
+  IF(${PACKAGE_NAME}_ENABLE_SuperLUDist AND NOT ${PACKAGE_NAME}_ENABLE_ParMETIS)
+    MESSAGE(FATAL_ERROR "The Amesos support for the SuperLUDist TPL requires the ParMETIS TPL.  Either disable Amesos SuperLUDist support or enable the ParMETIS TPL.")
+  ENDIF()
 ENDIF()
 
 IF(${PACKAGE_NAME}_ENABLE_PARAKLETE)
diff -ruN trilinos-13.0.0/packages/kokkos/cmake/kokkos_arch.cmake trilinos-13.0.0-new/packages/kokkos/cmake/kokkos_arch.cmake
--- trilinos-13.0.0/packages/kokkos/cmake/kokkos_arch.cmake	2020-08-05 19:22:40.000000000 -0600
+++ trilinos-13.0.0-new/packages/kokkos/cmake/kokkos_arch.cmake	2020-10-13 08:08:27.000000000 -0600
@@ -296,6 +296,14 @@
   )
 ENDIF()
 
+# From https://github.com/kokkos/kokkos/pull/2977/commits/9f6f9f8ecd320470d25e0094603c0255ff6afb40
+# Clang needs mcx16 option enabled for Windows atomic functions
+IF (CMAKE_CXX_COMPILER_ID STREQUAL Clang AND WIN32)
+  COMPILER_SPECIFIC_FLAGS(
+    Clang -mcx16
+  )
+ENDIF()
+
 #Right now we cannot get the compiler ID when cross-compiling, so just check
 #that HIP is enabled
 IF (Kokkos_ENABLE_HIP)
diff -ruN trilinos-13.0.0/packages/kokkos/core/src/Kokkos_Macros.hpp trilinos-13.0.0-new/packages/kokkos/core/src/Kokkos_Macros.hpp
--- trilinos-13.0.0/packages/kokkos/core/src/Kokkos_Macros.hpp	2020-08-05 19:22:40.000000000 -0600
+++ trilinos-13.0.0-new/packages/kokkos/core/src/Kokkos_Macros.hpp	2020-10-13 08:08:27.000000000 -0600
@@ -633,8 +633,10 @@
 #define KOKKOS_ATTRIBUTE_NODISCARD
 #endif
 
-#if defined(KOKKOS_COMPILER_GNU) || defined(KOKKOS_COMPILER_CLANG) || \
-    defined(KOKKOS_COMPILER_INTEL) || defined(KOKKOS_COMPILER_PGI)
+// From https://github.com/kokkos/kokkos/pull/2977/commits/9f6f9f8ecd320470d25e0094603c0255ff6afb40
+#if (defined(KOKKOS_COMPILER_GNU) || defined(KOKKOS_COMPILER_CLANG) || \
+    defined(KOKKOS_COMPILER_INTEL) || defined(KOKKOS_COMPILER_PGI)) && \
+    !defined(KOKKOS_COMPILER_MSVC)
 #define KOKKOS_IMPL_ENABLE_STACKTRACE
 #define KOKKOS_IMPL_ENABLE_CXXABI
 #endif
diff -ruN trilinos-13.0.0/packages/shylu/shylu_node/hts/src/shylu_hts_impl_def.hpp trilinos-13.0.0-new/packages/shylu/shylu_node/hts/src/shylu_hts_impl_def.hpp
--- trilinos-13.0.0/packages/shylu/shylu_node/hts/src/shylu_hts_impl_def.hpp	2020-08-05 19:22:40.000000000 -0600
+++ trilinos-13.0.0-new/packages/shylu/shylu_node/hts/src/shylu_hts_impl_def.hpp	2020-10-13 08:08:40.000000000 -0600
@@ -104,11 +104,11 @@
   T* c, blas_int ldc);
 
 extern "C" {
-  void F77_BLAS_MANGLE(sgemm,SGEMM)(
+  int F77_BLAS_MANGLE(sgemm,SGEMM)(
     const char*, const char*, const blas_int*, const blas_int*, const blas_int*,
     const float*, const float*, const blas_int*, const float*, const blas_int*,
     const float*, float*, const blas_int*);
-  void F77_BLAS_MANGLE(dgemm,DGEMM)(
+  int F77_BLAS_MANGLE(dgemm,DGEMM)(
     const char*, const char*, const blas_int*, const blas_int*, const blas_int*,
     const double*, const double*, const blas_int*, const double*, const blas_int*,
     const double*, double*, const blas_int*);
diff -ruN trilinos-13.0.0/packages/xpetra/sup/Utils/Xpetra_MatrixMatrix.hpp trilinos-13.0.0-new/packages/xpetra/sup/Utils/Xpetra_MatrixMatrix.hpp
--- trilinos-13.0.0/packages/xpetra/sup/Utils/Xpetra_MatrixMatrix.hpp	2020-08-05 19:22:40.000000000 -0600
+++ trilinos-13.0.0-new/packages/xpetra/sup/Utils/Xpetra_MatrixMatrix.hpp	2020-10-13 08:08:27.000000000 -0600
@@ -59,7 +59,7 @@
 #include "Xpetra_StridedMapFactory.hpp"
 #include "Xpetra_StridedMap.hpp"
 
-#include <execinfo.h>
+// #include <execinfo.h>
 
 #ifdef HAVE_XPETRA_EPETRA
 #include <Xpetra_EpetraCrsMatrix_fwd.hpp>


More information about the Trilinos-Users mailing list