Rosetta
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
protocols::loophash::MPI_LoopHashRefine_Master Class Reference

#include <MPI_LoopHashRefine_Master.hh>

Inheritance diagram for protocols::loophash::MPI_LoopHashRefine_Master:
Inheritance graph
[legend]

Public Member Functions

 MPI_LoopHashRefine_Master (core::Size my_emperor, core::Size master_rank)
 
 ~MPI_LoopHashRefine_Master () override=default
 
void set_defaults ()
 
void go () override
 
- Public Member Functions inherited from protocols::loophash::MPI_LoopHashRefine
 MPI_LoopHashRefine (char machine_letter)
 
void set_defaults ()
 
 ~MPI_LoopHashRefine () override=default
 
- 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)
 
WorkUnitQueueoutbound ()
 
WorkUnitQueueinbound ()
 
const WorkUnitQueueoutbound () const
 
const WorkUnitQueueinbound () const
 

Protected Member Functions

void init () override
 
void process_inbound_wus () override
 figure out what to do with incoming WUs. Some will be returning WUs that need to be resent others will be finished and will need reintegration into the library More...
 
void process_outbound_wus () override
 
void create_loophash_WUs (const core::io::silent::SilentStructOP &start_struct)
 
void add_relax_batch (protocols::wum::SilentStructStore &start_decoys)
 
void check_library_expiry_dates ()
 
void load_sample_weight ()
 
bool add_structure_to_library (core::io::silent::SilentStruct &pss, std::string add_algorithm="") override
 
void report_structure_to_emperor (core::io::silent::SilentStructOP &ss)
 
void report_structure_to_emperor (core::io::silent::SilentStruct &pss)
 
core::Real ev_objective_function (core::io::silent::SilentStructOP &ss)
 
core::Size master_rank ()
 
core::Size my_emperor ()
 
- Protected Member Functions inherited from protocols::loophash::MPI_LoopHashRefine
void load_structures_from_cmdline_into_library (core::Size structure_read_offset)
 
void save_state (std::string prefix="default")
 
void save_state_auto ()
 
void load_state (std::string prefix="default")
 
void print_stats () override
 Print a line with general run statistics, now. More...
 
void print_library ()
 
virtual bool add_structures_to_library (protocols::wum::SilentStructStore &new_structs, std::string add_algorithm="")
 
bool add_structure_to_library_direct (core::io::silent::SilentStruct &pss)
 
bool add_structure_to_library_add_n_replace (core::io::silent::SilentStruct &pss)
 
bool add_structure_to_library_single_replace (core::io::silent::SilentStruct &pss)
 
void send_random_library_struct (core::Size dest_rank, core::Size ssid) const
 
void limit_library ()
 
void dump_structures (const protocols::wum::SilentStructStore &new_structs, bool score_only=true) const
 
void set_ident_string (std::string new_ident)
 
const std::string & mpi_resume ()
 
core::Sizetotaltime_loophash ()
 
protocols::wum::SilentStructStorelibrary_central ()
 
const std::string & mpi_feedback ()
 
void set_mpi_feedback (const std::string &mpi_feedback)
 
core::Size max_lib_size ()
 
void set_max_lib_size (core::Size max_lib_size)
 
core::Real objective_function (const core::io::silent::SilentStructOP &ss) const
 
core::Real score (const core::io::silent::SilentStructOP &ss) const
 
std::string format_silent_struct (const core::io::silent::SilentStructOP &ss) const
 
core::Real objective_function (const core::io::silent::SilentStruct &ss) const
 
core::Real score (const core::io::silent::SilentStruct &ss) const
 
std::string format_silent_struct (const core::io::silent::SilentStruct &ss) const
 
- Protected Member Functions inherited from protocols::wum::MPI_WorkUnitManager
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::WorkUnitListwork_unit_list () const
 
protocols::wum::WorkUnitListwork_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

core::Size max_loophash_per_structure_
 
core::Size batch_relax_chunks_
 
core::Size batch_relax_absolute_max_
 
core::Size outbound_wu_buffer_size_
 
core::Size loophash_split_size_
 
core::Size library_expiry_time_
 
core::Size expire_after_rounds_
 
bool mpi_master_save_score_only_
 
protocols::wum::SilentStructStore to_be_relaxed_
 
std::string sample_weight_str_
 
const core::Size my_emperor_
 
const core::Size master_rank_
 
std::string objective_function
 

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
}
 
- Protected Attributes inherited from protocols::loophash::MPI_LoopHashRefine
core::Size totaltime_loophash_
 
core::Size n_loophash_
 
core::Size totaltime_batchrelax_
 
core::Size n_batchrelax_
 
core::Size total_structures_
 
core::Size total_structures_relax_
 
core::Size total_metropolis_
 
core::Size total_metropolis_accepts_
 

Constructor & Destructor Documentation

◆ MPI_LoopHashRefine_Master()

protocols::loophash::MPI_LoopHashRefine_Master::MPI_LoopHashRefine_Master ( core::Size  my_emperor,
core::Size  master_rank 
)
inline

References set_defaults().

◆ ~MPI_LoopHashRefine_Master()

