Rosetta 3.4
Public Types | Public Member Functions | Protected Types | Protected Member Functions
protocols::jobdist::PlainSilentFileJobDistributor Class Reference

Distributor for use with silent files. More...

#include <JobDistributors.hh>

Inheritance diagram for protocols::jobdist::PlainSilentFileJobDistributor:
Inheritance graph
[legend]
Collaboration diagram for protocols::jobdist::PlainSilentFileJobDistributor:
Collaboration graph
[legend]

List of all members.

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.
void dump_silent (int const &struct_n, core::io::silent::SilentStruct &silent_struct)
 Writes the silent_struct to a silen file.
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.
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.

Protected Types

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.

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 TAG_NUM_FORMAT_LENGTH.

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

bool protocols::jobdist::PlainSilentFileJobDistributor::is_finished ( BasicJobOP const &  job,
int  struct_n 
) [protected, virtual]

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().

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().

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 protocols::swa::rna::file_exists(), get_output_filename(), and core::io::silent::SilentFileData::read_tags_fast().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines