![]() |
fpmas 1.6
|
#include <fstream>
#include <sstream>
#include "fpmas/api/runtime/runtime.h"
#include "fpmas/scheduler/scheduler.h"
#include "fpmas/api/io/output.h"
#include "fpmas/communication/communication.h"
Go to the source code of this file.
Classes | |
struct | fpmas::io::Void |
struct | fpmas::io::Local< T > |
class | fpmas::io::Local< T >::Single |
class | fpmas::io::Local< T >::All |
struct | fpmas::io::Reduce< T, BinaryOp, Mpi > |
class | fpmas::io::Reduce< T, BinaryOp, Mpi >::Single |
class | fpmas::io::Reduce< T, BinaryOp, Mpi >::All |
class | fpmas::io::Cout |
class | fpmas::io::StringOutput |
class | fpmas::io::FileOutput |
class | fpmas::io::DynamicFileOutput |
class | fpmas::io::OutputTask |
class | fpmas::io::OutputBase |
Namespaces | |
namespace | fpmas |
namespace | fpmas::io |
fpmas::api::output related implementations.
FPMAS defines a powerful output system that can be used to efficiently and easily collect data accross processes.
Data can be locally fetched on each process using a Watcher instance. Data can then be gathered, summed, filtered or any other operation thanks to the usage of DistributedOperation
types, described below. For concrete usage and implementations, see fpmas::output::Local, fpmas::output::Reduce and fpmas::output::DistributedCsvOutput.
A DistributedOperation
, that can for example be used by fpmas::output::DistributedCsvOutput to specify distributed CSV fields, must satisfy the following requirements.
Member Type | Description |
---|---|
Type | Datatype used by local watchers |
Params | Extra parameters that can be passed to Single or All |
Single | Operator used when data must be returned on a single process |
All | Operator used when data must be returned on all processes |
In addition, Single
and All
must satisfy the following requirements:
Single
must define a constructor with the following signature:
comm | MPI communicator |
root | process on which data must be returned. Data returned on all other processes is undefined. |
watcher | local watcher used on each process |
params | extra parameters |
Single
must define a call operator that does not take any parameter and returns a instance of Type:
This method must return fetched data if the current process is root
: results returned on other processes are undefined.
All
must define a constructor with the following signature:
comm | MPI communicator |
watcher | local watcher used on each process |
params | extra parameters |
All
must define a call operator that does not take any parameter and returns a instance of Type:
This method must return fetched data on all processes. Notice that this does not mean that fetched data is the same on all processes (see for example fpmas::output::Local).