Ticket #6291 (closed: fixed)

Opened 8 years ago

Last modified 5 years ago

PeakOverlay SpeedUp Part 1 (Investigation)

Reported by: Owen Arnold Owned by: Owen Arnold
Priority: critical Milestone: Release 2.4
Component: Mantid Keywords:
Cc: Blocked By:
Blocking: #6311 Tester: Nick Draper

Description

The PeakOverlay code has been written to be read. Until now, I've deferred any kind of optimisations. As the SliceViewer is a tool for speed, it is quite important that some effort is provided to ensure that it runs fast and smoothly.

I have a number of ways in which I think I can speed up the PeakOverlay features. However, to keep this process objective, I first need to measure the current performance. This work is therefore being divided into two parts.

1) Extract the heavy-lifting code out of the PeaksOverlayView objects into something that can be measured and benchmarked. I'm going to focus on the physical aspects of drawing sliced peaks, because these are within my control. Details of the rendering (inside the Qt drawing) are not.

2) Once benchmarks have been made, create a separate ticket to start applying the speedups, safe in the knowledge that I know that the original measures were.

This ticket is concerned with (1)

Change History

comment:1 Changed 8 years ago by Owen Arnold

  • Priority changed from major to critical

Upgraded to critical, because it would be very bad if we were to badly affect the performance of the slice viewer and release it anyway.

comment:2 Changed 8 years ago by Owen Arnold

  • Status changed from new to accepted

comment:3 Changed 8 years ago by Owen Arnold

refs #6291 PhysicalSphericalPeak created.

Changeset: e99a484bc1f484e336a8ceab503ea659f3463e54

comment:4 Changed 8 years ago by Owen Arnold

refs #6291. Separate Spherical Peak Roles.

Physical simulation are now separate from Qt drawing aspects.

Changeset: 1bf71a2c831416a8cb47aed327ed798a5673f06e

comment:5 Changed 8 years ago by Owen Arnold

refs #6291. Performance tests added for spherical case.

Changeset: 60afbc73cee61723db25851c2bbf1d11de8fb430

comment:6 Changed 8 years ago by Owen Arnold

refs #6291. Implement peak cross equivalent.

Changeset: 4e01a215aabeb05dc1a846f09ca64867df9842cb

comment:7 Changed 8 years ago by Owen Arnold

refs #6291. Wire in peak cross.

Changeset: 62553d9acede8f275e4bbb20199828c7f39a1799

comment:8 Changed 8 years ago by Owen Arnold

  • Blocking 6311 added

comment:9 Changed 8 years ago by Owen Arnold

refs #6291. Fix tests and add constraints.

Changeset: 515c894fa7cf5a4d06783750fa157419fcc6a745

comment:10 Changed 8 years ago by Owen Arnold

refs #6291. Fix warnings.

Changeset: d6204de970724fff5ac773b22c598fe5c0c6938a

comment:11 Changed 8 years ago by Owen Arnold

refs #6291. Fix warning.

Changeset: 0f89f3126d5ca7c16b36fef84ba0f124f1a714b5

comment:12 Changed 8 years ago by Owen Arnold

refs #6291 PhysicalSphericalPeak created.

Changeset: 0a283ff188d242d7fb4ce104c3c6411fd63c1436

comment:13 Changed 8 years ago by Owen Arnold

refs #6291. Separate Spherical Peak Roles.

Physical simulation are now separate from Qt drawing aspects.

Changeset: d2e62d75beac5e2d1b6da0fefdf6ca25711912e8

comment:14 Changed 8 years ago by Owen Arnold

refs #6291. Performance tests added for spherical case.

Changeset: 42044684240019ab4073f0bec55a86425291adf9

comment:15 Changed 8 years ago by Owen Arnold

refs #6291. Implement peak cross equivalent.

Changeset: 507f6582b95e28aa7c5a880f1e0f25d97736da04

comment:16 Changed 8 years ago by Owen Arnold

refs #6291. Wire in peak cross.

Changeset: 766b2e68598d48c16d9b771364924226da2cff59

comment:17 Changed 8 years ago by Owen Arnold

refs #6291. Fix tests and add constraints.

Changeset: adfcfd9acd5d541099279f714eec6cd64025010b

comment:18 Changed 8 years ago by Owen Arnold

refs #6291. Fix warnings.

Changeset: dd9900c529c1eac408fe082459b1b7de80c8c93c

