`sched_setaffinity` не запрещает планировщику переключаться на ядро ​​ЦП, находящееся вне процессорного набора.Linux

Ответить Пред. темаСлед. тема
Anonymous
 `sched_setaffinity` не запрещает планировщику переключаться на ядро ​​ЦП, находящееся вне процессорного набора.

Сообщение Anonymous »

Я работаю над приложением MPI, в котором каждый процесс MPI (в зависимости от его ранга) запланирован для определенного ядра ЦП.
Предполагая использовать реализацию OpenMPI, чтобы сделать поэтому --bind-to none передается в mpirun (после того, как вы позаботились об отключении любых конфликтов сходства, которые могут возникнуть из-за SLURM или других сред выполнения). Это должно предоставить процессорный набор каждому потоку процесса MPI, где все ядра ЦП включены.
Затем в коде приложения выполняется вызов sched_setaffinity(), где каждый процесс MPI вычисляет свое ядро ​​ЦП. .
Аффинити установлено следующим образом:

Код: Выделить всё

CPU_ZERO(&cpuset);
CPU_SET(cpu, &cpuset);
Затем, ближе к концу (после того, как мы уверены, что процесс был вытеснен и перепланирован), в качестве двойной проверки каждый процесс MPI вызывает sched_getcpu() чтобы проверить, соответствует ли идентификатор ядра ЦП желаемому.
Проверка не удалась, что означает, что планировщик поместил каждый поток процесса MPI в другое ядро ​​ЦП, а не то (ЕДИНСТВЕННОЕ), присутствующее в процессорном наборе, назначенном через sched_setaffinity.
Как так?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -not-in-cp
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»