#include <list>
#include <vector>
#include <map>
#include <set>
#include <functional>
#include <stack>
#include "Pooma/Configuration.h"
#include "Threads/IterateSchedulers/IterateScheduler.h"
#include "Threads/IterateSchedulers/Runnable.h"
#include "Utilities/PAssert.h"
Classes | |
struct | Smarts::SerialAsync |
Tag class for specializing IterateScheduler, Iterate and DataObject. More... | |
class | Smarts::Iterate< SerialAsync > |
Iterate<SerialAsync> is used to implement the SerialAsync scheduling policy. More... | |
struct | Smarts::SystemContext |
class | Smarts::IterateScheduler< SerialAsync > |
Implements a asynchronous scheduler for a data driven execution. More... | |
class | Smarts::DataObject< SerialAsync > |
Implements a asynchronous scheduler for a data driven execution. More... | |
class | Smarts::DataObject< SerialAsync >::Request |
The type for a request. | |
Namespaces | |
namespace | Smarts |
Functions | |
void | Smarts::add (RunnablePtr_t) |
Schedulers need to implement this function to add a runnable to the execution queue. | |
void | Smarts::concurrency (int) |
int | Smarts::concurrency () |
void | Smarts::wait () |
void | Smarts::mustRunOn () |
SerialAsync IterateScheduler is a policy template to create a dependence graphs and executes the graph respecting the dependencies without using threads. There is no (thread level) parallelism, but Iterates may be executed out-of-order with respect to the program text. Also this scheduler is used for message based parallelism in which case asyncronous execution leads to reduced communication latencies.