|
| ParallelInputArchive (World &world, const char *filename, int nio=1) |
| Creates a parallel archive for input.
|
|
| ParallelInputArchive (World &world, const std::string filename, int nio=1) |
| Creates a parallel archive for input.
|
|
| ParallelInputArchive (World &world, localarchiveT &ar, int nio=1) |
| Default constructor.
|
|
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 = BinaryFstreamInputArchive>
class madness::archive::ParallelInputArchive< localarchiveT >
An archive for storing local or parallel data, wrapping a BinaryFstreamInputArchive
.
- Note
- Reads of process-local objects load the values originally stored by process zero, which is then broadcast to all processes.
-
Reads of parallel containers (presently only
WorldContainer
) load all data.
The number of I/O nodes or readers is presently ignored. It is forced to be the same as the original number of writers and, therefore, you cannot presently read an archive from a parallel job with fewer total processes than the number of writers.