Автор Тема: Cluster + Ubuntu + ffmpeg = OK?  (Прочетена 6512 пъти)

Kirev

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
    • WWW
Cluster + Ubuntu + ffmpeg = OK?
« -: Sep 17, 2009, 17:49 »
 Здравейте :)
Приятно ми е да напиша първата си тема във форума, защото виждам, че има хора, които дават доста адекватни отговори.
Значи в момента работя по проект(сайт), който ще конвертира клипове към разни формати. За целта, както предполагам се досещате ще използвам ffmpeg.
До тук всичко изглежда наред.
 Искам обаче по някакъв начин да свържа няколко компютъра, за да става по-бързо самото конвертиране. Някой би ли могъл да ми обясни възможно ли е да реализирам тази си идея и ако да - как?

Благодаря Ви предварително.
Активен

Блог с полезна информация - http://www.kirev.net

shoshon

  • Гост
Re: Cluster + Ubuntu + ffmpeg = OK?
« Отговор #1 -: Sep 17, 2009, 18:17 »
Ами да възможно е, но и скъпо. не съм много добре запознат с Clustering-a, но това което знам за z/OS е, че се използва виртуална машина (z/VT примерно). Не знам как са нещата с VirtualBox, KVM или Xen, но задължително трябва сам да разбереш. Това ако искаш едната машина да работи независимо от другата без отношение към изпълняващата се програма.
Т.е работи proc1 върху машина 1 и машина 2. Машина 1 спира, машина 2 поема цялата задача, без proc1 дори да е разбрал.
Друго виждам тук написано:
Ръководство 1
Ръководство 2
Може би е това което ти търсиш, но защо не го потърси ?

Несеризничко ми се въжда да пускаш такава тема. Материала обхваща МНОГО четене -  включително стабилна I/O синхронизация ( ако не използваш нещото готово и мощно ).
« Последна редакция: Sep 17, 2009, 18:28 от shoshon »
Активен

Kirev

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
    • WWW
Re: Cluster + Ubuntu + ffmpeg = OK?
« Отговор #2 -: Sep 17, 2009, 18:22 »
Благодаря за препоръката.
Търсих и то доста, но точно там не бях попадал :)
Просто не съм много на "Ти" с Линукс и исках да се изкаже някой, който е препатил в това отношение.
Попаднах на статия за openmosix, както и на много негативни мнения за софтуера. Мислех да мина метър с него, но... не съм много сигурен дали ще задоволи нуждите ми...
Активен

Блог с полезна информация - http://www.kirev.net

c2h5oh

  • Напреднали
  • *****
  • Публикации: 675
  • Distribution: CentOS 7.4 Fedora 28
  • Window Manager: Plasma Desktop
    • Профил
Re: Cluster + Ubuntu + ffmpeg = OK?
« Отговор #3 -: Sep 17, 2009, 18:52 »
http://www.linuxjournal.com/article/10403 и превод на руски http://rus-linux.net/lib.php?name=/MyLDP/server/rocks.html
но не е ubuntu а е Rocks - базирано на CentOS (от което само печелиш )  :) 
« Последна редакция: Sep 17, 2009, 18:54 от c2h5oh »
Активен

Kirev

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
    • WWW
Re: Cluster + Ubuntu + ffmpeg = OK?
« Отговор #4 -: Sep 17, 2009, 22:14 »
Ами ако има нещо за Ubuntu, няма да се разсърдя. ;)
И ме интересува с openmosix няма ли да я бъде моята работа?

Извинявам се за глупавите въпроси, защото се усещам, че питам адски глупави неща, но... НОВАК..., няма какво повече да добавя.
Активен

Блог с полезна информация - http://www.kirev.net

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Cluster + Ubuntu + ffmpeg = OK?
« Отговор #5 -: Sep 17, 2009, 22:15 »
Вие мислите ли въобще :)

Според вас как точно се очаква едно приложение да бъде клъстеризирано при положение че не е писано с идеята да работи по този начин? Да речем че клъстъра е много умен, мигрира сам процеси, осигурява прозрачност на IPC-то между процесите, все едно работят на една система (примерно нещо като openmosix, което умря за жалост), тогава кой е казал, че приложението ще форк-ва няколко процеса, за да паралелизира нещата? Защо пък си мислите, че ffmpeg трябва да го прави?

Или друг вариант, няма такава клъстеризация на ниво операционна система и всичко пада на плещите на приложението, трябва да е написано за разпределена обработка. Защо си мислите, че ffmpeg го прави?

Тва иначе би било забавно, инсталираш и конфигурираш някакъв софтуер и БАМ! вече всичко си работи разпределено и там съответно и по-бързо.
Активен

"Knowledge is power" - France is Bacon

