如何判断Python的多处理模块是否正在使用我的所有内核进行计算?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何判断Python的多处理模块是否正在使用我的所有内核进行计算?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1672字,纯文字阅读大概需要3分钟。
内容图文
我有一些像这样的教程的简单代码:
from multiprocessing import Process, Lock
import os
def f(i):
print 'hello world', i
print 'parent process:', os.getppid()
print 'process id:', os.getpid(), "\n\n"
if __name__ == '__main__':
lock = Lock()
for num in range(10):
p = Process(target=f, args=(num,))
p.start()
p.join()
如何判断这是否同时使用了我的核心?目前我正在运行Ubuntu 11.04 w / 3 GB RAM和Intel Core 2 Duo @ 2.2GHz.
我正在学习的这个项目将被转移到一个人的办公室里的一台巨大的机器上,比我现在拥有的马力要大得多.具体来说,处理器至少有4个内核,我想确保我的算法能够自动检测并利用所有可用内核.此外,该系统可能不是Linux,因此在OS之间移动多处理模块时,我是否需要注意任何常见的失误?
哦,是的,脚本的输出看起来像这样:
hello world 0
parent process: 29362
process id: 29363
hello world 1
parent process: 29362
process id: 29364
hello world 2
parent process: 29362
process id: 29365
and so on...
所以从目前为止我所知道的,PPID都是一样的,因为上面运行的脚本是调用子进程的父进程,每个进程都是一个不同的进程.那么多处理自动检测和处理多个核心,或者我必须告诉它在哪里看?此外,根据我在搜索此问题的副本时所阅读的内容,我不应该产生比核心更多的进程,因为它会占用原本用于计算的系统资源.
在此先感谢您的帮助,我的论文爱你.
解决方法:
这是一个方便的小命令,用于从命令行监视我的内核:
watch -d "mpstat -P ALL 1 1 | head -n 12"
请注意,mpstat命令必须在您的系统上可用,您可以通过安装sysstat软件包在Ubuntu上获取该命令.
sudo apt-get install sysstat
如果要从Python检测可用内核的数量,可以使用multiprocessing.cpu_count()函数执行此操作.在具有超线程的Intel CPU上,此数字将是实际内核数量的两倍.启动与可用内核一样多的进程通常可以扩展以完全占用计算机上的所有内核,只要这些进程有足够的工作要做,并且不会因为通信而陷入困境. Linux的进程调度程序将从那里开始.
内容总结
以上是互联网集市为您收集整理的如何判断Python的多处理模块是否正在使用我的所有内核进行计算?全部内容,希望文章能够帮你解决如何判断Python的多处理模块是否正在使用我的所有内核进行计算?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。