Маска родства
Эта статья нуждается в дополнительных цитатах для проверки . ( апрель 2023 г. ) |
Маска сходства — это битовая маска, , на каком процессоре(ах) поток указывающая или процесс должен запускаться планировщиком операционной системы . [1] Установка маски сходства для определенных процессов, работающих под Windows, может быть полезна, поскольку существует несколько системных процессов (особенно на контроллерах домена), которые ограничены первым процессором/ядром. Таким образом, исключение первого ЦП может привести к повышению производительности приложений.
Windows API
[ редактировать ]Сходство потоков в Microsoft Windows можно указать с помощью SetThreadAffinityMask
функция. [1] Назначить каждый поток OpenMP отдельным ядрам в Windows можно с помощью следующего кода C :
#include <windows.h>
#include <omp.h>
// Set OpenMP thread affinity
void set_thread_affinity () {
#pragma omp parallel default(shared)
{
DWORD_PTR mask = (DWORD_PTR )1 << omp_get_thread_num();
SetThreadAffinityMask(GetCurrentThread(), mask);
}
}
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б «Функция SetThreadAffinityMask (winbase.h) — приложения Win32» . Learn.microsoft.com . 27 января 2022 г. . Проверено 7 апреля 2023 г.
Внешние ссылки
[ редактировать ]- Статья MSDN о функции SetThreadAffinityMask
- Taskset, инструмент для установки маски сходства в Linux.
- CPU Balancer, бесплатная утилита с открытым исходным кодом, которая равномерно распределяет процессы Windows XP по логическим процессорам с помощью маски сходства.