Classes | |
class | Grappa::CompletionEvent |
Synchronization primitive useful for waking a worker after a number of other things complete. More... | |
class | Grappa::ConditionVariable |
class | Grappa::CountingSemaphore |
Counting semaphore. Maximum count is 2^15 - 1. More... | |
class | Grappa::FullEmpty< T > |
Wrapper class to provide full-bit semantics for arbitrary data. More... | |
struct | Grappa::CompletionTarget |
Type returned by enroll used to indicate where to send a completion. More... | |
class | Grappa::GlobalCompletionEvent |
GlobalCompletionEvent (GCE): Synchronization construct for determining when a global phase of asynchronous tasks have all completed. More... | |
Functions | |
void | Grappa::barrier () |
Blocking SPMD barrier (must be called once on all cores to continue) More... | |
template<typename CompletionType > | |
void | Grappa::complete (CompletionType *ce) |
Match ConditionVariable-style function call. More... | |
void | Grappa::complete (GlobalAddress< CompletionEvent > ce, int64_t decr=1) |
Overload to work on GlobalAddresses. More... | |
void | Grappa::enroll (GlobalAddress< CompletionEvent > ce, int64_t incr=1) |
template<TaskMode B = TaskMode::Bound, typename TF = decltype(nullptr)> | |
void | Grappa::spawn (CompletionEvent *ce, TF tf) |
Spawn Grappa::privateTask and implicitly synchronize with the given CompletionEvent (or GlobalCompletionEvent, though if using GlobalCompletionEvent, it may be better to use the verison that takes the GCE pointer as a template parameter only). More... | |
void | Grappa::wait (GlobalAddress< ConditionVariable > m) |
Proxy for remote ConditionVariable manipulation. More... | |
template<typename ConditionVariable > | |
void | Grappa::signal (const GlobalAddress< ConditionVariable > m) |
void | Grappa::signal_all (GlobalAddress< ConditionVariable > m) |
TODO: implement. More... | |
template<typename ConditionVariable > | |
void | Grappa::add_waiter (ConditionVariable *cv, Worker *w) |
Verify that ConditionVariable is only one word. More... | |
template<typename ConditionVariable > | |
void | Grappa::wait (ConditionVariable *cv) |
template<typename ConditionVariable > | |
void | Grappa::signal (ConditionVariable *cv) |
Wake one waiter on a condition variable. More... | |
template<typename ConditionVariable > | |
void | Grappa::broadcast (ConditionVariable *cv) |
Wake all waiters on a condition variable. More... | |
template<typename T > | |
void | Grappa::fill_remote (GlobalAddress< FullEmpty< T >> result_addr, const T &val) |
template<typename T > | |
T | Grappa::readFF (GlobalAddress< FullEmpty< T >> fe_addr) |
Remote version of readFF method. Suspend until FullEmpty is full, and then return its contents, leaving it full. More... | |
template<typename T , typename U > | |
void | Grappa::writeXF (GlobalAddress< FullEmpty< T >> fe_addr, const U &val) |
Remote, blocking version of writeXF method. Writes data to FullEmpty no matter what its current state, leaving it full. Existing contents are overwritten. More... | |
template<typename T > | |
T | Grappa::writeXF (FullEmpty< T > *fe_addr, T t) |
Non-member version of writeXF method. More... | |
template<typename T > | |
T | Grappa::writeEF (FullEmpty< T > *fe_addr, T t) |
Non-member version of writeEF method. More... | |
template<typename T > | |
T | Grappa::writeFF (FullEmpty< T > *fe_addr, T t) |
Non-member version of writeFF method. More... | |
template<typename T > | |
T | Grappa::readXX (FullEmpty< T > *fe_addr) |
Non-member version of readXX method. More... | |
template<typename T > | |
T | Grappa::readFF (FullEmpty< T > *fe_addr) |
Non-member version of readFF method. More... | |
template<typename T > | |
T | Grappa::readFE (FullEmpty< T > *fe_addr) |
Non-member version of readFE method. More... | |
CompletionTarget | Grappa::enroll (GlobalAddress< GlobalCompletionEvent > ce, int64_t decr=1) |
void | Grappa::complete (GlobalAddress< GlobalCompletionEvent > ce, int64_t decr=1) |
Allow calling send_completion using the old way (with global address) TODO: replace all instances with gce.send_completion and remove this? More... | |
template<typename Semaphore > | |
void | Grappa::increment (Semaphore *s, int64_t incr=1) |
template<typename Semaphore > | |
void | Grappa::decrement (Semaphore *s, int64_t decr=1) |
template<typename Semaphore > | |
bool | Grappa::try_decrement (Semaphore *s, int64_t decr=1) |
template<typename Semaphore > | |
int64_t | Grappa::get_value (Semaphore *s) |
void | Grappa::CompletionEvent::send_completion (Core origin, int64_t decr=1) |
|
inline |
Verify that ConditionVariable is only one word.
Wait on a condition variable (no mutex).
Definition at line 99 of file ConditionVariableLocal.hpp.
|
inline |
Blocking SPMD barrier (must be called once on all cores to continue)
Definition at line 46 of file Barrier.hpp.
|
inline |
Wake all waiters on a condition variable.
Definition at line 128 of file ConditionVariableLocal.hpp.
|
inline |
Match ConditionVariable-style function call.
Definition at line 106 of file CompletionEvent.hpp.
|
inline |
Overload to work on GlobalAddresses.
Definition at line 117 of file CompletionEvent.hpp.
|
inline |
Allow calling send_completion using the old way (with global address) TODO: replace all instances with gce.send_completion and remove this?
Definition at line 398 of file GlobalCompletionEvent.hpp.
|
inline |
Definition at line 52 of file Semaphore.hpp.
|
inline |
Definition at line 144 of file CompletionEvent.hpp.
|
inline |
Definition at line 392 of file GlobalCompletionEvent.hpp.
void Grappa::fill_remote | ( | GlobalAddress< FullEmpty< T >> | result_addr, |
const T & | val | ||
) |
Definition at line 47 of file FullEmpty.hpp.
|
inline |
Definition at line 62 of file Semaphore.hpp.
|
inline |
Definition at line 47 of file Semaphore.hpp.
T Grappa::readFE | ( | FullEmpty< T > * | fe_addr | ) |
Non-member version of readFE method.
Definition at line 190 of file FullEmptyLocal.hpp.
T Grappa::readFF | ( | GlobalAddress< FullEmpty< T >> | fe_addr | ) |
Remote version of readFF method. Suspend until FullEmpty is full, and then return its contents, leaving it full.
Definition at line 55 of file FullEmpty.hpp.
T Grappa::readFF | ( | FullEmpty< T > * | fe_addr | ) |
Non-member version of readFF method.
Definition at line 184 of file FullEmptyLocal.hpp.
T Grappa::readXX | ( | FullEmpty< T > * | fe_addr | ) |
Non-member version of readXX method.
Definition at line 178 of file FullEmptyLocal.hpp.
|
inline |
Definition at line 136 of file CompletionEvent.hpp.
|
inline |
Definition at line 56 of file ConditionVariable.hpp.
|
inline |
Wake one waiter on a condition variable.
Definition at line 113 of file ConditionVariableLocal.hpp.
|
inline |
TODO: implement.
Definition at line 69 of file ConditionVariable.hpp.
void Grappa::spawn | ( | CompletionEvent * | ce, |
TF | tf | ||
) |
Spawn Grappa::privateTask and implicitly synchronize with the given CompletionEvent (or GlobalCompletionEvent, though if using GlobalCompletionEvent, it may be better to use the verison that takes the GCE pointer as a template parameter only).
Definition at line 152 of file CompletionEvent.hpp.
|
inline |
Definition at line 57 of file Semaphore.hpp.
|
inline |
Proxy for remote ConditionVariable manipulation.
Definition at line 50 of file ConditionVariable.hpp.
|
inline |
Definition at line 105 of file ConditionVariableLocal.hpp.
T Grappa::writeEF | ( | FullEmpty< T > * | fe_addr, |
T | t | ||
) |
Non-member version of writeEF method.
Definition at line 166 of file FullEmptyLocal.hpp.
T Grappa::writeFF | ( | FullEmpty< T > * | fe_addr, |
T | t | ||
) |
Non-member version of writeFF method.
Definition at line 172 of file FullEmptyLocal.hpp.
void Grappa::writeXF | ( | GlobalAddress< FullEmpty< T >> | fe_addr, |
const U & | val | ||
) |
Remote, blocking version of writeXF method. Writes data to FullEmpty no matter what its current state, leaving it full. Existing contents are overwritten.
Definition at line 86 of file FullEmpty.hpp.
T Grappa::writeXF | ( | FullEmpty< T > * | fe_addr, |
T | t | ||
) |
Non-member version of writeXF method.
Definition at line 160 of file FullEmptyLocal.hpp.