|
| ParallelOutputArchive (World &world, const char *filename, int nio=1) |
| Creates a parallel archive for output with given base filename and number of I/O nodes.
|
|
| ParallelOutputArchive (World &world, const std::string filename, int nio=1) |
| Creates a parallel archive for output with given base filename and number of I/O nodes.
|
|
| ParallelOutputArchive (World &world, localarchiveT &ar, int nio=1) |
| Default constructor.
|
|
void | flush () |
| Flush any data in the archive.
|
|
template<typename X = Archive> |
| BaseParallelArchive (typename std::enable_if_t< std::is_same< X, BinaryFstreamInputArchive >::value||std::is_same< X, BinaryFstreamOutputArchive >::value, int > nio=0) |
| Default constructor.
|
|
| BaseParallelArchive (World &world, Archive &ar, int nio) |
|
template<typename objT > |
void | broadcast (objT &obj, ProcessID root) const |
| Same as world.gop.broadcast_serializable(obj, root) .
|
|
void | close () |
| Closes the parallel archive.
|
|
bool | dofence () const |
| Check if we should fence around a read/write operation.
|
|
World * | get_world () const |
| Returns a pointer to the world.
|
|
ProcessID | io_node (ProcessID rank) const |
| Returns the process doing I/O for given node.
|
|
bool | is_io_node () const |
| Returns true if this node is doing physical I/O.
|
|
Archive & | local_archive () const |
| Returns a reference to the local archive.
|
|
ProcessID | my_io_node () const |
| Returns the process doing I/O for this node.
|
|
int | num_io_clients () const |
| Returns the number of I/O clients for this node, including self (zero if not an I/O node).
|
|
template<typename X = Archive> |
std::enable_if_t< std::is_same< X, BinaryFstreamInputArchive >::value||std::is_same< X, BinaryFstreamOutputArchive >::value, void > | open (World &world, const char *filename, int nwriter=1) |
| Opens the parallel archive.
|
|
void | remove () |
| Removes the files associated with the current archive.
|
|
void | set_dofence (bool dofence) |
| Set the flag for fencing around a read/write operation.
|
|
void | set_nclient (World &world) |
|
| BaseArchive () |
|
template<class localarchiveT = BinaryFstreamOutputArchive>
class madness::archive::ParallelOutputArchive< localarchiveT >
An archive for storing local or parallel data wrapping a BinaryFstreamOutputArchive
.
- Note
- Writes of process-local objects only store the data from process zero.
-
Writes of parallel containers (presently only
WorldContainer
) store all data.
Each of the server or I/O nodes creates a BinaryFstreamOutputArchive
with the name filename.rank
. Client processes send their data to servers in a round-robin fashion.
Process zero records the number of writers so that, when the archive is opened for reading, the number of readers is forced to match.