Refinement: the likelihood's D and beta fitted bin by bin on the refinement's threads

EstimateLikelihoodParameters fits each resolution bin on its own and writes only that bin's values, so
the bins run under ParallelFor; the result is the same, bit for bit. It was the largest single stage of
a refinement (107 calls, one core): 5reo 2.42 -> 0.56 s, 8dyz 2.46 -> 0.57 s, 9yl4 3.54 -> 0.88 s;
whole refinement 5reo 6.3 -> 4.8 s, 8dyz 6.9 -> 5.3 s (RTX 5080, -N 8, loaded box).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015CeEGgpKdfkCTJb3YNMJcu
(cherry picked from commit 85aa34d3031c8e36be4462fca544bc801af45d5a)
(cherry picked from commit d84ba55252adf455d5b4ba62052dfbafa6290a64)
This commit is contained in:
leonarski_f committed 2026-10-26 01:38:22 +01:00
1 parent 24b1711d64
commit dd49d4e2f2
3 files changed
+6 -5

No files matched your search

@@ -208,7 +208,7 @@ struct Context {
}
{
const RefinementStage s4("refit.ml");
EstimateLikelihoodParameters(refl, fmodel, rows);
EstimateLikelihoodParameters(refl, fmodel, rows, nthreads);
}
engine->SetRowModel(rows);
return ComputeRFactors(refl, fmodel);