Namespaces | |
detail | |
Classes | |
struct | attach_distributed_object |
A special type used as a flag to a process group constructor that indicates that the copy of a process group will represent a new distributed data structure. More... | |
struct | basic_reduce |
Reduction operation used to reconcile differences between local and remote values for a particular key in a property map. More... | |
struct | batch_process_group_tag |
struct | block |
struct | bsp_process_group_tag |
class | caching_property_map |
Property map that caches values placed in it but does not broadcast values to remote processors. More... | |
class | distributed_property_map |
Distributed property map adaptor. More... | |
class | global_index_map |
struct | immediate_process_group_tag |
struct | is_commutative |
struct | linear_process_group_tag |
struct | locking_process_group_tag |
struct | maximum |
struct | messaging_process_group_tag |
struct | minimum |
struct | oned_block_cyclic |
struct | process_group_archetype |
struct | process_group_tag |
class | random_distribution |
struct | spawning_process_group_tag |
struct | sum |
struct | twod_block_cyclic |
class | twod_random |
struct | uneven_block |
class | variant_distribution |
Enumerations | |
enum | consistency_model { cm_forward = 1 << 0, cm_backward = 1 << 1, cm_bidirectional = cm_forward | cm_backward, cm_flush = 1 << 2, cm_reset = 1 << 3, cm_clear = 1 << 4 } |
The consistency model used by the distributed property map. More... | |
enum | trigger_receive_context { trc_none, trc_in_synchronization, trc_early_receive, trc_out_of_band, trc_irecv_out_of_band } |
Describes the context in which a trigger is being invoked to receive a message. More... | |
Functions | |
template<typename ProcessGroup , typename InputIterator , typename OutputIterator , typename BinaryOperation > | |
OutputIterator | reduce (ProcessGroup pg, typename ProcessGroup::process_id_type root, InputIterator first, InputIterator last, OutputIterator out, BinaryOperation bin_op) |
template<typename ProcessGroup , typename T , typename BinaryOperation > | |
T | all_reduce (ProcessGroup pg, const T &value, BinaryOperation bin_op) |
template<typename ProcessGroup , typename T , typename BinaryOperation > | |
T | scan (ProcessGroup pg, const T &value, BinaryOperation bin_op) |
template<typename ProcessGroup , typename InputIterator , typename T > | |
void | all_gather (ProcessGroup pg, InputIterator first, InputIterator last, std::vector< T > &out) |
template<typename PropertyMap , typename Key > | |
caching_property_map < PropertyMap >::value_type | get (const caching_property_map< PropertyMap > &pm, const Key &key) |
template<typename PropertyMap , typename Key , typename Value > | |
void | local_put (const caching_property_map< PropertyMap > &pm, const Key &key, const Value &value) |
template<typename PropertyMap , typename Key , typename Value > | |
void | cache (const caching_property_map< PropertyMap > &pm, const Key &key, const Value &value) |
template<typename PropertyMap , typename Key , typename Value > | |
void | put (const caching_property_map< PropertyMap > &pm, const Key &key, const Value &value) |
template<typename PropertyMap > | |
caching_property_map< PropertyMap > | make_caching_property_map (const PropertyMap &pm) |
template<typename ProcessGroup , typename GlobalMap , typename StorageMap > | |
void | request (const distributed_property_map< ProcessGroup, GlobalMap, StorageMap > &pm, typename distributed_property_map< ProcessGroup, GlobalMap, StorageMap >::key_type const &key) |
template<typename ProcessGroup , typename GlobalMap , typename StorageMap > | |
distributed_property_map < ProcessGroup, GlobalMap, StorageMap >::value_type | get (const distributed_property_map< ProcessGroup, GlobalMap, StorageMap > &pm, typename distributed_property_map< ProcessGroup, GlobalMap, StorageMap >::key_type const &key) |
Get the value associated with a particular key. More... | |
template<typename ProcessGroup , typename GlobalMap , typename StorageMap > | |
void | put (const distributed_property_map< ProcessGroup, GlobalMap, StorageMap > &pm, typename distributed_property_map< ProcessGroup, GlobalMap, StorageMap >::key_type const &key, typename distributed_property_map< ProcessGroup, GlobalMap, StorageMap >::value_type const &value) |
Put a value associated with the given key into the property map. More... | |
template<typename ProcessGroup , typename GlobalMap , typename StorageMap > | |
void | local_put (const distributed_property_map< ProcessGroup, GlobalMap, StorageMap > &pm, typename distributed_property_map< ProcessGroup, GlobalMap, StorageMap >::key_type const &key, typename distributed_property_map< ProcessGroup, GlobalMap, StorageMap >::value_type const &value) |
Put a value associated with a given key into the local view of the property map. More... | |
template<typename ProcessGroup , typename GlobalMap , typename StorageMap > | |
void | cache (const distributed_property_map< ProcessGroup, GlobalMap, StorageMap > &pm, typename distributed_property_map< ProcessGroup, GlobalMap, StorageMap >::key_type const &key, typename distributed_property_map< ProcessGroup, GlobalMap, StorageMap >::value_type const &value) |
Cache the value associated with the given remote key. More... | |
template<typename ProcessGroup , typename GlobalMap , typename StorageMap > | |
void | synchronize (distributed_property_map< ProcessGroup, GlobalMap, StorageMap > &pm) |
Synchronize the property map. More... | |
template<typename ProcessGroup , typename GlobalMap , typename StorageMap > | |
distributed_property_map < ProcessGroup, GlobalMap, StorageMap > | make_distributed_property_map (const ProcessGroup &pg, GlobalMap global, StorageMap storage) |
Create a distributed property map. More... | |
template<typename ProcessGroup , typename GlobalMap , typename StorageMap , typename Reduce > | |
distributed_property_map < ProcessGroup, GlobalMap, StorageMap > | make_distributed_property_map (const ProcessGroup &pg, GlobalMap global, StorageMap storage, Reduce reduce) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename RandomAccessIterator , typename ProcessGroup , typename GlobalMap , typename StorageMap > | |
distributed_property_map < ProcessGroup, GlobalMap, iterator_property_map < RandomAccessIterator, StorageMap > > | make_iterator_property_map (RandomAccessIterator cc, local_property_map< ProcessGroup, GlobalMap, StorageMap > index_map) |
void | wait (process_group_archetype &) |
void | synchronize (process_group_archetype &) |
int | process_id (const process_group_archetype &) |
int | num_processes (const process_group_archetype &) |
template<typename T > | |
void | send (process_group_archetype &, int, int, const T &) |
template<typename T > | |
process_group_archetype::process_id_type | receive (const process_group_archetype &pg, process_group_archetype::process_id_type source, int tag, T &value) |
template<typename T > | |
std::pair < process_group_archetype::process_id_type, std::size_t > | receive (const process_group_archetype &pg, int tag, T values[], std::size_t n) |
template<typename T > | |
std::pair < process_group_archetype::process_id_type, std::size_t > | receive (const process_group_archetype &pg, process_group_archetype::process_id_type source, int tag, T values[], std::size_t n) |
template<typename ProcessGroup , typename Class , typename T > | |
void | simple_trigger (ProcessGroup &pg, int tag, Class *self, void(Class::*pmf)(int source, int tag, const T &data, trigger_receive_context context), int) |
Simplified trigger interface that reduces the amount of code required to connect a process group trigger to a handler that is just a bound member function. More... | |
template<typename ProcessGroup , typename Class , typename T , typename Result > | |
void | simple_trigger (ProcessGroup &pg, int tag, Class *self, Result(Class::*pmf)(int source, int tag, const T &data, trigger_receive_context context), long) |
Simplified trigger interface that reduces the amount of code required to connect a process group trigger with a reply to a handler that is just a bound member function. More... | |
template<typename ProcessGroup , typename Class , typename T , typename Result > | |
void | simple_trigger (ProcessGroup &pg, int tag, Class *self, Result(Class::*pmf)(int source, int tag, const T &data, trigger_receive_context context)) |
Simplified trigger interface that reduces the amount of code required to connect a process group trigger to a handler that is just a bound member function. More... | |
Describes the context in which a trigger is being invoked to receive a message.
void boost::parallel::all_gather | ( | ProcessGroup | pg, |
InputIterator | first, | ||
InputIterator | last, | ||
std::vector< T > & | out | ||
) |
|
inline |
References T.
Referenced by boost::graph::distributed::boman_et_al_graph_coloring(), boost::graph::parallel::detail::brandes_betweenness_centrality_impl(), boost::central_point_dominance(), boost::graph::distributed::delta_stepping_impl< Graph, PredecessorMap, DistanceMap, EdgeWeightMap >::delta_stepping_impl(), boost::graph::distributed::detail::crauser_et_al_dijkstra_queue< Graph, Combine, Compare, VertexIndexMap, DistanceMap, PredecessorMap, MinOutWeightMap, MinInWeightMap >::do_synchronize(), boost::graph::distributed::hohberg_biconnected_components(), boost::graph::parallel::detail::non_distributed_brandes_betweenness_centrality_impl(), boost::graph::distributed::number_components_from_parents(), boost::graph::distributed::cc_detail::parallel_connected_components(), boost::graph::distributed::delta_stepping_impl< Graph, PredecessorMap, DistanceMap, EdgeWeightMap >::run(), boost::graph::parallel::detail::betweenness_centrality_delta_stepping_impl< Graph, DistanceMap, IncomingMap, EdgeWeightMap, PathCountMap >::run(), and boost::graph::distributed::st_connected().
|
inline |
References boost::parallel::caching_property_map< PropertyMap >::base(), and boost::program_options::value().
Referenced by boost::graph::distributed::boman_et_al_graph_coloring(), boost::graph::parallel::detail::do_brandes_sssp(), boost::accumulators::impl::density_impl< Sample >::operator()(), boost::date_time::time_input_facet< time_type, CharT, InItrT >::parse_frac_type(), boost::graph::distributed::delta_stepping_impl< Graph, PredecessorMap, DistanceMap, EdgeWeightMap >::run(), and boost::graph::parallel::detail::betweenness_centrality_delta_stepping_impl< Graph, DistanceMap, IncomingMap, EdgeWeightMap, PathCountMap >::run().
|
inline |
Cache the value associated with the given remote key.
If the key is local, ignore the operation.
References boost::xpressive::first, process_id(), and boost::program_options::value().
|
inline |
|
inline |
Get the value associated with a particular key.
Retrieves the value associated with the given key. If the key denotes a locally-owned object, it returns the value from the local property map; if the key denotes a remotely-owned object, retrieves the value of the ghost cell for that key, which may be the default value provided by the reduce operation.
Complexity: For a local key, O(1) get operations on the underlying property map. For a non-local key, O(1) accesses to the ghost cells.
References boost::get(), boost::multiprecision::backends::p, and process_id().
|
inline |
References boost::parallel::caching_property_map< PropertyMap >::base(), and boost::program_options::value().
Referenced by put().
void boost::parallel::local_put | ( | const distributed_property_map< ProcessGroup, GlobalMap, StorageMap > & | pm, |
typename distributed_property_map< ProcessGroup, GlobalMap, StorageMap >::key_type const & | key, | ||
typename distributed_property_map< ProcessGroup, GlobalMap, StorageMap >::value_type const & | value | ||
) |
Put a value associated with a given key into the local view of the property map.
This operation is equivalent to put
, but with one exception: no message will be sent to the owning processor in the case of a remote update. The effect is that any value written via local_put
for a remote key may be overwritten in the next synchronization round.
References boost::multiprecision::backends::p, process_id(), put(), boost::put(), and boost::program_options::value().
|
inline |
References boost::locale::period::pm().
Referenced by boost::graph::distributed::crauser_et_al_shortest_paths().
|
inline |
Create a distributed property map.
|
inline |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
distributed_property_map<ProcessGroup, GlobalMap, iterator_property_map<RandomAccessIterator, StorageMap> > boost::parallel::make_iterator_property_map | ( | RandomAccessIterator | cc, |
local_property_map< ProcessGroup, GlobalMap, StorageMap > | index_map | ||
) |
int boost::parallel::num_processes | ( | const process_group_archetype & | ) |
int boost::parallel::process_id | ( | const process_group_archetype & | ) |
|
inline |
void boost::parallel::put | ( | const distributed_property_map< ProcessGroup, GlobalMap, StorageMap > & | pm, |
typename distributed_property_map< ProcessGroup, GlobalMap, StorageMap >::key_type const & | key, | ||
typename distributed_property_map< ProcessGroup, GlobalMap, StorageMap >::value_type const & | value | ||
) |
Put a value associated with the given key into the property map.
When the key denotes a locally-owned object, this operation updates the underlying local property map. Otherwise, the local ghost cell is updated and a "put" message is sent to the processor owning this key.
Complexity: For a local key, O(1) put operations on the underlying property map. For a nonlocal key, O(1) accesses to the ghost cells and will send O(1) messages of size O(sizeof(key) + sizeof(value)).
References cm_forward, boost::multiprecision::backends::p, process_id(), put(), boost::put(), and boost::program_options::value().
process_group_archetype::process_id_type boost::parallel::receive | ( | const process_group_archetype & | pg, |
process_group_archetype::process_id_type | source, | ||
int | tag, | ||
T & | value | ||
) |
std::pair<process_group_archetype::process_id_type, std::size_t> boost::parallel::receive | ( | const process_group_archetype & | pg, |
int | tag, | ||
T | values[], | ||
std::size_t | n | ||
) |
std::pair<process_group_archetype::process_id_type, std::size_t> boost::parallel::receive | ( | const process_group_archetype & | pg, |
process_group_archetype::process_id_type | source, | ||
int | tag, | ||
T | values[], | ||
std::size_t | n | ||
) |
OutputIterator boost::parallel::reduce | ( | ProcessGroup | pg, |
typename ProcessGroup::process_id_type | root, | ||
InputIterator | first, | ||
InputIterator | last, | ||
OutputIterator | out, | ||
BinaryOperation | bin_op | ||
) |
|
inline |
References process_id().
Referenced by boost::graph::distributed::fruchterman_reingold_force_directed_layout(), boost::graph::distributed::neighboring_tiles_force_pairs< PositionMap >::operator()(), boost::graph::distributed::cc_detail::parallel_connected_components(), boost::graph::property_on_adjacents(), boost::graph::property_on_inedges(), boost::graph::property_on_outedges(), boost::graph::property_on_predecessors(), boost::graph::property_on_successors(), and boost::graph::distributed::send_oob().
|
inline |
References T.
void boost::parallel::send | ( | process_group_archetype & | , |
int | , | ||
int | , | ||
const T & | |||
) |
|
inline |
Simplified trigger interface that reduces the amount of code required to connect a process group trigger to a handler that is just a bound member function.
INTERNAL ONLY
Referenced by boost::graph::distributed::named_graph< Graph, Vertex, Edge, Config >::setup_triggers(), and simple_trigger().
|
inline |
Simplified trigger interface that reduces the amount of code required to connect a process group trigger with a reply to a handler that is just a bound member function.
INTERNAL ONLY
|
inline |
Simplified trigger interface that reduces the amount of code required to connect a process group trigger to a handler that is just a bound member function.
References simple_trigger().
void boost::parallel::synchronize | ( | process_group_archetype & | ) |
void boost::parallel::synchronize | ( | distributed_property_map< ProcessGroup, GlobalMap, StorageMap > & | pm | ) |
Synchronize the property map.
Referenced by boost::parallel::global_index_map< VertexIndexMap, VertexGlobalMap >::global_index_map().
void boost::parallel::wait | ( | process_group_archetype & | ) |