MADNESS  version 0.9
Static Public Member Functions | List of all members
madness::archive::ArchiveStoreImpl< ParallelOutputArchive, WorldContainer< keyT, valueT > > Struct Template Reference

Write container to parallel archive with optional fence. More...

#include <worlddc.h>

Static Public Member Functions

static void store (const ParallelOutputArchive &ar, const WorldContainer< keyT, valueT > &t)
 

Detailed Description

template<class keyT, class valueT>
struct madness::archive::ArchiveStoreImpl< ParallelOutputArchive, WorldContainer< keyT, valueT > >

Write container to parallel archive with optional fence.

Each node (process) is served by a designated IO node. The IO node has a binary local file archive to which is first written a cookie and the number of servers. The IO node then loops thru all of its clients and in turn tells each to write its data over an MPI stream, which is copied directly to the output file. The stream contents are then cookie, no. of clients, foreach client (usual sequential archive).

If ar.dofence() is true (default) fence is invoked before and after the IO. The fence is optional but it is of course necessary to be sure that all updates have completed before doing IO, and that all IO has completed before subsequent modifications. Also, there is always at least some synchronization between a client and its IO server.

Member Function Documentation

template<class keyT , class valueT >
static void madness::archive::ArchiveStoreImpl< ParallelOutputArchive, WorldContainer< keyT, valueT > >::store ( const ParallelOutputArchive ar,
const WorldContainer< keyT, valueT > &  t 
)
inlinestatic

The documentation for this struct was generated from the following file: