MADNESS  version 0.9
Files | Classes | Functions
Distributed containers (WorldContainer)
Collaboration diagram for Distributed containers (WorldContainer):

Files

file  worlddc.h
 Implements WorldContainer.
 

Classes

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

Functions

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...
 
static void madness::archive::ArchiveLoadImpl< ParallelInputArchive, WorldContainer< keyT, valueT > >::load (const ParallelInputArchive &ar, WorldContainer< keyT, valueT > &t)
 Read container from parallel archive. More...
 

Detailed Description

Function Documentation

template<class keyT , class valueT >
static void madness::archive::ArchiveLoadImpl< ParallelInputArchive, WorldContainer< keyT, valueT > >::load ( const ParallelInputArchive 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(), and madness::archive::BaseParallelArchive< Archive >::local_archive().

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 std::swap().