2013-05-06 85 views
0

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

任何帮助,将不胜感激..

回答

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功能必须建立在内核中,但是这应该是与多核支持大多数平台的情况。

引用: