Scheduler that provides work stealing support. More...
Public Member Functions | |
| work_stealing_scheduler (size_type chunk_size, size_type fraction, size_type poll_min, size_type poll_max, size_type poll_step) | |
| Creates a new work_stealing_scheduler. More... | |
| work_stealing_scheduler (work_stealing_scheduler const &other) | |
| void | set_tg (task_graph &tg) noexcept |
| void | add_active (entry_type &e) |
| Adds an active entry to the scheduler. More... | |
| void | add_idle (entry_type &) noexcept |
| Adds an idle entry to the scheduler. | |
| entry_type & | next (void) |
| Returns the next entry to be executed. | |
| bool | empty (void) |
| bool | ready (void) |
| size_type | size (void) const noexcept |
| list_type const & | migratable_entries (void) const noexcept |
| list_type & | migratable_entries (void) noexcept |
| thieves_list_type & | thieves (void) noexcept |
| void | request_steal (size_type dest) |
| Sends a steal request to the given destination. | |
| void | notify_steal_completion (location_type dest, size_type loot) |
| Notifies of successful steal request completion to the destination. | |
| runtime::location_md const & | get_location_md (void) const noexcept |
| Returns the location metadata of the location this object registered in. | |
| runtime::location_md & | get_location_md (void) noexcept |
| Returns the location metadata of the location this object registered in. noexcept More... | |
Distributed Object Management | |
| rmi_handle::const_reference const & | get_rmi_handle (void) const noexcept |
| Returns the associated rmi_handle. | |
| rmi_handle::reference const & | get_rmi_handle (void) noexcept |
| Returns the associated rmi_handle. | |
| size_type | get_location_id (void) const noexcept |
| Returns the location id of the local sub-object. | |
| size_type | get_num_locations (void) const noexcept |
| Returns the number of locations of the gang of this p_object. | |
| void | advance_epoch (void) |
| Advances the epoch of the object. More... | |
| void | unlock (void) |
Used by lock_guard functionality in method of derived classes to request atomicity with respect to incoming RMIs. More... | |
| void | lock (void) |
Used by lock_guard functionality in method of derived classes to request atomicity with respect to incoming RMIs. More... | |
| bool | try_lock (void) |
| Attempt to maintain atomicity with respect to incoming RMIs. More... | |
Public Types | |
| typedef work_stealing_sched_info | sched_info_type |
| typedef work_stealing_sched_entry< sched_info_type, hook_type > | entry_type |
| typedef boost::intrusive::make_list< entry_type, boost::intrusive::cache_last< true >, boost::intrusive::constant_time_size< true > >::type | list_type |
| typedef std::deque< location_type > | thieves_list_type |
| typedef std::size_t | size_type |
Friends | |
| std::ostream & | operator<< (std::ostream &os, work_stealing_scheduler const &s) |
Scheduler that provides work stealing support.
The default policy is circular stealing through circular_steal.
| stapl::work_stealing_scheduler< StealPolicy >::work_stealing_scheduler | ( | size_type | chunk_size, |
| size_type | fraction, | ||
| size_type | poll_min, | ||
| size_type | poll_max, | ||
| size_type | poll_step | ||
| ) |
Creates a new work_stealing_scheduler.
| chunk_size | Number of entries to steal with one request. |
| fraction | Fraction of the total entries to steal. |
| poll_min | Minimum number of calls to process stolen work before yielding. |
| poll_max | Maximum number of calls to process stolen work before yielding. |
| poll_step | How many times to increase the number of calls to process stolen work before yielding. |
| void stapl::work_stealing_scheduler< StealPolicy >::add_active | ( | entry_type & | e | ) |
Adds an active entry to the scheduler.
If the entry is migrated from somewhere else, it also notifies about that fact.
|
noexceptinherited |
Returns the location metadata of the location this object registered in. noexcept
noexcept
|
inherited |
Advances the epoch of the object.
Advancing the epoch will flush any pending RMIs. It will also increase the epoch of the current gang if the object is not a named object.
|
inherited |
Used by lock_guard functionality in method of derived classes to request atomicity with respect to incoming RMIs.
Mutates counter in the associated runqueue.
|
inherited |
Used by lock_guard functionality in method of derived classes to request atomicity with respect to incoming RMIs.
Mutates counter in the associated runqueue.
|
inherited |
Attempt to maintain atomicity with respect to incoming RMIs.
Mutates counter in the associated runqueue.
true if the lock was able to be acquired. false if it is already locked.
1.8.13