C++ itk 3.20.1处理器亲和力
是否有任何方法可以设置ITK(3.20.1)线程的处理器关联性。我正在研究ITK::MultiThreader类,它具有“SetGlobalDefaultNumberOfThreads”。但我没有发现任何函数/方法能够说明亲和力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,这意味着您可以使
任何帮助都将不胜感激 在我安装的版本(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
功能,但是在大多数支持多核的平台上都应该如此
参考资料: