Highly Efficient FFT for Exascale: HeFFTe v2.3
|
Classes | |
struct | heffte::event |
A tracing event. More... | |
Functions | |
void | heffte::init_tracing (std::string root_filename) |
Initialize tracing and remember the root filename for output, see the Detailed Description. | |
void | heffte::finalize_tracing () |
Finalize tracing and write the result to a file, see the Detailed Description. | |
Variables | |
std::deque< event > | heffte::event_log |
Logs the list of events (declared in heffte_reshape3d.cpp). | |
std::string | heffte::log_filename |
Root filename to write out the traces (decaled in heffte_reshape3d.cpp). | |
HeFFTe provides a simple tracing capability that will log different events in both a forward and backward transform. Tracing is disabled by default (in order to remove any overhead), and is designed to have minimal overhead at run time.
Tracing must first be enabled in CMake with
and in the client code must be initialized with
which must be called after MPI_Init(). Then, any FFT transform will log different events, e.g., packing, unpacking, communicating all-to-all, etc. Each event will be times beginning to end using MPI_Wtime(). Tracing is finalized with
which must be called before MPI_Finalize(). The finalize call will write a number of text files (one per MPI rank) each with name "root-file-name_rank_number.txt" that will hold the list of events encountered during the calls to HeFFTe.
Note: if tracing is not enabled, all tracing methods are no-op.