2013-05-06 2 views
0

есть ли способ установить сродство процессора для потоков ITK (3.20.1). Я изучал класс ITK :: MultiThreader, который имеет «SetGlobalDefaultNumberOfThreads». но я не нахожу никаких функций/методов, которые говорят что-либо о близости.itk 3.20.1 Аффинность процессора

любая помощь будет оценена ..

ответ

1

В версии, которую я установил (3.18), то кажется, что эта функция не поддерживается. Однако, глядя на заголовочный файл MultiThreader, я заметил, что реализация основана на механизмах потоков собственной ОС. Это означает, что на linux pthreads фактически порождаются, а pthread_t используются непосредственно для ThreadProcessIdType, а это значит, что вы можете использовать собственные расширения linux для родственных связей.

Цитируя себя от this answer на другой вопрос:

К сожалению, POSIX нить API не обеспечивает способ установки центрального процессора сродством потоков. Вы можете использовать непереносимое расширение, предоставленное на платформе Linux pthread_attr_setaffinity_np, с семейством функций cpuset, чтобы настроить сходство потоков.

Поскольку поток уже запущен, вам нужно будет получить атрибуты потока, прежде чем сможете установить его сродство. Linux предоставляет еще одну непереносимую функцию для этого: pthread_getattr_np.

Кроме того, в ядре должна быть встроена функция cpuset, однако это должно быть на большинстве платформ с поддержкой многоядерных процессоров.

ссылки:

Смежные вопросы