itk 3.20.1处理器关联

时间:2013-05-06 15:16:27

标签: c++ linux multithreading itk

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

任何帮助将不胜感激..

1 个答案:

答案 0 :(得分:1)

在我安装的版本(3.18)中,似乎不支持此功能。但是,查看MultiThreader头文件,我注意到实现依赖于本机OS线程机制。这意味着在linux上,实际上会生成pthread,而pthread_t直接用于ThreadProcessIdType,这意味着您可以将linux专有扩展用于核心关联。

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

  

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

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

此外,必须在内核中构建cpuset功能,但在具有多核支持的大多数平台上都应如此。

的引用: