The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Обработка тысяч изображений на неск..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Обработка тысяч изображений на неск..."  +/
Сообщение от auto_tips (??) on 08-Май-10, 11:23 
Проект Oropo (http://www.oropo.org/) позволяет разнести обработку большого объема ресурсоемких операций на несколько машин в сети, организовав временный кластер. В качестве примера рассмотрим выполнение задачи уменьшения размера нескольких тысяч изображений с высоким разрешением.
Для преобразования будет использовать стандартные утилиты из пакета libjpeg - djpeg и cjpeg. В итоге для обработки одной картинки создадим простой скрипт make_smaller.sh:

   #!/bin/bash
   QUALITY=30
   if [ $# -ne 1 ]; then
    echo "arguments" 1>&2
    exit 1;
   fi
   FILE_PATH=$1
   djpeg $FILE_PATH | cjpeg -quality $QUALITY

При выполнении операции на одном компьютере, нам бы потребовался последовательный перебор всех изображений в цикле:

   #!/bin/bash
   MAKE_SMALLER=$PWD/make_smaller.sh
   IMGS_DIR=$PWD/imgs
   TARGET_DIR=$PWD/imgs_smaller
   for file in $IMGS_DIR/*; do
    bash $MAKE_SMALLER $file > $TARGET_DIR/${file##*/}
   done


Используя систему Oropo Executor можно легко распараллелить выполнении поставленной задачи на несколько машин в сети. Как видно из следующего скрипта, скрипт притерпел минимальные изменения, изображения все так же перебираются последовательно, а их распараллеливание вынесено целиком на плечи программы oropo-system-pusher.


Processing parallelly

#!/bin/bash
MAKE_SMALLER=$PWD/make_smaller.sh
IMGS_DIR=$PWD/imgs
for file in $IMGS_DIR/*; do
    oropo-system-pusher -p "string:bash" -p "path:$MAKE_SMALLER" -p "path:$file"
done

Результат работы сохраняется в файлах /var/lib/oropo/response/*/0

++ Настройка Oropo

Как видим, распаралелливание было организовано предельно просто, не менее трудно настроить работу инфраструктуры Oropo в Debian и Ubuntu.

Подключаем репозиторий с готовыми пакетами oropo, в /etc/apt/sources.list добавляем:

   deb http://students.mimuw.edu.pl/~ms209495/oropo/debian sid main

Устанавливаем:

   sudo apt-get update
   sudo apt-get install oropo-system


На узлах-обработчиках заданий ставим по аналогии Oropo Executor:

   sudo apt-get install ap-executor


Настраиваем центральный управляющий узел, на котором будем инициировать выполнение заданий.
Добавляем себя в группу  oropo:

   adduser `whoami` oropo

Добавляем IP-адреса узлов-обработчиков:

   oropo-monitor-ctl --id_prefix oropomonitor --add 192.168.1.2
   oropo-monitor-ctl --id_prefix oropomonitor --add 192.168.1.3
   oropo-monitor-ctl --id_prefix oropomonitor --add 192.168.1.4

Все готово !


URL: http://www.howtoforge.com/processing-10000-pictures-using-ma...
Обсуждается: http://www.opennet.dev/tips/info/2363.shtml

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


2. "Обработка тысяч изображений на нескольких узлах при помощи O..."  +/
Сообщение от rstone (??) on 08-Май-10, 18:36 
SGE ( http://gridengine.sunsource.net/ )
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Обработка тысяч изображений на нескольких узлах при помощи O..."  +/
Сообщение от Одмин on 11-Май-10, 11:58 
вместо djpeg | cjpeg можно просто через convert сделать.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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