VTK
|
Scheduling execution with thread/computing resources distributing. More...
#include <vtkExecutionScheduler.h>
Scheduling execution with thread/computing resources distributing.
This is a class for balancing the computing resources throughout the network
Definition at line 60 of file vtkExecutionScheduler.h.
Reimplemented from vtkObject.
Definition at line 64 of file vtkExecutionScheduler.h.
vtkExecutionScheduler::vtkExecutionScheduler | ( | ) | [protected] |
vtkExecutionScheduler::~vtkExecutionScheduler | ( | ) | [protected] |
static vtkExecutionScheduler* vtkExecutionScheduler::New | ( | ) | [static] |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
Reimplemented from vtkObject.
static int vtkExecutionScheduler::IsTypeOf | ( | const char * | name | ) | [static] |
Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkObject.
virtual int vtkExecutionScheduler::IsA | ( | const char * | name | ) | [virtual] |
Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkObject.
static vtkExecutionScheduler* vtkExecutionScheduler::SafeDownCast | ( | vtkObjectBase * | o | ) | [static] |
Reimplemented from vtkObject.
virtual vtkObjectBase* vtkExecutionScheduler::NewInstanceInternal | ( | ) | const [protected, virtual] |
Reimplemented from vtkObject.
Reimplemented from vtkObject.
void vtkExecutionScheduler::PrintSelf | ( | ostream & | os, |
vtkIndent | indent | ||
) | [virtual] |
static vtkExecutionScheduler* vtkExecutionScheduler::GetGlobalScheduler | ( | ) | [static] |
Return the global instance of the scheduler
static vtkInformationIntegerKey* vtkExecutionScheduler::TASK_PRIORITY | ( | ) | [static] |
Key to store the priority of a task
void vtkExecutionScheduler::Schedule | ( | vtkExecutiveCollection * | execs, |
vtkInformation * | info | ||
) |
Put the current set of executives (modules) to the be scheduled given its dependency graph which will be used to compute the set topological orders
void vtkExecutionScheduler::SchedulePropagate | ( | vtkExecutiveCollection * | execs, |
vtkInformation * | info | ||
) |
Put the current set of executives (modules) to the be scheduled given its dependency graph which will be used to compute the set topological orders. Then wait for their execution to be complete
void vtkExecutionScheduler::WaitUntilDone | ( | vtkExecutiveCollection * | execs | ) |
Wait until the current set of executives (modules) have finished executing
void vtkExecutionScheduler::WaitUntilReleased | ( | vtkExecutiveCollection * | execs | ) |
Wait until the current set of executives (modules) have their inputs released
Wait for all tasks to be done
void vtkExecutionScheduler::WaitForTaskDone | ( | vtkExecutive * | exec | ) |
Wait for a task that is on the scheduling queue to be done. If the task is not there, this will return immediately. If the exec is NULL, any task that is done will trigger this the return
void vtkExecutionScheduler::WaitForInputsReleased | ( | vtkExecutive * | exec | ) |
Similar to WaitForTaskDone but return whenever input connections of a task are released instead of done computing. But exec cannot be NULL.
Return the thread messager reserved for the given exec to notify when it is done
Return the thread messager reserved for the given exec to notify when it releases its inputs
Return the mutex lock reserved for the given exec to notify when it releases its inputs
void vtkExecutionScheduler::ReleaseResources | ( | vtkExecutive * | exec | ) |
Release the resources that are being used by the given exec
void vtkExecutionScheduler::ReacquireResources | ( | vtkExecutive * | exec | ) |
Re-acquire the resource released earlier by ReleaseResource
void vtkExecutionScheduler::RescheduleNetwork | ( | vtkExecutive * | sink | ) |
Redistribute the thread resources over the network from a sink with a maximum resource
void vtkExecutionScheduler::RescheduleFrom | ( | vtkExecutive * | sink, |
vtkComputingResources * | resources | ||
) |
Redistribute the thread resources from a sink given a certain amount of resource
static void vtkExecutionScheduler::ClassInitialize | ( | ) | [static, protected] |
and clean up of the vtkExecutionScheduler singleton.
static void vtkExecutionScheduler::ClassFinalize | ( | ) | [static, protected] |
and clean up of the vtkExecutionScheduler singleton.
friend class implementation [friend] |
Definition at line 143 of file vtkExecutionScheduler.h.
friend class vtkExecutionSchedulerManager [friend] |
and clean up of the vtkExecutionScheduler singleton.
Definition at line 159 of file vtkExecutionScheduler.h.
void* vtkExecutionScheduler_ScheduleThread | ( | void * | data | ) | [friend] |
The scheduling thread that is responsible for queueing up module execution in the right order
void* vtkExecutionScheduler_ExecuteThread | ( | void * | data | ) | [friend] |
Execute thread function that is responsible for forking process for each module
vtkComputingResources* vtkExecutionScheduler::Resources [protected] |
Definition at line 133 of file vtkExecutionScheduler.h.
vtkThreadMessager* vtkExecutionScheduler::ScheduleMessager [protected] |
Definition at line 134 of file vtkExecutionScheduler.h.
vtkThreadMessager* vtkExecutionScheduler::ResourceMessager [protected] |
Definition at line 135 of file vtkExecutionScheduler.h.
vtkMutexLock* vtkExecutionScheduler::ScheduleLock [protected] |
Definition at line 136 of file vtkExecutionScheduler.h.
vtkMultiThreader* vtkExecutionScheduler::ScheduleThreader [protected] |
Definition at line 137 of file vtkExecutionScheduler.h.
int vtkExecutionScheduler::ScheduleThreadId [protected] |
Definition at line 138 of file vtkExecutionScheduler.h.
implementation* const vtkExecutionScheduler::Implementation [protected] |
Definition at line 141 of file vtkExecutionScheduler.h.