Definition at line 31 of file LikelihoodJob.h.
Classes | |
struct | task_result_t |
struct | update_state_t |
Public Types | |
enum class | update_state_mode : int { parameters , offsetting } |
Public Member Functions | |
LikelihoodJob (std::shared_ptr< RooAbsL > _likelihood, std::shared_ptr< WrapperCalculationCleanFlags > calculation_is_clean, SharedOffset offset) | |
void | enableOffsetting (bool flag) override |
void | evaluate () override |
Triggers (possibly asynchronous) evaluation of the likelihood. | |
void | evaluate_task (std::size_t task) override |
ROOT::Math::KahanSum< double > | getResult () const override |
Return the latest result of a likelihood evaluation. | |
void | init_vars () |
bool | receive_task_result_on_master (const zmq::message_t &message) override |
void | send_back_task_result_from_worker (std::size_t task) override |
void | update_state () override |
Virtual function to update any necessary state on workers. | |
void | updateWorkersOffsetting () |
void | updateWorkersParameters () |
![]() | |
Job () | |
Job (const Job &other) | |
~Job () | |
void | gather_worker_results () |
Wait for all tasks to be retrieved for the current Job. | |
std::size_t | get_state_id () |
Get the current state identifier. | |
![]() | |
LikelihoodWrapper (const LikelihoodWrapper &)=delete | |
virtual | ~LikelihoodWrapper ()=default |
void | constOptimizeTestStatistic (RooAbsArg::ConstOpCode opcode, bool doAlsoTrackingOpt) |
double | defaultErrorLevel () const |
virtual std::string | GetName () const |
virtual std::string | GetTitle () const |
virtual bool | isOffsetting () const |
LikelihoodWrapper & | operator= (const LikelihoodWrapper &)=delete |
void | setApplyWeightSquared (bool flag) |
void | setOffsettingMode (OffsettingMode mode) |
virtual void | synchronizeParameterSettings (const std::vector< ROOT::Fit::ParameterSettings > ¶meter_settings) |
virtual void | synchronizeWithMinimizer (const ROOT::Math::MinimizerOptions &options) |
Synchronize minimizer settings with calculators in child classes. | |
virtual void | updateMinuitExternalParameterValues (const std::vector< double > &minuit_external_x) |
virtual void | updateMinuitInternalParameterValues (const std::vector< double > &minuit_internal_x) |
Minuit passes in parameter values that may not conform to RooFit internal standards (like applying range clipping), but that the specific calculator does need. | |
Private Member Functions | |
std::size_t | getNComponentTasks () |
std::size_t | getNEventTasks () |
Private Attributes | |
LikelihoodSerial | likelihood_serial_ |
std::size_t | n_component_tasks_ |
std::size_t | n_event_tasks_ |
std::size_t | n_tasks_at_workers_ = 0 |
SharedOffset::OffsetVec | offsets_previous_ |
ROOT::Math::KahanSum< double > | result_ |
std::vector< ROOT::Math::KahanSum< double > > | results_ |
RooArgList | save_vars_ |
RooArgList | vars_ |
Additional Inherited Members | |
![]() | |
static std::unique_ptr< LikelihoodWrapper > | create (LikelihoodMode likelihoodMode, std::shared_ptr< RooAbsL > likelihood, std::shared_ptr< WrapperCalculationCleanFlags > calculationIsClean, SharedOffset offset) |
Factory method. | |
![]() | |
JobManager * | get_manager () |
Get JobManager instance; create and activate if necessary. | |
![]() | |
LikelihoodWrapper (std::shared_ptr< RooAbsL > likelihood, std::shared_ptr< WrapperCalculationCleanFlags > calculation_is_clean, SharedOffset offset) | |
void | calculate_offsets () |
(Re)calculate (on each worker) all component offsets. | |
![]() | |
std::size_t | id_ |
std::size_t | state_id_ = 0 |
![]() | |
std::shared_ptr< WrapperCalculationCleanFlags > | calculation_is_clean_ |
bool | do_offset_ = false |
std::shared_ptr< RooAbsL > | likelihood_ |
LikelihoodType | likelihood_type_ |
OffsettingMode | offsetting_mode_ = OffsettingMode::legacy |
SharedOffset | shared_offset_ |
|
strong |
Enumerator | |
---|---|
parameters | |
offsetting |
Definition at line 53 of file LikelihoodJob.h.
RooFit::TestStatistics::LikelihoodJob::LikelihoodJob | ( | std::shared_ptr< RooAbsL > | _likelihood, |
std::shared_ptr< WrapperCalculationCleanFlags > | calculation_is_clean, | ||
SharedOffset | offset | ||
) |
Definition at line 35 of file LikelihoodJob.cxx.
|
overridevirtual |
Reimplemented from RooFit::TestStatistics::LikelihoodWrapper.
Definition at line 341 of file LikelihoodJob.cxx.
|
overridevirtual |
Triggers (possibly asynchronous) evaluation of the likelihood.
In parallel strategies, it may be advantageous to allow a calling process to continue on with other tasks while the calculation is offloaded to another process or device, like a GPU. For this reason, evaluate() does not return the result, this is done in getResult().
Implements RooFit::TestStatistics::LikelihoodWrapper.
Definition at line 192 of file LikelihoodJob.cxx.
|
overridevirtual |
Implements RooFit::MultiProcess::Job.
Definition at line 270 of file LikelihoodJob.cxx.
|
private |
Definition at line 128 of file LikelihoodJob.cxx.
|
private |
Definition at line 116 of file LikelihoodJob.cxx.
|
inlineoverridevirtual |
Return the latest result of a likelihood evaluation.
Returns the result that was stored after calling evaluate(). It is up to the implementer to make sure the stored value represents the most recent evaluation call, e.g. by using a mutex.
Implements RooFit::TestStatistics::LikelihoodWrapper.
Definition at line 39 of file LikelihoodJob.h.
void RooFit::TestStatistics::LikelihoodJob::init_vars | ( | ) |
Definition at line 51 of file LikelihoodJob.cxx.
|
overridevirtual |
Implements RooFit::MultiProcess::Job.
Definition at line 256 of file LikelihoodJob.cxx.
|
overridevirtual |
Implements RooFit::MultiProcess::Job.
Definition at line 241 of file LikelihoodJob.cxx.
|
overridevirtual |
Virtual function to update any necessary state on workers.
This function is called from the worker loop when something is received over the ZeroMQ "SUB" socket. The master process sends messages to workers on its "PUB" socket. Thus, we can update, for instance, parameter values on the worker that were updated since the last call on the master side.
Reimplemented from RooFit::MultiProcess::Job.
Definition at line 69 of file LikelihoodJob.cxx.
void RooFit::TestStatistics::LikelihoodJob::updateWorkersOffsetting | ( | ) |
Definition at line 187 of file LikelihoodJob.cxx.
void RooFit::TestStatistics::LikelihoodJob::updateWorkersParameters | ( | ) |
Definition at line 140 of file LikelihoodJob.cxx.
|
private |
Definition at line 84 of file LikelihoodJob.h.
|
private |
Definition at line 79 of file LikelihoodJob.h.
|
private |
Definition at line 78 of file LikelihoodJob.h.
|
private |
Definition at line 75 of file LikelihoodJob.h.
|
private |
Definition at line 83 of file LikelihoodJob.h.
|
private |
Definition at line 69 of file LikelihoodJob.h.
|
private |
Definition at line 70 of file LikelihoodJob.h.
|
private |
Definition at line 73 of file LikelihoodJob.h.
|
private |
Definition at line 72 of file LikelihoodJob.h.