protocols::loophash::MPI_LoopHashRefine_Master::~MPI_LoopHashRefine_Master ( )
overridedefault

Member Function Documentation

◆ add_relax_batch()

void protocols::loophash::MPI_LoopHashRefine_Master::add_relax_batch ( protocols::wum::SilentStructStore start_decoys)
protected

◆ add_structure_to_library()

bool protocols::loophash::MPI_LoopHashRefine_Master::add_structure_to_library ( core::io::silent::SilentStruct pss,
std::string  add_algorithm = "" 
)
overrideprotectedvirtual

This is a virtual over load of the base class MPI_LoopHashRefine:: add_structure_to_library with an extra behavioural step that reports any successful library add-ons to the emperor. This behaviour is master specific and thus should not be in the base class.

Reimplemented from protocols::loophash::MPI_LoopHashRefine.

References protocols::loophash::TR().

◆ check_library_expiry_dates()

void protocols::loophash::MPI_LoopHashRefine_Master::check_library_expiry_dates ( )
protected

◆ create_loophash_WUs()

void protocols::loophash::MPI_LoopHashRefine_Master::create_loophash_WUs ( const core::io::silent::SilentStructOP start_struct)
protected

◆ ev_objective_function()

core::Real protocols::loophash::MPI_LoopHashRefine_Master::ev_objective_function ( core::io::silent::SilentStructOP ss)
protected

◆ go()

void protocols::loophash::MPI_LoopHashRefine_Master::go ( )
overridevirtual

◆ init()

void protocols::loophash::MPI_LoopHashRefine_Master::init ( void  )
overrideprotectedvirtual

◆ load_sample_weight()

void protocols::loophash::MPI_LoopHashRefine_Master::load_sample_weight ( )
protected

◆ master_rank()

core::Size protocols::loophash::MPI_LoopHashRefine_Master::master_rank ( )
inlineprotected

References master_rank_.

◆ my_emperor()

core::Size protocols::loophash::MPI_LoopHashRefine_Master::my_emperor ( )
inlineprotected

References my_emperor_.

◆ process_inbound_wus()

void protocols::loophash::MPI_LoopHashRefine_Master::process_inbound_wus ( )
overrideprotectedvirtual

figure out what to do with incoming WUs. Some will be returning WUs that need to be resent others will be finished and will need reintegration into the library

Implements protocols::wum::MPI_WorkUnitManager.

References protocols::wum::SilentStructStore::all_add_energy(), protocols::wum::SilentStructStore::all_sort_silent_scores(), protocols::wum::SilentStructStore::size(), protocols::loophash::TR(), and TRDEBUG.

◆ process_outbound_wus()

void protocols::loophash::MPI_LoopHashRefine_Master::process_outbound_wus ( )
overrideprotectedvirtual

◆ report_structure_to_emperor() [1/2]

void protocols::loophash::MPI_LoopHashRefine_Master::report_structure_to_emperor ( core::io::silent::SilentStruct pss)
protected

◆ report_structure_to_emperor() [2/2]

void protocols::loophash::MPI_LoopHashRefine_Master::report_structure_to_emperor ( core::io::silent::SilentStructOP ss)
protected

◆ set_defaults()

void protocols::loophash::MPI_LoopHashRefine_Master::set_defaults ( )

Member Data Documentation

◆ batch_relax_absolute_max_

core::Size protocols::loophash::MPI_LoopHashRefine_Master::batch_relax_absolute_max_
private

◆ batch_relax_chunks_

core::Size protocols::loophash::MPI_LoopHashRefine_Master::batch_relax_chunks_
private

◆ expire_after_rounds_

core::Size protocols::loophash::MPI_LoopHashRefine_Master::expire_after_rounds_
private

◆ library_expiry_time_

core::Size protocols::loophash::MPI_LoopHashRefine_Master::library_expiry_time_
private

◆ loophash_split_size_

core::Size protocols::loophash::MPI_LoopHashRefine_Master::loophash_split_size_
private

◆ master_rank_

const core::Size protocols::loophash::MPI_LoopHashRefine_Master::master_rank_
private

Referenced by master_rank().

◆ max_loophash_per_structure_

core::Size protocols::loophash::MPI_LoopHashRefine_Master::max_loophash_per_structure_
private

◆ mpi_master_save_score_only_

bool protocols::loophash::MPI_LoopHashRefine_Master::mpi_master_save_score_only_
private

◆ my_emperor_

const core::Size protocols::loophash::MPI_LoopHashRefine_Master::my_emperor_
private

Referenced by my_emperor().

◆ objective_function

std::string protocols::loophash::MPI_LoopHashRefine_Master::objective_function
private

◆ outbound_wu_buffer_size_

core::Size protocols::loophash::MPI_LoopHashRefine_Master::outbound_wu_buffer_size_
private

◆ sample_weight_str_

std::string protocols::loophash::MPI_LoopHashRefine_Master::sample_weight_str_
private

◆ to_be_relaxed_

protocols::wum::SilentStructStore protocols::loophash::MPI_LoopHashRefine_Master::to_be_relaxed_
private

The documentation for this class was generated from the following files: