英语法语西班牙语

Ad


OnWorks 网站图标

likwid-pin - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 likwid-pin

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

程序:

您的姓名


likwid-pin - 将顺序或线程应用程序固定到专用处理器

概要


菱形针 [-vhqipS] [-c [-s [-d ]

商品描述


菱形针 是一个命令行应用程序,用于固定顺序或多线程应用程序
到专用处理器。 它可以用作替代品 任务集(1)。 对面
任务集没有关联掩码,但指定了单个处理器。 对于多线程
基于 pthread 库的应用程序 线程创建 库调用过载
通过 LD_PRELOAD 并且每个创建的线程都被固定到指定的专用处理器
in 核心列表

默认情况下,每个生成的线程都按调用顺序固定到核心
pthread_create。 可以使用 -s 命令行选项跳过单个线程。

对于 OpenMP 实现,明确支持 gcc 和 icc 编译器。 其他人也可以
工作。 菱形针 如果尚未设置环境变量 OMP_NUM_THREADS
展示。 它将设置与 pin 表达式中存在的线程一样多的线程。 意识到
使用 pthreads,父线程总是被固定。 如果您创建例如 4 个线程
线程创建 并且不要将父进程用作您仍然必须提供的工作人员
num_threads+1 个处理器 ID。

菱形针 支持用于固定的不同编号。 每个默认物理编号
使用核心。 这也是编号 相似拓扑(1) 报告。 但是也
可以使用节点或套接字内部的逻辑编号。 如果与 N 一起使用(例如 -c
N:0-6) 内核在整个节点上进行逻辑编号。 物理内核是第一位的。 如果
例如,一个系统有 8 个内核和 16 个 SMT 线程,使用 -c N:0-7 可以获得所有物理内核。
如果您指定 -c N:0-15,您将获得所有物理内核和所有 SMT 线程。 用 S 你可以
指定套接字内的逻辑编号,物理内核再次出现。 你可以混合
不同的域用@ 分隔。 例如 -c S0:0-3@S2:2-3 将线程 0-3 固定到逻辑
插槽 0 上的内核 3-0 和插槽 4 上逻辑内核 5-2 上的线程 3-2。

对于不能在 numa 系统上采用首次触摸策略的应用程序 菱形针
可用于打开交错内存放置。 这可以显着加快
内存绑定多线程代码的性能。 用户将线程固定到的所有 numa 节点
用于交错。

配置


-v 将版本信息打印到标准输出,然后退出。

-h 将帮助消息打印到标准输出,然后退出。

-c OR OR <分散 政策>
指定处理器的数字列表。 该列表可能包含多个项目,
用逗号和范围分隔。 例如 0,3,9-11。 您还可以使用逻辑
编号,要么在节点 (N) 内,要么在套接字 (S ) 或 numa 域 (M )。
likwid-pin 还支持带有 L 前缀的 cpuset 内的逻辑固定。 如果你
省略此选项 likwid-pin 会将线程固定到节点上的处理器
首先是物理内核。 有关使用线程表达式的详细信息,请参见下文或
分散政策

-s
将跳过掩码指定为十六进制数。 对于每个设置位,相应的线程是
跳过。

-S 将清除属于指定线程列表的所有 ccNUMA 内存域
跑前。 可以解决Linux上的文件缓冲区缓存问题。

-p 打印用于逻辑固定的可用线程域。 如果组合使用
使用 -c,物理处理器 ID 将打印到标准输出。

-i 将 numa 内存策略设置为交错跨越所有涉及 pinning 的 numa 节点

-q 无输出的静默执行

-d
设置用于输出物理处理器列表的分隔符(-p & -c)


1. 对于标准 pthread 应用程序:

菱形针 -c 0,2,4-6 ./我的应用程序

父进程固定到处理器 0。线程 0 到处理器 2,线程 1 到
处理器 4,线程 2 到处理器 5,线程 3 到处理器 6。
创建的线程比处理器列表中指定的要多,这些线程被固定到处理器 0 作为
倒退。

2. 对于 gcc OpenMP,必须在处理器列表中指定尽可能多的 id,因为有线程:

OMP_NUM_THREADS=4; 菱形针 -c 0,2,1,3 ./我的应用程序

3. 可以通过指定跳过掩码来实现对固定的完全控制。 例如
以下命令跳过线程 1 的固定:

OMP_NUM_THREADS=4; 菱形针 -s 0x1 -c 0,2,1,3 ./我的应用程序

4. -c 开关支持在特定关联域中定义线程,例如
NUMA 节点或缓存组。 可以使用 -p 检索可用的关联域
switch 并且命令行上没有其他选项。 常见的亲和域是 N
(整个节点)、SX(套接字 X)、CX(缓存组 X)和 MX(内存组 X)。 多种的
亲和域可以设置为以@ 分隔。 为了在每个插座上固定 2 个线程
2 插槽系统:

OMP_NUM_THREADS=4; 菱形针 -c S0:0-1@S1:0-1 ./我的应用程序

5. -c 开关的另一个参数定义允许线程根据
到像 E:N:4:1:2 这样的表达式。 语法是E: :
线程>(: : )。 示例引脚 8 个线程,每个引脚 2 个 SMT 线程
SMT 4 机器上的核心:

OMP_NUM_THREADS=4; 菱形针 -c 东:尼:8:2:4 ./我的应用程序

6. -c 开关的最后一个选择是自动分散线程
亲和域。 例如,将线程分散到所有内存域中
系统:

OMP_NUM_THREADS=4; 菱形针 -c M:分散 ./我的应用程序

使用 onworks.net 服务在线使用 likwid-pin


免费服务器和工作站

下载 Windows 和 Linux 应用程序

  • 1
    libusb
    libusb
    启用用户空间的库
    与之通信的应用程序
    USB 设备。 受众:开发人员,结束
    用户/桌面。 编程语言:C。
    分类...
    下载 libusb
  • 2
    斯威格
    斯威格
    SWIG 是一种软件开发工具
    连接用 C 编写的程序和
    C++ 具有各种高级
    编程语言。 SWIG 用于
    不同的...
    下载痛饮
  • 3
    WooCommerce Nextjs 反应主题
    WooCommerce Nextjs 反应主题
    React WooCommerce 主题,构建于
    Next JS、Webpack、Babel、Node 和
    Express,使用 GraphQL 和 Apollo
    客户。 React 中的 WooCommerce 商店(
    包含:产品...
    下载 WooCommerce Nextjs React 主题
  • 4
    archlabs_repo
    archlabs_repo
    ArchLabs 的软件包仓库 这是一个
    也可以获取的应用程序

    https://sourceforge.net/projects/archlabs-repo/.
    它已在 OnWorks 中托管...
    下载 archlabs_repo
  • 5
    和风项目
    和风项目
    Zephyr 项目是新一代
    实时操作系统 (RTOS)
    支持多种硬件
    架构。 它基于一个
    小尺寸内核...
    下载 Zephyr 项目
  • 6
    SCCons
    SCCons
    SCons是一个软件构建工具
    这是一个更好的选择
    经典的“Make”构建工具
    我们都知道并热爱。 SCons 是
    实施了一个...
    下载 SCons
  • 更多 ”

Linux 命令

Ad