Rosetta  2021.16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
protocols::mpi_refinement::MPI_Refine_Master Class Reference

#include <MPI_Refine_Master.hh>

Inheritance diagram for protocols::mpi_refinement::MPI_Refine_Master:
Inheritance graph
[legend]

Public Member Functions

 MPI_Refine_Master (core::Size my_emperor, core::Size master_rank)
 
 ~MPI_Refine_Master () override=default
 
void set_defaults ()
 
void go () override
 
- Public Member Functions inherited from protocols::mpi_refinement::MPI_Refinement
 MPI_Refinement (char machine_letter)
 
void set_defaults ()
 
 ~MPI_Refinement () 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 this may send something to Emperor too More...
 
void process_outbound_wus () override
 
bool process_round ()
 
bool process_termination ()
 
void create_WUs (const core::io::silent::SilentStructOP &start_struct, core::Size const i_ss)
 
void assign_loop_info (core::io::silent::SilentStructOP ss) const
 
void add_relax_simple (protocols::wum::SilentStructStore &start_decoys, core::Size const rerelax_type)
 
void check_library_expiry_dates ()
 hpark - let's not use this for now More...
 
void load_sample_weight ()
 
bool add_structure_to_library (core::io::silent::SilentStructOP ss, std::string add_algorithm="") override
 
void feedback_structures_to_emperor (bool get_feedback, std::string const pick_strategy, std::string const objfunction)
 
void feedback_structure_to_emperor (core::io::silent::SilentStructOP &ss)
 
void feedback_structure_to_emperor (core::io::silent::SilentStruct &pss)
 
core::Size n_to_gen () const
 
core::Size master_rank ()
 
core::Size my_emperor ()
 
- Protected Member Functions inherited from protocols::mpi_refinement::MPI_Refinement
void load_structures_from_cmdline_into_library (protocols::wum::SilentStructStore &library)
 
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_summary (std::string const prefix="SUMM ")
 
void print_library (protocols::wum::SilentStructStore &library, std::string const prefix="LIB ")
 
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 update_library_NSGAII (protocols::wum::SilentStructStore &new_structs)
 
void setup_multi_objective ()
 
void send_sortedpick_library_structs (core::Size dest_rank, core::Size nsend, std::string const scorename, bool const weighted, bool const inverse=false, core::Real const kT=0.2)
 
void send_random_library_structs (core::Size dest_rank, core::Size nsend)
 
void send_random_library_struct (core::Size dest_rank, core::Size ssid) const
 
void limit_library ()
 
void shave_library (protocols::wum::SilentStructStore &new_structs, std::string const scorename, core::Real const frac) const
 
void dump_structures (const protocols::wum::SilentStructStore &new_structs, bool score_only=true, std::string const prefix="") const
 
void set_ident_string (std::string new_ident)
 
void report_time () const
 
const std::string & mpi_resume ()
 
core::Sizetotaltime_loophash ()
 
protocols::wum::SilentStructStorelibrary_central ()
 
protocols::wum::SilentStructStorelibrary_ref ()
 
const std::string & mpi_feedback ()
 
void set_mpi_feedback (const std::string &mpi_feedback)
 
core::Size max_lib_size ()
 
core::Size max_ref_lib_size ()
 
void set_max_lib_size (core::Size max_lib_size)
 
void set_max_ref_lib_size (core::Size max_ref_lib_size)
 
core::Real score (const core::io::silent::SilentStructOP &ss) const
 
void retag_library (protocols::wum::SilentStructStore &store, std::string const prefix) const
 
