10 #ifndef TEUCHOS_COMM_UTILTIES_HPP
11 #define TEUCHOS_COMM_UTILTIES_HPP
14 #if defined(HAVE_TEUCHOS_KOKKOS_PROFILING) && defined(HAVE_TEUCHOSCORE_KOKKOS)
15 #include "Kokkos_Profiling_ScopedRegion.hpp"
18 #ifdef HAVE_TEUCHOS_COMM_TIMERS
20 #define TEUCHOS_COMM_TIME_MONITOR( FUNCNAME ) \
21 TEUCHOS_FUNC_TIME_MONITOR( FUNCNAME )
23 #else // HAVE_TEUCHOS_COMM_TIMERS
25 #if defined(HAVE_TEUCHOS_KOKKOS_PROFILING) && defined(HAVE_TEUCHOSCORE_KOKKOS)
27 #define TEUCHOS_COMM_TIME_MONITOR( FUNCNAME ) \
28 std::ostringstream TEUCHOS_COMM_TIME_MONITOR_oss; \
29 TEUCHOS_COMM_TIME_MONITOR_oss << FUNCNAME; \
30 ::Kokkos::Profiling::ScopedRegion TEUCHOS_COMM_TIME_MONITOR_scopedRegion( TEUCHOS_COMM_TIME_MONITOR_oss.str().c_str() )
34 #define TEUCHOS_COMM_TIME_MONITOR( FUNCNAME )
38 #endif // HAVE_TEUCHOS_COMM_TIMERS
40 #endif // TEUCHOS_COMM_UTILTIES_HPP
Scope guard for Teuchos::Time, with MPI collective timer reporting.