Мы строим наше программное обеспечение на SGE, работающем на ведомых устройствах CentOS, и оно работает хорошо.Мой вопрос заключается в том, как сказать SGE, что задание занимает несколько ядер на данном ведомом, запустив несколько процессов?
Объяснение:
Процесс включает в себя модели обучения, которые влекут за собой множество последовательных небольших изменений (относительно)большие файлы данных с количеством заданий более 10 тыс.Большинство инструментов, которые мы используем, поддерживают чтение и запись из stdin / out.Это позволило бы нам передавать данные из одного инструмента в другой (тесты показывают, что это также будет хорошо работать).
Проблема в том, что когда задание запускает два или более процессов, соединенных каналом, ведомый будет перегружен.Как я могу сказать SGE количество процессов, чтобы избежать этого?Это необходимо только для правильной работы SGE и узлов, а не для какой-либо формы учета.
Пример:
2 вычислительных узла, NodeA и NodeB, каждый с 10 слотами, настроенных для назначения заданийв режиме «заполнения».
Job1 "tool1 -a A -b B | tool2 -c C | tool3 -d D"
Когда я запускаю «Job1» и он назначается узлу NodeAтам выполняются три процесса ('tool1', 'tool2', 'tool3').Но SGE знает только об одном задании и все еще думает, что может назначить еще 9 заданий узлу A вместо 7, что может привести к перегрузке узла.
Я посмотрел на pe_range, но, похоже,ссылаются на несколько заданий, а не задание с несколькими процессами.
Спасибо.