首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux回显cpu (核心)名称/号码,用于PBS中给定的shell

问Linux回显cpu (核心)名称/号码,用于PBS中给定的shell
EN

Stack Overflow用户
提问于 2015-05-06 21:34:10
回答 1查看 383关注 0票数 1

我有一个简单的C++代码,它使用英特尔的TBB在集群上使用PBS运行脚本列表。我想确认的是,我正在使用所有的核心,如预期的。每个节点有16个核。我已经创建了脚本来占用不同的时间,这样如果列表被平均分配,我就会有空闲的核心。如果当内核可用时,列表被分开了,那么我应该没有空闲的核心。代码在单个节点上似乎运行良好,但对于多个节点则不起作用。

我想要一些类似于echo $HOSTNAME的东西,除了核心。谷歌辜负了我,并给出了反映核心数量或核心使用数量的结果。我试过使用top并监视作业运行情况,但这并不能告诉我哪个核心。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-07 13:39:50

在任何给定的时刻,都要由Linux调度程序来决定哪个进程得到哪个核心。它根据负载的不同,在第二次频繁地将进程从核心移动到核心。

您可以使用ps命令的psr选项获得进程到cpu分配的快照:

代码语言:javascript
复制
ps -o pid,psr,cmd -28832
  PID PSR CMD
28832   1 bash

也就是说,在这里,bash (pid=28832)被分配给具有processor id=1的第二个核心。

从C代码中可以使用在linux/getcpu.h中定义的getcpu(2)调用。

要将进程分配给特定的核心集,您可以运行numactl(8)或taskset(1),指定一个cpu关联掩码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30087999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档