Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

SAMRAI::tbox::JobRelauncher Class Reference

Manages an algorithm consisting of multiple relaunchable jobs. More...

#include <source/toolbox/parallel/JobRelauncher.h>

List of all members.

Public Member Functions

 JobRelauncher ()
void runAlgorithm (RelaunchableJob *initial_job)
 Begin the algorithm.
void setAlgorithmAdvanceMode (const string &algo_advance_mode)
 Set the mode for advancing the asynchronous implementation.
AsyncCommStagegetCommStage ()
 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.


Detailed Description

Manages an algorithm consisting of multiple relaunchable jobs.

The jobs, defined by the RelaunchableJob base class, may be paused to wait for communication or non-communication to finish and then be restarted.


Constructor & Destructor Documentation

SAMRAI::tbox::JobRelauncher::JobRelauncher  ) 
 


Member Function Documentation

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().

Parameters:
initial_job The initial job in the algorithm.

void SAMRAI::tbox::JobRelauncher::setAlgorithmAdvanceMode const string &  algo_advance_mode  ) 
 

Set the mode for advancing the asynchronous implementation.

Choices are:

  • "SYNCHRONOUS" -> wait for each communication stage to complete before moving on, thus resulting in synchronous execution.
  • "ROUND_ROBIN" -> check for completed communication stages in round-robin fashion instead of waiting for a specific one.
  • "ADVANCE_ANY" -> advance an execution node through its communication stage by using AsyncCommStage::advanceAny().
  • "ADVANCE_SOME" -> advance an execution node through its communication stage by using AsyncCommStage::advanceSome().

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.


The documentation for this class was generated from the following files:
Generated on Fri Dec 2 11:33:32 2005 for SAMRAI by  doxygen 1.4.2