Пока ограничился полумерой: распараллеливание обработки файла по  кускам.
Действительно очень просто сделалось на BASH:

n=3 f=input; split -l $(wc -l $f | (read l d; echo $(($l/$n+1)) )) $f
 #порезали на n кусков построчно
for f in x*; do
   perl script.pl $f&
done;
wait;  #надо запускать весь код в новом bash, чтобы wait не ждал
какие-нибудь древние процессы.
cat o* > output


не нашёл в man xargs, как параллелить ((    --- что имели ввиду?

GNU parallel во истину похоже на решение, но увы нет  sudo, чтобы
 поставить его в систему.

очень интересно прозвучало про "обернуть потоки в unix-сокеты" -- поясните
чуток, плиз что имеется ввиду или ссылку какую.

Спасибо!


26 мая 2014 г., 20:25 пользователь Antonio Nikishaev <[email protected]> написал:

> Харпалёв Иван <[email protected]> writes:
>
> > Доброго времени суток, могучий MoscowPM!
> >
> > Есть перловый скрипт, который работает в один поток, и на каждую
> > строку из STDIN выводит одну строку в STDOUT.
> >
> > Есть ли какой софт, чтоб можно было написать
>
> GNU parallel
>
> > cat data | perl paralleler.pl -script=very_complex_script.pl -n=8 | .
> > ..
> >
> > Или посоветуйте, как его писать.
> > Как сделать неблокирующее чтение из воркеров в скрипте мастере?
> >
> > Уважение
> > Иван Харпалёв
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить