Ticket #2366 (closed: fixed)
Implement ThreadPool and manager in Mantid
Reported by: | Janik Zikovsky | Owned by: | Janik Zikovsky |
---|---|---|---|
Priority: | critical | Milestone: | Iteration 28 |
Component: | Mantid | Keywords: | |
Cc: | Blocked By: | #2518 | |
Blocking: | #2400, #2452 | Tester: | Owen Arnold |
Description
... to perform more sophisticated parallelization operations by using a ThreadPool to optimize allocation of CPU time.
A simple OpenMP parallel for directive will be inefficient if the time in each operation is not approximately equal; a thread pool will allocate work more efficiently.
Poco has threadpool support and seems like the right library to use (it is already a dependency; boost::threadpool seems less documented and uses the dozens of template parameters that make boost so ugly.)
This will be necessary e.g. in MDEvent processing.
Change History
comment:10 Changed 10 years ago by Janik Zikovsky
- Milestone changed from Iteration 27 to Iteration 28
comment:13 Changed 10 years ago by Janik Zikovsky
comment:14 Changed 10 years ago by Janik Zikovsky
comment:15 Changed 10 years ago by Janik Zikovsky
comment:16 Changed 10 years ago by Janik Zikovsky
comment:17 Changed 10 years ago by Janik Zikovsky
comment:18 Changed 10 years ago by Janik Zikovsky
- Status changed from accepted to verify
- Resolution set to fixed
comment:19 Changed 9 years ago by Owen Arnold
- Status changed from verify to verifying
- Tester set to Owen Arnold
comment:20 Changed 9 years ago by Owen Arnold
- Status changed from verifying to closed
Series of Kernel unit tests look robust and run to completion. ThreadPools have also been successfully incorporated in MDEvent rebinning code.
comment:21 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 3213
... boost looks like it has better support for scheduling (custom scheduling), so it may be better suited for this purpose.