Closed Benfeitas closed 1 year ago
This is snipped just when it got to the good part - what was the actual assertion error?
This is snipped just when it got to the good part - what was the actual assertion error?
Unfortunately, it was blank after the assertion error:
Looking at the source code of pool.py, this is pretty opaque. Most likely explanation is that one of the sub-processes died and somehow the code wasn't kind enough to pass the error onwards.
I can only speculate, but, one possible scenario is that you run out of memory. Linux is notorious for just killing processes out of hand when that happens with little or no indication of the reason.
You can verify this by running top
or better yet htop
in parallel to the code and observing that the system is indeed running out of memory. If this is indeed the reason, you can reduce the amount of used memory by setting METACELLS_MAX_PARALLEL_PILES
or invoking mc.pl.set_max_parallel_piles
. The system does try and guess a good value for this using guess_max_parallel_piles
but that is just a heuristic and is far from perfect.
If this isn't the issue, perhaps running everything with debug logging (mc.ut.setup_logger(level=logging.DEBUG)
immediately after import metacells as mc
) will generate a very long detailed log file which may help pinpoint whatever the issue is.
Many thanks @orenbenkiki .
I had tried all that based on other discussions I've seen in other issues here but to no avail (the guess_max_parallel
was giving me over 65, and I had tried 65, 60, and 30). I had not seen memory overload but cannot guarantee it didn't happen. After reading your comment i went substantially lower to a set_max_parallel_piles
of 6, and the command finished so it seems to have worked, pending verification of the results.
I will thus close this thread, will reopen if anything fishy is there in the results. Many thanks
Hi
I'm running
divide_and_conquer_pipeline
and I'm getting some parallelization issues that returnAssertionError
. What would be the best way to tackle this problem?