【问题标题】:itk 3.20.1 Processor affinityitk 3.20.1 处理器亲和性
【发布时间】:2013-05-06 15:16:27
【问题描述】:

有没有办法为 ITK (3.20.1) 线程设置处理器关联。我正在研究具有“SetGlobalDefaultNumberOfThreads”的 ITK::MultiThreader 类。但我没有找到任何关于亲和力的函数/方法。

任何帮助将不胜感激..

【问题讨论】:

    标签: c++ linux multithreading itk


    【解决方案1】:

    在我安装的版本(3.18)中,好像不支持这个功能。但是,查看MultiThreader 头文件,我注意到实现依赖于本机操作系统线程机制。这意味着在 linux 上,实际上产生了 pthread,pthread_t 直接用于ThreadProcessIdType,这意味着您也许可以使用 linux 专有扩展来实现核心亲和力。

    this answer 引用我自己到另一个问题:

    不幸的是,posix 线程 API 没有提供为线程设置 cpu 亲和性的方法。您可以使用 linux 平台上提供的不可移植扩展 pthread_attr_setaffinity_np,以及 cpuset 系列函数来配置线程亲和性。

    由于线程已经在运行,您需要先获取线程属性,然后才能设置其亲和性。 Linux 为此提供了另一种不可移植的功能:pthread_getattr_np

    此外,cpuset 功能必须内置在内核中,但是在大多数支持多核的平台上应该是这种情况。

    参考:

    【讨论】:

      猜你喜欢
      • 2012-12-23
      • 1970-01-01
      • 2015-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多