|
spot
2.16
|
Bloemen parallel SCC decomposition algorithm for reachability. More...
#include <spot/mc/bloemen.hh>
Public Types | |
| using | uf = iterable_uf< State, StateHash, StateEqual > |
| Type alias for iterable union-find. More... | |
| using | uf_element = typename uf::uf_element |
| Type alias for union-find element. More... | |
| using | shared_struct = uf |
| Type alias for shared structure. More... | |
| using | shared_map = typename uf::shared_map |
| Type alias for shared map. More... | |
Public Member Functions | |
| swarmed_bloemen (kripkecube< State, SuccIterator > &sys, twacube_ptr, shared_map &map, iterable_uf< State, StateHash, StateEqual > *uf, unsigned tid, std::atomic< bool > &stop) | |
| Constructor for parallel Bloemen algorithm. More... | |
| void | run () |
| Run the algorithm. More... | |
| void | setup () |
| Setup thread resources. More... | |
| void | finalize () |
| Finalize thread resources. More... | |
| bool | finisher () |
| Check if this thread finished the search. More... | |
| unsigned | states () |
| Return number of states visited. More... | |
| unsigned | transitions () |
| Return number of transitions traversed. More... | |
| unsigned | walltime () |
| Return wall time in milliseconds. More... | |
| std::string | name () |
| Return algorithm name. More... | |
| int | sccs () |
| Return number of SCCs found. More... | |
| mc_rvalue | result () |
| Return emptiness check result. More... | |
| std::string | trace () |
| Return trace (returns empty string) More... | |
Static Public Member Functions | |
| static shared_struct * | make_shared_structure (shared_map m, unsigned i) |
| Create shared structure for thread tid. More... | |
Bloemen parallel SCC decomposition algorithm for reachability.
This class implements the SCC decomposition algorithm of Bloemen as described in PPOPP'16. It uses a shared union-find augmented to manage work stealing between threads.
| using spot::swarmed_bloemen< State, SuccIterator, StateHash, StateEqual >::shared_map = typename uf::shared_map |
Type alias for shared map.
| using spot::swarmed_bloemen< State, SuccIterator, StateHash, StateEqual >::shared_struct = uf |
Type alias for shared structure.
| using spot::swarmed_bloemen< State, SuccIterator, StateHash, StateEqual >::uf = iterable_uf<State, StateHash, StateEqual> |
Type alias for iterable union-find.
| using spot::swarmed_bloemen< State, SuccIterator, StateHash, StateEqual >::uf_element = typename uf::uf_element |
Type alias for union-find element.
|
inline |
Constructor for parallel Bloemen algorithm.
|
inline |
Finalize thread resources.
References spot::timer_map::stop().
Referenced by spot::swarmed_bloemen< State, SuccIterator, StateHash, StateEqual >::run().
|
inline |
Check if this thread finished the search.
|
inlinestatic |
Create shared structure for thread tid.
|
inline |
Return algorithm name.
|
inline |
Return emptiness check result.
References spot::SUCCESS.
|
inline |
|
inline |
Return number of SCCs found.
|
inline |
Setup thread resources.
References spot::timer_map::start().
Referenced by spot::swarmed_bloemen< State, SuccIterator, StateHash, StateEqual >::run().
|
inline |
Return number of states visited.
|
inline |
Return trace (returns empty string)
|
inline |
Return number of transitions traversed.
|
inline |
Return wall time in milliseconds.
References spot::timer_map::timer(), and spot::timer::walltime().
1.9.1