Rosetta Protocols  2014.35
Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
protocols::unfolded_state_energy_calculator::UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor Class Reference

#include <UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor.hh>

Public Types

typedef std::map< std::string,
utility::vector1
< core::scoring::EMapVector >
>::iterator 
uem_iter
 

Public Member Functions

 UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor ()
 ctor is protected; singleton pattern More...
 
virtual ~UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor ()
 dtor (don't put anything in here) More...
 
void add_unfolded_energy_data (std::string tlc, core::scoring::EMapVector const &scores)
 dummy for master/slave version More...
 
void set_energy_terms (core::scoring::EMapVector const &weights)
 dummy for master/slave version More...
 
- Public Member Functions inherited from protocols::jd2::MPIWorkPoolJobDistributor
virtual ~MPIWorkPoolJobDistributor ()
 dtor WARNING WARNING! SINGLETONS' DESTRUCTORS ARE NEVER CALLED IN MINI! DO NOT TRY TO PUT THINGS IN THIS FUNCTION! here's a nice link explaining why: http://www.research.ibm.com/designpatterns/pubs/ph-jun96.txt More...
 
virtual void go (protocols::moves::MoverOP mover)
 dummy for master/slave version More...
 
virtual core::Size get_new_job_id ()
 dummy for master/slave version More...
 
virtual void mark_current_job_id_for_repetition ()
 dummy for master/slave version More...
 
virtual void remove_bad_inputs_from_job_list ()
 dummy for master/slave version More...
 
virtual void job_succeeded (core::pose::Pose &pose, core::Real run_time, std::string const &tag)
 dummy for master/slave version More...
 
virtual void mpi_finalize (bool finalize)
 should the go() function call MPI_finalize()? It probably should, this is true by default. More...
 
- Public Member Functions inherited from protocols::jd2::JobDistributor
virtual ~JobDistributor ()
 
void go (protocols::moves::MoverOP mover, JobOutputterOP jo)
 invokes go, after setting JobOutputter More...
 
JobOP current_job () const
 Movers may ask their controlling job distributor for information about the current job. They may also load information into this job for later output. More...
 
std::string current_output_name () const
 Movers may ask their controlling job distributor for the output name as defined by the Job and JobOutputter. More...
 
JobOutputterOP job_outputter () const
 Movers (or derived classes) may ask for the JobOutputter. More...
 
void set_job_outputter (const JobOutputterOP &new_job_outputter)
 Movers (or derived classes) may ask for the JobOutputter. More...
 
JobInputterOP job_inputter () const
 JobInputter access. More...
 
JobInputterInputSource::Enum job_inputter_input_source () const
 The input source for the current JobInputter. More...
 
virtual void restart ()
 
core::Size total_nr_jobs () const
 
core::Size current_job_id () const
 integer access - which job are we on? More...
 
std::string get_current_batch () const
 what is the current batch ? — name refers to the flag-file used for this batch More...
 
virtual void add_batch (std::string const &, core::Size id=0)
 add a new batch ( name will be interpreted as flag_file ) More...
 
core::Size current_batch_id () const
 what is the current batch number ? — refers to position in batches_ More...
 

Protected Member Functions

virtual void master_go (protocols::moves::MoverOP mover)
 unforntunatly this is pretty much copied from the MPIWorkPoolJobDistributor, I should make that more compartmentalized More...
 
- Protected Member Functions inherited from protocols::jd2::MPIWorkPoolJobDistributor
 MPIWorkPoolJobDistributor ()
 ctor is protected; singleton pattern More...
 
virtual void handle_interrupt ()
 This function got called when job is not yet finished and got termitated abnormaly (ctrl-c, kill etc). when implimenting it in subclasses make sure to delete all in-progress-data that your job spawn. More...
 
virtual void slave_go (protocols::moves::MoverOP mover)
 Proceeds to the parent class go_main() as usual. More...
 
virtual core::Size master_get_new_job_id ()
 Always returns zero, simply increments next_job_to_assign_ to the next job that should be run based on what has been completeted and the overwrite flags. More...
 
virtual core::Size slave_get_new_job_id ()
 requests, receives, and returns a new job id from the master node or returns the current job id if the repeat_job_ flag is set to true More...
 
virtual void master_mark_current_job_id_for_repetition ()
 This should never be called as this is handled internally by the slave nodes, it utility_exits. More...
 
virtual void slave_mark_current_job_id_for_repetition ()
 Sets the repeat_job_ flag to true. More...
 
virtual void master_remove_bad_inputs_from_job_list ()
 Simply increments next_job_to_assign_ to the next job that should be run based on what has been completed and if the input job tag of the job marked as having bad input. More...
 
virtual void slave_remove_bad_inputs_from_job_list ()
 Sends a message to the head node that contains the id of a job that had bad input. More...
 
virtual void master_job_succeeded (core::pose::Pose &pose, std::string const &tag)
 This should never be called as this is handled internally by the slave nodes, it utility_exits. More...
 
virtual void slave_job_succeeded (core::pose::Pose &pose, std::string const &tag)
 Sends a message to the head node upon successful job completion to avoid output interleaving. More...
 
- Protected Member Functions inherited from protocols::jd2::JobDistributor
 JobDistributor ()
 Singleton instantiation pattern; Derived classes will call default ctor, but their ctors, too must be protected (and the JDFactory must be their friend.) More...
 
 JobDistributor (bool empty)
 MPIArchiveJobDistributor starts with an empty job-list... More...
 
void go_main (protocols::moves::MoverOP mover)
 Non-virtual get-job, run it, & output loop. This function is pretty generic and your subclass may be able to use it. It is NOT virtual - this implementation can be shared by (at least) the simple FileSystemJobDistributor, the MPIWorkPoolJobDistributor, and the MPIWorkPartitionJobDistributor. Do not feel that you need to use it as-is in your class - but DO plan on implementing all its functionality! More...
 
Jobs const & get_jobs () const
 Read access to private data for derived classes. More...
 
void mark_job_as_completed (core::Size job_id, core::Real run_time)
 Jobs is the container of Job objects need non-const to mark Jobs as completed on Master in MPI-JobDistributor. More...
 
void mark_job_as_bad (core::Size job_id)
 
ParserOP parser () const
 Parser access. More...
 
void begin_critical_section ()
 
void end_critical_section ()
 
bool obtain_new_job (bool re_consider_current_job=false)
 this function updates the current_job_id_ and current_job_ fields. The boolean return states whether or not a new job was obtained (if false, quit distributing!) More...
 
virtual void job_succeeded_additional_output (core::pose::Pose &pose, std::string const &tag)
 This function is called upon a successful job completion if there are additional poses generated by the mover base implementation is just a call to the job outputter. More...
 
virtual void job_failed (core::pose::Pose &, bool)
 This function is called when we give up on the job; it has been virtualized so BOINC and MPI can delay/protect output base implementation is just a call to the job outputter. More...
 
virtual void current_job_finished ()
 Derived classes are allowed to clean up any temporary files or data relating to the current job after the current job has completed. Called inside go_main loop. Default implementation is a no-op. More...
 
virtual void note_all_jobs_finished ()
 Derived classes are allowed to perform some kind of action when the job distributor runs out of jobs to execute. Called inside go_main. Default implementation is a no-op. More...
 
void clear_current_job_output ()
 
void set_batch_id (core::Size setting)
 set current_batch_id — eg for slave nodes in MPI framework More...
 
virtual bool next_batch ()
 switch current_batch_id_ to next batch More...
 
virtual void batch_underflow ()
 if end of batches_ reached via next_batch or set_batch_id ... More...
 
virtual void load_new_batch ()
 called by next_batch() or set_batch_id() to switch-over and restart JobDistributor on new batch More...
 
core::Size nr_batches () const
 how many batches are in our list ... this can change dynamically More...
 
std::string const & batch (core::Size batch_id)
 give name of batch with given id More...
 

Private Member Functions

void master_add_unfolded_energy_data (std::string tlc, core::scoring::EMapVector const &scores)
 dummy for master/slave version More...
 
void slave_add_unfolded_energy_data (std::string tlc, core::scoring::EMapVector const &scores)
 dummy for master/slave version More...
 
void master_set_energy_terms (core::scoring::EMapVector const &weights)
 dummy for master/slave version More...
 
void slave_set_energy_terms (core::scoring::EMapVector const &weights)
 dummy for master/slave version More...
 

Private Attributes

core::scoring::EMapVector energy_terms_
 
utility::vector1
< core::scoring::EMapVector
unweighted_energies_
 
std::map< std::string,
utility::vector1
< core::scoring::EMapVector > > 
unweighted_energies_map_
 

Additional Inherited Members

- Static Public Member Functions inherited from protocols::jd2::JobDistributor
static JobDistributorget_instance ()
 static function to get the instance of ( pointer to) this singleton class More...
 
- Static Protected Member Functions inherited from protocols::jd2::JobDistributor
static void setup_system_signal_handler (void(*prev_fn)(int)=jd2_signal_handler)
 Setting up callback function that will be call when our process is about to terminate. More...
 
static void remove_system_signal_handler ()
 Set signal handler back to default state. More...
 
static void jd2_signal_handler (int Signal)
 Default callback function for signal handling. More...
 
- Protected Attributes inherited from protocols::jd2::MPIWorkPoolJobDistributor
core::Size npes_
 total number of processing elements More...
 
core::Size rank_
 rank of the "local" instance More...
 
core::Size current_job_id_
 where slave jobs store current job id More...
 
core::Size next_job_to_assign_
 where master stores next job to assign (in a good state after get_new_job_id up until it's used) More...
 
core::Size bad_job_id_
 where master temporarily stores id of jobs with bad input More...
 
bool repeat_job_
 where slave stores whether it should repeat its current job id More...
 
bool finalize_MPI_
 should the go() function call MPI_finalize? There are very few cases where this should be false More...
 

Member Typedef Documentation

Constructor & Destructor Documentation

protocols::unfolded_state_energy_calculator::UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor::UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor ( )

ctor is protected; singleton pattern

ctor

protocols::unfolded_state_energy_calculator::UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor::~UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor ( )
virtual

dtor (don't put anything in here)

WARNING WARNING! SINGLETONS' DESTRUCTORS ARE NEVER CALLED IN MINI! DO NOT TRY TO PUT THINGS IN THIS FUNCTION! here's a nice link explaining why: http://www.research.ibm.com/designpatterns/pubs/ph-jun96.txt

Member Function Documentation

void protocols::unfolded_state_energy_calculator::UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor::add_unfolded_energy_data ( std::string  tlc,
core::scoring::EMapVector const &  scores 
)
void protocols::unfolded_state_energy_calculator::UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor::master_add_unfolded_energy_data ( std::string  tlc,
core::scoring::EMapVector const &  scores 
)
private

dummy for master/slave version

References unweighted_energies_map_.

Referenced by add_unfolded_energy_data(), and master_go().

void protocols::unfolded_state_energy_calculator::UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor::master_go ( protocols::moves::MoverOP  mover)
protectedvirtual
void protocols::unfolded_state_energy_calculator::UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor::master_set_energy_terms ( core::scoring::EMapVector const &  weights)
private

dummy for master/slave version

References energy_terms_, and n_score_types.

Referenced by master_go(), and set_energy_terms().

void protocols::unfolded_state_energy_calculator::UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor::set_energy_terms ( core::scoring::EMapVector const &  weights)
void protocols::unfolded_state_energy_calculator::UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor::slave_add_unfolded_energy_data ( std::string  tlc,
core::scoring::EMapVector const &  scores 
)
private
void protocols::unfolded_state_energy_calculator::UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor::slave_set_energy_terms ( core::scoring::EMapVector const &  weights)
private

Member Data Documentation

core::scoring::EMapVector protocols::unfolded_state_energy_calculator::UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor::energy_terms_
private
utility::vector1< core::scoring::EMapVector > protocols::unfolded_state_energy_calculator::UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor::unweighted_energies_
private
std::map<std::string, utility::vector1< core::scoring::EMapVector > > protocols::unfolded_state_energy_calculator::UnfoldedStateEnergyCalculatorMPIWorkPoolJobDistributor::unweighted_energies_map_
private

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