#include <source/toolbox/parallel/JobRelauncher.h>
Public Member Functions | |
JobRelauncher () | |
void | runAlgorithm (RelaunchableJob *initial_job) |
Begin the algorithm. | |
void | setAlgorithmAdvanceMode (const std::string &algo_advance_mode) |
Set the mode for advancing the asynchronous implementation. | |
AsyncCommStage & | getCommStage () |
Return the communication stage managing jobs that are waiting for communication to finish. | |
List< RelaunchableJob * > & | getRelaunchQueue () |
Return the queue of jobs waiting for non-communications work. |
The jobs, defined by the RelaunchableJob base class, may be paused to wait for communication or non-communication to finish and then be restarted.
SAMRAI::tbox::JobRelauncher::JobRelauncher | ( | ) |
void SAMRAI::tbox::JobRelauncher::runAlgorithm | ( | RelaunchableJob * | initial_job | ) |
Begin the algorithm.
The algorithm begins with the job given. It may add more jobs to the relaunch queue as it progresses. See getRelaunchQueue().
initial_job | The initial job in the algorithm. |
void SAMRAI::tbox::JobRelauncher::setAlgorithmAdvanceMode | ( | const std::string & | algo_advance_mode | ) |
Set the mode for advancing the asynchronous implementation.
Choices are:
The default is "ADVANCE_SOME". This generally is fastest, but the other modes may be better for debugging.
Asynchronous modes are NOT guaranteed to compute the output graph nodes in any particular order. The order depends on the ordering of message completion, which is not deterministic. If you require consistent outputs, we suggest you have a scheme for reordering your output.
AsyncCommStage & SAMRAI::tbox::JobRelauncher::getCommStage | ( | ) |
Return the communication stage managing jobs that are waiting for communication to finish.
List< RelaunchableJob * > & SAMRAI::tbox::JobRelauncher::getRelaunchQueue | ( | ) |
Return the queue of jobs waiting for non-communications work.