с xargs я погорячился, сорри

вот такое выполнится для всех кусков, но не параллельно, к сожалению =(
ls -1 x* | xargs -I % perl  script.pl %

хотя можно сделать ещё одну обёртку с "perl  script.pl $1 &" для 
распараллеливания, но это уже будет перебор
т.ч. ваше решение наиболее простое (но не будет работать с пустым входным 
файлом)

Tue, 27 May 2014 20:00:41 +0400 от Харпалёв Иван <[email protected]>:
>Пока ограничился полумерой: распараллеливание обработки файла по  кускам.
>Действительно очень просто сделалось на 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
>

-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить