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

Distributor for use with silent files. More...

#include <JobDistributors.hh>

Public Types

typedef BaseJobDistributor parent
 

Public Member Functions

 PlainSilentFileJobDistributor (JobVector jobs)
 
virtual ~PlainSilentFileJobDistributor ()
 
virtual void dump_pose (BasicJobOP const &job, int const &nstruct, bool const &fullatom, core::pose::Pose &pose)
 Writes pose and basic score data to a standard silent file. More...
 
void dump_silent (int const &struct_n, core::io::silent::SilentStruct &silent_struct)
 Writes the silent_struct to a silen file. More...
 
void dump_silent (core::io::silent::SilentFileData const &silent_file)
 
virtual std::string get_output_tag (BasicJobOP const &job, int const &struct_n) const
 
virtual std::string get_current_output_tag ()
 
virtual std::string get_output_filename ()
 
virtual void startup ()
 Must be called by client before first call to next_job(). If overriden by a subclass, it MUST call the superclass implementation. More...
 
virtual void shutdown ()
 Must be called by client after last call to next_job(). If overriden by a subclass, it MUST call the superclass implementation. More...
 
- Public Member Functions inherited from protocols::jobdist::BaseJobDistributor
 BaseJobDistributor (JobVector jobs)
 
 BaseJobDistributor (BaseJobDistributor const &)
 
virtual ~BaseJobDistributor ()
 
bool next_job (BasicJobOP &job, int &struct_n)
 If true, sets the next Job and nstruct number to be processed. Deliberately not virtual: should not be overriden. Uses the "find_available_job" method, which is common to both MPI and standard protocols, but used in slightly different manners. More...
 
virtual void begin_critical_section ()
 Signal that if at all possible, we would like to not be killed while in the critical section. If overriden by a subclass, it MUST call the superclass implementation. More...
 
virtual void end_critical_section ()
 Signal that if at all possible, we would like to not be killed while in the critical section. If overriden by a subclass, it MUST call the superclass implementation. More...
 
virtual void dump_pose_and_map (std::string const &, core::pose::Pose &)
 Virtual function for dump_pose that is needed for main_plain_mover. More...
 
virtual void temp_file (std::string const &)
 Virtual function for temp_file main_plain_mover. More...
 
virtual void score_map (std::map< std::string, core::Real > &)
 Virtual function for score_map that is needed for main_plain_mover sets the score_map. More...
 
void disable_ignorefinished ()
 
void enable_ignorefinished ()
 
void disable_output ()
 
void enable_output ()
 
void disable_inprogress ()
 
void enable_inprogress ()
 
bool ignorefinished () const
 
bool nooutput () const
 
bool inprogress () const
 
void set_proc_id (core::Size proc_id, core::Size nproc)
 

Protected Types

typedef utility::vector1
< BasicJobOP
JobVector
 
- Protected Types inherited from protocols::jobdist::BaseJobDistributor
typedef utility::vector1
< BasicJobOP
JobVector
 

Protected Member Functions

virtual bool is_finished (BasicJobOP const &job, int struct_n)
 Is the given nstruct number of the given input job already finished by the local process? To be implemented by subclasses. More...
 
- Protected Member Functions inherited from protocols::jobdist::BaseJobDistributor
virtual void checkpoint_read ()
 Restore state from checkpoint file, if it exists. More...
 
virtual void checkpoint_write ()
 Save state to checkpoint file, overwriting previous. More...
 
virtual void checkpoint_clear ()
 Remove checkpoint file (at end of batch) More...
 
int current_nstruct ()
 accessor for current_nstruct_ More...
 
BasicJobOP current_job ()
 accessor for current_job owning pointer More...
 
int get_next_random_range (int low, int high)
 

Private Attributes

utility::vector1< std::stringused_tags_
 

Additional Inherited Members

- Protected Attributes inherited from protocols::jobdist::BaseJobDistributor
bool ignorefinished_
 ignore already done jobs - redo everything ! More...
 