comment:19 Changed 8 years ago by Owen Arnold

refs #6291. Fix warning.

Changeset: 94b3483c2805a2b62fd9f50b2fcfeda1b314f147

comment:20 Changed 8 years ago by Owen Arnold

  • Status changed from accepted to verify
  • Resolution set to fixed

comment:21 Changed 8 years ago by Owen Arnold

Tester:

The major output of this exercise was to be able to generate performance tests for benchmarking see:

http://download.mantidproject.org/jenkins/view/Infrastructure/job/isis_performance_tests/Performance_Tests_Report/?

Other than that, I recommend looking at the code and unit tests, and also checking that the functionality introduced here hasn't broken any of the existing functionality.

The wiki has been updated to contain the new design:

http://www.mantidproject.org/PeakOverlayADD

comment:22 Changed 8 years ago by Owen Arnold

refs #6291. Fix RHEL6 pef tests.

Changeset: ebb80f012eb8e8e216b61b34fae9d59a02dc2cdf

comment:23 Changed 8 years ago by Owen Arnold

refs #6291. Modify Perf Tests.

Real usage involves multiple setSlicePoint call and multiple draw calls. We need to optimsise the code for this, so the performance tests need to work like that too.

Changeset: d2b60b0dc8a2167f869dcb3ccba606bee64f3f80

comment:24 Changed 8 years ago by Owen Arnold

refs #6311 #6291. Increase work in perf tests.

Ive had to increase the work done in the peformance tests, because they are running too fast in the Release-mode build server enviroments to be useful.

Changeset: 79d2a81db39d9742092d647d2bc34b79ade0ccfa

comment:25 Changed 8 years ago by Owen Arnold

refs #6291 PhysicalSphericalPeak created.

Changeset: b316b8b286ac7a5c5133121f68fcb881811b93cf

comment:26 Changed 8 years ago by Owen Arnold

refs #6291. Separate Spherical Peak Roles.

Physical simulation are now separate from Qt drawing aspects.

Changeset: 770efcde29a0841fb0ed847964d9387a1acd2f7b

comment:27 Changed 8 years ago by Owen Arnold

refs #6291. Performance tests added for spherical case.

Changeset: d86d1aee8f0678aa5bab50509149921a7ab037b5

comment:28 Changed 8 years ago by Owen Arnold

refs #6291. Implement peak cross equivalent.

Changeset: 45663e4920297872a2c97a10302a07b21af9d73f

comment:29 Changed 8 years ago by Owen Arnold

refs #6291. Wire in peak cross.

Changeset: dcbb46421ccb20cb234081757578218b3f9aa681

comment:30 Changed 8 years ago by Owen Arnold

refs #6291. Fix tests and add constraints.

Changeset: c444c8638e7154c4dd6594373fdd5e468f9a5651

comment:31 Changed 8 years ago by Owen Arnold

refs #6291. Fix warnings.

Changeset: 7ee4a628ca5b8b0844ed0ce3875dd1ec4e4c2493

comment:32 Changed 8 years ago by Owen Arnold

refs #6291. Fix warning.

Changeset: 1909a5fab77adba4e88bd54f0e398ce4a89ea394

comment:33 Changed 8 years ago by Owen Arnold

refs #6291. Fix RHEL6 pef tests.

Changeset: 77046b0f7623dfde96fbfd565cbe84c452f813e8

comment:34 Changed 8 years ago by Owen Arnold

refs #6291. Modify Perf Tests.

Real usage involves multiple setSlicePoint call and multiple draw calls. We need to optimsise the code for this, so the performance tests need to work like that too.

Changeset: 66cb5dd968735dde33bd31ff9e42de23688dfdd2

comment:35 Changed 8 years ago by Owen Arnold

refs #6311 #6291. Increase work in perf tests.

Ive had to increase the work done in the peformance tests, because they are running too fast in the Release-mode build server enviroments to be useful.

Changeset: 1323e8ccc9dd33afd114a45fc10ee627b1ca5e4f

comment:36 Changed 8 years ago by Nick Draper

  • Status changed from verify to verifying
  • Tester set to Nick Draper

comment:37 Changed 8 years ago by Nick Draper

  • Status changed from verifying to closed

Performance tests in place and running. Peak display performance is good

comment:38 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 7137

Note: See TracTickets for help on using tickets.