ограничение количества нежелательных процессов - PullRequest
0 голосов
/ 07 февраля 2019

Я новичок, пытающийся установить / администрировать slurm.Я хочу ограничить количество разветвлений, которые может выполнять работа с грязью.Я использовал команду стресса, чтобы увидеть загрузку ЦП по slurm.

Когда я запускаю этот пакетный скрипт

#SBATCH -p Test -c 1
stress -c 1

Задание работает нормально с одним ядром, использованным на 100 процентов.Но этот скрипт

#SBATCH -p Test -c 1
stress -c 20

также выполняется, но команда top дает список из 20PID, разветвленных с использованием ЦП, по 5 процентов каждый.Это имеет смысл, поскольку общее использование составляет 1 процессорное ядро ​​на 100 процентов.Это сводит с ума средние нагрузки, которые, как я узнал, прибегая к помощи Google, не дают правильного представления о загрузке системы.У меня есть 2 вопроса

  1. Можно ли в slurm ограничить такое поведение из конфигурации администратора, убив второй запуск.Мои различные попытки пока ничего не дали.Slurm настроен с помощью cgroup и прекрасно убивает задания памяти.MPI не используется или не настроен.

  2. Это поведение вызывает неэффективность из-за времени ожидания процесса?

Я попытался установить эти радикальные параметры, чтобы проверить, что происходит.

MaxStepCount = 1 MaxTasksPerNode = 2

Но на удивление ничего не происходит, и я могу отправитьмного больше рабочих мест после этого.

1 Ответ

0 голосов
/ 24 февраля 2019

Задача Slurm - выделять вычислительные ресурсы для пользовательских заданий.Самая низкая управляемая единица вычислений упоминается в документации как ЦП.Это относится к потокам обработки / ядрам выполнения, а не к физическим ядрам.Slurm не следит за тем, как эти ресурсы управляются заданием.Так что нет, ничто в Slurm не может убить работу со слишком большим количеством пользовательских потоков.

Запуск такого количества потоков, вероятно, повлияет на эффективность, да.Все эти потоки вызовут повышенное переключение контекста, если в задании недостаточно потоков процессора для их обработки.

MaxStepCount и MaxTasksPerNode предназначены для заданий.«Задачи» в этом контексте - не потоки пользовательского пространства, а отдельные процессы, запускаемые этапом задания.

Надеюсь, это поможет.

...