Phonebook implementation facilitating communication between different roles in a parallel MIMCMC type method. Also is responsible for dynamic scheduling. More...
#include <Phonebook.h>
Phonebook implementation facilitating communication between different roles in a parallel MIMCMC type method. Also is responsible for dynamic scheduling.
The phonebook process tracks which worker processes are assigned to which models. When samples are computed, the phonebook is informed by the respective worker group controller. When samples are requested by other controllers (in order to be used as proposals for finer chains) or by collectors, the phonebook sends to them the rank of a controller process that has such a sample available.
Since the phonebook can also track which model indices/levels are busy and which are not, it can also take care of initiating the dynamic rescheduling of worker processes as needed.
Definition at line 38 of file Phonebook.h.
Classes | |
struct | SampleRequest |
class | WorkerList |
Public Member Functions | |
PhonebookServer (std::shared_ptr< parcer::Communicator > comm, bool scheduling_active=true, std::shared_ptr< muq::Utilities::OTF2TracerBase > tracer=std::make_shared< muq::Utilities::OTF2TracerDummy >()) | |
void | Run () |
|
inline |
Definition at line 41 of file Phonebook.h.
|
inlineprivate |
Definition at line 362 of file Phonebook.h.
References muq::SamplingAlgorithms::PhonebookServer::WorkerList::GetIdleFraction(), getNumQueuedTasksForIndex(), getNumTasksQueuedTasksFromIndex(), and muq::SamplingAlgorithms::PhonebookServer::WorkerList::NumWorkers().
Referenced by Run().
|
inlineprivate |
Definition at line 343 of file Phonebook.h.
References requests.
Referenced by getLoadFactor(), and Run().
|
inlineprivate |
|
inline |
Definition at line 48 of file Phonebook.h.
References comm, muq::SamplingAlgorithms::ControlTag, muq::SamplingAlgorithms::GET_LARGEST_INDEX, muq::SamplingAlgorithms::GET_WORKGROUP, muq::SamplingAlgorithms::GET_WORKGROUPS, muq::SamplingAlgorithms::PhonebookServer::WorkerList::GetIdleFraction(), getLoadFactor(), getNumQueuedTasksForIndex(), muq::SamplingAlgorithms::PhonebookServer::WorkerList::GetWorkersReady(), muq::SamplingAlgorithms::PhonebookServer::WorkerList::NormalizedRegisteredReadyCounter(), muq::SamplingAlgorithms::PhonebookServer::WorkerList::NumWorkers(), muq::SamplingAlgorithms::PhonebookServer::WorkerList::NumWorkersReady(), phonebook, muq::Utilities::PhonebookBusy, muq::SamplingAlgorithms::QUIT, muq::SamplingAlgorithms::PhonebookServer::WorkerList::recheck, muq::SamplingAlgorithms::PhonebookServer::SampleRequest::requestedSampleIndex, requests, rescheduling_in_progress, muq::SamplingAlgorithms::PhonebookServer::WorkerList::ResetTimer(), scheduling_active, muq::SamplingAlgorithms::SCHEDULING_DONE, muq::SamplingAlgorithms::SCHEDULING_NEEDED, muq::SamplingAlgorithms::SCHEDULING_STOP, muq::SamplingAlgorithms::SET_WORKER_READY, muq::SamplingAlgorithms::SET_WORKGROUP, muq::SamplingAlgorithms::PhonebookServer::WorkerList::tick(), tracer, UnRegister(), and muq::SamplingAlgorithms::UNSET_WORKGROUP.
Referenced by muq::SamplingAlgorithms::StaticLoadBalancingMIMCMC::StaticLoadBalancingMIMCMC().
|
inlineprivate |
|
private |
Definition at line 381 of file Phonebook.h.
Referenced by Run().
|
private |
Definition at line 380 of file Phonebook.h.
Referenced by Run(), and UnRegister().
|
private |
Definition at line 377 of file Phonebook.h.
Referenced by getNumQueuedTasksForIndex(), getNumTasksQueuedTasksFromIndex(), and Run().
|
private |
Definition at line 384 of file Phonebook.h.
Referenced by Run().
|
private |
Definition at line 382 of file Phonebook.h.
Referenced by Run().
|
private |
Definition at line 383 of file Phonebook.h.
Referenced by Run().