HMLP: High-performance Machine Learning Primitives
|
#include <gofmm_mpi.hpp>
Public Member Functions | |
UnpackLeafTask (TREE *tree, int src, int tar, int key) | |
void | Unpack () |
![]() | |
RecvTask (TREE *user_arg, int src, int tar, int key) | |
void | Set (TREE *user_arg, int src, int tar, int key) |
void | DependencyAnalysis () |
void | Listen () |
void | Execute (Worker *user_worker) |
![]() | |
ListenerTask (int src, int tar, int key) | |
(Default) ListenerTask constructor. More... | |
void | Submit () |
Ask the runtime to create a listener task in file. | |
![]() | |
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 () |
Additional Inherited Members | |
![]() | |
TREE * | arg |
vector< size_t > | recv_sizes |
vector< size_t > | recv_skels |
vector< T > | recv_buffs |
![]() | |
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 |
end class PackNearTask AlltoallvTask is used perform MPI_Alltoallv in asynchronous. Overall there will be (p - 1) tasks per MPI rank. Each task performs Isend while the dependencies toward the destination is fullfilled.
To receive the results, each MPI rank also actively runs a ListenerTask. Listener will keep pulling for incioming message that matches. Once the received results are secured, it will release dependent tasks.
|
inline |
Submit and perform dependency analysis automaticallu.