У меня есть функция interpolate_to_particles
, написанная в c и обернутая ctypes
. Я хочу использовать dask.delayed
для выполнения серии вызовов этой функции.
Код успешно выполняется без dask
# Interpolate w/o dask
result = interpolate_to_particles(arg1, arg2, arg3)
и с распределенным расписанием в режиме single-threaded
# Interpolate w/ dask
from dask.distributed import Client
client = Client()
result = dask.delayed(interpolate_to_particles)(arg1, arg2, arg3)
result_c = result.compute(scheduler='single-threaded')
, но если я вместо этого позвоню
result_c = result.compute()
Я получаю следующую KeyError:
> Traceback (most recent call last): File
> "/path/to/lib/python3.6/site-packages/distributed/worker.py",
> line 3287, in dumps_function
> result = cache_dumps[func] File "/path/to/lib/python3.6/site-packages/distributed/utils.py",
> line 1518, in __getitem__
> value = super().__getitem__(key) File "/path/to/lib/python3.6/collections/__init__.py",
> line 991, in __getitem__
> raise KeyError(key) KeyError: <function interpolate_to_particles at 0x1228ce510>
Рабочие журналы, доступные из панели мониторинга dask, не предоставляют никакой информации. На самом деле я не вижу никакой информации о том, что рабочие что-то сделали, кроме запуска.
Есть идеи о том, что может происходить, или предложены инструменты, которые я могу использовать для дальнейшей отладки? Спасибо!