我使用 Python 2.5.4。我的电脑:CPU AMD Phenom X3 720BE,主板780G,4GB内存,Windows 7 32位。
我使用 Python 线程但不能使每个 python.exe 进程占用 100% CPU。为什么他们平均只使用大约 33-34%?
我希望将所有可用的计算机资源用于这些大型计算,以便尽快完成它们。
编辑: 谢谢大家。现在我正在使用 Parallel Python,一切正常。我的 CPU 现在总是 100%。谢谢大家!
最佳答案
您的 CPU 似乎是 3 核的。如果您想在 native Python 代码中使用多个 CPU 内核,则必须生成多个进程。 (两个或多个 Python 线程不能在不同的 CPU 上并发运行)
作为R。 Pate 说,Python 的 multiprocessing
模块是一种方式。但是,我建议查看 Parallel Python 代替。它负责分发任务和消息传递。您甚至可以在多台独立的计算机上运行任务,而无需对您的代码进行少量更改。
使用起来非常简单:
import pp
def parallel_function(arg):
return arg
job_server = pp.Server()
# Define your jobs
job1 = job_server.submit(parallel_function, ("foo",))
job2 = job_server.submit(parallel_function, ("bar",))
# Compute and retrieve answers for the jobs.
print job1()
print job2()
关于python - 为什么我的 Python 程序平均每个进程只有 33% 的 CPU?如何让 Python 使用所有可用的 CPU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1743293/