GNU параллельные не порождаемые задания

После обновления до Debian 8.6 Jessie параллельный скрипт GNU внезапно прекратил параллелизацию более чем с 2 заданиями с опциями --pipe и -L.

Перед обновлением команда:

cat file_with_1064_lines.txt | parallel -L10 -j5 -k -v --pipe "wc -l"

породил 5 процессов, которые выводят это:

 туалет
10
туалет
10...

Та же команда после обновления:

туалет
1060
туалет
4

(Два значения выше меняются относительно значения опции -L - первое L*floor(1064/L) а второй 1064 mod L, но там всегда только два процесса выдачи.)

То же самое наблюдается независимо от параллельной версии (протестирована последняя и одна из 2013).

PS.

 $ uname -a

Linux 3.16.0-4-amd64 # 1 SMP Debian 3.16.36-1 + deb8u2 (2016-10-19) x86_64 GNU / Linux

$ параллельный - версия

Параллельный GNU 20161222

1 ответ

Решение

-L - размер записи. Ошибка была исправлена ​​около 20130122 года. Вам нужно прочитать 1 запись из 10 строк:

parallel -L10 -N1 -j5 -k -v --pipe wc -l

или 10 записей по 1 строке:

parallel -L1 -N10 -j5 -k -v --pipe wc -l
Другие вопросы по тегам