Kirev

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
    • WWW
Re: Cluster + Ubuntu + ffmpeg = OK?
« Отговор #6 -: Sep 17, 2009, 22:32 »
Както и да е.
Вече съжалявам, че попитах. Вече няма да се повтори най-вероятно.
Активен

Блог с полезна информация - http://www.kirev.net

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Cluster + Ubuntu + ffmpeg = OK?
« Отговор #7 -: Sep 17, 2009, 22:45 »
Е ти пък много се засегна :)

Добре, гледай сега - няма начин ffmpeg да работи разпределено, каквито и софтуери за клъстеризиране да се измислят, просто не е правено с тази идея. Ако трябва да конвертираш само едно филмче, и 1000 машини да имаш, няма да стане по-бързо, отколкото ако го пуснеш на най-бързата от тях.

Ако трябва едновременно да пускаш конвертиране на няколко филмчета, тогава има някаква идея. Най-простото, което можеш да си направиш е да си харесаш няколко машини за такива сметки, да си обмените ключове, да им засилваш филмчета през scp на round-robin принцип, отсреща един cronjob да ги хваща и смята, после да ги мята някъде на споделена файлова система (NFS примерно) и така. Това се реализира не особено сложно с 2 скрипта, предполагам дори и bash е достатъчно способен за тази цел. По-изискано би било да гледаш големината на филмчетата, за да не се окаже че определени машини правят много сметки, докато други дремят, но това вече изисква малко повече мислене.

Друг вариант (но само в случай, че си сигурен че ще имаш едновременно конвертиране на много филмчета, защото в противен случай е overkill), е да ползваш някаква такава дивня от сорта на openssi, обаче с тези неща ще видиш предполагам толкова много проблеми, докато ги подкараш да работят като хората, че не си заслужава, освен ако наистина, ама наистина много се налага.

Та такива работи.

« Последна редакция: Sep 17, 2009, 22:55 от gat3way »
Активен

"Knowledge is power" - France is Bacon

Kirev

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
    • WWW
Re: Cluster + Ubuntu + ffmpeg = OK?
« Отговор #8 -: Sep 17, 2009, 22:54 »
Блогът ти ме накара да се върна отново в темата.
Явно си навътре в нещата и доста пъти си чел напред-назад въпроси като моите и вече ти писва. Разбирам те до някъде, понеже и аз се чуствам по същия начин, но в друга сфера.
Та нека обобщя какво точно целя, че и аз описвам нещата наполовина и чакам някой да хвърля боб и да разгадае какво точно ми е необходимо. Значи като цяло ще предлагам услуга, която ще конвертира клипчетата до .mp3, .avi и т.н.
С разрастването(дай Боже) на услугата(сайта) се предполага, че ще има дублиращи се(случващи се по едно и също време) конверсии. Цялото това нещо го правя с идеята, да предлагам по-бързо конвертиране на потребителите, за да мога да ги спечеля по някакъв начин.
Именно за това реших да пусна темичката и да попитам по най-глупавия начин, за което се извинявам още веднъж.
Активен

Блог с полезна информация - http://www.kirev.net

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Cluster + Ubuntu + ffmpeg = OK?
« Отговор #9 -: Sep 17, 2009, 22:57 »
Оф, аз пък си редактирах мнението. Добре де, както казах, може да се измисли нещо такова за такива случаи, с подръчни средства. Няма да е много сложно така като си го представям.
Активен

"Knowledge is power" - France is Bacon

shoshon

  • Гост
Re: Cluster + Ubuntu + ffmpeg = OK?
« Отговор #10 -: Sep 17, 2009, 23:01 »
@gateway Защо да не мислим?
Използването на виртуална машина не прави ли "незадължително" оптимизирането на приложението? До колтото знам примерно за z/VT приложението изобщо не различава отделните машини, а ги третира като една. Но питам от любопитство де... Ама ся като му одаря една мисла :) наистина няма да е по-бързо. Просто няма да забива :) то на ли си е на пустите му cycles.

Ама като му одаря и втора мисла... Защо човека не си направи просто сцриптче което да пуска конверсацията на най-ненатоварена машина. То от тва по просто всъщност няма накъде.
1) Сървър
2) База данни
3) Конвертор x 2-3
П.П ся изникна и трета мисла. Може ли конвертора и сървъра на едно място? Може ли да се зададе максимално % процесорно време? Защото конвертирането много дърпа
« Последна редакция: Sep 17, 2009, 23:07 от shoshon »
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Cluster + Ubuntu + ffmpeg = OK?
« Отговор #11 -: Sep 17, 2009, 23:12 »
Това няма значение, ти можеш да имаш и многопроцесорна система, което е много по-прост вариант, и пак няма да намажеш особено от цялата работа. Операционната система си има task scheduling. Това е един сложен алгоритъм, където ядрото прави едни сметки кой процес има нужда от процесорно време. Да речем, ffmpeg има силна нужда от такова, въпреки че task scheduler-a малко парадоксално предпочита I/O-интензивни пред CPU-интензивните процеси, не че ffmpeg вероятно не е и I/O-интензивно приложение.

