python - 阻止 Python 使用多个 CPU

标签 python multithreading parallel-processing cpu-usage

我在使用 python 运行脚本时遇到问题。我没有在 python 中进行任何并行化,也没有调用任何 mpi 来运行脚本。我只是执行“python myscript.py”,它应该只使用 1 个 cpu。

但是,当我查看命令“top”的结果时,我发现 python 几乎使用了我 390% 的 cpus。我有一个四核,所以有 8 个线程。我认为这不会帮助我的脚本运行得更快。所以,我想了解为什么 python 使用多个 cpu,并阻止它这样做。

有趣的是,当我运行第二个脚本时,那个脚本也占了 390%。如果我运行第三个脚本,每个脚本的 CPU 使用率都会下降到 250%。前段时间我用matlab遇到了类似的问题,我解决的方法是用-singlecompthread启动matlab,但我不知道用python做什么。

如果有帮助,我正在我的脚本中求解泊松方程(根本没有并行化)。


更新: 我的 friend 在他自己的电脑上运行代码,它只占用 100% 的 cpu。我不使用任何 BLAS、MKL 或任何其他东西。我仍然不知道 400% cpu 使用率的原因是什么。 SLATEC 库中有一段 fortran 算法,它求解 Ax=b 系统。我认为那部分使用了很多 cpu。

最佳答案

您的代码可能会调用一些使用 C/C++/等的函数。下。在这种情况下,可以使用多线程。

您是否调用任何仅与 python 绑定(bind)的库以实现一些更高效的函数?

关于python - 阻止 Python 使用多个 CPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10427900/

相关文章:

python - 列出远程机器中的txt文件

ios - 我们可以允许从两个线程同时操作 NSMutableArray 的不同 "indexes"

c++ - 从另一个 thead 访问类函数?

c++ - 与 openmp 的 10 维蒙特卡洛集成

php - 如何在 PHP 中创建可调用的方法/函数

Python 多处理进程静默崩溃

Python - 只运行一行代码,而不是脚本中多行的其余部分

python - 如何在 docker 入口点内运行导出命令?

Python列表在特定条件下选择?

Java线程: Query regarding Thread waiting state