有没有办法为ITK(3.20.1)线程设置处理器关联。我正在研究具有“SetGlobalDefaultNumberOfThreads”的ITK :: MultiThreader类。但我没有找到任何关于亲和力的功能/方法。
任何帮助将不胜感激..
答案 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
功能,但在具有多核支持的大多数平台上都应如此。
的引用: