Notice that S2S depends on all Far interactions, which may include local tree nodes or let nodes. For HSS case, the only Far interaction is the sibling. Skeleton weight of the sibling will always be exchanged by default in N2S. Thus, currently we do not need a distributed S2S, because the skeleton weight is already in place.
More...
#include <gofmm_mpi.hpp>
|
void | Set (NODE *user_arg, vector< LETNODE * > user_src, int user_p, Lock *user_lock, int *user_num_arrived_subtasks) |
|
void | DependencyAnalysis () |
|
void | Execute (Worker *user_worker) |
|
| Task () |
| (Default) Task constructor. More...
|
|
| ~Task () |
| (Default) Task destructor. More...
|
|
TaskStatus | GetStatus () |
| Status is a private member.
|
|
void | SetStatus (TaskStatus status) |
| Move foward to the next status.
|
|
void | SetBatchStatus (TaskStatus status) |
|
void | Submit () |
| Ask the runtime to create an normal task in file.
|
|
virtual void | Set (string user_name, void(*user_function)(Task *), void *user_arg) |
| This is only for virtual function pointer.
|
|
virtual void | Prefetch (Worker *) |
|
void | Enqueue () |
|
void | Enqueue (size_t tid) |
|
bool | TryEnqueue () |
| Try to dispatch the task if there is no dependency left.
|
|
void | ForceEnqueue (size_t tid) |
|
void | CallBackWhileWaiting () |
| This is the callback function for the owner of thenested task. More...
|
|
virtual void | GetEventRecord () |
|
void | DependenciesUpdate () |
| Update the my outgoing and children's incoming edges. More...
|
|
void | Acquire () |
|
void | Release () |
|
bool | IsNested () |
|
|
NODE * | arg = NULL |
|
vector< LETNODE * > | Sources |
|
int | p = 0 |
|
Lock * | lock = NULL |
|
int * | num_arrived_subtasks |
|
class Worker * | worker = NULL |
|
string | name |
|
string | label |
|
int | taskid |
|
float | cost = 0 |
|
bool | priority = false |
|
Event | event |
|
void(* | function )(Task *) |
|
void * | arg |
|
volatile int | n_dependencies_remaining = 0 |
|
deque< Task * > | in |
|
deque< Task * > | out |
|
Lock * | task_lock = NULL |
|
Task * | next = NULL |
|
volatile bool | stealable = true |
|
volatile int | created_by = 0 |
|
template<typename NODE, typename LETNODE, typename T>
class hmlp::mpigofmm::S2STask2< NODE, LETNODE, T >
Notice that S2S depends on all Far interactions, which may include local tree nodes or let nodes. For HSS case, the only Far interaction is the sibling. Skeleton weight of the sibling will always be exchanged by default in N2S. Thus, currently we do not need a distributed S2S, because the skeleton weight is already in place.
end class DistUpdateWeightsTask compute flops and mops setup the event assume computation bound "LOW" priority MPI Support. Only 0th rank (owner) will execute this task.
template<typename NODE , typename LETNODE , typename T >
Temporary buffer
Free KIJ, if !is_cached.
Implements hmlp::Task.
template<typename NODE , typename LETNODE , typename T >
void hmlp::mpigofmm::S2STask2< NODE, LETNODE, T >::Set |
( |
NODE * |
user_arg, |
|
|
vector< LETNODE * > |
user_src, |
|
|
int |
user_p, |
|
|
Lock * |
user_lock, |
|
|
int * |
user_num_arrived_subtasks |
|
) |
| |
|
inline |
Compute FLOPS and MOPS
Setup the event
Assume computation bound
Assume computation bound
The documentation for this class was generated from the following file: