Я пытаюсь отладить код, который использует dask для расчетов. Трассировка исключений заканчивается на:
File "/media/nas/x21324/miniconda3/envs/py37d/lib/python3.7/site-packages/dask/core.py", line 118, in _execute_task
args2 = [_execute_task(a, cache) for a in args]
File "/media/nas/x21324/miniconda3/envs/py37d/lib/python3.7/site-packages/dask/core.py", line 118, in <listcomp>
args2 = [_execute_task(a, cache) for a in args]
File "/media/nas/x21324/miniconda3/envs/py37d/lib/python3.7/site-packages/dask/core.py", line 119, in _execute_task
return func(*args2)
File "/media/nas/x21324/miniconda3/envs/py37d/lib/python3.7/site-packages/dask/optimization.py", line 942, in __call__
dict(zip(self.inkeys, args)))
File "/media/nas/x21324/miniconda3/envs/py37d/lib/python3.7/site-packages/dask/core.py", line 149, in get
result = _execute_task(task, cache)
File "/media/nas/x21324/miniconda3/envs/py37d/lib/python3.7/site-packages/dask/core.py", line 119, in _execute_task
return func(*args2)
RuntimeWarning: invalid value encountered in less_equal
, который на многих уровнях приводит к вызову .compute(...)
, который либо вызывается явно, либо является следствием какой-либо другой операции, запускающей вычисления (в данном случае numpy.ma.masked_invalid
). Фактический код, вызывающий ошибку, находится в другом месте, в операции, когда планируется задача задачи.
Следуя рекомендациям по отладке dask , я запустил dask.config.set(scheduler='single-threaded')
, но, насколько я могу судить, это ничего не меняет.
Есть ли способ, которым я могу настроить dask для выполнения всех задач сразу после отправки, или каким-либо другим способом, которым я получаю трассировку, чтобы я мог указать отладку на строку, где была отправлена инструкция?
(Это предупреждение, а не ошибка, но я превратил его в исключение, потому что хочу изучить обстоятельства, вызывающие его)