forked from root-project/root
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[WIP] PR#3 Vectorization: Added parallelized and vectorized Chi2 and …
…Unbinned Likelihood (root-project#567) * Add parallelization to Chi2 fitting. - Adapt vectorized TF1 for a Fitter with fixed parameters. - Made the Chi2FCN Evaluating loop independent of the size of the SIMD array. - Parallelized both vectorized and scalar versions of the Chi2FCN evaluation. - Added new fExecutionpolicy field to the Chi2FCN class that will determine the policy to use for the chi2 function evaluation: multiprocess, multithread or serial(none). * Provide automatic chunking in parallel Chi2 Fit * Change naming in template resolver * Fix error calling EvalParVec with ftype=1 * Template Paramfunctor Templates Paramfunctor and adds const parameters interfaces for evaluation. * Add vectorized Chi2 Evaluation * Add Functor type resolving to TF1 * Vectorize and parallelize unbinned likelihood fit * Introduce the Double_v type * Linked MathCore with Vc * Prepare for chunking * Adapt Fitter interfaces for vectorization * Improve use of VecCore * Change Mathcore linking from Thread to IMT * Allow the evaluation of Chi2 with coord errors * Improve identation * Disable the multiprocessing of the fitting * Cleaned remaining Vc directives * Link vecCore instead of Vc * Define R__HAS_VECCORE * Differentiate VecCore code at compile time * Fix warning due to unused args * Restore original conditions for Chi2Evaluation * Make fFunctor transient again * Reenable Chi2Gradient and Chi2Residual evaluations * Add ValuePtr documentation * Fix white lines between functions * Fix Chi2 evaluation of multidimensional data * Fix Memory alignment in the vectorized Likelihood fit. This reintroduces Vc dependencies * Fix for classic builds * Conditionate MathCore linking * Only Fit Multithreaded if IMT is enabled * Fix multidim integral error in the Chi2 fit * Fix LogL evaluation of multidimensional unbinned data * Improve VecCore usage * Simplify fFunctor check expressions * Move the Double_v type into the ROOT namespace * Make executionPolicy an enum * Explain functor operator resolving in TF1 * Improved TF1::fType documentation * Adapt execution policy option of the histogram fit * Completed move of executionPolicy to a enum * Add tests for the new parallel fitting. This tests check both Chi2 and Unbinned LogL fitting in each one of the execution policies available. * Correct function naming * Rename global variables to supress shadowing warning. * Remove legacy parallel implementations
- Loading branch information
Showing
31 changed files
with
1,648 additions
and
864 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.