查找其他用户正在UNIX系统上使用的线程数
||
因此,我有一些计算量大的代码,可以愉快地使用32个线程或更高效地进行调试。我还可以通过我的学校访问具有32个处理器核心的群集。您可能会说“甜!”。
但是,可惜的是,如果您没有以专用方式将每个线程与处理器配对,那么代码将变得非常不愉快。对于数字方面的偏见,如果我运行的线程被换成另一个线程,则我的BLAS实现会极大地影响效率。除了集群处于无政府状态之外,这不是问题。
没有作业调度程序或队列,即使已经使用了所有资源,集群也不会阻止人们启动作业。
这是我的问题:登录并想运行我的代码时,我已经看到四个人。他们可能正在运行串行和并行作业的某种组合。我想尽可能多地使用线程(也就是说,集群中所有剩余资源)。我该如何确定我可以使用的度量,或者其他所有用户正在使用的线程数,他们正在生成的峰值计算负载还是其他快速可用的度量?
当前,我的解决方案是使用1个线程,然后2个线程,然后.....然后32个线程来运行我的代码部分,并查看我在实时执行时遇到的困难。我从墙壁上退了几根线,然后做了大量的工作。这需要几分钟,我想找到一种更快的方法来找到适当数量的线程来启动。
谢谢,
- 安德鲁
编辑:
sehe的答案肯定回答了我最初有关如何获取线程号的问题。事实证明,这并没有我想象的有用。菲尔的评论使我走上了富有成效的道路。我现在正在做的是:
top -bn1 | grep load
获取信息。这对我来说是有利的,因为我的应用程序是基于Matlab的,并且我可以从脚本发出UNIX调用以偶尔获取此信息,并使我正在使用的线程数适应可用资源。
感谢您使我走上正确的轨道。
- 安德鲁
没有找到相关结果
已邀请:
2 个回复
为陡土
显示每个用户拥有的所有线程(假设使用Linux);以下内容仅限于正在运行的线程:
您可以使用
运行此命令(作为脚本):
并以图形方式显示正在运行的线程。 整齐的perl:
蹦吃舷弦