[mephi-hpc] Прерывание задачи на 8 узлах

anikeev anikeev at ut.mephi.ru
Mon Jul 8 17:59:58 MSK 2019


On Wed, 2019-07-03 at 16:33 +0300, Анастасия Шошина wrote:
> Добрый день.

Здравствуйте!

> Простите за беспокойство
> 
> Хотела бы узнать, почему процесс завершается автоматически при
> запуске задачи на Черенкове. Как этого можно избежать?

Задача 222204 - старая (более недели), для неё не сохранилось log-
файлов Torque, поэтому точный ответ я Вам дать не могу.

Есть только один вид автоматического контроля пользовательских задач,
использующий SIGTERM - это контроль коэффициента использования
ресурсов. Задача автоматически останавливается из под аккаунта
администратора в том случае, если она использует менее 10% от
затребованного числа ядер и работает более часа. Только что запущенные
задачи (менее часа) имеют иммунитет для чтения входных файлов.

Примеры случаев, когда может сработать защита:

1) Допустим, задача при запуске в 1 поток расходует 10 часов. Задача,
запущенная на 2 потока расходует 5 часов на расчет и 1 час на
синхронизации данных. Всего - 6 часов. КПД = 83%. Задача, запущенная на
10 потоков расходует 1 час на расчет и 1 час на синхронизации данных.
Всего - 2 часа. КПД = 50%. Если у задачи КПД упал ниже 10% - она будет
принудительно остановлена. В данном случае нужно выбирать другой
алгоритм для параллелизма и оптимизировать передачу данных.

2) Допустим, задача при запуске в 1 поток расходует 10 часов. Задача,
запущенная на 2 потока расходует 4 часа на параллельный участок
алгоритма и 2 часа на последовательный участок алгоритма. Всего - 6
часов. КПД = 83%. Задача, запущенная на 8 потоков расходует 1 час на
параллельный участок алгоритма и 2 часа на последовательный участок
алгоритма. Всего - 3 часа. КПД = 42%. Если у задачи КПД упал ниже 10% -
она будет принудительно остановлена. В данном случае нужно переписать
последовательный участок алгоритма на параллельный. На малом числе ядер
 он занимал пренебрежимо малое время, но на большом числе ядер это не
так.

3) В опции mpirun или алгоритм программы закралась ошибка и она
использует не все запрошенные ядра.

4) Задача читает входные файлы последовательно (используя 1 поток)
более часа.

Попробуйте построить кривую времени выполнения от числа потоков.
Проверьте по логам программы, все ли ядра она использует. Последите за
выводом программы в зависимости от времени - на каком участке алгоритма
она останавливается? Для отладки модно использовать параметр
компилятора -O0 -ggdb3, отладчик gdb, профилировщик perf.

> Спасибо за ответ.

Прошу прощения за задержку с ответом. Я болел.

> С уважением,
> Шошина А.В.
> _______________________________________________
> hpc mailing list
> hpc at lists.mephi.ru
> https://lists.mephi.ru/listinfo/hpc
-- 
С уважением,
инженер отдела Unix-технологий МИФИ,
Аникеев Артём.
Тел.: 8
(495) 788-56-99, доб. 8998


More information about the hpc mailing list