![]() |
Rosetta
2021.16
|
#include <MPI_WorkUnitManager_Slave.hh>

Public Member Functions | |
| MPI_WorkUnitManager_Slave (core::Size my_master) | |
| ~MPI_WorkUnitManager_Slave () override=default | |
| void | go () override |
Public Member Functions inherited from protocols::wum::MPI_WorkUnitManager | |
| MPI_WorkUnitManager (char machine_letter) | |
| ~MPI_WorkUnitManager () override=default | |
Public Member Functions inherited from protocols::wum::WorkUnitManager | |
| WorkUnitManager () | |
| ~WorkUnitManager () override=default | |
| void | register_work_units (const protocols::wum::WorkUnitList &work_unit_list) |
| WorkUnitQueue & | outbound () |
| WorkUnitQueue & | inbound () |
| const WorkUnitQueue & | outbound () const |
| const WorkUnitQueue & | inbound () const |
Protected Member Functions | |
| void | init () override |
| void | process_inbound_wus () override |
| Process workunits on the slave node. I.e. Execute the WU jobs. More... | |
| void | process_outbound_wus () override |
| virtual void | request_new_jobs () |
| Slave: call a master to ask for more work. More... | |
| core::Size | get_my_master () |
Protected Member Functions inherited from protocols::wum::MPI_WorkUnitManager | |
| virtual void | print_stats () |
| Print a line with general run statistics, now. More... | |
| virtual void | print_stats_auto () |
| Print a line with general run statistics, only if enough time has pased since the last statistics printout. More... | |
| void | reset_timing_stats () |
| Reset all the stats counters. More... | |
| void | process_incoming_msgs (bool wait_until_message=false) |
| MPI Communication function. More... | |
| void | send_MPI_workunit (const WorkUnitBaseOP &wu, int dest_rank) const |
| Send a workunit to an arbitrary recipient. More... | |
| void | receive_MPI_workunit (core::Size node_rank=MPI_ANY_SOURCE) |
| Receive a workunit and add it to the inbound queue. By default accept any workunit or accept a specific source rank. Note that this function is blocking and will onyl return once a workunit has been received. More... | |
| void | send_next_WU_on_request () |
| char | get_machine_letter () |
| How many masters are there in total ? More... | |
| core::Real | start_timer (MPI_TIMING timing_mode) const |
| This initiates a new timer block. Note that there is no end_timer() function - you just keep calling start_timer, which automatically ends the previous block (and records times etc) More... | |
| void | print_timing_stats () |
| Display the timing statistics. More... | |
| long | wall_time () const |
| Return the total life time of this class in seconds. More... | |
Protected Member Functions inherited from protocols::wum::WorkUnitManager | |
| const protocols::wum::WorkUnitList & | work_unit_list () const |
| protocols::wum::WorkUnitList & | work_unit_list () |
| void | write_queues_to_file (const std::string &prefix="default") const |
| void | write_work_unit (const WorkUnitBaseOP &wu, std::ostream &out) const |
| void | write_queue (const WorkUnitQueue &the_queue, std::ostream &out) const |
| void | read_queues_from_file (const std::string &prefix="default") |
| bool | read_work_unit (WorkUnitBaseOP &qualified_wu, std::istream &in) |
| void | read_queue (WorkUnitQueue &the_queue, std::istream &in) |
| core::Size | mem_foot_print () const |
| return total memory foot print in bytes More... | |
Private Attributes | |
| const core::Size | my_master_ |
| bool | terminate_ |
Additional Inherited Members | |
Public Types inherited from protocols::wum::WorkUnitManager | |
| typedef WorkUnitQueue::iterator | iterator |
| typedef WorkUnitQueue::const_iterator | const_iterator |
Protected Types inherited from protocols::wum::MPI_WorkUnitManager | |
| enum | MPI_TIMING { TIMING_WAIT =0, TIMING_TRANSFER_SEND, TIMING_TRANSFER_RECV, TIMING_CPU, TIMING_IO_WRITE, TIMING_IO_READ, TIMING_IDLE, TIMING_end } |
| protocols::wum::MPI_WorkUnitManager_Slave::MPI_WorkUnitManager_Slave | ( | core::Size | my_master | ) |
References terminate_.
|
overridedefault |
|
inlineprotected |
Referenced by request_new_jobs().
|
overridevirtual |
Implements protocols::wum::MPI_WorkUnitManager.
References init(), protocols::wum::mpi_rank(), protocols::wum::MPI_WorkUnitManager::print_stats(), protocols::wum::MPI_WorkUnitManager::print_stats_auto(), process_inbound_wus(), protocols::wum::MPI_WorkUnitManager::process_incoming_msgs(), process_outbound_wus(), request_new_jobs(), terminate_, and TRDEBUG.
|
inlineoverrideprotectedvirtual |
Implements protocols::wum::MPI_WorkUnitManager.
Referenced by go().
|
overrideprotectedvirtual |
Process workunits on the slave node. I.e. Execute the WU jobs.
Implements protocols::wum::MPI_WorkUnitManager.
References protocols::wum::WorkUnitQueue::add(), protocols::wum::WorkUnitManager::inbound(), protocols::wum::mpi_rank(), protocols::wum::WorkUnitQueue::next(), protocols::wum::WorkUnitManager::outbound(), protocols::wum::WorkUnitQueue::pop_next(), protocols::wum::MPI_WorkUnitManager::start_timer(), terminate_, protocols::wum::MPI_WorkUnitManager::TIMING_CPU, protocols::wum::MPI_WorkUnitManager::TIMING_IDLE, and TRDEBUG.
Referenced by go().
|
overrideprotectedvirtual |
Implements protocols::wum::MPI_WorkUnitManager.
References protocols::wum::WorkUnitManager::outbound(), protocols::wum::WorkUnitQueue::pop_next(), and protocols::wum::MPI_WorkUnitManager::send_MPI_workunit().
Referenced by go().
|
protectedvirtual |
Slave: call a master to ask for more work.
References get_my_master(), protocols::wum::mpi_rank(), protocols::wum::MPI_WorkUnitManager::start_timer(), protocols::wum::MPI_WorkUnitManager::TIMING_CPU, protocols::wum::MPI_WorkUnitManager::TIMING_WAIT, and protocols::wum::WUM_MPI_REQUEST_WU.
Referenced by go().
|
private |
|
private |
Referenced by go(), MPI_WorkUnitManager_Slave(), and process_inbound_wus().
1.8.7