C++ itk 3.20.1处理器亲和力

C++ itk 3.20.1处理器亲和力,c++,linux,multithreading,itk,C++,Linux,Multithreading,Itk,是否有任何方法可以设置ITK(3.20.1)线程的处理器关联性。我正在研究ITK::MultiThreader类,它具有“SetGlobalDefaultNumberOfThreads”。但我没有发现任何函数/方法能够说明亲和力 任何帮助都将不胜感激 在我安装的版本(3.18)中,似乎不支持此功能。但是,查看多线程头文件,我注意到实现依赖于本机OS线程机制。这意味着在linux上,pthread实际上是派生的,pthread\u t直接用于ThreadProcessIdType,这意味着您可以使

是否有任何方法可以设置ITK(3.20.1)线程的处理器关联性。我正在研究ITK::MultiThreader类,它具有“SetGlobalDefaultNumberOfThreads”。但我没有发现任何函数/方法能够说明亲和力


任何帮助都将不胜感激

在我安装的版本(3.18)中,似乎不支持此功能。但是,查看
多线程
头文件,我注意到实现依赖于本机OS线程机制。这意味着在linux上,pthread实际上是派生的,
pthread\u t
直接用于
ThreadProcessIdType
,这意味着您可以使用linux专有扩展来实现核心亲和力

引用我自己的话来回答另一个问题:

不幸的是,posix线程API没有提供为线程设置cpu相关性的方法。您可以使用linux平台上提供的不可移植扩展
pthread\u attr\u setaffinity\u np
,以及
cpuset
系列函数来配置线程关联

因为线程已经在运行,所以您需要先获取线程属性,然后才能设置其关联性。Linux还提供了一个不可移植的函数:
pthread\u getattr\u np

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

参考资料: