Перейти к навигации Перейти к поиску
В этой статье не процитировать какие - либо источники . ( май 2012 г. ) ( Узнайте, как и когда удалить это сообщение-шаблон ) |
Маска сродства является битовая маска указывает на то , что процессор (ы) поток или процесс должен быть запущен на с помощью планировщика в качестве операционной системы . Установка маски соответствия для определенных процессов, запущенных под Windows, может быть полезной, поскольку есть несколько системных процессов (особенно на контроллерах домена), которые ограничены первым процессором / ядром. Таким образом, исключение первого процессора может привести к повышению производительности приложения.
Windows API [ править ]
Сходство потоков в Microsoft Windows можно указать с помощью функции SetThreadAffinityMask . Принуждение каждого потока OpenMP к отдельным ядрам в Windows может быть выполнено с помощью следующего кода C :
#include <windows.h> #include <omp.h> // Установить привязку потока OpenMP void set_thread_affinity () { #pragma omp parallel default (shared) { DWORD_PTR mask = ( DWORD_PTR ) 1 << omp_get_thread_num (); SetThreadAffinityMask ( GetCurrentThread (), маска ); } }
См. Также [ править ]
Ссылки [ править ]
Внешние ссылки [ править ]
- Статья MSDN о функции SetThreadAffinityMask
- Taskset, инструмент для установки маски соответствия в Linux
- CPU Balancer, бесплатная утилита с открытым исходным кодом, которая равномерно распределяет процессы Windows XP по логическим процессорам с использованием маски соответствия