Приложни технологии върху руините на блокчейн треската или практическите ползи от разпределението на ресурси

През последните години новинарските емисии бяха наводнени със съобщения за нов тип разпределени изчислителни мрежи, появяващи се буквално от нищото, решаващи (или по-скоро опитващи се да разрешат) голямо разнообразие от проблеми - правене на града умен, спасяване на света от авторски права нарушители или обратното, тайно прехвърляне на информация или ресурси, излизане от -под държавен контрол в една или друга област. Независимо от областта, всички те имат редица общи черти поради факта, че горивото за техния растеж бяха алгоритмите и техниките, които станаха известни по време на неотдавнашния бум на криптовалутите и свързаните с тях технологии. Вероятно всяка трета статия за специализирани ресурси по това време имаше думата „блокчейн“ в заглавието - обсъждането на нови софтуерни решения и икономически модели се превърна в доминираща тенденция за известно време, на фона на която бяха други области на приложение на разпределени изчислителни системи изместен на заден план.

В същото време визионери и професионалисти видяха основната същност на феномена: масивните разпределени изчисления, свързани с изграждането на мрежи от голям брой разнородни и разнородни участници, достигнаха ново ниво на развитие. Достатъчно е да изхвърлите темите за реклама от главата си и да погледнете темата от другата страна: всички тези мрежи, събрани от огромни басейни, които се състоят от хиляди изолирани разнородни участници, не са се появили сами. Ентусиастите на крипто движението успяха да решат сложни проблеми със синхронизирането на данни и разпределението на ресурси и задачи по нов начин, което направи възможно сглобяването на подобна маса от оборудване и създаването на нова екосистема, предназначена да реши един тясно фокусиран проблем.

Разбира се, това не подмина екипите и общностите, участващи в разработването на безплатни разпределени изчисления, и новите проекти не закъсняха.
Въпреки значителното увеличаване на обема на наличната информация за разработките в областта на изграждането на мрежи и работата с оборудването, създателите на обещаващи системи ще трябва да решат сериозни проблеми.

Първият от тях, колкото и странно да звучи, е проблемът за избора на посока.

Посоката може да е вярна, а може и да доведе до задънена улица - оттук няма измъкване, централизираните доставки на ясновидци за IT общността все още закъсняват. Но изборът трябва да бъде направен, за да не попаднете в традиционния капан на екипа, който взема твърде широка област и се опитва да създаде друг неспециализиран общ разпределен изчислителен проект от самото начало. Изглежда, че обхватът на работата не е толкова страшен, в по-голямата си част просто трябва да приложим съществуващите разработки: да комбинираме възли в мрежа, да адаптираме алгоритми за определяне на топологии, обмен на данни и наблюдение на тяхната последователност, да въведем методи за класиране на възли и намиране консенсус и, разбира се, просто създайте свой собствен език за заявки и цялата езикова и компютърна среда. Идеята за универсален механизъм е много примамлива и постоянно изниква в една или друга област, но крайният резултат все още е едно от трите неща: създаденото решение или се оказва ограничен прототип с куп окачени „Задачи“ ” в изоставането, или се превръща в неизползваемо чудовище, готово да повлече всеки, който се докосне до зловонното „блато на Тюринг”, или просто умира безопасно от факта, че лебедът, ракът и щуката, които дърпат проекта в неразбираема посока, просто са се пренапрегнали.

Нека не повтаряме глупави грешки и да изберем посока, която има ясен набор от задачи и е много подходяща за модела на разпределени изчисления. Можете да разберете хората, които се опитват да направят всичко наведнъж - разбира се, има от какво да избирате. И много неща изглеждат изключително интересни както от гледна точка на научноизследователска и развойна дейност, така и от гледна точка на икономиката. С помощта на разпределена мрежа можете:

  • Обучете невронни мрежи
  • Процесни сигнални потоци
  • Изчислете структурата на протеина
  • Рендирайте XNUMXD сцени
  • Симулирайте хидродинамика
  • Тествайте търговски стратегии за фондовите борси

За да не се увличаме със съставянето на списък с интересни неща, които са добре паралелизирани, ще изберем разпределеното рендиране като наша следваща тема.

Самото разпределено изобразяване, разбира се, не е нищо ново. Съществуващите комплекти инструменти за рендиране отдавна поддържат разпределение на натоварването между различни машини; без това живеенето в двадесет и първи век би било доста тъжно. Не бива обаче да мислите, че темата е покрита надлъж и нашироко и няма какво да се прави там - ще разгледаме отделен належащ проблем: създаване на инструмент за създаване на рендерна мрежа.

Нашата рендираща мрежа е комбинация от възли, които трябва да изпълняват задачи за рендиране с възли, които имат безплатни изчислителни ресурси за обработка на рендиране. Собствениците на ресурси ще свържат своите станции към мрежата за рендиране, за да получават и изпълняват задания за рендиране, използвайки един от поддържаните от мрежата машини за рендиране. В този случай доставчиците на задачи ще работят с мрежата като облак, независимо разпределяне на ресурси, наблюдение на коректността на изпълнение, управление на риска и други проблеми.

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

