Python多处理:台球与多处理

时间:2019-02-25 01:25:38

标签: python celery python-multiprocessing python-billiard

最初的问题:使用celery任务队列,我希望进程池中的进程使用共享的CUDA数组(即,不是每个进程都有其唯一的数组,我想要一个数组可以被所有进程访问。这是安全的,因为仅执行读取操作)。 Pytorch的{​​{1}}库允许这样做,并且根据doc,它是torch.multiprocessing的简单替代。

multiprocessingbilliard似乎是创建进程池的两个可行选项。目前,由于一些功能上的改进,Python任务队列库multiprocessingcelery上使用billiard。有人问了一个问题here,但是答案并不是很具体。

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(以便使用pytorch的多处理库celery),但这可以吗? torch.multiprocessingmultiprocessing有什么区别?

1 个答案:

答案 0 :(得分:1)

对于那些希望将celery的{​​{1}}替换为billiard的人来说,不可能,这是根据celery开发人员的reply