Пока ограничился полумерой: распараллеливание обработки файла по кускам. Действительно очень просто сделалось на 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
