Coder Social home page Coder Social logo

Comments (2)

HadrienG2 avatar HadrienG2 commented on June 19, 2024

Here is something I recently got out of verrou_dd which illustrates this problem pretty well:

dd: done
ddmax:
  _ZN5Eigen8internal17abs2_impl_defaultIdLb0EE3runERKd  /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZN5Eigen8internal4paddIDv2_dEET_RKS3_S5_     /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZN5Eigen8internal4pdivIDv2_dEET_RKS3_S5_     /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZN5Eigen8internal4pmulIDv2_dEET_RKS3_S5_     /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZN5Eigen8internal4psubIDv2_dEET_RKS3_S5_     /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZN5Eigen8internal6preduxIDv2_dEENS0_15unpacket_traitsIT_E4typeERKS4_ /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZNK4Acts12AtlasStepperINS_14ConstantBFieldEE4stepERNS2_5StateE       /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZNK4Acts15IntegrationTest29covariance_validation_fixtureINS_10PropagatorINS_12AtlasStepperINS_14ConstantBFieldEEENS_13VoidNavigatorEEEE19calculateCovarianceINS_26SingleBoundTrackParametersINS_13ChargedPolicyEEESC_NS7_7OptionsINS_10ActionListIJEEENS_9AbortListIJEEEEEEEN5Eigen6MatrixIdLi5ELi5ELi0ELi5ELi5EEERKT_RKSL_RKT0_RKT1_     /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZNK4Acts15IntegrationTest29covariance_validation_fixtureINS_10PropagatorINS_12AtlasStepperINS_14ConstantBFieldEEENS_13VoidNavigatorEEEE19calculateCovarianceINS_32SingleCurvilinearTrackParametersINS_13ChargedPolicyEEESC_NS7_7OptionsINS_10ActionListIJEEENS_9AbortListIJEEEEEEEN5Eigen6MatrixIdLi5ELi5ELi0ELi5ELi5EEERKT_RKSL_RKT0_RKT1_       /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZNK4Acts15IntegrationTest29covariance_validation_fixtureINS_10PropagatorINS_12EigenStepperINS_14ConstantBFieldENS_13VoidCorrectorEEENS_13VoidNavigatorEEEE19calculateCovarianceINS_26SingleBoundTrackParametersINS_13ChargedPolicyEEESD_NS8_7OptionsINS_10ActionListIJEEENS_9AbortListIJEEEEEEEN5Eigen6MatrixIdLi5ELi5ELi0ELi5ELi5EEERKT_RKSM_RKT0_RKT1_  /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZNK4Acts15IntegrationTest29covariance_validation_fixtureINS_10PropagatorINS_12EigenStepperINS_14ConstantBFieldENS_13VoidCorrectorEEENS_13VoidNavigatorEEEE19calculateCovarianceINS_32SingleCurvilinearTrackParametersINS_13ChargedPolicyEEESD_NS8_7OptionsINS_10ActionListIJEEENS_9AbortListIJEEEEEEEN5Eigen6MatrixIdLi5ELi5ELi0ELi5ELi5EEERKT_RKSM_RKT0_RKT1_    /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZNK4Acts15IntegrationTest29covariance_validation_fixtureINS_17PropagatorWrapperISt10shared_ptrINS_16RungeKuttaEngineINS_14ConstantBFieldEEEEEEE19calculateCovarianceINS_26SingleBoundTrackParametersINS_13ChargedPolicyEEENS_21SingleTrackParametersISC_EENS8_7OptionsINS_10ActionListIJEEENS_9AbortListIJEEEEEEEN5Eigen6MatrixIdLi5ELi5ELi0ELi5ELi5EEERKT_RKSO_RKT0_RKT1_        /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZNK4Acts15IntegrationTest29covariance_validation_fixtureINS_17PropagatorWrapperISt10shared_ptrINS_16RungeKuttaEngineINS_14ConstantBFieldEEEEEEE19calculateCovarianceINS_32SingleCurvilinearTrackParametersINS_13ChargedPolicyEEESD_NS8_7OptionsINS_10ActionListIJEEENS_9AbortListIJEEEEEEEN5Eigen6MatrixIdLi5ELi5ELi0ELi5ELi5EEERKT_RKSM_RKT0_RKT1_       /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZNK4Acts16RungeKuttaEngineINS_14ConstantBFieldEE14rungeKuttaStepEiRNS_16PropagationCacheEdRb /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZNK5Eigen8internal13add_assign_opIddE11assignCoeffERdRKd     /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZNK5Eigen8internal13div_assign_opIddE11assignCoeffERdRKd     /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZNK5Eigen8internal13scalar_sum_opIddEclERKdS4_       /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZNK5Eigen8internal17scalar_product_opIddEclERKdS4_   /root/acts-core/spack-build/Tests/Integration/PropagationTests
  _ZNK5Eigen8internal18scalar_quotient_opIddEclERKdS4_  /root/acts-core/spack-build/Tests/Integration/PropagationTests

While there are some interesting symbols in there, knowing that an unstability occurs when some part of the code performs vectorized additions ("padd") is not particularly helpful. What would help here would be to know in which context additions must fail before the computation becomes unstable. That is something else which DD could study besides source line - level unstability localization.

A rough algorithm for that would be...

  • Run "coarse-grained DD" to find interesting symbols or sets of symbols.
  • Run callgrind in a failing configuration to get a call graph
  • Trim the call graph to only keep the stack traces that include the problematic symbols
  • Do delta-debugging on stack traces, rather than symbols

That would be a very useful feature, but could also require significant changes to verrou if the current architecture is heavily based on looking at only one symbol at a time.

Another application of adding call graph sensitivity to verrou would be an "exclude everything below this symbol" feature, which I have regularly found myself longing for when using verrou. I'll open a separate ticket for that.

from verrou.

lathuili avatar lathuili commented on June 19, 2024

I think the delta-debug complexity is good enough to directly apply it on stack traces. Indeed we will be able to filter stack which contains fp operation (like for symbols).

from verrou.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.