The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

10.01.2009 16:52

Небольшой обзор возможностей PPSS (Parallel Processing Shell Script), shell-скрипта для параллельной обработки файлов или других данных. Скрипт определяет количество доступных процессоров и запускает для каждого из них отдельный поток. PPSS будет полезен в случае, когда обработка разделена на отдельные задачи, которые могут выполняться параллельно. Например, кодирование WAV-файлов в mp3, загрузка большого количества файлов, пакетная обработка изображений и т. д.

  1. Главная ссылка к новости (http://drakulavich.blogspot.co...)
Лицензия: CC-BY
Тип: яз. русский / Обобщение
Короткая ссылка: https://opennet.ru/19705-shell
Ключевые слова: shell
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (4) RSS
  • 1, pavlinux (ok), 17:36, 10/01/2009 [ответить]  
  • +/
    О, вспомнилось....
    Мож кому пригодиться, перекодирование фоток из 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

     
     
  • 3, Andrey Mitrofanov (?), 22:17, 10/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >#!/bin/bash

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

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

     
     
  • 4, pavlinux (ok), 22:31, 10/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Да на здоровье! Просто у компа есть привычка, не менять кол-во ядер, без апгрейда :)

     

  • 5, rstone (?), 11:50, 11/01/2009 [ответить]  
  • +/

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

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

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру