Ticket #8685 (closed: fixed)
Use matrix workspace to store splitters for fast frequency log
Reported by: | Wenduo Zhou | Owned by: | Wenduo Zhou |
---|---|---|---|
Priority: | major | Milestone: | Release 3.2 |
Component: | Framework | Keywords: | |
Cc: | petersonpf@… | Blocked By: | |
Blocking: | #9244, #9326 | Tester: | Andrei Savici |
Description (last modified by Wenduo Zhou) (diff)
The current way to generate event filter and then filter events does not fit for high-frequency log. Generating and parsing a SplitterWorkspace (i.e., a TableWorkspace) containing near million rows is very costly.
Therefore, an alternative way is to record the splitters in a matrix workspace, and filter events from this workspace.
Enable GenerateEventFilter to output either SplitterWorkspace (as usual) or MatrixWorkspace (new) by user's choice.
Attachments
Change History
comment:2 Changed 7 years ago by Wenduo Zhou
- Status changed from new to inprogress
Refactored code. Refs #8685.
Changeset: e4511983d4c55f1218a914662b1bc68afb02c021
comment:3 Changed 7 years ago by Wenduo Zhou
Implemented matrix workspace output. Refs #8685.
Also added several unit tests for the new feature.
Changeset: e003fdc698650e73c18c27d170d524e9111b1150
comment:4 Changed 7 years ago by Wenduo Zhou
Enabled to split events by vector splitter. Refs #8685.
Changeset: a6bd39122ed0e56722891c183425496888fba70c
comment:5 Changed 7 years ago by Wenduo Zhou
Enabled to split events using splitter matrix workspace. Refs #8685.
Changeset: c774e4c9def3252796c74963b6bfa9e06d14d877
comment:6 Changed 7 years ago by Wenduo Zhou
Added method to split events. Refs #8685.
Added and tested a method to filter/split events with spliters instored in vectors.
Changeset: e3487731d0c138192eca2afde97fb5c3e2f8c8b6
comment:8 Changed 7 years ago by Nick Draper
- Milestone changed from Release 3.1 to Backlog
Moved to backlog at the end of Release 3.1
comment:9 Changed 7 years ago by Wenduo Zhou
Enabled to generate filters in matrix workspace. Refs #8685.
- Enabled to generate filters and output them in MatrixWorkspace;
- Enabled to generate filters in parallel (not finished yet).
Changeset: 565927f0d59e7c36678efcd009998642ef54f229
comment:10 Changed 7 years ago by Wenduo Zhou
Enabled to return with debug message. Refs #8685.
Changeset: d3d6754bcb700389fc2974b5aaaeacccdb3010ac
comment:11 Changed 7 years ago by Wenduo Zhou
Added new unit test for returning matrix workspace. Refs #8685.
Changeset: 365eae123aef01041b7f0dae187fc398fcc7dd71
comment:12 Changed 7 years ago by Wenduo Zhou
Add debug output. Refs #8685.
- Enabled to output more detailed debug information;
- Code refactored for parallelization by OpenMP.
Changeset: afa81763e95e6d572e787ef2b376c0cb72af35db
comment:13 Changed 7 years ago by Wenduo Zhou
Resolved conflict. Refs #8685.
Changeset: 703e658fc92a5e468fcc535b81c784765c0bc566
comment:14 Changed 7 years ago by Wenduo Zhou
Adapted to new FilterEvents splitter workspace property. Refs #8685.
Changeset: 37d033c5fe5ee3719362a9730dcdf3ef4d6e9231
comment:15 Changed 7 years ago by Wenduo Zhou
Parallelized with OpenMP. Refs #8685.
Changeset: f256fdbad0eba00941ae868588b511c856eba479
comment:16 Changed 7 years ago by Martyn Gigg
There is a cppcheck warning in GenerateEventsFilter
comment:19 Changed 7 years ago by Wenduo Zhou
Improved performance on speed. Refs #8685.
- Removed log in debug level in loop.
- Reduced access to a huge vector.
- Refactored the operation on DateAndTime and time_duration for speed.
Changeset: da57667c8e7d913cfcd650027795b0b31a0ef6d7
comment:20 Changed 7 years ago by Martyn Gigg
There is a compiler warning about an unused variable
comment:21 Changed 7 years ago by Wenduo Zhou
Cleaned up code for logging and multithread. Refs #8685.
Changeset: 2b81df764254340bdab37e11546973f0553d8094
comment:22 Changed 7 years ago by Wenduo Zhou
Cleaned the codes. Refs #8685.
Changeset: 156debd74588bd9f568e15c8092a1a369cc14de8
comment:23 Changed 7 years ago by Wenduo Zhou
Fixed a compiler warning. Refs #8685.
Changeset: f1b865f9397969b8f544ae1f4e4500c6a28244d9
comment:24 Changed 7 years ago by Wenduo Zhou
Refactored filtering by multiple log values. Refs #8685.
Changeset: 6dba5722f2d5c62f95a193a623d1f57f5381738a
comment:25 Changed 7 years ago by Wenduo Zhou
Refactored algorithm to adding new splitter. Refs #8685.
Changeset: aa9ebbb978640601bb0755de754cc9273c98062c
comment:26 Changed 7 years ago by Wenduo Zhou
Edit wiki and cleaned the codes. Refs #8685.
Changeset: 4c3523ae86ffbd5941142d1630eb5c4572b6e6aa
comment:27 Changed 7 years ago by Wenduo Zhou
For tester
- Get access of VULCAN run 20002 and/or 20006;
- Download script verify8685a.py;
- Before merging the change from this ticket, run script by choosing run number as 20002 or 20006. You will find it takes very long time to generate event filters and even longer time to filter events;
- Download script verify8685b.py. Compare it to verify8685a.py to see the difference; Be noticed that the option 'GenerateTOFCorrection' in FilterEvents is a new functionality.
- Merge the change from this ticket and build Mantid;
- Run verify8685b.py and compare the speed.
comment:28 Changed 7 years ago by Martyn Gigg
There are still some cppcheck warnings that need to be addressed in GenerateEventsFilter & FilterEventsByLogValuePreNexus
comment:29 Changed 7 years ago by Wenduo Zhou
Suppressed a cppcheck error. Refs #8685.
Changeset: 2ba0d4bad9b23c55b4af374fd270258e2c479656
comment:30 Changed 7 years ago by Wenduo Zhou
Fixed a Windows compilter error. Refs #8685.
Changeset: 2eceef66b04d5e4941e7f4dbf21c5cd8b2edae9a
comment:31 Changed 7 years ago by Wenduo Zhou
Turned on parallel and cleaned code. Refs #8685.
Changeset: 569f2e738e86249dcdefc31139bd7499c30cdcf3
comment:37 Changed 7 years ago by Wenduo Zhou
Fixed a doxygen warning. Refs #8685.
Changeset: 26483167ac04c4ddf37a2abee9c9a4dbddd6acc4
comment:38 Changed 7 years ago by Wenduo Zhou
Corrected some doxygen warnings. Refs #8685.
Changeset: 282bcc80c9dd68bb1b1392b1fe9e8086754414ee
comment:39 Changed 7 years ago by Wenduo Zhou
- Status changed from inprogress to verify
- Resolution set to fixed
comment:40 Changed 6 years ago by Russell Taylor
- Status changed from verify to reopened
- Resolution fixed deleted
There are a bunch of new memory leaks in EventListTest (spotted because I've been squashing the older ones). I can show you where they are.
comment:41 Changed 6 years ago by Wenduo Zhou
- Status changed from reopened to inprogress
Removed progress bar in openmp loop. Refs #8685.
Changeset: 8360cba88c28d109eec79f0463e8eb48d5914d76
comment:42 Changed 6 years ago by Wenduo Zhou
Fixed some memory leaks. Refs #8685.
Changeset: 66ddc8fe9dbe57f71128f5cca03fa29462df978f
comment:43 Changed 6 years ago by Wenduo Zhou
- Status changed from inprogress to verify
- Resolution set to fixed
comment:44 Changed 6 years ago by Russell Taylor
- Status changed from verify to reopened
- Resolution fixed deleted
Best not to close things until the builds have passed....
comment:45 Changed 6 years ago by Wenduo Zhou
- Status changed from reopened to inprogress
Modified an error message. Refs #8685.
Changeset: 39f169c6dc6f98d553042989864352ab305eb840
comment:46 Changed 6 years ago by Wenduo Zhou
- Status changed from inprogress to verify
- Resolution set to fixed
comment:47 Changed 6 years ago by Andrei Savici
- Status changed from verify to verifying
- Tester set to Andrei Savici
- Summary changed from Use matrix workspac to store splitters for fast frequency log to Use matrix workspace to store splitters for fast frequency log
comment:48 Changed 6 years ago by Andrei Savici
- Status changed from verifying to reopened
- Resolution fixed deleted
Could not run the python scripts in the before case. No FastLog and no UseParallelProcessing. Please update testing procedure
comment:49 Changed 6 years ago by Wenduo Zhou
Test script is corrected.
comment:51 Changed 6 years ago by Wenduo Zhou
- Status changed from inprogress to verify
- Resolution set to fixed
comment:53 Changed 6 years ago by Andrei Savici
verify7789a.py still has a problem in FilterEvents. There is no SplitSampleLogs keyword
comment:55 Changed 6 years ago by Wenduo Zhou
Removed an unnecessary warning log. Refs #8685.
Changeset: 46e9acd2dabb0db97145f16ff5fe50b1a14d3000
comment:56 Changed 6 years ago by Wenduo Zhou
Removed a progress update within OpenMP loop. Refs #8685.
Changeset: 4f5809aa0f3f550f763ba9137d5b33268c2d6b87
comment:57 Changed 6 years ago by Andrei Savici
Refs #8685. Merge 'origin/feature/8685_matrixws_filter'
Conflicts:
Code/Mantid/Framework/Algorithms/src/GenerateEventsFilter.cpp
Changeset: a0e7b5ee47f2e854e5b5c771cd9f0ccba8a8335c
comment:59 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 9529