![]() |
Rosetta
2020.50
|
Distributor for use with silent files. More...
#include <JobDistributors.hh>
Public Types | |
typedef BaseJobDistributor | parent |
Public Member Functions | |
PlainSilentFileJobDistributor (JobVector jobs) | |
~PlainSilentFileJobDistributor () override | |
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 |
std::string | get_current_output_tag () override |
std::string | get_output_filename () override |
void | startup () override |
Must be called by client before first call to next_job(). If overriden by a subclass, it MUST call the superclass implementation. More... | |
void | shutdown () override |
Must be called by client after last call to next_job(). If overriden by a subclass, it MUST call the superclass implementation. More... | |
![]() | |
BaseJobDistributor (JobVector const &jobs) | |
BaseJobDistributor (BaseJobDistributor const &) | |
~BaseJobDistributor () override | |
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 |
![]() | |
typedef utility::vector1 < BasicJobOP > | JobVector |
Protected Member Functions | |
bool | is_finished (BasicJobOP const &job, int struct_n) override |
Is the given nstruct number of the given input job already finished by the local process? To be implemented by subclasses. More... | |
![]() | |
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::string > | used_tags_ |
Additional Inherited Members | |
![]() | |
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< core::Real > | random_store_ |
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.
|
protected |
protocols::jobdist::PlainSilentFileJobDistributor::PlainSilentFileJobDistributor | ( | JobVector | jobs | ) |
|
overridedefault |
|
virtual |
Writes pose and basic score data to a standard silent file.
References protocols::jobdist::BaseJobDistributor::begin_critical_section(), protocols::jobdist::BaseJobDistributor::end_critical_section(), get_output_filename(), get_output_tag(), and protocols::jobdist::BaseJobDistributor::nooutput().
void protocols::jobdist::PlainSilentFileJobDistributor::dump_silent | ( | int const & | struct_n, |
core::io::silent::SilentStruct & | silent_struct | ||
) |
Writes the silent_struct to a silen file.
References protocols::jobdist::BaseJobDistributor::begin_critical_section(), protocols::jobdist::BaseJobDistributor::end_critical_section(), and get_output_filename().
Referenced by protocols::jobdist::universal_main().
void protocols::jobdist::PlainSilentFileJobDistributor::dump_silent | ( | core::io::silent::SilentFileData const & | silent_file | ) |
|
overridevirtual |
override base class function to
Reimplemented from protocols::jobdist::BaseJobDistributor.
References protocols::jobdist::BaseJobDistributor::current_job(), protocols::jobdist::BaseJobDistributor::current_nstruct(), and get_output_tag().
|
overridevirtual |
Reimplemented from protocols::jobdist::BaseJobDistributor.
References protocols::wum::mpi_rank(), and core::id::to_string().
Referenced by dump_pose(), dump_silent(), and startup().
|
virtual |
returns an output tag generated as follows "S_" + the current jobs tag + "option[ user_tag ]" + nstruct
References TAG_NUM_FORMAT_LENGTH.
Referenced by dump_pose(), get_current_output_tag(), and is_finished().
|
overrideprotectedvirtual |
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_.
|
overridevirtual |
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().
|
overridevirtual |
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 get_output_filename(), core::io::silent::SilentFileData::read_tags_fast(), protocols::jobdist::BaseJobDistributor::startup(), and used_tags_.
|
private |
Referenced by is_finished(), and startup().