Something went wrong on our end
-
Xavier Valls Pla authored
* 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
Xavier Valls Pla authored* 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