Используйте GNU Parallel:
$ parallel -j16 ./task :::
Используйте Moreutils параллельно :
$ parallel -j16 ./task --
Используйте Make:
$ make -j16
Makefile (не уверен, что стандарт или GNU Make-специфичны):
.PHONY: $(MAKECMDGOALS) %: ./task $@
Напишите свой собственный:
#!/usr/bin/env bash inputs=( ) nproc=16 njobs=0 for input in "$"; do until (( njobs < nproc )); do wait -n; (( --njobs )) done ./task "$input"& (( ++njobs )) done while (( njobs )); do wait -n; (( --njobs )) done
Планирование задач параллельно в Linux
291
Jonathan Michael Foonlan Tsang
У меня есть N = 128 (скажем) задач task 0
, task 1
... task N-1
, что мне нужно, чтобы закончить. Каждая задача займет неизвестное количество времени для выполнения, и они могут быть выполнены в любом порядке. Я нахожусь на машине с большим количеством ядер, но я хочу выполнить одновременно только 16 из этих задач. Есть ли утилита для автоматизации этого?
я считал
$ for i in ; do nice -n 19 ./task $i & done;
но это будет запускать все задачи одновременно. Скорее, я хотел бы что-то, что запустит первые 16 задач, а затем заменит новую, когда задача завершится.
1 ответ на вопрос
3
grawity
В настоящее время GNU Parallel по умолчанию использует `:::` вместо `--`. Интересные мелочи: GNU Parallel изначально был оберткой вокруг `make`: https://www.gnu.org/software/parallel/history.html
Ole Tange 6 лет назад
0
@OleTange: Ага, похоже, что я посмотрел на man-страницу _moreutils_ paralell (которая все еще использует `--`), а не на GNU параллельно.
grawity 6 лет назад
0
Можно ли изменить список заданий для обработки, запустив очередь с `параллельным`? Или отменить некоторые более поздние задания, не прерывая те, которые выполняются прямо сейчас?
Jonathan Michael Foonlan Tsang 6 лет назад
0
@JonathanMichaelFoonlanTsang https://zenodo.org/record/1146014 Прочтите разделы 7.8 и 7.9.
Ole Tange 6 лет назад
0
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Каковы различия между оконными менеджерами Linux?
-
2
ThunderBird / Синхронизация освещения с SE k770i
-
4
Файловая система Linux
-
6
Полноэкранная медленная вспышка в KDE 4