Все ли кластерные планировщики принимают задания массива, и если они это делают, устанавливают ли они идентификатор массива 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.