На някакъв много малък период от време, наречен timeslice, въпросният scheduler се "буди", прави сметки кои процеси имат най-много нужда от процесорно време и в зависимост от броя процесори, изпълнява тези процеси върху процесорите. Един процес може да работи само върху един процесор, няма вариант да работи върху два едновременно (би било доста *странно* ако можеше де). Тези дето не се уредят, дремят в една опашка, докато дойде времето да им се освободи процесор да се изпълнят. Това, което виждаш като load average е средноаритметична стойност за един определен период от време, колко процеса са дремели в тази опашка.

И така...или до края на timeslice-a, или докато някой процес доброволно не си сдаде процесора (което става когато срещне блокираща операция, примерно четене от диск, мрежа, клавиатура и т.н.).

Сега и 1000 процесора да имаш, и ужасно гладен за процесорно време процес да имаш, кел файда, при положение, че процесът може да се изпълнява само на един процесор в един определен момент.

Сега, има вариант едно приложение да използва всичките 1000 процесора едновременно, но трябва да е написано с тази идея. Трябва или да форк-не 1000 процеса, или да създаде 1000 нишки. Тези процеси/нишки трябва да си говорят помежду си по някакъв начин, трябва да се изчакват когато трябва, да не се бият за споделени ресурси, всичко това е цяло изкуство и такива програми не се пишат толкова лесно. Та ffmpeg не е мислен да работи по този начин.

Та такива работи.
Активен

"Knowledge is power" - France is Bacon

Kirev

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
    • WWW
Re: Cluster + Ubuntu + ffmpeg = OK?
« Отговор #12 -: Sep 17, 2009, 23:21 »
Е ще си работи, както му е наредено "отгоре" тогава ;)
Благодаря, че се отзовахте момчета. Оценявам го наистина! Като Ви чета виждам, че имам още мнооого, много да уча, но съм амбициран да го направя. Дано "процесорът" ми само не зацикли :)
Активен

Блог с полезна информация - http://www.kirev.net

mimosh

  • Напреднали
  • *****
  • Публикации: 317
  • Distribution: Kubuntu
  • Window Manager: KDE
    • Профил
Re: Cluster + Ubuntu + ffmpeg = OK?
« Отговор #13 -: Sep 18, 2009, 08:48 »
Само да добавя и аз, че има такива приложения, които работят на всичките процесори.
Правих си тестове с една такава програмка (опен сорс) под уиндоус - да конвертира AVI към DVD. Та резултата - в офиса еднопроцесорна машина 30 кадъра средно в секунда конвертиране, в къщи двуядрен 50-60 кадъра в сек. Един приятел изкочи с някъкъв процесор дето уиндоуса показва 8 (точно така осем) ядра ами там го правеше с 240 кадъра средно.

За конвертиране се ползваше или Mplayer или VLC или ffmpeg ама не мога да кажа кое точно, нямам никъкъв спомен как се казваше програмката   :(. Ако се сетя за името ще пиша пак.
Активен

RealEnder

  • Напреднали
  • *****
  • Публикации: 160
  • Distribution: Ubuntu
  • Window Manager: Unity
    • Профил
    • WWW
Re: Cluster + Ubuntu + ffmpeg = OK?
« Отговор #14 -: Sep 18, 2009, 12:19 »
Може да се окаже, че за нуждите ти съвсем не е необходимо клъстерно решение, а просто външни backend машини, по схемата, която предложи gat3way. Ако все пак тръгнеш да реализираш сериозно решение и имаш правилните разработчици, може да погледнеш този проект: http://www.cs.wisc.edu/condor/
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
CORBA na CLUSTER
Хардуерни и софтуерни проблеми
blind_fish 1 2834 Последна публикация May 23, 2003, 17:51
от blind_fish
cluster za linux
Търсене
obla4e 3 5416 Последна публикация Oct 29, 2003, 14:25
от subn3t
Инсталиране на ffmpeg в ubuntu
Настройка на програми
Slevin_ 17 6458 Последна публикация May 29, 2009, 08:56
от dnsman
Ffmpeg -vhook watermark.so
Настройка на програми
nypd 12 4403 Последна публикация Jul 25, 2007, 20:44
от nypd
Mencoder , ffmpeg - ограничаване
Настройка на програми
sharo 5 3413 Последна публикация Mar 28, 2008, 10:58
от n00b