Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Аппаратное обеспечение

Что каждый программист должен знать о памяти.

Часть 9: Приложения и библиография


Назад Оглавление Вперед

12.1 Поиск потоков, принадлежащих данному процессору (потоков-братьев)

Чтобы спланировать вспомогательные потоки, или иные потоки, которые получат выигрыш, если их выполнение будет запланировано на данном процессоре, можно воспользоваться кодом, аналогичным следующему.

cpu_set_t cur;
CPU_ZERO(&cur);
CPU_SET(cpunr, &cur);
cpu_set_t hyperths;
NUMA_cpu_level_mask(sizeof(hyperths), &hyperths, sizeof(cur), &cur, 1);
CPU_CLR(cpunr, &hyperths);

Сначала код с помощью cpunr создает для указанного процессора битовый набор. Зтаем этот набор передаются в NUMA_cpu_level_mask вместе с пятым параметр, указывающий, что мы ищем гиперпотоки. Результат возвращается в битовом наборе hyperths. Все, что остается сделать, это очистить бит соответствующий исходному процессору.


Назад Оглавление Вперед