最初的问题:使用celery任务队列,我希望进程池中的进程使用共享的 CUDA 数组(即,我希望所有进程都访问一个数组,而不是每个进程都有其唯一的数组。这是安全的,因为只读取执行)。Pytorch 的torch.multiprocessing库允许这样做,并且根据文档,它是multiprocessing.
billiard似乎multiprocessing是创建进程池的两个可行选择。目前,celeryPython 任务队列库由于一些功能改进而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.
Run Code Online (Sandbox Code Playgroud)
我需要替换billiardinmultiprocessing的celery源代码(以便使用 pytorch 的多处理库torch.multiprocessing),但这可以吗?multiprocessing和之间有什么区别billiard?