У меня N = 128 (скажем) задач, task 0
, task 1
, ... task N-1
, которую мне нужно выполнить. Каждая задача займет неизвестное количество времени для выполнения, и они могут быть выполнены в любом порядке. Я нахожусь на машине с большим количеством ядер, но я хочу запустить одновременно только 16 из этих задач. Есть ли утилита для автоматизации этого?
я считал
$ for i in {0..127}; do nice -n 19 ./task $i & done;
но это будет запускать все задачи одновременно. Скорее, я хотел бы что-то, что запустит первые 16 задач, а затем заменит новую, когда задача завершится.