Rosetta  2021.16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
protocols::jd3::dag_node_managers::EvenlyPartitionedNodeManager Class Reference

#include <EvenlyPartitionedNodeManager.hh>

Inheritance diagram for protocols::jd3::dag_node_managers::EvenlyPartitionedNodeManager:
Inheritance graph
[legend]

Public Member Functions

 EvenlyPartitionedNodeManager (core::Size job_offset, core::Size num_jobs_total, core::Size total_num_results_to_keep, core::Size num_partitions, core::Size result_threshold=0, bool return_results_depth_first=false)
 
- Public Member Functions inherited from protocols::jd3::dag_node_managers::NodeManager
 NodeManager (core::Size job_offset, core::Size num_jobs_total, core::Size num_partitions, utility::vector1< core::Size > num_results_to_keep_for_part, utility::vector1< core::Size > result_threshold_per_part=utility::vector1< core::Size >(0), bool return_results_depth_first=false)
 
 ~NodeManager () override
 
void clear ()
 
void note_job_completed (GlobalJobID global_job_id, core::Size nresults)
 please call this from your job queen's note_job_completed() function More...
 
virtual void register_result (GlobalJobID global_job_id, core::Size result_id, core::Real score, core::Size partition=1, uint64_t token=0)
 insert this result into the sorted container. Please specify which partition you want to put it in if you are not using the SimpleNodeManager More...
 
core::Size get_next_local_jobid ()
 This class can be used to determine which job should be submitted next. A value of 0 means that we are done submitting for this dag node. More...
 
void append_job_results_that_should_be_discarded (std::list< jd3::JobResultID > &list)
 This does not erase the list! We just add job result ids that have been eliminated from the results to keep. More...
 
jd3::JobResultID get_nth_job_result_id (core::Size n)
 this has better future-proofing over results_to_keep()[ int ]. Returns {0,0} if no result More...
 
bool done_submitting () const
 
bool jobs_are_still_running ()
 
bool all_results_are_in () const
 
bool all_waste_is_discarded () const
 
utility::vector1< ResultElementsresults_to_keep ()
 old way to access the results. get_nth_job_result_id() is prefered. More...
 
core::Size num_jobs () const
 
void set_num_jobs (core::Size new_num_jobs)
 
core::Size num_jobs_submitted () const
 
core::Size num_jobs_completed () const
 
core::Size num_results_to_keep () const
 
core::Size job_offset () const
 
core::Size num_results_total () const
 
void stop_early ()
 
bool stopped_early () const
 
void set_max_num_results_with_same_token_per_partition (core::Size setting)
 Perhaps you have a diversity requirement and do not want too many results with the same token (token can represent anything you want - as long as it can be stored as a core::Size), this setting is for you. More...
 
void set_return_results_depth_first (bool setting)
 please refer to protocols/jd3/dag_node_managers/NodeManagerStorageMatrix.hh for more details about this option More...
 

Additional Inherited Members

- Protected Member Functions inherited from protocols::jd3::dag_node_managers::NodeManager
core::Size num_results_received ()
 
bool ready_to_finish_early () const
 

Constructor & Destructor Documentation

protocols::jd3::dag_node_managers::EvenlyPartitionedNodeManager::EvenlyPartitionedNodeManager ( core::Size  job_offset,
core::Size  num_jobs_total,
core::Size  total_num_results_to_keep,
core::Size  num_partitions,
core::Size  result_threshold = 0,
bool  return_results_depth_first = false 
)
inline
Parameters
job_offsetThe node manager can only represent nodes where the jobids form a continuous range. That range should start at job_offset+1.
num_jobs_totalThe range mentioned previous should end with job_offset+num_jobs_total (inclusive)
num_results_to_keep_for_partmaximum number of results you want to keep. This will divided evenly among the partitions.
num_partitionsThe total number of partitions you want.
result_thresholdIf you want to have a result threshold, define it here. This will divided evenly among the partitions. We will stop submitting once every partition meets its result quota.

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