MADNESS  0.10.1
Classes | Functions
Worlddc

Classes

struct  madness::archive::ArchiveStoreImpl< ParallelOutputArchive< localarchiveT >, WorldContainer< keyT, valueT > >
 Write container to parallel archive with optional fence. More...
 
class  madness::WorldContainer< keyT, valueT, hashfunT >
 Makes a distributed container with specified attributes. More...
 
class  madness::WorldContainerImpl< keyT, valueT, hashfunT >
 Internal implementation of distributed container to facilitate shallow copy. More...
 
class  madness::WorldContainerIterator< internal_iteratorT >
 Iterator for distributed container wraps the local iterator. More...
 
class  madness::WorldDCDefaultPmap< keyT, hashfunT >
 Default process map is "random" using madness::hash(key) More...
 
class  madness::WorldDCLocalPmap< keyT, hashfunT >
 Local process map will always return the current process as owner. More...
 
class  madness::WorldDCPmapInterface< keyT >
 Interface to be provided by any process map. More...
 

Functions

static void madness::archive::ArchiveLoadImpl< ParallelInputArchive< localarchiveT >, WorldContainer< keyT, valueT > >::load (const ParallelInputArchive< localarchiveT > &ar, WorldContainer< keyT, valueT > &t)
 Read container from parallel archive. More...
 
template<typename keyT , typename valueT , typename hashfunT >
void madness::swap (WorldContainer< keyT, valueT, hashfunT > &dc0, WorldContainer< keyT, valueT, hashfunT > &dc1)
 Swaps the content of two WorldContainer objects. It should be called on all nodes. More...
 

Detailed Description

Function Documentation

◆ load()

template<class keyT , class valueT , class localarchiveT >
static void madness::archive::ArchiveLoadImpl< ParallelInputArchive< localarchiveT >, WorldContainer< keyT, valueT > >::load ( const ParallelInputArchive< localarchiveT > &  ar,
WorldContainer< keyT, valueT > &  t 
)
inlinestatic

Read container from parallel archive.

See store method above for format of file content. !!! We presently ASSUME that the number of writers and readers are the same. This is frustrating but not a show stopper since you can always run a separate job to copy to a different number.

The IO node simply reads all data and inserts entries.

References madness::archive::BaseParallelArchive< Archive >::dofence(), madness::WorldGopInterface::fence(), madness::archive::BaseParallelArchive< Archive >::get_world(), madness::World::gop, madness::archive::BaseParallelArchive< Archive >::is_io_node(), madness::archive::BaseParallelArchive< Archive >::local_archive(), and MADNESS_CHECK.

◆ swap()

template<typename keyT , typename valueT , typename hashfunT >
void madness::swap ( WorldContainer< keyT, valueT, hashfunT > &  dc0,
WorldContainer< keyT, valueT, hashfunT > &  dc1 
)

Swaps the content of two WorldContainer objects. It should be called on all nodes.

References madness::WorldContainer< keyT, valueT, hashfunT >::p.