hwloc-calc - 云端在线

这是命令 hwloc-calc,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


hwloc-calc - 操作 cpu 掩码字符串和对象

概要


hwloc-计算 [选项] [ [...] ]

需要注意的是 硬件(7) 提供了 hwloc 系统的详细解释和有效的
格式; 在阅读本手册页之前应该先阅读它。

配置


-p - 身体的
对输入和输出使用操作系统/物理索引而不是逻辑索引。

-l --逻辑
对输入和输出使用逻辑索引而不是物理/操作系统索引
(默认)。

--pi --物理输入
使用操作系统/物理索引而不是逻辑索引进行输入。

——李 --逻辑输入
使用逻辑索引而不是物理/操作系统索引进行输入(默认)。

--po --物理输出
使用操作系统/物理索引而不是逻辑索引进行输出。

--洛 --逻辑输出
使用逻辑索引而不是物理/操作系统索引进行输出(默认,除了
对于始终是物理的 cpuset)。

-N --数量
报告与 CPU 相交的给定类型或深度的对象数量
放。 这便于查找有多少个内核、NUMA 节点或 PU
可在机器中使用。

-I - 相交
查找与 CPU 集相交的给定类型或深度的对象列表
并报告以逗号分隔的索引列表而不是 cpu 掩码
细绳。 这可用于确定上方或下方的对象列表
输入对象。 当与 - 身体的,列表方便传递给
外部工具,例如 taskset 或 numactl --physcpubind or --成员绑定。 这是
与 --largest 不同,因为后者要求所有报告的对象都是
严格包含在输入对象中。

-H --分层的 . ...
查找类型的对象列表与 CPU 集相交并报告
其分层索引的空格分隔列表,
等。例如,如果 包.core 给出,输出将是
包装:1.核心:2 包装:2.核心:3 如果输入包含第三个核心
第二包和第三包的第四核。

--最大 报告(以人类可读的格式)最大对象的列表
包括所有输入对象。 这些输出对象中没有一个彼此相交,
并且它们的总和完全等于输入。 没有最大的物体是
包含在输入中 这与 --intersect 报告的对象不同
可能不会严格包含在输入中。

- 九月
更改输出中的字段分隔符。 默认情况下,空格用于
单独的输出对象(例如,当 --分层的 or --最大 给出)
而逗号用于分隔索引(例如,当 - 相交 is
给)。

- 单身的 将输出单一化到单个 CPU。

--任务集 以任务集命令行识别的格式显示 CPU 集字符串
程序而不是特定于 hwloc 的 CPU 设置字符串格式。 这个选项没有
对输入 CPU 集字符串格式的影响,这两种格式总是被接受。

- 严格
将拓扑限制为给定的 cpuset。

--全系统
不考虑管理限制。

-i , - 输入
从 XML 文件读取拓扑(而不是发现拓扑
本地机器)。 如果是“-”,使用标准输入。 XML 支持必须
已被编译到 hwloc 以便此选项可用。

-i , - 输入
从指定的 chroot 读取拓扑(而不是发现
本地机器上的拓扑)。 此选项通常仅适用于
Linux。 chroot 通常是通过收集另一台机器拓扑创建的
使用 hwloc-gather-topology。

-i , - 输入
模拟一个虚假的层次结构(而不​​是在本地发现拓扑
机器)。 如果是“node:2 pu:3”,拓扑将包含两个
NUMA 节点,每个节点有 3 个处理单元。 这细绳
必须以多个 PU 结尾。

- 如果 , --输入格式
以给定的格式强制输入,其中 XML, 根目录合成的.

-q - 安静的
隐藏非致命错误消息。 它主要包括指向非
现有的对象。

-v --详细
详细输出。

- 版 报告版本并退出。

商品描述


hwloc-calc 生成和操作 CPU 掩码字符串或对象。 输入和输出
可以是对象(具有物理或逻辑索引)、CPU 列表(具有物理或
逻辑索引),或 CPU 掩码字符串(总是物理索引)。