bool nooutput_
 do not write files - useful such things as statistics or rescoring ! More...
 
bool inprogress_
 write .in_progress files for multiple processor runs More...
 
int start_time_
 starttime More...
 
int random_counter_
 RandomStore - needed for. More...
 
utility::vector1< doublerandom_store_
 

Detailed Description

Distributor for use with silent files.

This class is deliberately designed for each process to work on its own silent file (and preferrably in its own directory); unlike Rosetta++, we DO NOT share silent files among multiple processes. First, true atomic file locking is impossible on most distributed file systems (e.g. NFS), meaning that files may be corrupted by multiple simultaneous writes. For long-running processes, collisions may be rare, but as we scale to more processors it becomes increasingly dangerous. Second, many processes writing to the same file (or even directory) can cause tremendous file system bottlenecks, possibly bringing down the cluster; ask Keith or Chance in the Baker lab for details.

Member Typedef Documentation

Constructor & Destructor Documentation

protocols::jobdist::PlainSilentFileJobDistributor::PlainSilentFileJobDistributor ( JobVector  jobs)
protocols::jobdist::PlainSilentFileJobDistributor::~PlainSilentFileJobDistributor ( )
virtual

Member Function Documentation

void protocols::jobdist::PlainSilentFileJobDistributor::dump_pose ( BasicJobOP const &  job,
int const &  nstruct,
bool const &  fullatom,
core::pose::Pose pose 
)
virtual
void protocols::jobdist::PlainSilentFileJobDistributor::dump_silent ( int const &  struct_n,
core::io::silent::SilentStruct silent_struct 
)
void protocols::jobdist::PlainSilentFileJobDistributor::dump_silent ( core::io::silent::SilentFileData const &  silent_file)
std::string protocols::jobdist::PlainSilentFileJobDistributor::get_current_output_tag ( )
virtual
std::string protocols::jobdist::PlainSilentFileJobDistributor::get_output_filename ( )
virtual
std::string protocols::jobdist::PlainSilentFileJobDistributor::get_output_tag ( BasicJobOP const &  job,
int const &  struct_n 
) const
virtual

returns an output tag generated as follows "S_" + the current jobs tag + "option[ user_tag ]" + nstruct

References basic::options::option, prefix, TAG_NUM_FORMAT_LENGTH, user, user_tag, and basic::options::OptionKeys::out::user_tag.

Referenced by dump_pose(), get_current_output_tag(), and is_finished().

bool protocols::jobdist::PlainSilentFileJobDistributor::is_finished ( BasicJobOP const &  job,
int  struct_n 
)
protectedvirtual

Is the given nstruct number of the given input job already finished by the local process? To be implemented by subclasses.

Implements protocols::jobdist::BaseJobDistributor.

References get_output_tag(), and used_tags_.

void protocols::jobdist::PlainSilentFileJobDistributor::shutdown ( )
virtual

Must be called by client after last call to next_job(). If overriden by a subclass, it MUST call the superclass implementation.

If overriden by a subclass, it MUST call the superclass implementation.

Reimplemented from protocols::jobdist::BaseJobDistributor.

References core::io::silent::gzip(), and protocols::jobdist::BaseJobDistributor::shutdown().

void protocols::jobdist::PlainSilentFileJobDistributor::startup ( )
virtual

Must be called by client before first call to next_job(). If overriden by a subclass, it MUST call the superclass implementation.

If overriden by a subclass, it MUST call the superclass implementation.

Reimplemented from protocols::jobdist::BaseJobDistributor.

References utility::file::file_exists(), get_output_filename(), core::io::silent::SilentFileData::read_tags_fast(), protocols::jobdist::BaseJobDistributor::startup(), and used_tags_.

Member Data Documentation

utility::vector1< std::string > protocols::jobdist::PlainSilentFileJobDistributor::used_tags_
private

Referenced by is_finished(), and startup().


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