|
| TestSystolicMatrixAlgorithm (DistributedMatrix< T > &A, int tag) |
|
bool | converged (const TaskThreadEnv &env) const |
| Invoked simultaneously by all threads after each sweep to test for convergence.
|
|
void | kernel (int i, int j, T *rowi, T *rowj) |
| Threadsafe routine to apply the operation to rows i and j of the matrix.
|
|
void | start_iteration_hook (const TaskThreadEnv &env) |
| Invoked by all threads at the start of each iteration.
|
|
| SystolicMatrixAlgorithm (DistributedMatrix< T > &A, int tag, int nthread=ThreadPool::size()+1) |
| A must be a column distributed matrix with an even column tile >= 2.
|
|
virtual | ~SystolicMatrixAlgorithm () |
|
virtual void | end_iteration_hook (const TaskThreadEnv &env) |
| Invoked by all threads at the end of each iteration before convergence test.
|
|
int64_t | get_coldim () const |
| Returns length of column.
|
|
ProcessID | get_rank () const |
| Returns rank of this process in the world.
|
|
int64_t | get_rowdim () const |
| Returns length of row.
|
|
World & | get_world () const |
| Returns a reference to the world.
|
|
void | run (World &world, const TaskThreadEnv &env) |
| Invoked by the task queue to run the algorithm with multiple threads.
|
|
void | solve_sequential () |
| Invoked by the user to run the algorithm with one thread mostly for debugging.
|
|
| TaskInterface (const TaskAttributes &attr) |
| Create a new task with zero dependencies and given attributes.
|
|
| TaskInterface (int ndepend, const char *caller, const TaskAttributes attr=TaskAttributes()) |
|
| TaskInterface (int ndepend=0, const TaskAttributes attr=TaskAttributes()) |
| Create a new task with ndepend dependencies (default 0) and given attributes.
|
|
virtual | ~TaskInterface () |
|
World * | get_world () const |
|
virtual void | run (World &) |
| Runs a single-threaded task ... derived classes must implement this.
|
|
| PoolTaskInterface () |
| Default constructor.
|
|
| PoolTaskInterface (const TaskAttributes &attr) |
|
virtual | ~PoolTaskInterface ()=default |
| Destructor.
|
|
void | execute () |
|
void | set_nthread (int nthread) |
| Call this to reset the number of threads before the task is submitted.
|
|
| TaskAttributes (const TaskAttributes &attr) |
| Copy constructor.
|
|
| TaskAttributes (unsigned long flags=0) |
| Sets the attributes to the desired values.
|
|
virtual | ~TaskAttributes () |
|
int | get_nthread () const |
| Get the number of threads.
|
|
bool | is_generator () const |
| Test if the generator attribute is true.
|
|
bool | is_high_priority () const |
| Test if the high priority attribute is true.
|
|
bool | is_stealable () const |
| Test if the stealable attribute is true.
|
|
template<typename Archive > |
void | serialize (Archive &ar) |
| Serializes the attributes for I/O.
|
|
TaskAttributes & | set_generator (bool generator_hint) |
| Sets the generator attribute.
|
|
TaskAttributes & | set_highpriority (bool hipri) |
| Sets the high priority attribute.
|
|
void | set_nthread (int nthread) |
| Set the number of threads.
|
|
TaskAttributes & | set_stealable (bool stealable) |
| Sets the stealable attribute.
|
|
| DependencyInterface (int ndep, const char *caller) |
|
| DependencyInterface (int ndep=0) |
|
virtual | ~DependencyInterface () |
| Destructor.
|
|
void | dec () |
| Decrement the number of dependencies and invoke the callback if ndepend==0 .
|
|
void | dec_debug (const char *caller) |
|
void | inc () |
| Increment the number of dependencies.
|
|
void | inc_debug (const char *caller) |
| Same as inc(), but keeps track of caller ; calling dec_debug() will signal error if no matching inc_debug() had been invoked
|
|
int | ndep () const |
| Returns the number of unsatisfied dependencies.
|
|
void | notify () |
| Invoked by callbacks to notify of dependencies being satisfied.
|
|
void | notify_debug (const char *caller) |
| Overload of CallbackInterface::notify_debug(), updates dec()
|
|
bool | probe () const |
| Returns true if ndepend == 0 (no unsatisfied dependencies).
|
|
void | register_callback (CallbackInterface *callback) |
| Registers a callback that will be executed when ndepend==0 ; immediately invoked if ndepend==0 .
|
|
void | register_final_callback (CallbackInterface *callback) |
| Registers the final callback to be executed when ndepend==0 ; immediately invoked if ndepend==0 .
|
|
virtual | ~CallbackInterface () |
|