芹菜慢于多重加工?

时间:2013-07-01 23:26:52

标签: python multiprocessing celery

我有两台电脑,c1和c2。 c1是双核cpu,c2是四核cpu。所以我用芹菜连接这两台计算机,使用6名工人完成一些任务。但是,当我在c1中使用6个工人的多处理时,似乎芹菜中的每个工人在多处理中都比较慢?这是为什么?那么芹菜相对于多重加工有什么优势呢?

例如:

我有这个功能:

    def readFromHBase(inputData):
        ...
        return data

我使用芹菜和多处理从100000个样本中读取1000个文件。

在芹菜中我设置了6名工人,他们穿过两台电脑c1和c2,如上所述。每个工作人员将读取10个文件,直到获得1000个文件。

在多处理中,我做了同样的事情,但只是在c1和6工作池中设置。每个工作人员将读取10个文件,直到获得1000个文件。

结果表明,多处理中的每个工人比芹菜花费的时间更少。这是怎么发生的?

1 个答案:

答案 0 :(得分:1)

Celery有一个队列经纪人。多处理没有。 芹菜工作者从中央队列中拉出任务,网络一(甚至在本地主机上)。多处理使用IPC。

当然,IPC的开销比套接字层少。

您可以根据自己的表现支付费用。

相关问题