Икономическият модел на съществуването на такава мрежа не е от основно значение, така че ще вземем като първоначална схема схема, подобна на тази, използвана при изчисленията в мрежите за криптовалута - потребителите на ресурса ще изпращат токени на доставчици, извършващи работата по рендиране. Много по-интересно е да разберем какви свойства трябва да има рамката, за която ще разгледаме основния сценарий на взаимодействие между участниците в мрежата.

Има три страни на взаимодействие в мрежата: доставчик на ресурси, доставчик на задачи и мрежов оператор (известен още като контролен център, мрежа и т.н. в текста).

Мрежовият оператор предоставя на доставчика на ресурси клиентско приложение или изображение на операционна система с разгърнат набор от софтуер, който той ще инсталира на машината, чиито ресурси иска да предостави, и личен акаунт, достъпен през уеб интерфейса, позволяващ му да задайте параметри за достъп до ресурса и отдалечено управлявайте неговия сървърен пейзаж: контролирайте хардуерните параметри, изпълнете отдалечена конфигурация, рестартирайте.

Когато се свърже нов възел, системата за управление на мрежата анализира оборудването и зададените параметри за достъп, класира го, присвоявайки определен рейтинг и го поставя в регистъра на ресурсите. В бъдеще, за да се управлява рискът, параметрите на активността на възела ще бъдат анализирани и рейтингът на възела ще бъде коригиран, за да се гарантира стабилността на мрежата. Никой няма да бъде доволен, ако сцената му бъде изпратена за рендиране на мощни карти, които често замръзват поради прегряване?

Потребител, който трябва да изобрази сцена, може да отиде по два начина: да качи сцената в мрежово хранилище чрез уеб интерфейса или да използва плъгин, за да свърже техния пакет за моделиране или инсталирания рендерер към мрежата. В този случай се инициира интелигентен договор между потребителя и мрежата, стандартното условие за завършване на който е генерирането на резултата от изчислението на сцената от мрежата. Потребителят може да наблюдава процеса на изпълнение на дадена задача и да управлява нейните параметри чрез уеб интерфейса на своя личен акаунт.

Задачата се изпраща на сървъра, където обемът на сцената и броят на ресурсите, поискани от инициатора на задачата, се анализират, след което общият обем се разлага на части, адаптирани за изчисляване на броя и вида на ресурсите, разпределени от мрежата . Общата идея е, че визуализацията може да бъде разделена на множество малки задачи. Двигателите се възползват от това, като разпределят тези задачи между множество доставчици на ресурси. Най-лесният начин е да изобразите малки части от сцената, наречени сегменти. Когато всеки сегмент е готов, локалната задача се счита за завършена и ресурсът преминава към следващата неизпълнена задача.

По този начин няма никаква разлика за рендиращия, дали изчисленията се извършват на една машина или на мрежа от много отделни изчислителни станции. Разпределеното изобразяване просто добавя повече ядра към пула от ресурси, използвани за дадена задача. Чрез мрежата той получава всички данни, необходими за изобразяване на сегмент, изчислява ги, изпраща този сегмент обратно и преминава към следващата задача. Преди да влезе в общия мрежов пул, всеки сегмент получава набор от метаинформация, която позволява на изпълняващите възли да избират най-подходящите изчислителни задачи за тях.

Проблемите на сегментирането и разпределението на изчисленията трябва да бъдат решени не само от гледна точка на оптимизиране на времето за изпълнение, но и от гледна точка на оптимално използване на ресурси и спестяване на енергия, тъй като икономическата ефективност на мрежата зависи от това . Ако решението е неуспешно, би било по-препоръчително да инсталирате миньор на възела или да го изключите, така че да не вдига шум и да не губи електроенергия.

Нека обаче се върнем към процеса. Когато се получи задача, също се формира интелигентен договор между пула и възела, който се изпълнява, когато резултатът от задачата е правилно изчислен. Въз основа на резултатите от изпълнението на договора, възелът може да получи награда под една или друга форма.

Контролният център контролира процеса на изпълнение на задачата, събира резултатите от изчисленията, изпраща некоректните за повторна обработка и класиране на опашката, следи стандартния срок за изпълнение на задачата (за да не се случи последният сегмент да не бъде зает от всеки възел).

Резултатите от изчисленията преминават през етапа на композиране, след което потребителят получава резултатите от изобразяването и мрежата може да получи награда.

По този начин се появява функционалната композиция на ландшафтна рамка, предназначена за изграждане на системи за разпределено изобразяване:

  1. Лични потребителски акаунти с уеб достъп
  2. Софтуерен комплект за инсталиране на възли
  3. По система за управление:
    • Подсистема за контрол на достъпа
    • Подсистема за декомпозиция на задачи за изобразяване
    • Подсистема за разпределение на задачите
    • Подсистема за композиране
    • Подсистема за управление на ландшафта на сървъра и мрежовата топология
    • Подсистема за регистриране и одит
    • Експертна подсистема за обучение
    • Rest API или друг интерфейс за външни разработчици

Какво мислиш? Какви въпроси повдига темата и какви отговори ви интересуват?

Източник: www.habr.com

Добавяне на нов коментар