URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 47818
[ Назад ]

Исходное сообщение
"bash-скрипт для параллельной обработки файлов или других данных"

Отправлено opennews , 10-Янв-09 17:36 
Небольшой обзор (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


Содержание

Сообщения в этом обсуждении
"bash-скрипт для параллельной обработки файлов или других данных"
Отправлено pavlinux , 10-Янв-09 17:36 
О, вспомнилось....
Мож кому пригодиться, перекодирование фоток из 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=0

   if [ ! -d $DIR ]
     then
          mkdir $DIR
                if [ $? -ne 0 ]
                   then
                        echo 'Cannot create directory'
                        exit 1;
                fi
   fi

   for 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


"bash-скрипт... дарю %) строку"
Отправлено Andrey Mitrofanov , 10-Янв-09 22:17 
>#!/bin/bash

CPUS="`egrep "^processor[^a-z]+:" </proc/cpuinfo |wc -l`"

>MOD=$(( $k % 4 )); # 4 - число ядер


"bash-скрипт... дарю %) строку"
Отправлено pavlinux , 10-Янв-09 22:31 
Да на здоровье! Просто у компа есть привычка, не менять кол-во ядер, без апгрейда :)


"bash-скрипт для параллельной обработки файлов или других данных"
Отправлено rstone , 11-Янв-09 11:50 

>for i in `ls -1 *.[cC][Rr]2`  

for i in *.[cC][Rr]2

А то  будут проблемы с пробелами .