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 & | ) |