Ticket #3392 (closed: fixed)
File-based back-end for MDEventWorkspace
Reported by: | Janik Zikovsky | Owned by: | Janik Zikovsky |
---|---|---|---|
Priority: | blocker | Milestone: | Iteration 30 |
Component: | Mantid | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Tester: | Owen Arnold |
Description
Refs #3316. Load lists of MDEvent's from a source .NXS file on demand during processing.
Change History
comment:6 Changed 9 years ago by Janik Zikovsky
Looks like some commits didn't show up. [13460] Refs #3392: Mutexes in file-back-end of MDBox
[13461] The parallel test might be unstable/not working on Windows, so disabling it for now. Additional mutex against simultaneous file access.
Also, here are some preliminary speed results from accessing a fake data file 8GB in size (200 million events in 3D).
Loading with FileBackEnd 0 took 103.245970964 seconds Binning everything. FileBackEnd 0 . IterateEvents 0 Took: 0.904938936234 seconds and Signal max is 201889.0 Binning a slice, 1/10th. FileBackEnd 0 . IterateEvents 0 Took: 0.314957857132 seconds and Signal max is 22575.0 Binning everything. FileBackEnd 0 . IterateEvents 1 Took: 16.9913930893 seconds and Signal max is 201889.0 Binning a slice, 1/10th. FileBackEnd 0 . IterateEvents 1 Took: 2.13666176796 seconds and Signal max is 22575.0 Loading with FileBackEnd 1 took 4.30377316475 seconds Binning everything. FileBackEnd 1 . IterateEvents 0 Took: 122.313542128 seconds and Signal max is 201889.0 Binning a slice, 1/10th. FileBackEnd 1 . IterateEvents 0 Took: 17.1517679691 seconds and Signal max is 22575.0 Binning everything. FileBackEnd 1 . IterateEvents 1 Took: 49.948884964 seconds and Signal max is 201889.0 Binning a slice, 1/10th. FileBackEnd 1 . IterateEvents 1 Took: 5.71084284782 seconds and Signal max is 22575.0
The 122 second case looks like a case of file mutex deadlocking. Using a MRU list and keeping SOME events in memory will likely help a ton on speed, especially upon the 2nd go.
comment:7 Changed 9 years ago by Janik Zikovsky
Next steps:
- Keep a list of Most-Recently-Used boxes in memory.
- User-specified memory in MB when loading (with a reasonable default).
- Keep MDBoxes with very few events in memory. Allocate e.g. 10% of the total memory to this.
comment:10 Changed 9 years ago by Janik Zikovsky
In [13905]:
comment:11 Changed 9 years ago by Janik Zikovsky
In [14017]:
comment:12 Changed 9 years ago by Janik Zikovsky
In [14022]:
comment:13 Changed 9 years ago by Russell Taylor
In [14042]:
comment:14 Changed 9 years ago by Janik Zikovsky
- Status changed from accepted to verify
- Resolution set to fixed
comment:15 Changed 9 years ago by Owen Arnold
- Status changed from verify to verifying
- Tester set to Owen Arnold
comment:16 Changed 9 years ago by Owen Arnold
- Status changed from verifying to closed
Looks like it's doing exactly what it's supposed to. Loading Algorithm exposes option. Selecting file back-end reports:
- Smaller Workspace in-memory than otherwise
- File backed MRU information
comment:17 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 4239