Skip to content

[WIP] More sophisticated RHist binning comparisons#5725

Closed
HadrienG2 wants to merge 78 commits intoroot-project:masterfrom
HadrienG2:binning-cmp
Closed

[WIP] More sophisticated RHist binning comparisons#5725
HadrienG2 wants to merge 78 commits intoroot-project:masterfrom
HadrienG2:binning-cmp

Conversation

@HadrienG2
Copy link
Contributor

@HadrienG2 HadrienG2 commented May 28, 2020

This is the current state of my experiment towards enabling finer-grained axis binning comparisons that "axis configuration is exactly the same" or "axis configuration is different".

Once finished, this should enable switching between several histogram merging logics, including...

  • The current implementation, which is maximally fast but a bit too limited (it doesn't even allow the target histogram to grow to span the source histogram range if it is able to).
    • Note that said implementation did already gain some superpowers in the current state of this PR, such as ability to merge when axis bin borders are slightly different.
  • More permissive implementations, which trade speed for generality.

Here's what should IMO be added before this PR can be considered ready to merge:

  • Tests, lots of them. There's some very tricky code in there, even if it got clearer over time...
  • Performance optimizations to reduce the impact of comparing axis binning, including...
    • Not comparing every axis bin border when the axes are equidistant
    • Reducing reliance on virtual function calls, especially in loops
    • Possibly early algorithm exit as soon as complete conclusions are reached (but this will only benefit worst-case scenarios where axis binnings are very different, so...)
  • Demonstration of a more permissive histogram merging algorithm, to cross-check that the current binning comparison info adequately enables writing one as intended.

@phsft-bot
Copy link

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos7-multicore/default, ROOT-fedora29/python3, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1015/cxx17, windows10/cxx14
How to customize builds

@HadrienG2 HadrienG2 changed the title [WIP] More sophisticated binning comparisons [WIP] More sophisticated RHist binning comparisons May 28, 2020
@phsft-bot
Copy link

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos7-multicore/default, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac1015/cxx17, windows10/cxx14
How to customize builds

1 similar comment
@phsft-bot
Copy link

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos7-multicore/default, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac1015/cxx17, windows10/cxx14
How to customize builds

@phsft-bot
Copy link

Build failed on ROOT-fedora30/cxx14.
Running on root-fedora30-2.cern.ch:/home/sftnight/build/workspace/root-pullrequests-build
See cdash.
See console output.

Errors:

  • [2020-06-04T07:44:57.029Z] FAILED: hist/histv7/CMakeFiles/ROOTHist.dir/src/RAxis.cxx.o
  • [2020-06-04T07:44:57.325Z] /home/sftnight/build/workspace/root-pullrequests-build/root/hist/histv7/src/RAxis.cxx:364:35: error: use of deleted function ‘ROOT::Experimental::RAxisBase::BinningCompatibility::BinningCompatibility(const ROOT::Experimental::RAxisBase::BinningCompatibility&)’
  • [2020-06-04T07:44:57.325Z] /home/sftnight/build/workspace/root-pullrequests-build/root/hist/histv7/inc/ROOT/RAxis.hxx:849:38: error: union member ‘ROOT::Experimental::RAxisBase::BinningCompatibility::<unnamed union>::fLabeled’ with non-trivial ‘ROOT::Experimental::RAxisBase::LabeledBinningCompatibility::LabeledBinningCompatibility(const ROOT::Experimental::RAxisBase::LabeledBinningCompatibility&)’
  • [2020-06-04T07:44:57.325Z] /home/sftnight/build/workspace/root-pullrequests-build/root/hist/histv7/src/RAxis.cxx:368:7: error: use of deleted function ‘ROOT::Experimental::RAxisBase::BinningCompatibility::BinningCompatibility(const ROOT::Experimental::RAxisBase::BinningCompatibility&)’
  • [2020-06-04T07:44:57.325Z] /home/sftnight/build/workspace/root-pullrequests-build/root/hist/histv7/src/RAxis.cxx:373:65: error: use of deleted function ‘ROOT::Experimental::RAxisBase::BinningCompatibility::BinningCompatibility(const ROOT::Experimental::RAxisBase::BinningCompatibility&)’

@phsft-bot
Copy link

Build failed on ROOT-debian10-i386/cxx14.
Running on pcepsft10.dyndns.cern.ch:/build/workspace/root-pullrequests-build
See cdash.
See console output.

Errors:

  • [2020-06-04T07:44:53.428Z] /home/sftnight/build/workspace/root-pullrequests-build/root/hist/histv7/src/RAxis.cxx:364:35: error: use of deleted function ‘ROOT::Experimental::RAxisBase::BinningCompatibility::BinningCompatibility(const ROOT::Experimental::RAxisBase::BinningCompatibility&)’
  • [2020-06-04T07:44:53.428Z] /home/sftnight/build/workspace/root-pullrequests-build/root/hist/histv7/inc/ROOT/RAxis.hxx:849:38: error: union member ‘ROOT::Experimental::RAxisBase::BinningCompatibility::<unnamed union>::fLabeled’ with non-trivial ‘ROOT::Experimental::RAxisBase::LabeledBinningCompatibility::LabeledBinningCompatibility(const ROOT::Experimental::RAxisBase::LabeledBinningCompatibility&)’
  • [2020-06-04T07:44:53.428Z] /home/sftnight/build/workspace/root-pullrequests-build/root/hist/histv7/src/RAxis.cxx:368:7: error: use of deleted function ‘ROOT::Experimental::RAxisBase::BinningCompatibility::BinningCompatibility(const ROOT::Experimental::RAxisBase::BinningCompatibility&)’
  • [2020-06-04T07:44:53.428Z] /home/sftnight/build/workspace/root-pullrequests-build/root/hist/histv7/src/RAxis.cxx:373:65: error: use of deleted function ‘ROOT::Experimental::RAxisBase::BinningCompatibility::BinningCompatibility(const ROOT::Experimental::RAxisBase::BinningCompatibility&)’

@phsft-bot
Copy link

Build failed on windows10/cxx14.
Running on null:C:\build\workspace\root-pullrequests-build
See cdash.
See console output.

Errors:

  • [2020-06-04T07:48:07.945Z] C:\build\workspace\root-pullrequests-build\root\hist\histv7\src\RAxis.cxx(364,1): error C2280: 'ROOT::Experimental::RAxisBase::BinningCompatibility::BinningCompatibility(const ROOT::Experimental::RAxisBase::BinningCompatibility &)': attempting to reference a deleted function [C:\build\workspace\root-pullrequests-build\build\hist\histv7\ROOTHist.vcxproj]

@phsft-bot
Copy link

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos7-multicore/default, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac1015/cxx17, windows10/cxx14
How to customize builds

@phsft-bot
Copy link

Build failed on windows10/cxx14.
Running on null:C:\build\workspace\root-pullrequests-build
See cdash.
See console output.

@phsft-bot
Copy link

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos7-multicore/default, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac1015/cxx17, windows10/cxx14
How to customize builds

1 similar comment
@phsft-bot
Copy link

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos7-multicore/default, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac1015/cxx17, windows10/cxx14
How to customize builds

@phsft-bot
Copy link

Build failed on ROOT-fedora30/cxx14.
Running on root-fedora30-2.cern.ch:/home/sftnight/build/workspace/root-pullrequests-build
See cdash.
See console output.

@phsft-bot
Copy link

Build failed on ROOT-fedora31/noimt.
Running on root-fedora-31-1.cern.ch:/build/workspace/root-pullrequests-build
See cdash.
See console output.

@phsft-bot
Copy link

Build failed on ROOT-ubuntu16/nortcxxmod.
Running on sft-ubuntu-1604-4.cern.ch:/build/workspace/root-pullrequests-build
See cdash.
See console output.

@phsft-bot
Copy link

Build failed on mac1015/cxx17.
Running on macphsft20.dyndns.cern.ch:/Users/sftnight/build/workspace/root-pullrequests-build
See cdash.
See console output.

@phsft-bot
Copy link

Build failed on ROOT-performance-centos7-multicore/default.
Running on olhswep22.cern.ch:/data/sftnight/workspace/root-pullrequests-build
See cdash.
See console output.

@phsft-bot
Copy link

Build failed on windows10/cxx14.
Running on null:C:\build\workspace\root-pullrequests-build
See cdash.
See console output.

@phsft-bot
Copy link

Build failed on mac1014/python3.
Running on macphsft17.dyndns.cern.ch:/build/jenkins/workspace/root-pullrequests-build
See cdash.
See console output.

@phsft-bot
Copy link

Build failed on ROOT-debian10-i386/cxx14.
Running on pcepsft10.dyndns.cern.ch:/build/workspace/root-pullrequests-build
See cdash.
See console output.

@phsft-bot
Copy link

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos7-multicore/default, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac1015/cxx17, windows10/cxx14
How to customize builds

@phsft-bot
Copy link

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos7-multicore/default, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac1015/cxx17, windows10/cxx14
How to customize builds

@ferdymercury
Copy link
Collaborator

Closing for the moment due to #18191

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants