我有两台电脑,c1 和 c2。c1是两核cpu,c2是四核cpu。因此,我使用 6 名工人将这两台计算机与 celery 连接起来完成一些任务。但是,当我在具有 6 个工人的 c1 中使用多处理时,似乎 celery 中的每个工人在多处理中都比较慢?这是为什么?那么 celery 相对于多处理的优势是什么?
例如:
我有这个功能:
def readFromHBase(inputData):
...
return data
我使用 celery 和 multiprocessing 从 100000 个样本中读取 1000 个文件。
在 celery 中,我设置了 6 名工人穿过两台计算机 c1 和 c2,如上所述。每个worker将读取10个文件,直到1000个文件全部获得。
在多处理中,我做了同样的事情,但只是在 c1 中设置了一个 6 个工人池。每个工人将读取 10 个文件,直到 1000 个文件全部获得。
结果表明,多处理中的每个工人都比 celery 花费更少的时间。这是怎么发生的?