Допустим, вы хотите запустить команду, если длина аргумента меньше 2:
seq 100 | parallel echo '{= length($_) >= 2 and skip =}'
Он также будет запускать задания параллельно -по одному на каждом ядре.
NB :GNU Parallel не является параллелью в moreutils.
GNU Parallel — это универсальный распараллеливатель, который упрощает параллельное выполнение заданий на одном и том же компьютере или на нескольких компьютерах, к которым у вас есть доступ по ssh.
Если у вас есть 32 разных задания, которые вы хотите запустить на 4 ЦП, прямой способ распараллеливания — запустить 8 заданий на каждом ЦП:
GNU Parallel вместо этого порождает новый процесс, когда он завершается -, сохраняя активность ЦП и, таким образом, экономя время:
Установка
Из соображений безопасности вам следует установить GNU Parallel с помощью вашего менеджера пакетов, но если GNU Parallel не упакован для вашего дистрибутива, вы можете выполнить персональную установку, которая не требует root-доступа. Это можно сделать за 10 секунд, сделав это:
(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash
Другие варианты установки см. в http://git.savannah.gnu.org/cgit/parallel.git/tree/README
.
Узнать больше
Посмотреть другие примеры:http://www.gnu.org/software/parallel/man.html
Посмотрите вступительные видеоролики:https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
Прохождение обучения:http://www.gnu.org/software/parallel/parallel_tutorial.html
Подпишитесь на список рассылки, чтобы получить поддержку:https://lists.gnu.org/mailman/listinfo/parallel
-A INPUT -j DROP
стоит перед
-A INPUT -p tcp -m tcp --dport 9987 -j ACCEPT
и блокирует последнее правило. вы должны переместить правило 9987
выше DROP
.