Многопроцессорная обработка Python: бильярд против многопроцессорной обработки - PullRequest
0 голосов
/ 25 февраля 2019

Исходная проблема: с использованием celery очереди задач. Я хочу, чтобы процессы в пуле процессов использовали общие массивы CUDA (т. Е. Вместо каждого процесса, имеющего свой уникальный массив, я хочу получить доступ к одному массивувсеми процессами. Это безопасно, потому что выполняются только чтения).Библиотека Pytorch torch.multiprocessing позволяет это делать, и, согласно doc , это простая замена для multiprocessing.

billiard и multiprocessing, которые кажутся жизнеспособными.варианты создания пулов процессов.В настоящее время celery, библиотека очереди задач Python, использует billiard вместо multiprocessing из-за некоторых улучшений .Кто-то задал вопрос здесь , но ответ не совсем конкретный.

It backports changes from the Python 2.7 and 3.x. 
The current version is compatible with Py2.4 - 2.7 and falls back to multiprocessing for 3.x, 
the next version will only support 2.6, 2.7 and 3.x. 

Мне нужно заменить billiard на multiprocessing в исходном коде celery (вЧтобы использовать многопроцессорную библиотеку Pytorch torch.multiprocessing), но это будет хорошо?В чем различия между multiprocessing и billiard?

1 Ответ

0 голосов
/ 25 февраля 2019

Тем, кто хочет заменить celery billiard на multiprocessing, невозможно в соответствии с этим ответ от разработчика сельдерея

...