Skip to content

Conversation

@LukasBreitwieser
Copy link
Contributor

Our use case requires optimization level 3 and disabled pointer checks. Therefore Fons asked me to send this PR.
Please see the following discussion:
https://root-forum.cern.ch/t/jit-performance-issue/38555

Commit based on
https://bitbucket.org/wlav/cppyy-backend/src/master/cling/patches/optlevel2_forced.diff

@phsft-bot
Copy link

Can one of the admins verify this patch?

ASTTransformers.emplace_back(new AutoSynthesizer(TheSema));
ASTTransformers.emplace_back(new EvaluateTSynthesizer(TheSema));
if (hasCodeGenerator() && !m_Interpreter->getOptions().NoRuntime) {
if (0 && hasCodeGenerator() && !m_Interpreter->getOptions().NoRuntime) {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Which approach do you recommend to turn off pointer checks?

@pcanal
Copy link
Member

pcanal commented Jul 15, 2020

This PR increases the optimization level (in many cases, this lead to more time spend in loading the script that executing it) and disable nullptr pointer check for *everybody* is that really the intent?

@LukasBreitwieser
Copy link
Contributor Author

Hi Philippe,
The PR shows the settings that we need for the BioDynaMo project (agent-based simulation framework).
We JIT a few functors at the beginning of the simulation and call them a couple hundred million times during simulation.

The intent of this PR is to start a discussion. Fons dislikes the idea of using a patched ROOT version.

Until https://sft.its.cern.ch/jira/browse/ROOT-10707 ships, would it be possible to add an e.g. rootrc parameter to influence the optimization level and pointer checks, or do you recommend waiting for ROOT-10707?

@oshadura
Copy link
Collaborator

oshadura commented Aug 5, 2020

@phsft-bot build!

@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-performance-centos7-multicore/default.
Running on olhswep22.cern.ch:/data/sftnight/workspace/root-pullrequests-build
See cdash.
See console output.

Errors:

  • [2020-08-05T09:03:45.341Z] 25/2067 Test Make ReadClass error message more verbose #911: tutorial-unfold-testUnfold5a ......................................................................***Failed Error regular expression found in output. Regex=[: error:] 2.23 sec
  • [2020-08-05T09:03:45.342Z] 31/2067 Test string_view-related changes #854: tutorial-tmva-TMVAClassification ..................................................................***Failed Error regular expression found in output. Regex=[: error:] 2.32 sec
  • [2020-08-05T09:03:46.945Z] 43/2067 Test First Patch RNN #685: tutorial-multicore-mp104_processH1 ................................................................***Failed Error regular expression found in output. Regex=[: error:] 2.58 sec
  • [2020-08-05T09:03:47.516Z] 45/2067 Test [TDF] Misc fixes #867: tutorial-tmva-TMVARegression ......................................................................***Failed Error regular expression found in output. Regex=[: error:] 2.40 sec
  • [2020-08-05T09:03:48.811Z] 73/2067 Test CMake integration with external projects #916: tutorial-unfold-testUnfold7a ......................................................................***Failed Error regular expression found in output. Regex=[: error:] 4.59 sec
  • [2020-08-05T09:03:49.070Z] 78/2067 Test [genreflex] Add support for noStreamer and noInputOperator xml attribute #864: tutorial-tmva-TMVAMulticlass ......................................................................***Failed Error regular expression found in output. Regex=[: error:] 2.40 sec
  • [2020-08-05T09:04:26.591Z] 639/2067 Test Fix for test suite on Fedora 26 i686 #359: tutorial-dataframe-df003_profiles .................................................................***Failed Error regular expression found in output. Regex=[: error:] 2.58 sec
  • [2020-08-05T09:04:28.151Z] 654/2067 Test Add a class to perform compensate summation #372: tutorial-dataframe-df017_vecOpsHEP ................................................................***Failed Error regular expression found in output. Regex=[: error:] 3.43 sec
  • [2020-08-05T09:04:28.926Z] 671/2067 Test [TDF] miscellaneous improvements #387: tutorial-dataframe-df102_NanoAODDimuonAnalysis ....................................................***Failed Error regular expression found in output. Regex=[: error:] 2.51 sec
  • [2020-08-05T09:04:36.624Z] 750/2067 Test Fix inf loop in test on arm #450: tutorial-geom-runplugin ...........................................................................***Failed Error regular expression found in output. Regex=[: error:] 5.67 sec

And 8 more

Failing tests:

And 1237 more

@hageboeck
Copy link
Member

Converted to draft in order to be able to remove the do not merge label.

@hageboeck hageboeck marked this pull request as draft September 14, 2020 14:52
@Axel-Naumann
Copy link
Member

This should be addressed in 6.26 and master. Can you confirm the effect?

Given that we now have a mechanism in place I will close this PR.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants