|
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, madness::archive::BaseParallelArchive< Archive >::open(), 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, madness::archive::BaseParallelArchive< Archive >::open(), and madness::archive::BaseParallelArchive< Archive >::world.
|
inline |
Flush any data in the archive.
References madness::archive::BaseParallelArchive< Archive >::is_io_node(), and madness::archive::BaseParallelArchive< Archive >::local_archive().