![]() |
Rosetta Protocols
2014.35
|
Distributor for use with atomtree_diff silent files. More...
#include <JobDistributors.hh>
Public Types | |
typedef BaseJobDistributor | parent |
Public Member Functions | |
AtomTreeDiffJobDistributor (JobVector jobs, std::string outfile_name) | |
virtual | ~AtomTreeDiffJobDistributor () |
virtual void | dump_pose (std::string const &tag, std::map< std::string, core::Real > const &scores, core::pose::Pose const &ref_pose, core::pose::Pose const &pose) |
Appends pose to the silent file. More... | |
virtual void | set_precision (int bb_precision, int sc_precision, int bondlen_precision) |
Sets number of digits used in writing atomtree diff. 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... | |
![]() | |
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 | 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 | 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) |
virtual std::string | get_current_output_tag () |
get output_tag for current job's current nstruct More... | |
virtual std::string | get_output_filename () |
Protected Types | |
typedef utility::vector1 < BasicJobOP > | JobVector |
![]() | |
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... | |
![]() | |
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::io::ozstream | out_ |
std::set< std::string > | used_tags_ |
core::pose::Pose const * | last_ref_pose_ |
int | bb_precision_ |
int | sc_precision_ |
int | bondlen_precision_ |
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< double > | random_store_ |
Distributor for use with atomtree_diff 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::AtomTreeDiffJobDistributor::AtomTreeDiffJobDistributor | ( | JobVector | jobs, |
std::string | outfile_name | ||
) |
References utility::file::FileName::base(), utility::file::FileName::ext(), utility::file::file_exists(), utility::io::ozstream::good(), core::import_pose::atom_tree_diffs::header_from_atom_tree_diff(), in, core::minirosetta_svn_url(), core::minirosetta_svn_version(), utility::file::FileName::name(), utility::io::ozstream::open(), utility::io::ozstream::open_append(), basic::options::option, out_, path, utility::file::FileName::path(), basic::options::OptionKeys::out::path::pdb, basic::options::OptionKeys::out::pdb_gz, basic::options::OptionKeys::out::prefix, basic::options::OptionKeys::out::suffix, used_tags_, utility_exit_with_message, basic::options::OptionKeys::run::version, and utility::file::FileName::vol().
|
virtual |
|
virtual |
Appends pose to the silent file.
References bb_precision_, protocols::jobdist::BaseJobDistributor::begin_critical_section(), bondlen_precision_, core::import_pose::atom_tree_diffs::dump_atom_tree_diff(), core::import_pose::atom_tree_diffs::dump_reference_pose(), protocols::jobdist::BaseJobDistributor::end_critical_section(), basic::Error(), utility::io::ozstream::flush(), last_ref_pose_, out_, sc_precision_, utility::io::ozstream::uncompressed(), and used_tags_.
Referenced by protocols::jobdist::main_atom_tree_diff_mover().
|
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 used_tags_.
|
virtual |
Sets number of digits used in writing atomtree diff.
References bb_precision_, bondlen_precision_, and sc_precision_.
|
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 utility::io::ozstream::close(), out_, and protocols::jobdist::BaseJobDistributor::shutdown().
Referenced by protocols::jobdist::main_atom_tree_diff_mover().
|
private |
Referenced by dump_pose(), and set_precision().
|
private |
Referenced by dump_pose(), and set_precision().
|
private |
Referenced by dump_pose().
|
private |
Referenced by AtomTreeDiffJobDistributor(), dump_pose(), and shutdown().
|
private |
Referenced by dump_pose(), and set_precision().
|
private |
Referenced by AtomTreeDiffJobDistributor(), dump_pose(), and is_finished().