如果在命令行中给出了对象或 CPU 掩码字符串,它们将被组合在一起并生成一个
打印单个输出。 如果命令行上没有给出对象或 CPU 掩码字符串,
程序将读取标准输入。 它将组合多个对象或 CPU 掩码
在标准输入行的同一行上给出的带有空格的字符串
分隔符。 不同的输入行将分别处理。

命令行参数和选项按顺序处理。 例如,这意味着
更改输入索引的类型 ——李 或改变输入拓扑 -i 仅由
影响以下参数的处理。

注意: 强烈建议您阅读 硬件(7) 阅读前的概览页
这个手册页。 中描述的大多数概念 硬件(7) 直接申请hwloc-
计算实用程序。

示例


hwloc-calc 的操作最好通过几个例子来描述。

要显示与第二个包对应的(物理)CPU 掩码:

$ hwloc-calc 包:1
0x000000f0

显示与第三个包对应的(物理)CPU 掩码,不包括它的偶数
编号的逻辑处理器:

$ hwloc-calc 包:2 ~PU:even
0x00000c00

要组合两个(物理)CPU 掩码:

$ hwloc-calc 0x0000ffff 0xff000000
0xff00ffff

要显示包含在第二个包中的处理器的逻辑编号列表:

$ hwloc-calc --intersect PU 包:1
4,5,6,7

要在整个机器上逻辑绑定 GNU OpenMP 线程,我们需要使用物理
数字输出代替:

$ export GOMP_CPU_AFFINITY=`hwloc-calc --physical-output --intersect PU 机器:0`
$ 回声 $GOMP_CPU_AFFINITY
0,4,1,5,2,6,3,7

按物理索引显示与给定(物理)相交的 NUMA 节点列表
CPU掩码:

$ hwloc-calc --physical --intersect NUMAnode 0xf0f0f0f0
0,2

要显示由其逻辑索引给出的处理器的物理索引:

$ hwloc-calc PU:2 --物理输出 --intersect PU
3

要显示网络接口 eth0 附近的 CPU 集:

$ hwloc-calc os=eth0
0x00005555

要显示总线 ID 为 0000:01:02.0 的 PCI 设备附近的包的索引:

$ hwloc-calc pci=0000:01:02.0 --intersect 包
1

要显示与输入相交的每个包核心的列表:

$ hwloc-calc 0x00003c00 --hierarchical package.core
封装:2.Core:1 封装:3.Core:0

要显示除第三个包之外的整个拓扑的(物理)CPU 掩码:

$ hwloc-calc all ~package:3
0x0000f0ff

将物理索引和逻辑索引组合为输入:

$ hwloc-calc PU:2 --物理输入 PU:3
0x0000000c

要将一组内核合成为 2 节点 2 封装 2 核机器上的最大对象:

$ hwloc-calc 核心:0 --最大
核心:0
$ hwloc-calc 核心:0-1 --largest
包装方式:0
$ hwloc-calc 核心:4-7 --largest
NUMA 节点:1
$ hwloc-calc 核心:2-6 --largest
包装:1 包装:2 核心:6
$ hwloc-calc 包:2 --最大
包装方式:2
$ hwloc-calc 包:2-3 --largest
NUMA 节点:1

要获取所有内核的第一个线程集:

$ hwloc-calc 核心:all.pu:0

这对于使 GNU OpenMP 每个内核只使用一个线程也非常有用,
并按逻辑核心顺序:

$ export OMP_NUM_THREADS=`hwloc-calc --核心机器数:0`
$ 回声 $OMP_NUM_THREADS
4
$ export GOMP_CPU_AFFINITY=`hwloc-calc --physical-output --intersect PU 核心:all.pu:0`
$ 回声 $GOMP_CPU_AFFINITY
0,2,1,3

返回 VALUE


成功执行后,hwloc-calc 显示(物理)CPU 掩码字符串,(物理
或逻辑)对象列表,或(物理或逻辑)对象编号列表。 返回值为
0.

如果发生任何类型的错误,hwloc-calc 将返回非零值,例如(但不限于):
无法解析命令行。

使用 onworks.net 服务在线使用 hwloc-calc



最新的 Linux 和 Windows 在线程序