FreePOOMA  2.4.1
Classes | Namespaces | Functions
SerialAsync.h File Reference

Smarts classes for times when you want no threads but you do want dataflow evaluation. More...

#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"
Include dependency graph for SerialAsync.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 ()

Detailed Description

Smarts classes for times when you want no threads but you do want dataflow evaluation.

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.