独立工作的多核处理

时间:2015-07-12 17:21:39

标签: python multithreading python-2.7 multiprocessing python-multithreading

我感兴趣的是应用Python多处理模块(或任何合适的等价物)来加速多个数据文件的独立处理。目前,处理代码是CPU限制在单个内核上,即100%cpu,直到完成。

我有许多数据文件,每个文件都需要一些简单但相对CPU密集的处理操作。处理操作已经转换为单个函数,该函数接受要处理的文件和一些其他参数。由于每个处理操作都是完全独立的,因此多核处理似乎是一个完美的解决方案。

我在多处理模块中看到了使用Process和Queue方法的各种示例,但如果我说实话,我真的看不出如何将它们应用到我的问题中。

本质上,我想使用我的机器中的所有8个核心来使用作业排队系统来咀嚼处理操作。一开始,同时处理8个文件,每个核心处理1个文件。当其中一个核心完成其处理操作时,我希望它处理队列中的下一个文件。此循环一直持续到所有文件都已处理完毕。由于处理操作是独立的,因此不需要进行任何跨线程通信。

有没有人有一个如何在Python中执行此操作的简单示例?

由于

1 个答案:

答案 0 :(得分:0)

如果您不反对外部跑步者及其相关的开销,一种可能的选择是使用任务队列,例如Celery。它包含所有必需的开箱即用机器。您只需将您的个人工作单位包装在@task装饰器中并将其排队。