python - 为什么我的 Python 程序平均每个进程只有 33% 的 CPU?如何让 Python 使用所有可用的 CPU?

标签 python performance process multiprocessing cpu-usage

我使用 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/

相关文章:

python - Python 是否支持正则表达式中的条件结构?

python - 带有枚举和 for 循环的代码在第一个字母上给我重复的结果

python - 在管理中使用 manyToMany InvalidCursorName 的模型

multithreading - JMeter:tearDown Thread Group 的目的是什么

python - 如果进程正在运行,如何使用 Python 检查 Mac OSX

python - 迁移错误。类型错误 : expected string or bytes-like object django

mysql - 将数据保存在多个文本行与 blob 上,哪个效果更好?

python - 在总和有限的情况下以最快的速度优化面积差

c# - 从 ASP.NET C# 启动程序

c - Linux下动态加载库的地址范围