我在决定使用python multiprocessing或芹菜或pp为我的应用程序时有点麻烦。我的应用程序是非常重的CPU,但目前只使用一个CPU,所以我需要将它传播到所有可用的CPU(这导致我看看Python的多处理库),但我读了这个库不能缩放到其他机器如果需要。现在我不确定是否需要多个服务器来运行我的代码,但我想在本地运行celery,然后扩展只需要添加新的服务器而不是重构代码(如果我使用多)。Celery是否像Python多处理一样在本地系统上高效?
我的问题:这个逻辑正确吗?并且在本地使用芹菜时是否会有任何负面(性能)(如果事实证明一台具有多个核心的服务器可以完成我的任务)?还是建议使用多处理,并在以后增加其他功能?
谢谢!
p.s.这是一个个人学习项目,但我可能有一天喜欢在一家公司工作,想要学习专业人员如何做。
是什么让你认为多个CPU可以帮助IO应用程序?如果您的应用程序是IO绑定的,那么您需要多个IO通道,而不是CPU。 – 2012-02-12 16:46:52
对不起错误的单词......这是非常CPU密集型。基本上它只是一个大数据输入的大型递归数学。看起来像一个好的过程分发 – Lostsoul 2012-02-12 17:01:30
啊 - 在这种情况下,继续:)你需要容错 - 例如,试图使用分散在各地的志愿者计算 - 或者你只是想在实验室或一个实验室使用计算机簇? – 2012-02-12 17:47:54