8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

在独立 CPU 上运行 OpenMP 线程

CodingKiwi 1月前

22 0

如何在从调度程序中移除核心的 (Linux) 系统上设置 OpenMP 线程的 CPU 亲和性(例如使用 isolcpus 启动参数)?在仅使用前 12 个核心的系统中

如何在从调度程序中删除核心的(Linux)系统上设置 OpenMP 线程的 CPU 亲和性(例如使用 isolcpus 启动参数)?

在只有前 12 个核心可供调度程序使用的系统上 ( isolcpus=12-127 ),使用以下命令调用 OpenMP 程序

GOMP_CPU_AFFINITY=64-127 OMP_NUM_THREADS=64 taskset --cpu-list 64-127 command

所有 64 个 OpenMP 线程均在 CPU 64 上运行。

GOMP_CPU_AFFINITY=64-127 OMP_NUM_THREADS=64 command

所有 64 个 OpenMP 线程均在 CPU 0-12 上运行。

如何让 64 个 OpenMP 线程在 CPU 64-127 上运行?

我可以使用以下软件以编程方式完成此操作

#pragma omp parallel for
for(...)
  pthread_setaffinity_np(...)

启动 OpenMP 程序时,有没有什么方法可以从外部完成此操作?

核心隔离限制 OpenMP 到单核 中提出了类似的问题 ,但没有提供解决方案。给出的答案 “我认为你要求 OpenMP 做一些不可能的事情。” 是不正确的,因为 OpenMP 库需要做的就是调用 pthread_setaffinity_np() 或等效函数。它甚至不需要 taskset 在中指定的 CPU 上运行 GOMP_CPU_AFFINITY 。)

帖子版权声明 1、本帖标题:在独立 CPU 上运行 OpenMP 线程
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由CodingKiwi在本站《multithreading》版块原创发布, 转载请注明出处!
最新回复 (0)
  • JuA 1月前 0 只看Ta
    引用 2

    看起来这个问题和上一个问题一样(所以是重复的),而不仅仅是相似。如果你认为答案不正确,你可以对上一个答案添加评论,开一个悬赏来吸引新人回答,但不要开一个新的(相同)问题。即使假设上一个答案是错误的,而这个问题得到了正确的回答,这也会给未来的读者带来困惑(有些人可能只会阅读其他问题/答案)。

返回
作者最近主题: