首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道核心是否已经绑定

如何知道核心是否已经绑定
EN

Stack Overflow用户
提问于 2014-03-27 02:17:00
回答 1查看 157关注 0票数 1
代码语言:javascript
复制
hwloc_obj_t obj = hwloc_get_obj_by_depth(topology, depth_CORE,MyRank%4);
hwloc_cpuset_t cpuset = hwloc_bitmap_dup(obj->cpuset);
hwloc_set_cpubind(topology, cpuset, 0)

在hwloc中是否存在一个线程是否已经绑定到该"cpuset“。为什么我需要知道这一点:假设我有一个四核。但是如果我在运行时发出8个处理器。因此,它恰好将2个进程绑定到每个核心。然而,我想绑定进程到核心,只有当它是免费的。所以不管怎么说,我知道核心已经被绑定到进程中了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-27 10:12:07

这样做的唯一方法似乎是枚举所有进程,并检查其中一些进程是否绑定到指定的核心。您可以通过检查hwloc实用程序的源代码来了解如何做到这一点。它所做的就是读取/proc文件系统并在那里提取进程PID表单,然后使用hwloc_get_proc_cpubind()获取绑定掩码。这应该适用于Linux和Solaris,以及带有挂载/proc的*BSD系统。在Windows上,应该从工具帮助库中使用特定于系统的API来获得PID列表。OS不支持处理器关联。

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

https://stackoverflow.com/questions/22677032

复制
相关文章

相似问题

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