MADNESS 0.10.1
|
An archive for storing local or parallel data wrapping a BinaryFstreamOutputArchive
.
More...
#include <parallel_archive.h>
Public Types | |
using | basear = BaseParallelArchive< localarchiveT > |
Public Types inherited from madness::archive::BaseOutputArchive | |
using | is_saving = std::true_type |
Type used by Boost.Serialization to determine if this object is an output archive. | |
Public Types inherited from madness::archive::BaseArchive | |
using | is_loading = std::false_type |
Type used by Boost.Serialization to determine if this object is an input archive. | |
using | is_saving = std::false_type |
Type used by Boost.Serialization to determine if this object is an output archive. | |
Public Member Functions | |
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. | |
Public Member Functions inherited from madness::archive::BaseParallelArchive< 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) |
Public Member Functions inherited from madness::archive::BaseArchive | |
BaseArchive () | |
Additional Inherited Members | |
Static Public Member Functions inherited from madness::archive::BaseParallelArchive< Archive > | |
template<typename X = Archive> | |
static std::enable_if_t< std::is_same< X, BinaryFstreamInputArchive >::value||std::is_same< X, BinaryFstreamOutputArchive >::value, bool > | exists (World &world, const char *filename) |
Returns true if the named, unopened archive exists on disk with read access. | |
template<typename X = Archive> | |
static std::enable_if_t< std::is_same< X, BinaryFstreamInputArchive >::value||std::is_same< X, BinaryFstreamOutputArchive >::value, void > | remove (World &world, const char *filename) |
Deletes the files associated with the archive of the given name. | |
Static Public Attributes inherited from madness::archive::BaseParallelArchive< Archive > | |
static const bool | is_parallel_archive = true |
Mark this class as a parallel archive. | |
Static Public Attributes inherited from madness::archive::BaseOutputArchive | |
static constexpr bool | is_output_archive = true |
Flag to determine if this object is an output archive. | |
Static Public Attributes inherited from madness::archive::BaseArchive | |
static constexpr bool | is_archive = true |
Flag to determine if this object is an archive. | |
static constexpr bool | is_input_archive = false |
Flag to determine if this object is an input archive. | |
static constexpr bool | is_output_archive = false |
Flag to determine if this object is an output archive. | |
static constexpr bool | is_parallel_archive = false |
Flag to determine if this object is a parallel archive. | |
An archive for storing local or parallel data wrapping a BinaryFstreamOutputArchive
.
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.
using madness::archive::ParallelOutputArchive< localarchiveT >::basear = BaseParallelArchive<localarchiveT> |
|
inline |
Default constructor.
|
inline |
Creates a parallel archive for output with given base filename and number of I/O nodes.
[in] | world | The world. |
[in] | filename | Base name of the file. |
[in] | nio | The number of I/O nodes. |
References madness::filename, madness::archive::BaseParallelArchive< Archive >::nio, and madness::archive::BaseParallelArchive< Archive >::world.
|
inline |
Creates a parallel archive for output with given base filename and number of I/O nodes.
[in] | world | The world. |
[in] | filename | Base name of the file. |
[in] | nio | The number of I/O nodes. |
References madness::filename, madness::archive::BaseParallelArchive< Archive >::nio, and madness::archive::BaseParallelArchive< Archive >::world.
|
inline |
Flush any data in the archive.