Python 独立作业的多核处理

Python 独立作业的多核处理,python,multithreading,python-2.7,multiprocessing,python-multithreading,Python,Multithreading,Python 2.7,Multiprocessing,Python Multithreading,我对应用Python多处理模块(或任何合适的等效模块)来加速多个数据文件的独立处理感兴趣。目前,处理代码在单核(即100%CPU)上受到CPU限制,直到完成为止 我有许多数据文件,每个文件都需要一些简单但CPU相对密集的处理操作。处理操作已转换为单个函数,该函数接受要处理的文件和一些其他参数。由于每个处理操作都是完全独立的,因此多核处理似乎是一个完美的解决方案 我在多处理模块中看到了使用Process和Queue方法的各种示例,但老实说,我不知道如何将它们应用到我的问题中 本质上,我希望使用机器

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

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

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

本质上,我希望使用机器中的所有8个内核,通过作业队列系统仔细检查处理操作。开始时,同时处理8个文件,每个核心上处理1个文件。当一个内核完成其处理操作时,我希望它处理队列中的下一个文件。此循环将继续,直到处理完所有文件。由于处理操作是独立的,因此不需要任何跨线程通信

有没有人能举一个简单的例子来说明如何在Python中实现这一点


谢谢

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

谢谢您的回复。我希望尽可能使用“标准”Python。ie最小化Runnerst等外部软件包这可能是一本很好的读物:可能会给你一些好的线索。