Processing 10000 Pictures Using Many Computers With Oropo (Debian/Ubuntu)




Oropo_system

Обработка 10000 фотографий с использованием множества компьютеров по технологии Oropo

Введение

Бывало ли так, что Вам нужно обработать кучу данных? И в какой-то момент, после того как мы начинаем это дело, к нам приходит понимание, что это будет длиться веками. Это могло бы делаться быстрее, если бы мы могли использовать два, три или еще больше компьютеров. Так давайте их используем! Вы можете подумаеть, что потребуется много настраивать? Но окажетесь неправы. С Oropo это просто. Давайте посмотрим.

Сложно что-то обсуждать без примера. Давайте поговорим о проблеме обработки большого количества фотографий. Первый подход к решению этой проблемы заключается в обработке фотографий последовательно на одном компьютере. Второй подход заключается в обработке фотографий параллельно на нескольких компьютерах.

Описание проблемы

Проблема заключается в обработке 10000 фотографий. Каждая фотография высокого качества, и целью является создание уменьшенной версии каждого из них. Существует библиотека libjpeg, которая предоставляет соответствующие программы.

Используемые программы из libjpeg:

djpeg – распаковывает файл JPEG в файл изображения.

cjpeg – сжимает изображение в JPEG.

Сценарий алгоритма обработки одного изображения:

параметр: путь к фотографии.

результат: уменьшенный вариант изображения.

Пример сценария в bash:

Script 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

Последовательная обработка

Все фотографии могут быть обработаны с помощью ссылки на сценарий make_smaller.sh для каждого изображения.

Последовательная обработка

#!/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. Задачи для обработки изображения будут добавлены в очередь и начнут обрабатываться параллельно на нескольких компьютерах. Каждая фотография будет обработана сценарием make_smaller.sh.

Параллельная обработка

#!/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

Popularity: 1%



Этот материал находится на сайте http://compiling.ru
__________________________________________



Похожие посты:


  • Как ограничить использование CPU, с помощью cpulimit. Part 2
  • bind: Zone Transfer Security
  • Drupal 6 Hosting With nginx And PHP-FastCGI. Part 4
  • Adding DNS Servers In One Step With DNS-add
  • Nginx Catch-All Host As Front End 3, Configure Nginx



  • Опубликовано 28 Апр 2010 в 13:44. В рубриках: Solutions. Вы можете следить за ответами к этой записи через RSS 2.0. Вы можете оставить отзыв или трекбек со своего сайта.

    Оставьте свой отзыв

    Партнёры:


    forum.vpnssl.ru

    Выбор решений, консультации, примеры.

    Есть вопрос! Оставь свой голос!

    Question:

    Что нужно админу для счастья?

    View Results

    Loading ... Loading ...




    Most Popular Posts



    Supported:



  • free counters