Comments (2)
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.
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)
- Consider capping verrou_dd's delta list length HOT 2
- Improving reproducibility in verrou_dd HOT 1
- Branch off valgrind instead of patching it HOT 2
- Incompatibility between Valgrind 3.13 and recent binutils HOT 4
- Dealing with a verrou-unstable compiler intrinsic
- "Exclude below" symbol selection HOT 1
- RDDMin's dd.sym folder name can go over the filesystem limit HOT 1
- verrou 2.1.0 + glibc 2.27's "pow" = segfault HOT 1
- GDB's "stop-at" commands do not work HOT 1
- fmaintrin.h HOT 5
- Does it buid with Intel compilers ? HOT 5
- Verrou is incompatible with valgrind-master (after versions >3.15) HOT 1
- Provide an option to exclude exact zeros from cancellation reports
- Documentation of uncounted operation HOT 6
- Loading VERROU_* env variable with branch 3.16 of valgrind fails HOT 2
- The documention for setting the precision of the MCA backend is wrong HOT 1
- Does not compile with openmpi-4.0.3 (and it seems with any openmpi >= 3.0) HOT 2
- README broken link to manual
- Copy-paste typo in hashRatio? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from verrou.