(Dask) Как распределить дорогой ресурс, необходимый для вычислений? - PullRequest
0 голосов
/ 03 октября 2018

Как лучше всего распределить задачу по набору данных, использующему относительно дорогой для создания ресурс или объект для вычислений.

# in pandas
df = pd.read_csv(...)
foo = Foo() # expensive initialization.
result = df.apply(lambda x: foo.do(x))

# in dask?
# is it possible to scatter the foo to the workers?
client.scatter(...

Я планирую использовать это с dask_jobqueue с SGECluster.

1 Ответ

0 голосов
/ 03 октября 2018
foo = dask.delayed(Foo)()  # create your expensive thing on the workers instead of locally

def do(row, foo):
    return foo.do(row)

df.apply(do, foo=foo)  # include it as an explicit argument, not a closure within a lambda
...