Go to the documentation of this file.
53 #ifndef vtk_m_worklet_contourtree_distributed_hierarchicalaugmenterfunctor_h
54 #define vtk_m_worklet_contourtree_distributed_hierarchicalaugmenterfunctor_h
62 VTKM_THIRDPARTY_PRE_INCLUDE
63 #include <vtkm/thirdparty/diy/diy.h>
64 VTKM_THIRDPARTY_POST_INCLUDE
72 namespace contourtree_distributed
76 template <
typename FieldType>
92 const vtkmdiy::ReduceProxy& rp,
93 const vtkmdiy::RegularSwapPartners&
101 std::stringstream timingsStream;
104 auto round = rp.round();
105 const auto selfid = rp.gid();
107 for (
int i = 0; i < rp.in_link().size(); ++i)
109 int ingid = rp.in_link().target(i).gid;
118 timingsStream <<
" " << std::setw(38) << std::left <<
"Retrieve In Attachment Points"
122 for (
int i = 0; i < rp.out_link().size(); ++i)
124 auto target = rp.out_link().target(i);
125 if (target.gid != selfid)
136 timingsStream <<
" " << std::setw(38) << std::left
137 <<
"Prepare and Enqueue Out Attachment Points"
140 timingsStream <<
" " << std::setw(38) << std::left <<
"Total Time Functor Step"
141 <<
": " << totalTimer.
GetElapsedTime() <<
" seconds" << std::endl;
145 <<
" ---------------- Hierarchical Augmenter Functor Step ---------------------"
147 <<
" Rank : " << rank << std::endl
148 <<
" DIY Id : " << selfid << std::endl
149 <<
" Round : " << rp.round() << std::endl
150 << timingsStream.str());
static const VTKM_CONT vtkmdiy::mpi::communicator & GetCommunicator()
Groups connected points that have the same field value.
Definition: Atomic.h:19
Definition: DistributedContourTreeBlockData.h:76
LogLevel
Log levels for use with the logging macros.
Definition: Logging.h:298
vtkm::Int32 Id
Represents an ID (index into arrays).
Definition: Types.h:191
void operator()(vtkm::worklet::contourtree_distributed::DistributedContourTreeBlockData< FieldType > *blockData, const vtkmdiy::ReduceProxy &rp, const vtkmdiy::RegularSwapPartners &) const
Definition: HierarchicalAugmenterFunctor.h:89
vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType > HierarchicalAugmenter
Definition: DistributedContourTreeBlockData.h:93
A class that can be used to time operations in VTK-m that might be occuring in parallel.
Definition: Timer.h:43
#define VTKM_LOG_S(level,...)
Writes a message using stream syntax to the indicated log level.
Definition: Logging.h:261
vtkm::cont::LogLevel TimingsLogLevel
Log level to be used for outputting timing information. Default is vtkm::cont::LogLevel::Perf.
Definition: HierarchicalAugmenterFunctor.h:155
Functor used by DIY reduce the merge data blocks in parallel.
Definition: HierarchicalAugmenterFunctor.h:77
VTKM_CONT vtkm::Float64 GetElapsedTime() const
Get the elapsed time measured by the given device adapter.
@ Perf
General timing data and algorithm flow information, such as filter execution, worklet dispatches,...
HierarchicalAugmenterFunctor(vtkm::cont::LogLevel timingsLogLevel=vtkm::cont::LogLevel::Perf)
Create the functor.
Definition: HierarchicalAugmenterFunctor.h:83