2009-07-22 61 views
6

爲了在關鍵的多核(8)工作站中實現質量保證,我想在不同的處理器上運行相同的代碼,但不是並行或同時運行。在不同的處理器上運行Python代碼

我需要運行它8次,每個處理器運行一次。

我不知道的是如何選擇我想要的處理器。

這怎麼能在Python中完成?

+5

我認爲你應該包括你的目標操作系統。在大多數情況下,CPU上的調度超出了Python的範圍(忽略調用OS來執行調度)。 – Erik 2009-07-22 16:20:55

回答

4

在Linux中使用schedutils,我相信你會使用taskset-c X python foo.py上運行CPU X(你到底如何確定你的CPU可能會有所不同特定Python進程,但我相信的數字,如1,2,3,...應該在任何地方工作)。我確定Windows,BSD版本等有類似的命令來支持直接處理器分配,但我不知道它們。

3

哪個進程繼續哪個核心通常由您的操作系統決定。在linux上,schedutils包中有taskset明確地在處理器上運行程序。

Python 2.6中具有multiprocessing模塊,其取蟒功能和運行它們在單獨的過程中,可能移動每個新的處理到不同的核心。