Различные __getstate __ / __ setstate__ для многопроцессорной обработки и травления? - PullRequest
1 голос
/ 24 января 2020

У меня проблема. Определенные мной классы передаются multiprocessing.Pool() во время вычислений. Затем я хочу сохранить объекты thoose с pickle.dump() после завершения всех вычислений.

Чтобы упростить вычисления, я предварительно вычисляю некоторые вещи перед отправкой объектов в процессы. Затем, при сохранении на диск, эти предварительные вычисления больше не нужны, поэтому я хотел удалить их, используя механизм __setstate__ / __getstate__, как рекомендовано в документации pickle.

В: Используется ли для травления, сделанного multiprocessing, пользовательский __setstate__ / __getstate__? Если да, как я могу использовать разные __setstate__ / __getstate__ для маринования и многопроцессорной обработки?

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

РЕДАКТИРОВАТЬ: Я основал это: многопроцессорность игнорирует "__setstate __" , которая рассматривает аналогичную проблему. Первый ответ показывает различия между windows и linux поведением (что проблематично c для меня ...). Но это 7 лет. Каково текущее состояние реализации по этому вопросу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...