【问题标题】:How to know number of existing Openmp threads如何知道现有 Openmp 线程的数量
【发布时间】:2012-03-11 21:46:07
【问题描述】:

我有一个 OpenMP 程序,在 8 核机器上运行 6 个线程。如何从另一个程序(非 openmp,纯 C 程序)中提取此信息(num_threads = 6)。我可以从底层内核获取此信息吗?

我使用“sar -q 1 0”来使用 run_queue 长度,但这不会产生一致的结果。有时它会给出 8 倍,或多或少几倍。

【问题讨论】:

    标签: c multithreading kernel openmp


    【解决方案1】:

    在 Linux 中,线程是进程(参见第一篇文章 here),因此您可以使用 ps -eLf 询问正在运行的进程列表。但是,如果机器有 8 个内核,则 OpenMP 可能创建了 8 个线程(尽管它当前使用其中 6 个线程进行计算);在这种情况下,您的代码必须在某处(例如文件或 FIFO)存储有关它正在使用的线程的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-24
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 2015-12-10
      • 2012-09-04
      • 1970-01-01
      相关资源
      最近更新 更多