#1257 closed enhancement (fixed)
Use multiple threads in Lowess
Reported by: | Nicklas Nordborg | Owned by: | Nicklas Nordborg |
---|---|---|---|
Priority: | major | Milestone: | BASE 2.11 |
Component: | coreplugins | Version: | |
Keywords: | Cc: |
Description
The Lowess plug-in is spending most if it's time doing calculations, and not so much reading and writing data from/to the database. Since the bioassays can be normalized independently of each other it would probably not be very problematic to do parallell calculations in two or more threads and have the main thread responsible for the reading/writing from/to the database. The cost is a higher memory usage since we need to keep data from more bioassays in memory (one per worker thread and one for the database thread).
Change History (8)
comment:1 by , 16 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:2 by , 16 years ago
comment:3 by , 16 years ago
comment:4 by , 16 years ago
Timings for Lowess on 'grey' when using two worker threads:
Assays T1 T2 --------------------- 10 1.39 1.26 20 3.01 3.13 40 7.24 - 80 11.59 - 160 24.14 -
Not so good improvement as we had hoped for. But it seems like there may be a flaw in the implementation were the worker threads may have to wait for input.
comment:5 by , 16 years ago
comment:6 by , 16 years ago
comment:7 by , 16 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:8 by , 16 years ago
The debugging on 'grey' showed that the initial statement that the Lowess plug-in is spending most if it's time doing calculations was not correct. 'grey' is considerably faster than my development machine and spent maybe 80% of the time reading/writing from/to the database and only 20% with calculations (on 'auster' it was more like 40/60). Thus, we should not expect too much using multiple threads on a production server.
Here are the final test results from 'grey':
Assays T1 T2 --------------------- 10 0.44 1.20 20 2.42 2.21 40 5.21 5.11 80 11.23 - 160 23.42 - 320 52.04 -
Here are the original timings for the Lowess plug-in on 'grey'. For more info see attached file on ticket #1238. All parameters use the default values. Times are in minutes and seconds.