-
Notifications
You must be signed in to change notification settings - Fork 577
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ifpack2: fix timers #8478
Ifpack2: fix timers #8478
Conversation
- Don't do e.g. "ApplyTime_ += timer->totalElapsedTime()" since this will re-count time from all previous applies. - Replace totalElapsedTime() with a wallTime() interval for this instead, since if two preconditioner objects A and B are used in the same StackedTimer scope, B's times will include A's times.
Status Flag 'Pre-Test Inspection' - Auto Inspected - Inspection Is Not Necessary for this Pull Request. |
Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects: Pull Request Auto Testing STARTING (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_9.2
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
Using Repos:
Pull Request Author: brian-kelley |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@brian-kelley Looks good to me. Your change is also makes it easier (for me) to understand what's being timed. Nice catch.
@jhux2 Thanks for reviewing. |
Status Flag 'Pull Request AutoTester' - Jenkins Testing: all Jobs PASSED Pull Request Auto Testing has PASSED (click to expand)Build InformationTest Name: Trilinos_pullrequest_gcc_8.3.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_serial
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_gcc_7.2.0_debug
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_intel_17.0.1
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_cuda_9.2
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_clang_10.0.0
Jenkins Parameters
Build InformationTest Name: Trilinos_pullrequest_python_3
Jenkins Parameters
|
Status Flag 'Pre-Merge Inspection' - SUCCESS: The last commit to this Pull Request has been INSPECTED AND APPROVED by [ jhux2 ]! |
Status Flag 'Pull Request AutoTester' - Pull Request will be Automerged |
Merge on Pull Request# 8478: IS A SUCCESS - Pull Request successfully merged |
will re-count time from all previous applies.
instead, since if two preconditioner objects A and B are used in
the same StackedTimer scope, B's times will include A's
times.
Here's an example output from before these changes, showing both issues. I looped over a setup+solve 3 times in the Ifpack2+Belos driver:
Here is what StackedTimer shows (this always had the correct call counts and total times). With this PR, the times reported by the Preconditioner above are consistent with the StackedTimer.
@trilinos/ifpack2
Motivation
Makes all Ifpack2::Preconditioner compute InitTime_, ComputeTime_, ApplyTime_ correctly.
Stakeholder Feedback
Testing
Did the setup+solve 3 times to demonstrate the incorrect reported times, and that this fixed it.