Python 3.3+Linuxosфункция
os.sched_setaffinity
os — планировщик (sched)
Задаёт множество ядер CPU, на которых разрешено выполняться процессу (привязка к ядрам).
Синтаксис
os.sched_setaffinity(...)
Привязывает процесс к заданным ядрам — полезно для замеров производительности, чтобы результаты не скакали из-за переездов между ядрами. Потоки, созданные позже, наследуют привязку. Сузить набор можно без особых прав, а влиять на чужой процесс — только с правами на него.
Примеры
import os
print(os.sched_getaffinity(0)) # → ? только Unix: множество ядер, доступных текущему процессу (pid=0), например {0, 1, 2, 3}
os.sched_setaffinity(0, {0}) # → ? только Unix: процесс закреплён за ядром 0
print(len(os.sched_getaffinity(0))) # → ? только Unix: 1 — честное число доступных ядер (точнее, чем os.cpu_count())
os.sched_setaffinity(0, {0, 1}) # → ? только Unix: вернули процессу два ядра
os.sched_setaffinity(0, set()) # → OSError: [Errno 22] Invalid argument — пустая маска запрещена
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности