Небольшой обзор (http://drakulavich.blogspot.com/2009/01/ppss.html) возможностей PPSS (http://code.google.com/p/ppss/) (Parallel Processing Shell Script), shell-скрипта для параллельной обработки файлов или других данных. Скрипт определяет количество доступных процессоров и запускает для каждого из них отдельный поток. PPSS будет полезен в случае, когда обработка разделена на отдельные задачи, которые могут выполняться параллельно. Например, кодирование WAV-файлов в mp3, загрузка большого количества файлов, пакетная обработка изображений и т. д.URL: http://drakulavich.blogspot.com/2009/01/ppss.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=19705
О, вспомнилось....
Мож кому пригодиться, перекодирование фоток из Canon RAW (EOS 40D) в JPEGЗапускать в папке с RAW_aми, создаст, если нет, каталог ./CONVERTED и туда перекодирует все RAW_ы.
#!/bin/bash
MOD=$(( $k % 4 )); # 4 - число ядер
DCRAW='/usr/bin/dcraw -w -q 3 -c '
CJPEG='/usr/bin/cjpeg -quality 100 -dct float -maxmemory 262144 '
DIR='./CONVERTED'
k=0
m=0if [ ! -d $DIR ]
then
mkdir $DIR
if [ $? -ne 0 ]
then
echo 'Cannot create directory'
exit 1;
fi
fifor i in `ls -1 *.[cC][Rr]2`
do
k=$(( $k + 1 ));
m=$(( $m + 1 ));
echo "Process [ $m ] sub [ $k ]";if [ "$k" -gt 15 ]
then
sleep 40;
k=0;
fi
NEW_NAME=`/usr/bin/dcraw -v -i $i | /bin/grep Timestamp | /bin/awk '{print $4"."$3"."$6"-"$5}'| tr ':' '.'`
taskset -c $MOD $DCRAW $i | $CJPEG -outfile $DIR/$NEW_NAME.jpg &
done
>#!/bin/bashCPUS="`egrep "^processor[^a-z]+:" </proc/cpuinfo |wc -l`"
>MOD=$(( $k % 4 )); # 4 - число ядер
Да на здоровье! Просто у компа есть привычка, не менять кол-во ядер, без апгрейда :)
>for i in `ls -1 *.[cC][Rr]2`for i in *.[cC][Rr]2
А то будут проблемы с пробелами .