std::string format_silent_struct (const core::io::silent::SilentStructOP &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::WorkUnitList
work_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 Member Functions

core::pose::Pose get_average_structure (protocols::wum::SilentStructStore &decoys, utility::vector1< core::Size > const touse, std::string const columnname, bool const minimize, bool const calcdev=false) const
 

Private Attributes

core::Size max_sample_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_
 
std::string loophash_scan_type_
 
core::Size ngen_serial_per_structure_
 
core::Real prob_terminus_ramapert_
 
utility::vector1< int > myslaves_
 
std::map< int, boolslaves_finished_
 
Scheduler scheduler_
 
bool sent_termination_
 
bool got_termination_signal_
 
bool asked_for_feedback_
 
core::Size sch_stage_
 
std::string sample_weight_str_
 
const core::Size my_emperor_
 
const core::Size master_rank_
 
core::Size n_lib_modified_
 
core::Size nchange_emperor_call_
 
std::map< std::string, core::Sizessids_by_name_
 

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::mpi_refinement::MPI_Refinement
MultiObjectiveOP fobj_
 
core::Size starttime_
 
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_
 
bool native_given_
 
core::pose::Pose native_pose_
 
core::pose::Pose pose0_
 

Constructor & Destructor Documentation

protocols::mpi_refinement::MPI_Refine_Master::MPI_Refine_Master ( core::Size  my_emperor,
core::Size  master_rank 
)
inline

References set_defaults().

protocols::mpi_refinement::MPI_Refine_Master::~MPI_Refine_Master ( )
overridedefault

Member Function Documentation

void protocols::mpi_refinement::MPI_Refine_Master::add_relax_simple ( protocols::wum::SilentStructStore start_decoys,
core::Size const  rerelax_type 
)
protected
bool protocols::mpi_refinement::MPI_Refine_Master::add_structure_to_library ( core::io::silent::SilentStructOP  ss,
std::string  add_algorithm = "" 
)
overrideprotectedvirtual

This is a virtual over load of the base class MPI_Refinement:: 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::mpi_refinement::MPI_Refinement.

void protocols::mpi_refinement::MPI_Refine_Master::assign_loop_info ( core::io::silent::SilentStructOP  ss) const
protected
void protocols::mpi_refinement::MPI_Refine_Master::check_library_expiry_dates ( )
protected

hpark - let's not use this for now

References core::sequence::end, protocols::noesy_assign::round(), and TRDEBUG.

void protocols::mpi_refinement::MPI_Refine_Master::create_WUs ( const core::io::silent::SilentStructOP start_struct,
core::Size const  i_ss 
)
protected
void protocols::mpi_refinement::MPI_Refine_Master::feedback_structure_to_emperor ( core::io::silent::SilentStructOP ss)
protected
void protocols::mpi_refinement::MPI_Refine_Master::feedback_structure_to_emperor ( core::io::silent::SilentStruct pss)
protected
void protocols::mpi_refinement::MPI_Refine_Master::feedback_structures_to_emperor ( bool  get_feedback,
std::string const  pick_strategy,
std::string const  objfunction 
)
protected

References core::sequence::end, and TRDEBUG.

core::pose::Pose protocols::mpi_refinement::MPI_Refine_Master::get_average_structure ( protocols::wum::SilentStructStore decoys,
utility::vector1< core::Size > const  touse,
std::string const  columnname,
bool const  minimize,
bool const  calcdev = false 
) const
private
void protocols::mpi_refinement::MPI_Refine_Master::go ( )
overridevirtual
void protocols::mpi_refinement::MPI_Refine_Master::init ( void  )
overrideprotectedvirtual
void protocols::mpi_refinement::MPI_Refine_Master::load_sample_weight ( )
protected
core::Size protocols::mpi_refinement::MPI_Refine_Master::master_rank ( )
inlineprotected

References master_rank_.

core::Size protocols::mpi_refinement::MPI_Refine_Master::my_emperor ( )
inlineprotected

References my_emperor_.

core::Size protocols::mpi_refinement::MPI_Refine_Master::n_to_gen ( ) const
inlineprotected
void protocols::mpi_refinement::MPI_Refine_Master::process_inbound_wus ( )
overrideprotectedvirtual
void protocols::mpi_refinement::MPI_Refine_Master::process_outbound_wus ( )
overrideprotectedvirtual
bool protocols::mpi_refinement::MPI_Refine_Master::process_round ( )
protected
bool protocols::mpi_refinement::MPI_Refine_Master::process_termination ( )
protected
void protocols::mpi_refinement::MPI_Refine_Master::set_defaults ( )

Referenced by MPI_Refine_Master().

Member Data Documentation

bool protocols::mpi_refinement::MPI_Refine_Master::asked_for_feedback_
private
core::Size protocols::mpi_refinement::MPI_Refine_Master::batch_relax_absolute_max_
private
core::Size protocols::mpi_refinement::MPI_Refine_Master::batch_relax_chunks_
private
core::Size protocols::mpi_refinement::MPI_Refine_Master::expire_after_rounds_
private
bool protocols::mpi_refinement::MPI_Refine_Master::got_termination_signal_
private
core::Size protocols::mpi_refinement::MPI_Refine_Master::library_expiry_time_
private
std::string protocols::mpi_refinement::MPI_Refine_Master::loophash_scan_type_
private
core::Size protocols::mpi_refinement::MPI_Refine_Master::loophash_split_size_
private
const core::Size protocols::mpi_refinement::MPI_Refine_Master::master_rank_
private

Referenced by master_rank().

core::Size protocols::mpi_refinement::MPI_Refine_Master::max_sample_per_structure_
private
bool protocols::mpi_refinement::MPI_Refine_Master::mpi_master_save_score_only_
private
const core::Size protocols::mpi_refinement::MPI_Refine_Master::my_emperor_
private

Referenced by my_emperor().

utility::vector1< int > protocols::mpi_refinement::MPI_Refine_Master::myslaves_
private
core::Size protocols::mpi_refinement::MPI_Refine_Master::n_lib_modified_
private
core::Size protocols::mpi_refinement::MPI_Refine_Master::nchange_emperor_call_
private
core::Size protocols::mpi_refinement::MPI_Refine_Master::ngen_serial_per_structure_
private
core::Size protocols::mpi_refinement::MPI_Refine_Master::outbound_wu_buffer_size_
private
core::Real protocols::mpi_refinement::MPI_Refine_Master::prob_terminus_ramapert_
private
std::string protocols::mpi_refinement::MPI_Refine_Master::sample_weight_str_
private
core::Size protocols::mpi_refinement::MPI_Refine_Master::sch_stage_
private
Scheduler protocols::mpi_refinement::MPI_Refine_Master::scheduler_
private

Referenced by n_to_gen().

bool protocols::mpi_refinement::MPI_Refine_Master::sent_termination_
private
std::map< int, bool > protocols::mpi_refinement::MPI_Refine_Master::slaves_finished_
private
std::map< std::string, core::Size > protocols::mpi_refinement::MPI_Refine_Master::ssids_by_name_
private

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