这是 hwloc-bind 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
hwloc-bind - 启动绑定到特定处理器和/或内存的命令,或
咨询现有程序的绑定
概要
hwloc 绑定 [选项] [ [...] ] [ - ] ...
需要注意的是 硬件(7) 提供了 hwloc 系统的详细解释和有效的
格式; 在阅读本手册页之前应该先阅读它。
配置
--cpu绑定 使用以下参数进行 CPU 绑定(默认)。
--成员绑定 使用以下参数进行内存绑定。 如果 --内存策略 也没有给出,
默认策略是绑定。
--内存策略
更改内存绑定策略。 可用的策略是默认的,
firsttouch、bind、交错复制和nexttouch。 该选项仅
当实际绑定也给出时有意义 --成员绑定。 如果 --成员绑定 is
没有给出 --内存策略,默认策略是绑定。
- 得到 报告当前绑定。
当给出命令时,在执行命令之前显示绑定。
当没有给出命令时,程序显示当前值后退出
捆绑。
当与 --成员绑定, 报告内存绑定而不是 CPU 绑定。
由于未执行绑定,因此不能给出位置。
-e --get-last-cpu-位置
报告进程运行的最后一个处理器。 请注意,结果可能
报告时已经过时,因为操作系统可能会移动
根据绑定随时处理到其他处理器。
当给出命令时,在执行命令之前显示最后的处理器
命令。 当没有给出命令时,显示最后一个程序后退出
处理器。
此选项不能与 --成员绑定.
由于未执行绑定,因此不能给出位置。
- 单身的 绑定在单个 CPU 上以防止迁移。
- 严格的 需要严格绑定。
--pid
在pid上操作
-p - 身体的
采用操作系统/物理索引而不是逻辑索引
-l --逻辑
采用逻辑索引而不是物理/操作系统索引(默认)
--任务集 以任务集命令行识别的格式显示 CPU 集字符串
程序而不是特定于 hwloc 的 CPU 设置字符串格式。 这个选项没有
对输入 CPU 集字符串格式的影响,这两种格式总是被接受。
- 严格
将拓扑限制为给定的 cpuset。
--全系统
不考虑管理限制。
-f - 力量
即使绑定失败也启动可执行文件。
-q - 安静的
隐藏非致命错误消息。 它包括指向不存在的位置
对象,以及绑定失败。 这通常是有用的,除了
- 力量.
-v --详细
详细输出。
- 版 报告版本并退出。
商品描述
hwloc-bind 执行绑定到
指定位置(或位置列表)。 成功执行后,hwloc-bind 只需
设置绑定,然后对其自身执行可执行文件。
如果绑定失败,或者绑定集为空,并且 - 力量 没有给出,hwloc-bind
返回错误而不是启动可执行文件。
注意: 强烈建议您阅读 硬件(7) 阅读前的概览页
这个手册页。 中描述的大多数概念 硬件(7) 直接申请hwloc-
绑定实用程序。
示例
hwloc-bind 的操作最好通过几个例子来描述。 有关如何的更多详细信息
在 hwloc-bind 命令行中指定的位置在 硬件(7)。
在第二个包的第一个逻辑处理器上运行 echo 命令:
hwloc-bind package:1.pu:0 -- 回声你好
这完全等同于
hwloc-bind 包:1.pu:0 回声你好
将“echo”命令绑定到第二个包的第一个内核和第二个包的第二个内核
第一个包:
hwloc-bind package:1.core:0 package:0.core:1 echo 你好
请注意,将“echo”命令绑定到多个处理器可能毫无意义
(因为“echo”很可能作为单线程应用程序实现); 这些例子
只是为了展示 hwloc-bind 可以做什么。
要在第二个和第三个节点上的前三个包上运行:
hwloc-bind 节点:1-2.package:0:3 回声你好
这也相当于:
hwloc-bind 节点:1-2.package:0-2 回声你好
请注意,如果您尝试绑定到不存在的对象,hwloc-bind 将不会发出警告
除非 -v 被指定。
要在物理索引为 2 的包中的物理索引为 1 的处理器上运行:
hwloc-bind --physical package:1.core:2 echo 你好
要在偶数包中的奇数内核上运行:
hwloc-bind 包:even.core:odd echo hello
在第一个包上运行,除了第二个和第五个内核:
hwloc-bind package:0 ~package:0.core:1 ~package:0.core:4 echo 你好
在第一个包之外的任何地方运行:
hwloc-bind all ~package:0 回声你好
要在名为 eth0 的网络接口附近的核心上运行:
hwloc-bind os=eth0 回声你好
要在总线 ID 为 0000:01:02.0 的 PCI 设备附近的内核上运行:
hwloc-bind pci=0000:01:02.0 回声你好
在第二个内存节点上绑定内存并在第一个节点上运行(当操作系统支持时):
hwloc-bind --cpubind 节点:1 --membind 节点:0 回声你好
--get 选项可以报告当前绑定。 此示例显示嵌套 hwloc-bind
调用以设置绑定然后报告它:
hwloc-bind 节点:1.package:2 hwloc-bind --get
在 hwloc 开发人员的其中一台机器上,此示例报告“0x00004444,0x44000000”。
您机器上报告的掩码可能不同。
位置也可以指定为十六进制位掩码(通常由 hwloc-calc 生成)。
例如:
hwloc-bind 0x00004444,0x44000000 回声你好
hwloc-bind `hwloc-calc 节点:1.package:2` echo hello
也可能报告内存绑定:
hwloc-bind --membind 节点:1 --mempolicy interleave -- hwloc-bind --get --membind
这将返回一个描述内存绑定的字符串,例如“0x000000f0(交错)”。
请注意,如果系统不包含任何 NUMA 节点,则报告的字符串将指示
该进程绑定到整个系统内存(例如,“0xf...f”)。
提示
如果启用图形的 lstopo 可用,请使用例如
hwloc 绑定核心:2 -- lstopo --pid 0
检查绑定命令的结果实际上是什么。 lstopo 将图形化
显示它被 hwloc-bind 绑定到的位置。
返回 VALUE
成功执行后, hwloc-bind 会对其自身执行命令。 返回值为
因此无论命令的返回值是什么。
如果发生任何类型的错误,hwloc-bind 将返回非零值,例如(但不限于):
无法解析命令行、无法检索进程绑定或缺少
命令来执行。
使用 onworks.net 服务在线使用 hwloc-bind