Replies: 4 comments
-
Yeah, looks like a potential problem. There are two maps: one in pileup_legacy and one in _pileup. The outer parallelized map is propagated to the first function, but not the second. Thus, regions are processed in parallel, but the individual snippets are cut out sequentially. What if you simply change the order of them? I mean, you can propagate |
Beta Was this translation helpful? Give feedback.
-
I have not. If that approach has the same speed, it would be better because it won't require more memory to use multiple cores! |
Beta Was this translation helpful? Give feedback.
-
The apparent issue is at the moment a non-issue because of the Global Interpreter Lock: python copies every object from the main process to child processes. So the |
Beta Was this translation helpful? Give feedback.
-
Then it should be commented that these operations are not thread-safe, in case someone ever decides to switch to multithreading. |
Beta Was this translation helpful? Give feedback.
-
I think the way we (or I?) implemented filling in NaNs in snipping can cause wrong assignment of NaNs with multiprocessing, or when multiple selections have been made before snipping.
cooltools/cooltools/api/snipping.py
Lines 353 to 359 in c610f43
This block would overwrite the self._isnan1/2 arrays for each selection, while it should be stored in a dict for each region, perhaps.
Beta Was this translation helpful? Give feedback.
All reactions