Изменить протокол сериализации для многопроцессорной обработки (Windows) - PullRequest
0 голосов
/ 18 октября 2019

Я использую

dask.compute(*delayeds, scheduler='processes', num_workers=4)

для параллельного выполнения вычислений.

Однако я столкнулся с проблемой получения результата вычисления, поскольку возвращаемый размер объекта превышает 4 ГБ. Протокол Pickle по умолчанию в многопроцессорной среде равен 3, а его предел равен 4 ГБ.

Я хотел бы знать, можно ли изменить протокол на 4.

Я нашел какой-то намек на Как изменить метод сериализации, используемый многопроцессорным модулем? , но, похоже, он не работает в Windows.

Спасибо

1 Ответ

0 голосов
/ 18 октября 2019

Прежде чем ответить на конкретный вопрос, пара замечаний:

  • вы, вероятно, не должны использовать многопроцессорность, а скорее распределенный планировщик, который является более современным и способным, и имеет очень четко определено , подключаемый протокол сериализации

  • отправка 4 ГБ рабочим и обратно очень похожа на анти-шаблон ;нет ли способа, которым вы можете загружать данные непосредственно в рабочие, а также записывать или агрегировать перед извлечением, полностью исключая проблему сериализации?

...