Все ли кластерные планировщики принимают задания массива, и если они это делают, устанавливают ли они идентификатор массива SGE_TASK_ID?

При использовании qsub для размещения заданий массива в кластере глобальной переменной SGE_TASK_ID присваивается идентификатор задания массива. Я использую это в сценарии оболочки, который я запускаю в кластере, где каждое задание массива должно выполнять что-то свое в зависимости от SGE_TASK_ID. Это общий способ для планировщиков кластеров, чтобы сделать это, или у всех них есть другой подход?

2 ответа

Решение

У большинства планировщиков есть способ сделать это, хотя он может немного отличаться в разных настройках. В TORQUE переменная называется $PBS_ARRAYID, но работает так же.

Все ли кластерные планировщики выполняют задания массива

Нет. Многие, но не все.

и если они делают, они устанавливают идентификатор массива SGE_TASK_ID?

Только Grid Engine будет устанавливать SGE_TASK_ID, потому что это просто то, что переменная называется в Grid Engine. Другие промежуточные программы для кластеров имеют другое имя с другой семантикой.

Немного неясно, к чему вы стремитесь с помощью своего вопроса, но если вы хотите написать программу / систему, которая работает на множестве различных промежуточных программных средств кластера / балансировщиков нагрузки / планировщиков, вам следует обратить внимание на DRMAA. Это будет абстрагировать переменные, такие как SGE_TASK_ID.

Другие вопросы по тегам