0

我有興趣應用Python多處理模塊(或任何合適的等價物)來加速獨立處理多個數據文件。目前,處理代碼在單個內核上是CPU限制的,即100%cpu,直到完成。獨立作業的多核處理

我有許多數據文件,每個數據文件都需要一些簡單但相對CPU密集的處理操作。處理操作已被轉換爲一個單獨的函數,該函數將處理文件和其他一些參數。由於每個處理操作完全獨立,多核處理似乎是一個完美的解決方案。

我見過在多處理模塊中使用Process和Queue方法的各種示例,但如果我誠實地說,我真的不知道如何將它們應用於我的問題。本質上,我想使用我的機器中的所有8個內核來使用作業排隊系統咀嚼處理操作。開始時,同時處理8個文件,每個核心處理1個文件。當其中一個內核完成其處理操作時,我希望它處理隊列中的下一個文件。該循環繼續,直到處理完所有文件。由於處理操作是獨立的,因此不需要進行任何跨線程通信。

有沒有人有一個簡單的例子來說明如何在Python中做到這一點?

感謝

+0

這可能是一個很好的閱讀:https://www.praetorian.com/blog/multi-core-and-distributed-programming-in-python – Dyrborg

+0

https://mikecvet.wordpress.com/2010/ 07/02/parallel-mapreduce-in-python /可能會給你一些很好的線索。 – boardrider

回答

0

如果你不反對外部亞軍和其相關的開銷,一個可能的選擇是使用一個任務隊列,如Celery。它包含了所有需要的機器。你只需要將你的單個工作單元包裝在@task修飾器中並將它們排入隊列。

+0

感謝您的回覆。我希望儘可能使用「標準」Python。即儘量減少外部包裹,如跑步者 – Mark