Ticket #9954 (closed: fixed)
Speed up Stitch1D unit test
Reported by: | Owen Arnold | Owned by: | Owen Arnold |
---|---|---|---|
Priority: | major | Milestone: | Release 3.2.1 |
Component: | Framework | Keywords: | |
Cc: | Blocked By: | #9906 | |
Blocking: | #9897 | Tester: | Wenduo Zhou |
Description
Stitch1DTest is running too slow at 7.2 seconds on the rhel6 builds. See http://www.mantidproject.org/images/2/2f/Slow_tests.xlsx_-_Sheet1.pdf
Attachments
Change History
comment:2 Changed 6 years ago by Owen Arnold
- Status changed from assigned to inprogress
refs #9954. Create workspaces directly.
Changeset: 831e9ff0dd2ffafadb78a0e7138b5ed019c45c2a
comment:3 Changed 6 years ago by Owen Arnold
refs #9954. Fix type warning.
Changeset: 83f796b2ffa7a2f7ce6b47dd68dc789c331ffa88
comment:5 Changed 6 years ago by Owen Arnold
refs #9954. Strip down tests for profiling.
Changeset: 73c8722b5317abfe67757334185cc5fbd8f33228
comment:6 Changed 6 years ago by Owen Arnold
refs #9954. Faster multiply range.
Changeset: 5f92c87f455fff43fa0ce5e4243e95e4e8d15f0e
comment:7 Changed 6 years ago by Owen Arnold
refs #9954. Merge in master
Merge branch 'master' into feature/9954_stitch1dtest
Changeset: 398083d5f3fbf107530f91e8313521667e4e34c4
comment:8 Changed 6 years ago by Owen Arnold
refs #9954. type conversion warning fix.
Changeset: cc9e62e50a92e7a69f2a44cad6251bb520c8fc60
comment:9 Changed 6 years ago by Owen Arnold
refs #9954. Add doxygen information.
Changeset: 2043ad9184520decb052c4d0f085909b1f386acc
comment:10 Changed 6 years ago by Owen Arnold
Tester:
I've used profiling to determine the slow points since the tests themselves are lightweight. I found that the 6 calls to MultiplyRange per run of Stitch1D was very costly so have implemented some alternative code, which runs much faster and also operates on the workspaces in place.
For RHEL6 I have not been able to acheive any noticeable speed improvement. See attachement. Look at the cost estimation per cycle. And see that for RHEL6 (on the left) compared to Tahr (on the right) the OpenMP start time is over 10 times longer per call! This probably explains why the tests take 6 seconds on RHEL6, but run in less than 0.5 seconds on Tahr and other platforms. There is nothing I can do about this except for remove the OpenMP calls out of all algorithms! Better to just upgrade to the next version of RHEL
- All unit tests should still pass
- All system tests should still pass
comment:11 Changed 6 years ago by Owen Arnold
- Status changed from inprogress to verify
- Resolution set to fixed
comment:12 Changed 6 years ago by Wenduo Zhou
- Status changed from verify to verifying
- Tester set to Wenduo Zhou
comment:13 Changed 6 years ago by Wenduo Zhou
All tests are passed.
But it takes only 0.29 second to run the unit test of Stitch1D on my Ubuntu originally. After the change of ticket is merged to master, the speed is almost the same.
comment:14 Changed 6 years ago by Wenduo Zhou
- Status changed from verifying to closed
Merge remote-tracking branch 'origin/feature/9954_stitch1dtest'
Full changeset: 36b168b4753f0d4464f409f889ec46a7a3f06172
comment:15 Changed 6 years ago by Martyn Gigg
- Keywords PatchCandidate added
Required in the patch in order to get #9955 (the real fix) through in as well.
comment:16 Changed 6 years ago by Owen Arnold
Cherry-pick fixes from feature/9954_stitch1dtest into next
Changes:
refs #9954. Create workspaces directly. (cherry picked from commit 831e9ff0dd2ffafadb78a0e7138b5ed019c45c2a)
refs #9954. Fix type warning. (cherry picked from commit 83f796b2ffa7a2f7ce6b47dd68dc789c331ffa88)
refs #9954. Faster multiply range. (cherry picked from commit 5f92c87f455fff43fa0ce5e4243e95e4e8d15f0e)
refs #9954. type conversion warning fix. (cherry picked from commit cc9e62e50a92e7a69f2a44cad6251bb520c8fc60)
refs #9954. Add doxygen information. (cherry picked from commit 2043ad9184520decb052c4d0f085909b1f386acc)
Changeset: d4073545e36f312c1976427968e4c3ccad03ad6d
comment:17 Changed 6 years ago by Martyn Gigg
- Keywords PatchCandidate removed
- Milestone changed from Release 3.3 to Release 3.2.1
comment:18 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 10796