The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Раздел полезных советов: Обработка тысяч изображений на неск..."
Отправлено auto_tips, 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...
Обсуждается: https://www.opennet.ru/tips/info/2363.shtml

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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